From e4396ae38c6173febf6785cf48b85bda0bc472dd Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Mon, 24 Oct 2016 03:49:30 -0700 Subject: split out naming_screen.s --- asm/naming_screen.s | 4331 ++ asm/rom_80B5054.s | 168314 ------------------------------------------------- asm/rom_80B79A8.s | 164001 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 168332 insertions(+), 168314 deletions(-) create mode 100644 asm/naming_screen.s create mode 100644 asm/rom_80B79A8.s (limited to 'asm') diff --git a/asm/naming_screen.s b/asm/naming_screen.s new file mode 100644 index 000000000..e8ea18e34 --- /dev/null +++ b/asm/naming_screen.s @@ -0,0 +1,4331 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .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. diff --git a/asm/rom_80B5054.s b/asm/rom_80B5054.s index ee355d706..6d6c68244 100644 --- a/asm/rom_80B5054.s +++ b/asm/rom_80B5054.s @@ -1234,168318 +1234,4 @@ _080B59C6: bx r1 thumb_func_end sub_80B59AC - 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 - - thumb_func_start IsEnoughMoney -IsEnoughMoney: @ 80B79A8 - push {lr} - cmp r0, r1 - bcs _080B79B2 - movs r0, 0 - b _080B79B4 -_080B79B2: - movs r0, 0x1 -_080B79B4: - pop {r1} - bx r1 - thumb_func_end IsEnoughMoney - - thumb_func_start sub_80B79B8 -sub_80B79B8: @ 80B79B8 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - adds r1, r0, r1 - cmp r0, r1 - bls _080B79CC - ldr r0, _080B79C8 @ =0x000f423f - b _080B79D4 - .align 2, 0 -_080B79C8: .4byte 0x000f423f -_080B79CC: - str r1, [r2] - ldr r0, _080B79DC @ =0x000f423f - cmp r1, r0 - bls _080B79D6 -_080B79D4: - str r0, [r2] -_080B79D6: - pop {r0} - bx r0 - .align 2, 0 -_080B79DC: .4byte 0x000f423f - thumb_func_end sub_80B79B8 - - thumb_func_start sub_80B79E0 -sub_80B79E0: @ 80B79E0 - push {lr} - adds r2, r0, 0 - ldr r0, [r2] - cmp r0, r1 - bcs _080B79EE - movs r0, 0 - b _080B79F0 -_080B79EE: - subs r0, r1 -_080B79F0: - str r0, [r2] - pop {r0} - bx r0 - thumb_func_end sub_80B79E0 - - thumb_func_start sub_80B79F8 -sub_80B79F8: @ 80B79F8 - push {r4,lr} - adds r3, r0, 0 - lsls r2, 24 - lsrs r4, r2, 24 - ldr r0, _080B7A0C @ =0x000f423f - cmp r1, r0 - bls _080B7A10 - movs r2, 0x7 - b _080B7A46 - .align 2, 0 -_080B7A0C: .4byte 0x000f423f -_080B7A10: - ldr r0, _080B7A1C @ =0x0001869f - cmp r1, r0 - bls _080B7A20 - movs r2, 0x6 - b _080B7A46 - .align 2, 0 -_080B7A1C: .4byte 0x0001869f -_080B7A20: - ldr r0, _080B7A2C @ =0x00002710 - cmp r1, r0 - bls _080B7A30 - movs r2, 0x5 - b _080B7A46 - .align 2, 0 -_080B7A2C: .4byte 0x00002710 -_080B7A30: - ldr r0, _080B7A90 @ =0x000003e7 - movs r2, 0x4 - cmp r1, r0 - bhi _080B7A46 - movs r2, 0x3 - cmp r1, 0x63 - bhi _080B7A46 - movs r2, 0x1 - cmp r1, 0x9 - bls _080B7A46 - movs r2, 0x2 -_080B7A46: - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0x6 - strb r0, [r3, 0x2] - adds r3, 0x3 - movs r0, 0 - subs r2, r4, r2 - cmp r0, r2 - bge _080B7A6C - movs r4, 0 -_080B7A5E: - strb r4, [r3] - adds r3, 0x1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - blt _080B7A5E -_080B7A6C: - movs r0, 0xB7 - strb r0, [r3] - adds r3, 0x1 - adds r0, r3, 0 - bl ConvertIntToDecimalString - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7A90: .4byte 0x000003e7 - thumb_func_end sub_80B79F8 - - thumb_func_start sub_80B7A94 -sub_80B7A94: @ 80B7A94 - push {r4-r7,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r7, r3, 24 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80B79F8 - mov r0, sp - bl sub_8072CA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0x1 - lsls r0, 3 - cmp r2, r0 - blt _080B7ACE - mov r0, sp - adds r1, r6, 0 - adds r2, r7, 0 - bl MenuPrint - b _080B7AE4 -_080B7ACE: - adds r1, r6, 0x1 - adds r1, r5 - lsls r1, 3 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r7, 3 - mov r0, sp - movs r3, 0x1 - bl MenuPrint_PixelCoords -_080B7AE4: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7A94 - - thumb_func_start sub_80B7AEC -sub_80B7AEC: @ 80B7AEC - push {r4-r6,lr} - sub sp, 0x20 - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - movs r0, 0xB7 - strb r0, [r6] - adds r6, 0x1 - adds r0, r6, 0 - adds r1, r3, 0 - bl ConvertIntToDecimalString - adds r6, r0, 0 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8072B4C - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x14 - strb r0, [r6, 0x1] - movs r0, 0 - strb r0, [r6, 0x2] - movs r0, 0xFF - strb r0, [r6, 0x3] - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B7AEC - - thumb_func_start sub_80B7B34 -sub_80B7B34: @ 80B7B34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - mov r9, r2 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r9 - lsls r1, 8 - mov r9, r1 - ldr r4, _080B7BD8 @ =gDecoration10000_Gfx - adds r0, r1, r4 - lsls r6, r5, 4 - subs r6, r5 - lsls r1, r6, 6 - mov r3, r8 - adds r3, 0x1 - lsls r3, 5 - ldr r2, _080B7BDC @ =0x06008000 - adds r3, r2 - adds r1, r3 - movs r2, 0x20 - str r3, [sp] - bl CpuFastSet - adds r4, 0x80 - add r9, r4 - adds r0, r5, 0x1 - lsls r4, r0, 4 - subs r4, r0 - lsls r1, r4, 6 - ldr r3, [sp] - adds r1, r3 - mov r0, r9 - movs r2, 0x20 - bl CpuFastSet - movs r3, 0 - lsls r5, 5 - mov r0, r8 - adds r7, r5, r0 - lsls r6, 1 - adds r6, 0x1 - add r6, r8 - ldr r1, _080B7BE0 @ =0xfffff000 - adds r5, r1, 0 - ldr r0, _080B7BE4 @ =0x0600f800 - mov r12, r0 - ldr r1, _080B7BE8 @ =0x0600f840 - mov r9, r1 - lsls r4, 1 - adds r4, 0x1 - add r4, r8 -_080B7BAA: - adds r1, r7, r3 - lsls r1, 1 - mov r0, r12 - adds r2, r1, r0 - adds r0, r3, r6 - adds r0, r5 - strh r0, [r2] - add r1, r9 - adds r0, r3, r4 - adds r0, r5 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B7BAA - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7BD8: .4byte gDecoration10000_Gfx -_080B7BDC: .4byte 0x06008000 -_080B7BE0: .4byte 0xfffff000 -_080B7BE4: .4byte 0x0600f800 -_080B7BE8: .4byte 0x0600f840 - thumb_func_end sub_80B7B34 - - thumb_func_start sub_80B7BEC -sub_80B7BEC: @ 80B7BEC - push {r4,lr} - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r4, r1 - lsrs r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r3, r1 - lsrs r3, 24 - movs r1, 0x6 - adds r2, r4, 0 - bl sub_80B7A94 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B7BEC - - thumb_func_start sub_80B7C14 -sub_80B7C14: @ 80B7C14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsls r3, 24 - lsrs r6, r4, 24 - movs r0, 0xD0 - lsls r0, 20 - adds r4, r0 - lsrs r4, 24 - lsrs r5, r3, 24 - movs r1, 0xC0 - lsls r1, 18 - adds r3, r1 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuDrawTextWindow - mov r0, r8 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80B7BEC - ldr r0, _080B7C88 @ =gUnknown_083CF584 - bl LoadCompressedObjectPic - ldr r0, _080B7C8C @ =gUnknown_083CF58C - bl LoadCompressedObjectPalette - ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C - lsls r6, 19 - movs r1, 0x98 - lsls r1, 13 - adds r6, r1 - asrs r6, 16 - lsls r5, 19 - movs r1, 0xB0 - lsls r1, 12 - adds r5, r1 - asrs r5, 16 - adds r1, r6, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - ldr r1, _080B7C94 @ =gUnknown_02038734 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7C88: .4byte gUnknown_083CF584 -_080B7C8C: .4byte gUnknown_083CF58C -_080B7C90: .4byte gSpriteTemplate_83CF56C -_080B7C94: .4byte gUnknown_02038734 - thumb_func_end sub_80B7C14 - - thumb_func_start RemoveMoneyLabelObject -RemoveMoneyLabelObject: @ 80B7C98 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080B7CDC @ =gUnknown_02038734 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080B7CE0 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - ldr r0, _080B7CE4 @ =0x00002722 - bl FreeSpritePaletteByTag - adds r2, r4, 0 - adds r2, 0xD - lsls r2, 24 - lsrs r2, 24 - adds r3, r5, 0x3 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl MenuZeroFillWindowRect - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7CDC: .4byte gUnknown_02038734 -_080B7CE0: .4byte gSprites -_080B7CE4: .4byte 0x00002722 - thumb_func_end RemoveMoneyLabelObject - - thumb_func_start sub_80B7CE8 -sub_80B7CE8: @ 80B7CE8 - push {lr} - ldr r0, _080B7D04 @ =gSaveBlock1 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080B7D08 @ =gUnknown_0202E8CE - ldrh r1, [r1] - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080B7D04: .4byte gSaveBlock1 -_080B7D08: .4byte gUnknown_0202E8CE - thumb_func_end sub_80B7CE8 - - thumb_func_start sub_80B7D0C -sub_80B7D0C: @ 80B7D0C - push {lr} - ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490 - ldr r1, _080B7D20 @ =gUnknown_0202E8CE - ldrh r1, [r1] - bl sub_80B79E0 - pop {r0} - bx r0 - .align 2, 0 -_080B7D1C: .4byte gSaveBlock1 + 0x490 -_080B7D20: .4byte gUnknown_0202E8CE - thumb_func_end sub_80B7D0C - - thumb_func_start AreMovesContestCombo -AreMovesContestCombo: @ 80B7D24 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsls r1, 16 - ldr r2, _080B7D78 @ =gContestMoves - lsrs r0, 13 - adds r0, r2 - ldrb r4, [r0, 0x2] - mov r3, sp - lsrs r1, 13 - adds r1, r2 - ldrb r0, [r1, 0x3] - strb r0, [r3] - mov r2, sp - ldrb r0, [r1, 0x4] - strb r0, [r2, 0x1] - ldrb r0, [r1, 0x5] - strb r0, [r2, 0x2] - mov r0, sp - ldrb r1, [r1, 0x6] - strb r1, [r0, 0x3] - cmp r4, 0 - beq _080B7D80 - mov r0, sp - ldrb r0, [r0] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r4, r0 - beq _080B7D6E - mov r0, sp - ldrb r0, [r0, 0x2] - cmp r4, r0 - beq _080B7D6E - cmp r4, r1 - bne _080B7D80 -_080B7D6E: - ldr r0, _080B7D7C @ =gComboStarterLookupTable - adds r0, r4, r0 - ldrb r0, [r0] - b _080B7D82 - .align 2, 0 -_080B7D78: .4byte gContestMoves -_080B7D7C: .4byte gComboStarterLookupTable -_080B7D80: - movs r0, 0 -_080B7D82: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end AreMovesContestCombo - - thumb_func_start ContestEffect_00 -ContestEffect_00: @ 80B7D8C - bx lr - thumb_func_end ContestEffect_00 - - thumb_func_start ContestEffect_01 -ContestEffect_01: @ 80B7D90 - push {lr} - ldr r3, _080B7DB8 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DB8: .4byte 0x020192d0 - thumb_func_end ContestEffect_01 - - thumb_func_start ContestEffect_02 -ContestEffect_02: @ 80B7DBC - push {lr} - ldr r3, _080B7DE4 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r3, 0x11] - movs r1, 0x1 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7DE4: .4byte 0x020192d0 - thumb_func_end ContestEffect_02 - - thumb_func_start ContestEffect_03 -ContestEffect_03: @ 80B7DE8 - push {r4,lr} - ldr r3, _080B7E30 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x10] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x15] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x15] - ldrb r0, [r3, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x71 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7E30: .4byte 0x020192d0 - thumb_func_end ContestEffect_03 - - thumb_func_start ContestEffect_04 -ContestEffect_04: @ 80B7E34 - push {lr} - ldr r2, _080B7E58 @ =0x020192d0 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0, 0x12] - ldrb r0, [r2, 0x11] - movs r1, 0x2 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E58: .4byte 0x020192d0 - thumb_func_end ContestEffect_04 - - thumb_func_start ContestEffect_05 -ContestEffect_05: @ 80B7E5C - push {lr} - ldr r3, _080B7E84 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x3 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7E84: .4byte 0x020192d0 - thumb_func_end ContestEffect_05 - - thumb_func_start ContestEffect_06 -ContestEffect_06: @ 80B7E88 - push {lr} - ldr r2, _080B7EAC @ =0x020192d0 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x70 - adds r0, r1 - movs r1, 0x14 - strb r1, [r0, 0xF] - ldrb r0, [r2, 0x11] - movs r1, 0x4 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7EAC: .4byte 0x020192d0 - thumb_func_end ContestEffect_06 - - thumb_func_start ContestEffect_07 -ContestEffect_07: @ 80B7EB0 - push {lr} - ldr r3, _080B7ED8 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r3, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r3, 0x11] - movs r1, 0x5 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B7ED8: .4byte 0x020192d0 - thumb_func_end ContestEffect_07 - - thumb_func_start ContestEffect_08 -ContestEffect_08: @ 80B7EDC - push {r4,lr} - movs r2, 0 - ldr r3, _080B7F38 @ =0x020192d0 - ldrb r0, [r3, 0x11] - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - beq _080B7F1A - subs r0, 0x1 - ldrb r4, [r3] - cmp r0, r4 - beq _080B7F0A - adds r4, r3, 0 - adds r3, r1, 0 -_080B7EF8: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080B7F0A - ldrb r0, [r3] - subs r0, 0x1 - adds r1, r2, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B7EF8 -_080B7F0A: - ldr r1, _080B7F38 @ =0x020192d0 - strb r2, [r1, 0x8] - movs r0, 0xFF - strb r0, [r1, 0x9] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F1A: - cmp r2, 0 - bne _080B7F28 - ldr r0, _080B7F38 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F28: - ldr r0, _080B7F38 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7F38: .4byte 0x020192d0 - thumb_func_end ContestEffect_08 - - thumb_func_start ContestEffect_09 -ContestEffect_09: @ 80B7F3C - push {r4-r6,lr} - movs r2, 0 - ldr r1, _080B7F9C @ =0x020192d0 - ldrb r0, [r1, 0x11] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080B7F7C - movs r3, 0 - adds r5, r1, 0 - adds r6, r5, 0 - adds r6, 0x8 -_080B7F54: - adds r1, r2, r5 - ldrb r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bls _080B7F64 - adds r0, r3, r6 - strb r2, [r0] - adds r3, 0x1 -_080B7F64: - adds r2, 0x1 - cmp r2, 0x3 - ble _080B7F54 - ldr r0, _080B7F9C @ =0x020192d0 - adds r0, 0x8 - adds r0, r3, r0 - movs r1, 0xFF - strb r1, [r0] - bl sub_80B9120 - lsls r0, 24 - lsrs r2, r0, 24 -_080B7F7C: - cmp r2, 0 - bne _080B7F8A - ldr r0, _080B7F9C @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B7F8A: - ldr r0, _080B7F9C @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B7F9C: .4byte 0x020192d0 - thumb_func_end ContestEffect_09 - - thumb_func_start ContestEffect_14 -ContestEffect_14: @ 80B7FA0 - push {lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - cmp r0, 0x1 - bls _080B7FC2 - movs r1, 0x3C - cmp r0, 0x7 - bhi _080B7FC2 - movs r1, 0x28 -_080B7FC2: - ldr r0, _080B7FD0 @ =0x020192d0 - strh r1, [r0, 0x4] - bl ContestEffect_08 - pop {r0} - bx r0 - .align 2, 0 -_080B7FD0: .4byte 0x020192d0 - thumb_func_end ContestEffect_14 - - thumb_func_start ContestEffect_15 -ContestEffect_15: @ 80B7FD4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r0, _080B806C @ =0x020192d0 - ldrb r6, [r0, 0x11] - adds r1, r6, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B804A - movs r5, 0 - mov r4, r8 -_080B7FEE: - adds r0, r6, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8044 - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r0, 0 - beq _080B8032 - movs r1, 0xA - cmp r0, 0x2 - bls _080B8032 - movs r1, 0x14 - cmp r0, 0x4 - bls _080B8032 - movs r1, 0x1E - cmp r0, 0x6 - bls _080B8032 - movs r1, 0x3C - cmp r0, 0x8 - bhi _080B8032 - movs r1, 0x28 -_080B8032: - strh r1, [r4, 0x4] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8044 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8044: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B7FEE -_080B804A: - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x30 - bl sub_80B13EC - cmp r7, 0 - bne _080B8062 - mov r1, r8 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8062: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B806C: .4byte 0x020192d0 - thumb_func_end ContestEffect_15 - - thumb_func_start ContestEffect_16 -ContestEffect_16: @ 80B8070 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8108 @ =0x020192d0 - ldrb r7, [r0, 0x11] - adds r1, r7, r0 - ldrb r1, [r1] - mov r10, r0 - cmp r1, 0 - beq _080B80E0 - movs r6, 0 - mov r8, r10 - mov r5, r10 - subs r5, 0x5B -_080B8094: - mov r1, r8 - adds r0, r7, r1 - adds r1, r6, r1 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B80D8 - ldrb r1, [r5] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B80D8 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B80D8 - ldrb r0, [r5] - movs r2, 0x11 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x8 - bl sub_80B13EC - movs r0, 0x1 - mov r9, r0 -_080B80D8: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8094 -_080B80E0: - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x7 - bl sub_80B13EC - mov r2, r9 - cmp r2, 0 - bne _080B80FA - mov r1, r10 - ldrb r0, [r1, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B80FA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8108: .4byte 0x020192d0 - thumb_func_end ContestEffect_16 - - thumb_func_start ContestEffect_17 -ContestEffect_17: @ 80B810C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r9, r0 - ldr r0, _080B8150 @ =0x020192d0 - ldrb r1, [r0, 0x11] - mov r8, r1 - adds r1, r0 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _080B817C - movs r5, 0 - adds r4, r6, 0 - movs r7, 0 -_080B812E: - mov r2, r8 - adds r0, r2, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8172 - adds r0, r6, 0 - subs r0, 0x70 - adds r0, r7, r0 - ldrb r1, [r0, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B8154 - movs r0, 0x32 - b _080B8156 - .align 2, 0 -_080B8150: .4byte 0x020192d0 -_080B8154: - movs r0, 0xA -_080B8156: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8172 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B8172: - adds r7, 0x1C - adds r5, 0x1 - ldr r6, _080B81A0 @ =0x020192d0 - cmp r5, 0x3 - ble _080B812E -_080B817C: - ldrb r0, [r6, 0x11] - movs r1, 0x30 - bl sub_80B13EC - mov r0, r9 - cmp r0, 0 - bne _080B8192 - ldrb r0, [r6, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8192: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B81A0: .4byte 0x020192d0 - thumb_func_end ContestEffect_17 - - thumb_func_start ContestEffect_18 -ContestEffect_18: @ 80B81A4 - push {r4,lr} - ldr r4, _080B81D0 @ =0x020192d0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x11] - bl ContestEffect_09 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B81D0: .4byte 0x020192d0 - thumb_func_end ContestEffect_18 - - thumb_func_start ContestEffect_19 -ContestEffect_19: @ 80B81D4 - push {r4,lr} - ldr r4, _080B8208 @ =0x020192d0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - ldr r1, _080B820C @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - bl sub_80B9038 - ldrb r0, [r4, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8208: .4byte 0x020192d0 -_080B820C: .4byte gContestMoves - thumb_func_end ContestEffect_19 - - thumb_func_start ContestEffect_20 -ContestEffect_20: @ 80B8210 - push {lr} - movs r0, 0 - bl sub_80B9038 - ldr r0, _080B8228 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8228: .4byte 0x020192d0 - thumb_func_end ContestEffect_20 - - thumb_func_start ContestEffect_21 -ContestEffect_21: @ 80B822C - push {lr} - movs r0, 0x1 - bl sub_80B9038 - ldr r0, _080B8244 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8244: .4byte 0x020192d0 - thumb_func_end ContestEffect_21 - - thumb_func_start ContestEffect_22 -ContestEffect_22: @ 80B8248 - push {lr} - movs r0, 0x2 - bl sub_80B9038 - ldr r0, _080B8260 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8260: .4byte 0x020192d0 - thumb_func_end ContestEffect_22 - - thumb_func_start ContestEffect_23 -ContestEffect_23: @ 80B8264 - push {lr} - movs r0, 0x3 - bl sub_80B9038 - ldr r0, _080B827C @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B827C: .4byte 0x020192d0 - thumb_func_end ContestEffect_23 - - thumb_func_start ContestEffect_24 -ContestEffect_24: @ 80B8280 - push {lr} - movs r0, 0x4 - bl sub_80B9038 - ldr r0, _080B8298 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r0} - bx r0 - .align 2, 0 -_080B8298: .4byte 0x020192d0 - thumb_func_end ContestEffect_24 - - thumb_func_start ContestEffect_25 -ContestEffect_25: @ 80B829C - push {r4-r7,lr} - movs r4, 0 - ldr r0, _080B82E0 @ =0x020192d0 - ldrb r1, [r0, 0x11] - adds r1, r0 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0x3 - beq _080B82F4 - movs r5, 0 - adds r6, r7, 0 -_080B82B2: - ldrb r0, [r6, 0x11] - adds r0, r6 - ldrb r0, [r0] - adds r0, 0x1 - adds r1, r5, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B82EE - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B82E4 - adds r0, r4, 0 - bl sub_80B157C - adds r0, r4, 0 - movs r1, 0xA - b _080B82E8 - .align 2, 0 -_080B82E0: .4byte 0x020192d0 -_080B82E4: - adds r0, r4, 0 - movs r1, 0x3C -_080B82E8: - bl sub_80B13EC - movs r4, 0x1 -_080B82EE: - adds r5, 0x1 - cmp r5, 0x3 - ble _080B82B2 -_080B82F4: - ldrb r0, [r7, 0x11] - movs r1, 0x9 - bl sub_80B13EC - cmp r4, 0 - bne _080B8308 - ldrb r0, [r7, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8308: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_25 - - thumb_func_start ContestEffect_26 -ContestEffect_26: @ 80B8310 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x18] - mov r0, sp - movs r1, 0xFF - movs r2, 0x5 - bl memset - movs r6, 0 - movs r4, 0 - add r2, sp, 0x10 - mov r8, r2 - add r3, sp, 0x8 - mov r10, r3 - ldr r5, _080B8384 @ =0x020192d0 - adds r7, r5, 0 - subs r7, 0x70 -_080B8340: - ldrb r0, [r5, 0x11] - adds r0, r5 - adds r1, r6, r5 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080B836E - ldrb r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080B836E - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80AF59C - lsls r0, 24 - cmp r0, 0 - bne _080B836E - mov r1, sp - adds r0, r1, r4 - strb r6, [r0] - adds r4, 0x1 -_080B836E: - adds r7, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B8340 - cmp r4, 0x1 - bne _080B8388 - movs r0, 0x3C - mov r2, r8 - strh r0, [r2] - b _080B83B6 - .align 2, 0 -_080B8384: .4byte 0x020192d0 -_080B8388: - cmp r4, 0x2 - bne _080B8396 - movs r0, 0x1E - mov r3, r8 - strh r0, [r3] - strh r0, [r3, 0x2] - b _080B83B6 -_080B8396: - cmp r4, 0x3 - bne _080B83A6 - movs r0, 0x14 - mov r7, r8 - strh r0, [r7] - strh r0, [r7, 0x2] - strh r0, [r7, 0x4] - b _080B83B6 -_080B83A6: - mov r1, r8 - movs r2, 0 - mov r0, r8 - adds r0, 0x6 -_080B83AE: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _080B83AE -_080B83B6: - movs r6, 0 - movs r7, 0 - mov r4, r10 -_080B83BC: - ldr r0, _080B83F0 @ =0x02019260 - adds r5, r7, r0 - ldrb r1, [r5, 0x15] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B83FC - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _080B83FC - ldr r1, _080B83F4 @ =gContestMoves - ldrh r0, [r5, 0x8] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - ldr r1, _080B83F8 @ =gComboStarterLookupTable - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - b _080B83FE - .align 2, 0 -_080B83F0: .4byte 0x02019260 -_080B83F4: .4byte gContestMoves -_080B83F8: .4byte gComboStarterLookupTable -_080B83FC: - movs r0, 0 -_080B83FE: - strh r0, [r4] - ldr r5, _080B8494 @ =0x02019260 - adds r0, r7, r5 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4] - subs r0, r1 - strh r0, [r4] - adds r7, 0x1C - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080B83BC - mov r2, r8 - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080B84CA - movs r6, 0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0xFF - beq _080B84CA - adds r5, 0x7D - mov r4, sp -_080B8442: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 1 - add r1, r8 - movs r7, 0 - ldrsh r2, [r1, r7] - ldrb r3, [r4] - lsls r1, r3, 1 - add r1, r10 - movs r7, 0 - ldrsh r1, [r1, r7] - adds r2, r1 - cmp r0, r2 - bge _080B8498 - adds r0, r3, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B84A2 - ldrb r0, [r4] - bl sub_80B157C - ldrb r0, [r4] - movs r1, 0xA - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _080B849C - .align 2, 0 -_080B8494: .4byte 0x02019260 -_080B8498: - movs r0, 0x1 - str r0, [sp, 0x18] -_080B849C: - ldr r1, [sp, 0x18] - cmp r1, 0 - beq _080B84B8 -_080B84A2: - movs r2, 0 - str r2, [sp, 0x18] - ldrb r0, [r4] - movs r1, 0x3C - bl sub_80B13EC - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080B84B8: - ldrb r0, [r4] - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - adds r4, 0x1 - adds r6, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080B8442 -_080B84CA: - ldr r4, _080B84F4 @ =0x020192d0 - ldrb r0, [r4, 0x11] - movs r1, 0xB - bl sub_80B13EC - mov r3, r9 - cmp r3, 0 - bne _080B84E2 - ldrb r0, [r4, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B84E2: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B84F4: .4byte 0x020192d0 - thumb_func_end ContestEffect_26 - - thumb_func_start ContestEffect_27 -ContestEffect_27: @ 80B84F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - movs r6, 0 - ldr r7, _080B8580 @ =0x020192d0 - adds r5, r7, 0 - subs r5, 0x63 -_080B850A: - ldrb r0, [r7, 0x11] - adds r0, r7 - adds r1, r6, r7 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8556 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - ble _080B8556 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B90C0 - lsls r0, 24 - cmp r0, 0 - beq _080B8556 - movs r0, 0 - strb r0, [r5] - ldrb r1, [r5, 0x3] - movs r2, 0x31 - negs r2, r2 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r5, 0x3] - adds r0, r4, 0 - movs r1, 0xD - bl sub_80B13EC - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080B8556: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _080B850A - ldr r4, _080B8580 @ =0x020192d0 - ldrb r0, [r4, 0x11] - movs r1, 0xC - bl sub_80B13EC - mov r0, r8 - cmp r0, 0 - bne _080B8576 - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B8576: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8580: .4byte 0x020192d0 - thumb_func_end ContestEffect_27 - - thumb_func_start ContestEffect_28 -ContestEffect_28: @ 80B8584 - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B85B0 @ =0x020192d0 - movs r6, 0 -_080B858E: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B85CE - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080B85B4 - movs r0, 0x28 - b _080B85B6 - .align 2, 0 -_080B85B0: .4byte 0x020192d0 -_080B85B4: - movs r0, 0xA -_080B85B6: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B85CE - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B85CE: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B858E - ldr r4, _080B85F4 @ =0x020192d0 - ldrb r0, [r4, 0x11] - movs r1, 0xE - bl sub_80B13EC - cmp r7, 0 - bne _080B85EC - ldrb r0, [r4, 0x11] - movs r1, 0x39 - bl sub_80B1404 -_080B85EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B85F4: .4byte 0x020192d0 - thumb_func_end ContestEffect_28 - - thumb_func_start ContestEffect_29 -ContestEffect_29: @ 80B85F8 - push {r4,lr} - ldr r0, _080B863C @ =gUnknown_02038696 - ldr r4, _080B8640 @ =0x020192d0 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080B8636 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8644 @ =gContestEffects - ldr r2, _080B8648 @ =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0xF - bl sub_80B13EC -_080B8636: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B863C: .4byte gUnknown_02038696 -_080B8640: .4byte 0x020192d0 -_080B8644: .4byte gContestEffects -_080B8648: .4byte gContestMoves - thumb_func_end ContestEffect_29 - - thumb_func_start ContestEffect_30 -ContestEffect_30: @ 80B864C - push {r4,lr} - ldr r0, _080B8690 @ =gUnknown_02038696 - ldr r4, _080B8694 @ =0x020192d0 - ldrb r2, [r4, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080B868A - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x6] - ldr r3, _080B8698 @ =gContestEffects - ldr r2, _080B869C @ =gContestMoves - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x10 - bl sub_80B13EC -_080B868A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8690: .4byte gUnknown_02038696 -_080B8694: .4byte 0x020192d0 -_080B8698: .4byte gContestEffects -_080B869C: .4byte gContestMoves - thumb_func_end ContestEffect_30 - - thumb_func_start ContestEffect_31 -ContestEffect_31: @ 80B86A0 - push {r4-r7,lr} - movs r1, 0 - movs r3, 0 - ldr r4, _080B86EC @ =0x020192d0 - ldrb r0, [r4, 0x11] - adds r0, r4 - ldrb r5, [r0] - movs r2, 0 - adds r6, r4, 0 - subs r6, 0x70 -_080B86B4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r5, r0 - bls _080B86C4 - adds r0, r2, r6 - movs r7, 0x2 - ldrsh r0, [r0, r7] - adds r3, r0 -_080B86C4: - adds r2, 0x1C - adds r1, 0x1 - cmp r1, 0x3 - ble _080B86B4 - cmp r3, 0 - bge _080B86D2 - movs r3, 0 -_080B86D2: - ldr r4, _080B86EC @ =0x020192d0 - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080B86E2 - cmp r3, 0 - bne _080B86F0 -_080B86E2: - adds r0, r2, 0 - movs r1, 0x12 - bl sub_80B13EC - b _080B8710 - .align 2, 0 -_080B86EC: .4byte 0x020192d0 -_080B86F0: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - lsrs r0, r3, 31 - adds r0, r3, r0 - asrs r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x11 - bl sub_80B13EC -_080B8710: - ldr r4, _080B873C @ =0x020192d0 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r0, r5 - movs r7, 0x2 - ldrsh r0, [r0, r7] - bl sub_80B9224 - ldrb r2, [r4, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B873C: .4byte 0x020192d0 - thumb_func_end ContestEffect_31 - - thumb_func_start ContestEffect_32 -ContestEffect_32: @ 80B8740 - push {r4-r7,lr} - movs r6, 0 - ldr r0, _080B8794 @ =0x020192d0 - ldrb r1, [r0, 0x11] - adds r3, r1, r0 - ldrb r1, [r3] - adds r4, r0, 0 - cmp r1, 0 - beq _080B8788 - movs r2, 0 - adds r7, r4, 0 - adds r0, r1, 0 - subs r1, r0, 0x1 - movs r3, 0 - adds r5, r4, 0 - subs r5, 0x70 -_080B8760: - adds r0, r2, r7 - ldrb r0, [r0] - cmp r1, r0 - bne _080B876C - adds r0, r3, r5 - ldrh r6, [r0, 0x2] -_080B876C: - adds r3, 0x1C - adds r2, 0x1 - cmp r2, 0x3 - ble _080B8760 - adds r0, r4, 0 - ldrb r2, [r0, 0x11] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8788 - lsls r0, r6, 16 - asrs r3, r0, 16 - cmp r3, 0 - bgt _080B8798 -_080B8788: - ldrb r0, [r4, 0x11] - movs r1, 0x14 - bl sub_80B13EC - b _080B87B2 - .align 2, 0 -_080B8794: .4byte 0x020192d0 -_080B8798: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r0 - ldrh r0, [r1, 0x2] - adds r0, r3, r0 - strh r0, [r1, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x13 - bl sub_80B13EC -_080B87B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_32 - - thumb_func_start ContestEffect_33 -ContestEffect_33: @ 80B87B8 - push {lr} - ldr r0, _080B87D8 @ =0x020192d0 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r3, [r1] - mov r12, r0 - cmp r3, 0 - bne _080B87DC - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - movs r1, 0xA - b _080B87EE - .align 2, 0 -_080B87D8: .4byte 0x020192d0 -_080B87DC: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r12 - subs r1, 0x70 - adds r0, r1 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 -_080B87EE: - strh r1, [r0, 0x2] - cmp r3, 0 - bne _080B8800 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x15 - bl sub_80B13EC - b _080B882A -_080B8800: - cmp r3, 0x1 - bne _080B8810 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x16 - bl sub_80B13EC - b _080B882A -_080B8810: - cmp r3, 0x2 - bne _080B8820 - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x17 - bl sub_80B13EC - b _080B882A -_080B8820: - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x18 - bl sub_80B13EC -_080B882A: - pop {r0} - bx r0 - thumb_func_end ContestEffect_33 - - thumb_func_start ContestEffect_34 -ContestEffect_34: @ 80B8830 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - bhi _080B885C - movs r4, 0xA - ldr r0, _080B8858 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8858: .4byte 0x020192d0 -_080B885C: - cmp r0, 0x5 - bhi _080B8874 - movs r4, 0x14 - ldr r0, _080B8870 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8870: .4byte 0x020192d0 -_080B8874: - cmp r0, 0x7 - bhi _080B888C - movs r4, 0x28 - ldr r0, _080B8888 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B8888: .4byte 0x020192d0 -_080B888C: - cmp r1, 0x8 - bhi _080B88A4 - movs r4, 0x3C - ldr r0, _080B88A0 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B88B0 - .align 2, 0 -_080B88A0: .4byte 0x020192d0 -_080B88A4: - movs r4, 0x50 - ldr r0, _080B88C8 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B88B0: - ldr r0, _080B88C8 @ =0x020192d0 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B88C8: .4byte 0x020192d0 - thumb_func_end ContestEffect_34 - - thumb_func_start ContestEffect_35 -ContestEffect_35: @ 80B88CC - push {r4-r7,lr} - ldr r1, _080B8940 @ =0x020192d0 - ldrb r0, [r1, 0x11] - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r12, r1 - cmp r2, 0 - beq _080B8994 - ldrb r5, [r1] - mov r6, r12 - subs r6, 0x70 -_080B88EA: - movs r2, 0 - lsls r0, r4, 24 - asrs r1, r0, 24 - adds r4, r0, 0 - cmp r5, r1 - beq _080B8910 - ldr r3, _080B8940 @ =0x020192d0 -_080B88F8: - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080B8910 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080B88F8 -_080B8910: - lsls r2, 24 - asrs r1, r2, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r6 - ldrb r1, [r3, 0xB] - movs r0, 0x80 - ands r0, r1 - adds r7, r2, 0 - cmp r0, 0 - bne _080B8932 - ldrb r1, [r3, 0xC] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080B8944 -_080B8932: - movs r1, 0xFF - lsls r1, 24 - adds r0, r4, r1 - lsrs r4, r0, 24 - cmp r0, 0 - blt _080B8994 - b _080B88EA - .align 2, 0 -_080B8940: .4byte 0x020192d0 -_080B8944: - mov r2, r12 - ldrb r1, [r2, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r3, r12 - subs r3, 0x70 - adds r5, r0, r3 - ldrh r0, [r5, 0x6] - ldr r4, _080B899C @ =gContestMoves - lsls r0, 3 - adds r6, r0, r4 - ldrb r2, [r6, 0x1] - lsls r2, 29 - asrs r1, r7, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x6] - lsls r0, 3 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r2, r0 - bne _080B8994 - ldr r1, _080B89A0 @ =gContestEffects - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r5, 0x2] - mov r2, r12 - ldrb r0, [r2, 0x11] - movs r1, 0x1F - bl sub_80B13EC -_080B8994: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B899C: .4byte gContestMoves -_080B89A0: .4byte gContestEffects - thumb_func_end ContestEffect_35 - - thumb_func_start ContestEffect_36 -ContestEffect_36: @ 80B89A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080B8A28 @ =0x020192d0 - ldrb r2, [r0, 0x11] - adds r1, r2, r0 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - beq _080B8A3C - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r1, r8 - subs r1, 0x70 - adds r0, r1 - ldrh r0, [r0, 0x6] - mov r9, r0 - movs r4, 0 - mov r6, r8 - ldr r0, _080B8A2C @ =gContestMoves - mov r12, r0 - movs r7, 0 -_080B89D4: - ldrb r2, [r6, 0x11] - adds r0, r2, r6 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r4, r6 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8A34 - mov r1, r9 - lsls r0, r1, 3 - mov r1, r12 - adds r3, r0, r1 - ldrb r1, [r3, 0x1] - lsls r1, 29 - mov r5, r8 - subs r5, 0x70 - adds r0, r7, r5 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r12 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r1, r0 - beq _080B8A34 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldr r2, _080B8A30 @ =gContestEffects - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - lsls r0, 1 - ldrh r2, [r1, 0x2] - adds r0, r2 - strh r0, [r1, 0x2] - ldrb r0, [r6, 0x11] - movs r1, 0x20 - bl sub_80B13EC - b _080B8A3C - .align 2, 0 -_080B8A28: .4byte 0x020192d0 -_080B8A2C: .4byte gContestMoves -_080B8A30: .4byte gContestEffects -_080B8A34: - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _080B89D4 -_080B8A3C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_36 - - thumb_func_start ContestEffect_37 -ContestEffect_37: @ 80B8A48 - push {r4-r7,lr} - ldr r1, _080B8A94 @ =0x020192d0 - ldrb r0, [r1, 0x11] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B8AB0 - movs r5, 0 - adds r4, r1, 0 - adds r6, r4, 0 - subs r6, 0x70 - adds r7, r6, 0 -_080B8A60: - ldrb r2, [r4, 0x11] - adds r0, r2, r4 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bne _080B8AA8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r2, r0, r7 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r1, r0 - ble _080B8A98 - adds r0, r1, 0 - lsls r0, 1 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x21 - bl sub_80B13EC - b _080B8AA8 - .align 2, 0 -_080B8A94: .4byte 0x020192d0 -_080B8A98: - cmp r1, r0 - bge _080B8AA8 - movs r0, 0 - strh r0, [r2, 0x2] - ldrb r0, [r4, 0x11] - movs r1, 0x22 - bl sub_80B13EC -_080B8AA8: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8A60 -_080B8AB0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_37 - - thumb_func_start ContestEffect_38 -ContestEffect_38: @ 80B8AB8 - push {r4,r5,lr} - ldr r4, _080B8AFC @ =0x020192d0 - ldrb r2, [r4, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r5, r4, 0 - subs r5, 0x70 - adds r1, r0, r5 - ldrb r3, [r1, 0xD] - movs r0, 0xD - ldrsb r0, [r1, r0] - cmp r0, 0x1D - bgt _080B8B00 - adds r0, r3, 0 - adds r0, 0xA - strb r0, [r1, 0xD] - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r2, [r0, 0x10] - movs r1, 0x31 - negs r1, r1 - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0, 0x10] - ldrb r0, [r4, 0x11] - movs r1, 0x23 - bl sub_80B13EC - b _080B8B08 - .align 2, 0 -_080B8AFC: .4byte 0x020192d0 -_080B8B00: - adds r0, r2, 0 - movs r1, 0x3A - bl sub_80B13EC -_080B8B08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestEffect_38 - - thumb_func_start ContestEffect_39 -ContestEffect_39: @ 80B8B10 - push {r4,lr} - ldr r3, _080B8B48 @ =0x020192d0 - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r4, r3, 0 - subs r4, 0x70 - adds r0, r4 - ldrb r1, [r0, 0x11] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r3, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080B8B4C - adds r0, r1, 0 - movs r1, 0x24 - bl sub_80B13EC - b _080B8B54 - .align 2, 0 -_080B8B48: .4byte 0x020192d0 -_080B8B4C: - adds r0, r1, 0 - movs r1, 0x3B - bl sub_80B13EC -_080B8B54: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestEffect_39 - - thumb_func_start ContestEffect_40 -ContestEffect_40: @ 80B8B5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, _080B8BE4 @ =0x02019204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8B6E - b _080B8C76 -_080B8B6E: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8B78: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8B78 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 -_080B8BAE: - movs r5, 0 -_080B8BB0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r0, r12 - ldrb r0, [r0, 0x11] - cmp r2, r0 - beq _080B8BE8 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r1, sp - adds r4, r1, r2 - ldrb r0, [r4] - cmp r3, r0 - bne _080B8BE8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8BE8 - adds r0, r3, 0x1 - strb r0, [r4] - b _080B8BF8 - .align 2, 0 -_080B8BE4: .4byte 0x02019204 -_080B8BE8: - lsls r0, r5, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BB0 -_080B8BF8: - cmp r5, 0x4 - beq _080B8C0C - lsls r0, r6, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8BAE -_080B8C0C: - ldrb r0, [r7, 0x11] - mov r4, sp - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8C32: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8C32 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x25 - bl sub_80B13EC -_080B8C76: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_40 - - thumb_func_start ContestEffect_41 -ContestEffect_41: @ 80B8C84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _080B8D14 @ =0x02019204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - bne _080B8C98 - b _080B8DA6 -_080B8C98: - movs r6, 0 - adds r7, r1, 0 - adds r7, 0xCC - adds r3, r1, 0 - adds r3, 0x5C -_080B8CA2: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8CA2 - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - movs r6, 0x3 - mov r12, r7 - movs r4, 0x70 - negs r4, r4 - adds r4, r7 - mov r8, r4 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 -_080B8CDE: - movs r5, 0 -_080B8CE0: - lsls r0, r5, 24 - asrs r2, r0, 24 - mov r1, r12 - ldrb r1, [r1, 0x11] - cmp r2, r1 - beq _080B8D18 - lsls r0, r6, 24 - asrs r3, r0, 24 - mov r0, sp - adds r4, r0, r2 - ldrb r1, [r4] - cmp r3, r1 - bne _080B8D18 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - lsls r0, r3, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x19] - cmp r0, r1 - bne _080B8D18 - subs r0, r3, 0x1 - strb r0, [r4] - b _080B8D28 - .align 2, 0 -_080B8D14: .4byte 0x02019204 -_080B8D18: - lsls r0, r5, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8CE0 -_080B8D28: - cmp r5, 0x4 - beq _080B8D3C - lsls r0, r6, 24 - movs r4, 0xFF - lsls r4, 24 - adds r0, r4 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, r9 - bgt _080B8CDE -_080B8D3C: - ldrb r0, [r7, 0x11] - mov r2, sp - adds r1, r2, r0 - movs r0, 0x3 - strb r0, [r1] - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r7, 0 - subs r3, 0x70 - adds r1, r3 - ldrb r2, [r1, 0x10] - movs r0, 0x3F - ands r0, r2 - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x10] - movs r6, 0 -_080B8D62: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - mov r4, sp - adds r2, r4, r1 - ldrb r2, [r2] - strb r2, [r0, 0x19] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8D62 - ldrb r0, [r7, 0x11] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r7, 0 - subs r0, 0x70 - adds r1, r0 - ldrb r2, [r1, 0x11] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x11] - ldrb r0, [r7, 0x11] - movs r1, 0x26 - bl sub_80B13EC -_080B8DA6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestEffect_41 - - thumb_func_start ContestEffect_42 -ContestEffect_42: @ 80B8DB4 - bx lr - thumb_func_end ContestEffect_42 - - thumb_func_start ContestEffect_43 -ContestEffect_43: @ 80B8DB8 - push {r4-r7,lr} - sub sp, 0x8 - ldr r1, _080B8E30 @ =0x02019204 - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _080B8EAE - movs r6, 0 - add r3, sp, 0x4 - adds r5, r1, 0 - adds r5, 0x5C - adds r4, r3, 0 -_080B8DCE: - lsls r1, r6, 24 - asrs r1, 24 - mov r0, sp - adds r2, r0, r1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x19] - strb r0, [r2] - adds r0, r4, r1 - strb r6, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r6, r1, 24 - asrs r1, 24 - cmp r1, 0x3 - ble _080B8DCE - movs r6, 0 - adds r7, r3, 0 -_080B8DF6: - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r2, r6, 24 - asrs r2, 24 - movs r1, 0x4 - subs r1, r2 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0 -_080B8E10: - lsls r0, r1, 24 - asrs r2, r0, 24 - adds r3, r7, r2 - ldrb r1, [r3] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080B8E3A - cmp r4, 0 - bne _080B8E34 - mov r1, sp - adds r0, r1, r2 - strb r6, [r0] - movs r0, 0xFF - strb r0, [r3] - b _080B8E48 - .align 2, 0 -_080B8E30: .4byte 0x02019204 -_080B8E34: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080B8E3A: - movs r3, 0x80 - lsls r3, 17 - adds r0, r5, r3 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8E10 -_080B8E48: - lsls r0, r6, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r6, r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080B8DF6 - movs r6, 0 - ldr r4, _080B8EB8 @ =0x020192d0 - adds r7, r4, 0 - subs r7, 0x70 - movs r3, 0x3F - mov r12, r3 - movs r5, 0x80 -_080B8E66: - lsls r2, r6, 24 - asrs r2, 24 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - mov r3, sp - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, 0x19] - ldrb r3, [r1, 0x10] - mov r0, r12 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, 0x10] - adds r2, 0x1 - lsls r2, 24 - lsrs r6, r2, 24 - asrs r2, 24 - cmp r2, 0x3 - ble _080B8E66 - ldrb r1, [r4, 0x11] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x70 - adds r0, r1 - ldrb r1, [r0, 0x11] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r4, 0x11] - movs r1, 0x27 - bl sub_80B13EC -_080B8EAE: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8EB8: .4byte 0x020192d0 - thumb_func_end ContestEffect_43 - - thumb_func_start ContestEffect_44 -ContestEffect_44: @ 80B8EBC - push {lr} - ldr r3, _080B8EF0 @ =gContestMoves - ldr r1, _080B8EF4 @ =0x020192d0 - ldrb r2, [r1, 0x11] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrh r0, [r2, 0x6] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - lsls r0, 29 - ldr r1, _080B8EF8 @ =gUnknown_0203869C - lsrs r0, 29 - ldrh r1, [r1] - cmp r0, r1 - beq _080B8EEA - ldrb r0, [r2, 0x11] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x11] -_080B8EEA: - pop {r0} - bx r0 - .align 2, 0 -_080B8EF0: .4byte gContestMoves -_080B8EF4: .4byte 0x020192d0 -_080B8EF8: .4byte gUnknown_0203869C - thumb_func_end ContestEffect_44 - - thumb_func_start ContestEffect_45 -ContestEffect_45: @ 80B8EFC - push {r4-r7,lr} - movs r7, 0 - movs r5, 0 - ldr r4, _080B8F34 @ =0x020192d0 - movs r6, 0 -_080B8F06: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B8F52 - adds r0, r4, 0 - subs r0, 0x70 - adds r1, r6, r0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0 - ble _080B8F38 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x4] - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl sub_80B9268 - b _080B8F3A - .align 2, 0 -_080B8F34: .4byte 0x020192d0 -_080B8F38: - movs r0, 0xA -_080B8F3A: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B8F52 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080B8F52: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B8F06 - cmp r7, 0 - bne _080B8F68 - ldr r0, _080B8F78 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B8F68: - ldr r0, _080B8F78 @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x30 - bl sub_80B13EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B8F78: .4byte 0x020192d0 - thumb_func_end ContestEffect_45 - - thumb_func_start ContestEffect_46 -ContestEffect_46: @ 80B8F7C - push {r4,lr} - ldr r0, _080B8F98 @ =0x02019204 - movs r1, 0x13 - ldrsb r1, [r0, r1] - cmp r1, 0 - bne _080B8F9C - movs r4, 0xA - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1A - bl sub_80B13EC - b _080B8FDE - .align 2, 0 -_080B8F98: .4byte 0x02019204 -_080B8F9C: - cmp r1, 0x1 - bne _080B8FAE - movs r4, 0x14 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1B - bl sub_80B13EC - b _080B8FDE -_080B8FAE: - cmp r1, 0x2 - bne _080B8FC0 - movs r4, 0x1E - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1C - bl sub_80B13EC - b _080B8FDE -_080B8FC0: - cmp r1, 0x3 - bne _080B8FD2 - movs r4, 0x32 - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1D - bl sub_80B13EC - b _080B8FDE -_080B8FD2: - movs r4, 0x3C - adds r0, 0xCC - ldrb r0, [r0, 0x11] - movs r1, 0x1E - bl sub_80B13EC -_080B8FDE: - ldr r0, _080B8FF4 @ =0x020192d0 - ldrb r2, [r0, 0x11] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - subs r0, 0x70 - adds r1, r0 - strh r4, [r1, 0x2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B8FF4: .4byte 0x020192d0 - thumb_func_end ContestEffect_46 - - thumb_func_start ContestEffect_47 -ContestEffect_47: @ 80B8FF8 - push {lr} - ldr r3, _080B9034 @ =0x02019328 - ldrb r2, [r3, 0x1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080B902E - movs r0, 0x1 - orrs r2, r0 - movs r0, 0x58 - negs r0, r0 - adds r0, r3 - mov r12, r0 - ldrb r1, [r0, 0x11] - movs r0, 0x7 - ands r0, r1 - lsls r0, 1 - movs r1, 0xF - negs r1, r1 - ands r2, r1 - orrs r2, r0 - strb r2, [r3, 0x1] - mov r1, r12 - ldrb r0, [r1, 0x11] - movs r1, 0x3D - bl sub_80B13EC -_080B902E: - pop {r0} - bx r0 - .align 2, 0 -_080B9034: .4byte 0x02019328 - thumb_func_end ContestEffect_47 - - thumb_func_start sub_80B9038 -sub_80B9038: @ 80B9038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 - ldr r4, _080B907C @ =0x020192d0 - ldr r0, _080B9080 @ =gContestMoves - mov r9, r0 - movs r6, 0 -_080B9052: - ldrb r0, [r4, 0x11] - adds r0, r4 - adds r1, r5, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080B909A - adds r0, r4, 0 - subs r0, 0x70 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x1] - lsls r0, 29 - lsrs r0, 29 - cmp r8, r0 - bne _080B9084 - movs r0, 0x28 - b _080B9086 - .align 2, 0 -_080B907C: .4byte 0x020192d0 -_080B9080: .4byte gContestMoves -_080B9084: - movs r0, 0xA -_080B9086: - strh r0, [r4, 0x4] - strb r5, [r4, 0x8] - movs r0, 0xFF - strb r0, [r4, 0x9] - bl sub_80B9120 - lsls r0, 24 - cmp r0, 0 - beq _080B909A - adds r7, 0x1 -_080B909A: - adds r6, 0x1C - adds r5, 0x1 - cmp r5, 0x3 - ble _080B9052 - cmp r7, 0 - bne _080B90B0 - ldr r0, _080B90BC @ =0x020192d0 - ldrb r0, [r0, 0x11] - movs r1, 0x36 - bl sub_80B1404 -_080B90B0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B90BC: .4byte 0x020192d0 - thumb_func_end sub_80B9038 - - thumb_func_start sub_80B90C0 -sub_80B90C0: @ 80B90C0 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080B90EC @ =0x020192d0 - adds r0, r2, 0 - adds r0, 0xD - adds r0, r3, r0 - movs r1, 0x1 - strb r1, [r0] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - subs r2, 0x70 - adds r2, r0, r2 - ldrb r1, [r2, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B90F0 - adds r0, r3, 0 - movs r1, 0x2D - b _080B9116 - .align 2, 0 -_080B90EC: .4byte 0x020192d0 -_080B90F0: - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _080B910E - ldrb r1, [r2, 0xB] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B911A - ldrb r1, [r2, 0xC] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - bne _080B911A - movs r0, 0x1 - b _080B911C -_080B910E: - subs r0, 0x1 - strb r0, [r2, 0x12] - adds r0, r3, 0 - movs r1, 0x2C -_080B9116: - bl sub_80B13EC -_080B911A: - movs r0, 0 -_080B911C: - pop {r1} - bx r1 - thumb_func_end sub_80B90C0 - - thumb_func_start sub_80B9120 -sub_80B9120: @ 80B9120 - push {r4-r7,lr} - sub sp, 0xC - mov r0, sp - movs r1, 0 - movs r2, 0x8 - bl memset - movs r7, 0 - ldr r1, _080B918C @ =0x020192d0 - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _080B91D8 - adds r5, r1, 0 -_080B913A: - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r4, [r0] - adds r6, r4, 0 - adds r0, r4, 0 - str r1, [sp, 0x8] - bl sub_80B90C0 - lsls r0, 24 - ldr r1, [sp, 0x8] - cmp r0, 0 - beq _080B91C8 - ldrh r0, [r1, 0x4] - strh r0, [r1, 0x6] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r1, 0x70 - adds r2, r0, r1 - ldrb r1, [r2, 0x10] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080B9174 - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 1 - strh r0, [r5, 0x6] -_080B9174: - ldrb r0, [r2, 0x10] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _080B9190 - movs r0, 0xA - strh r0, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2F - bl sub_80B13EC - b _080B91C8 - .align 2, 0 -_080B918C: .4byte 0x020192d0 -_080B9190: - ldrb r1, [r2, 0xF] - ldrh r0, [r5, 0x6] - subs r0, r1 - adds r1, r0, 0 - strh r0, [r5, 0x6] - lsls r0, 16 - cmp r0, 0 - bgt _080B91AC - strh r3, [r5, 0x6] - adds r0, r4, 0 - movs r1, 0x2E - bl sub_80B13EC - b _080B91C8 -_080B91AC: - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_80B9200 - ldrb r1, [r5, 0x6] - adds r0, r6, 0 - bl sub_80B141C - lsls r0, r6, 1 - mov r2, sp - adds r1, r2, r0 - ldrh r0, [r5, 0x6] - strh r0, [r1] -_080B91C8: - adds r7, 0x1 - ldr r1, _080B91E8 @ =0x020192d0 - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080B913A -_080B91D8: - movs r7, 0 - mov r1, sp -_080B91DC: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080B91EC - movs r0, 0x1 - b _080B91F6 - .align 2, 0 -_080B91E8: .4byte 0x020192d0 -_080B91EC: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _080B91DC - movs r0, 0 -_080B91F6: - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B9120 - - thumb_func_start sub_80B9200 -sub_80B9200: @ 80B9200 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r0, _080B9220 @ =0x02019260 - adds r2, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - strh r0, [r2, 0x2] - ldrb r0, [r2, 0xE] - adds r1, r0 - strb r1, [r2, 0xE] - bx lr - .align 2, 0 -_080B9220: .4byte 0x02019260 - thumb_func_end sub_80B9200 - - thumb_func_start sub_80B9224 -sub_80B9224: @ 80B9224 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9234 - negs r0, r4 -_080B9234: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r4, 0 - bge _080B9252 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B925C - adds r0, r4, 0 - subs r0, 0xA - adds r0, r1, r0 - b _080B9258 -_080B9252: - lsls r0, 16 - asrs r0, 16 - subs r0, r4, r0 -_080B9258: - lsls r0, 16 - lsrs r5, r0, 16 -_080B925C: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9224 - - thumb_func_start sub_80B9268 -sub_80B9268: @ 80B9268 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - cmp r4, 0 - bge _080B9278 - negs r0, r4 -_080B9278: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080B9290 - adds r0, r4, 0 - adds r0, 0xA - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080B9290: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B9268 - - thumb_func_start sub_80B929C -sub_80B929C: @ 80B929C - push {lr} - ldr r0, _080B92A8 @ =sub_80B9484 - bl sub_8083A84 - pop {r0} - bx r0 - .align 2, 0 -_080B92A8: .4byte sub_80B9484 - thumb_func_end sub_80B929C - - thumb_func_start sub_80B92AC -sub_80B92AC: @ 80B92AC - push {r4-r6,lr} - bl sub_80BC300 - bl sub_80C045C - ldr r6, _080B9364 @ =0x02018000 - ldr r0, _080B9368 @ =gUnknown_083D026C - ldr r1, [r0] - movs r2, 0xC8 - lsls r2, 4 - adds r0, r6, 0 - bl memcpy - movs r1, 0xC8 - lsls r1, 4 - adds r0, r6, r1 - ldr r1, _080B936C @ =gUnknown_083D0270 - ldr r1, [r1] - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - ldr r2, _080B9370 @ =0x00001004 - adds r0, r6, r2 - ldr r1, _080B9374 @ =gUnknown_083D0274 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r1, _080B9378 @ =0x00001044 - adds r0, r6, r1 - ldr r1, _080B937C @ =gUnknown_083D0278 - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r2, _080B9380 @ =0x00001084 - adds r0, r6, r2 - ldr r1, _080B9384 @ =gUnknown_083D027C - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r5, _080B9388 @ =gUnknown_02038738 - ldr r4, _080B938C @ =gSaveBlock1 - ldr r0, _080B9390 @ =0x0000303c - adds r1, r4, r0 - adds r0, r5, 0 - movs r2, 0x38 - bl memcpy - ldr r2, _080B9394 @ =0x00003074 - adds r1, r4, r2 - adds r0, r5, 0 - adds r0, 0x38 - movs r2, 0x38 - bl memcpy - ldr r0, _080B9398 @ =0x00002f9c - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8041324 - ldr r1, _080B939C @ =0x000010ac - adds r0, r6, r1 - ldr r1, _080B93A0 @ =gUnknown_083D0280 - ldr r1, [r1] - movs r2, 0x78 - bl memcpy - ldr r2, _080B93A4 @ =0x00001124 - adds r0, r6, r2 - ldr r1, _080B93A8 @ =gUnknown_083D0284 - ldr r1, [r1] - movs r2, 0xA4 - bl memcpy - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080B935C - bl sub_8126338 - ldr r2, _080B93AC @ =0x000011c8 - adds r1, r6, r2 - strh r0, [r1] -_080B935C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9364: .4byte 0x02018000 -_080B9368: .4byte gUnknown_083D026C -_080B936C: .4byte gUnknown_083D0270 -_080B9370: .4byte 0x00001004 -_080B9374: .4byte gUnknown_083D0274 -_080B9378: .4byte 0x00001044 -_080B937C: .4byte gUnknown_083D0278 -_080B9380: .4byte 0x00001084 -_080B9384: .4byte gUnknown_083D027C -_080B9388: .4byte gUnknown_02038738 -_080B938C: .4byte gSaveBlock1 -_080B9390: .4byte 0x0000303c -_080B9394: .4byte 0x00003074 -_080B9398: .4byte 0x00002f9c -_080B939C: .4byte 0x000010ac -_080B93A0: .4byte gUnknown_083D0280 -_080B93A4: .4byte 0x00001124 -_080B93A8: .4byte gUnknown_083D0284 -_080B93AC: .4byte 0x000011c8 - thumb_func_end sub_80B92AC - - thumb_func_start sub_80B93B0 -sub_80B93B0: @ 80B93B0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080B9430 @ =0x02008000 - ldr r6, _080B9434 @ =0x00001230 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80BD674 - movs r0, 0xC8 - lsls r0, 4 - adds r0, r5 - mov r8, r0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80BFD44 - ldr r1, _080B9438 @ =0x00001004 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80C0514 - ldr r1, _080B943C @ =0x00001044 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80B9B1C - ldr r1, _080B9440 @ =0x00001084 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80FA4E4 - ldr r1, _080B9444 @ =0x000010ac - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - mov r3, r8 - bl sub_80B9C6C - ldr r1, _080B9448 @ =0x00001124 - adds r0, r5, r1 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_80B9B70 - ldr r0, _080B944C @ =0x000011c8 - adds r5, r0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80B9F3C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9430: .4byte 0x02008000 -_080B9434: .4byte 0x00001230 -_080B9438: .4byte 0x00001004 -_080B943C: .4byte 0x00001044 -_080B9440: .4byte 0x00001084 -_080B9444: .4byte 0x000010ac -_080B9448: .4byte 0x00001124 -_080B944C: .4byte 0x000011c8 - thumb_func_end sub_80B93B0 - - thumb_func_start sub_80B9450 -sub_80B9450: @ 80B9450 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B9480 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bne _080B9478 - movs r0, 0xE2 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x8] -_080B9478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9480: .4byte gTasks - thumb_func_end sub_80B9450 - - thumb_func_start sub_80B9484 -sub_80B9484: @ 80B9484 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080B94A8 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080B949E - b _080B95E6 -_080B949E: - lsls r0, 2 - ldr r1, _080B94AC @ =_080B94B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B94A8: .4byte gTasks + 0x8 -_080B94AC: .4byte _080B94B0 - .align 2, 0 -_080B94B0: - .4byte _080B94C8 - .4byte _080B951C - .4byte _080B9550 - .4byte _080B9570 - .4byte _080B95AC - .4byte _080B95C0 -_080B94C8: - ldr r0, _080B950C @ =gUnknown_0202E8CE - ldrb r0, [r0] - bl sub_8007270 - movs r0, 0x80 - lsls r0, 7 - movs r1, 0x1 - bl VarSet - ldr r1, _080B9510 @ =gUnknown_03000718 - movs r0, 0 - strb r0, [r1] - bl sub_80B92AC - bl sub_80C71D8 - movs r0, 0x1 - strh r0, [r4] - ldr r0, _080B9514 @ =sub_80B95F0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - ldr r0, _080B9518 @ =sub_80B9450 - movs r1, 0x51 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - b _080B95E6 - .align 2, 0 -_080B950C: .4byte gUnknown_0202E8CE -_080B9510: .4byte gUnknown_03000718 -_080B9514: .4byte sub_80B95F0 -_080B9518: .4byte sub_80B9450 -_080B951C: - ldr r2, _080B9548 @ =gTasks - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B95E6 - movs r0, 0x2 - strh r0, [r4] - ldr r0, _080B954C @ =0x00000834 - bl FlagSet - bl sub_80C7240 - ldrb r0, [r4, 0x1E] - bl DestroyTask - b _080B95E6 - .align 2, 0 -_080B9548: .4byte gTasks -_080B954C: .4byte 0x00000834 -_080B9550: - ldr r0, _080B956C @ =sub_80BA00C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r0, 0x3 - strh r0, [r4] - movs r0, 0xE0 - bl PlaySE - b _080B95E6 - .align 2, 0 -_080B956C: .4byte sub_80BA00C -_080B9570: - ldr r2, _080B95A4 @ =gTasks - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - cmp r5, 0 - bne _080B95E6 - movs r0, 0x4 - strh r0, [r4] - bl sub_8083664 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - bl sub_80720B0 - ldr r0, _080B95A8 @ =gOtherText_MixingComplete - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - strh r5, [r4, 0x10] - b _080B95E6 - .align 2, 0 -_080B95A4: .4byte gTasks -_080B95A8: .4byte gOtherText_MixingComplete -_080B95AC: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B95E6 - movs r0, 0x5 - strh r0, [r4] - b _080B95E6 -_080B95C0: - ldr r2, _080B95EC @ =gTasks - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B95E6 - bl sub_8055588 - bl MenuZeroFillScreen - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B95E6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B95EC: .4byte gTasks - thumb_func_end sub_80B9484 - - thumb_func_start sub_80B95F0 -sub_80B95F0: @ 80B95F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r7, _080B961C @ =gTasks - adds r5, r0, r7 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0x64 - beq _080B9678 - cmp r1, 0x64 - bgt _080B962E - cmp r1, 0x1 - bne _080B9612 - b _080B9734 -_080B9612: - cmp r1, 0x1 - bgt _080B9620 - cmp r1, 0 - beq _080B9650 - b _080B97D6 - .align 2, 0 -_080B961C: .4byte gTasks -_080B9620: - cmp r1, 0x2 - bne _080B9626 - b _080B9760 -_080B9626: - cmp r1, 0x5 - bne _080B962C - b _080B97C0 -_080B962C: - b _080B97D6 -_080B962E: - cmp r1, 0xC9 - beq _080B96D0 - cmp r1, 0xC9 - bgt _080B963C - cmp r1, 0x65 - beq _080B9690 - b _080B97D6 -_080B963C: - ldr r0, _080B964C @ =0x0000012d - cmp r1, r0 - beq _080B9706 - adds r0, 0x63 - cmp r1, r0 - beq _080B971C - b _080B97D6 - .align 2, 0 -_080B964C: .4byte 0x0000012d -_080B9650: - bl sub_80B9A78 - bl MenuDisplayMessageBox - ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0xE1 - lsls r0, 3 - strh r0, [r5, 0x18] - movs r0, 0xC8 - lsls r0, 1 - strh r0, [r5, 0x8] - bl ClearLinkCallback_2 - b _080B97D6 - .align 2, 0 -_080B9674: .4byte gOtherText_MixingRecordsWithFriend -_080B9678: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bgt _080B9688 - b _080B97D6 -_080B9688: - movs r0, 0 - strh r0, [r5, 0x20] - movs r0, 0x65 - b _080B97D4 -_080B9690: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsLinkMaster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B96C2 - bl sub_800820C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _080B96B2 - b _080B97D6 -_080B96B2: - movs r0, 0x15 - bl PlaySE - movs r1, 0 - movs r0, 0xC9 - strh r0, [r5, 0x8] - strh r1, [r5, 0x20] - b _080B97D6 -_080B96C2: - movs r0, 0x16 - bl PlaySE - ldr r0, _080B96CC @ =0x0000012d - b _080B97D4 - .align 2, 0 -_080B96CC: .4byte 0x0000012d -_080B96D0: - bl sub_800820C - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B97D6 - ldrh r4, [r5, 0x20] - adds r4, 0x1 - strh r4, [r5, 0x20] - lsls r4, 16 - asrs r4, 16 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - cmp r4, r1 - ble _080B97D6 - bl sub_8007F4C - movs r0, 0x1 - b _080B97D4 -_080B9706: - bl sub_800820C - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B97D6 - movs r0, 0x1 - b _080B97D4 -_080B971C: - ldrh r0, [r5, 0x20] - adds r0, 0x1 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B97D6 - movs r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0x20] - b _080B97D6 -_080B9734: - ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080B97D6 - ldr r4, _080B975C @ =gStringVar1 - bl sub_80B9A58 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0x5 - b _080B97D4 - .align 2, 0 -_080B9758: .4byte gReceivedRemoteLinkPlayers -_080B975C: .4byte gStringVar1 -_080B9760: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x8] - bl sub_80B9A58 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldr r0, _080B97B0 @ =sub_80B97DC - str r0, [r5] - ldr r4, _080B97B4 @ =0x02018000 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r4, 0 - bl sub_80B9A50 - ldr r0, _080B97B8 @ =sub_80B9890 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r7 - strh r6, [r0, 0x8] - ldr r0, _080B97BC @ =0xffff0000 - adds r4, r0 - adds r1, r7, r1 - adds r1, 0x12 - adds r0, r4, 0 - bl sub_80B9A50 - b _080B97D6 - .align 2, 0 -_080B97B0: .4byte sub_80B97DC -_080B97B4: .4byte 0x02018000 -_080B97B8: .4byte sub_80B9890 -_080B97BC: .4byte 0xffff0000 -_080B97C0: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080B97D6 - movs r0, 0 - strh r0, [r5, 0x1C] - movs r0, 0x2 -_080B97D4: - strh r0, [r5, 0x8] -_080B97D6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B95F0 - - thumb_func_start sub_80B97DC -sub_80B97DC: @ 80B97DC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B9800 @ =gTasks - adds r4, r1, r0 - movs r2, 0x8 - ldrsh r1, [r4, r2] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080B9884 - lsls r0, r1, 2 - ldr r1, _080B9804 @ =_080B9808 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080B9800: .4byte gTasks -_080B9804: .4byte _080B9808 - .align 2, 0 -_080B9808: - .4byte _080B981C - .4byte _080B9840 - .4byte _080B9884 - .4byte _080B9852 - .4byte _080B986E -_080B981C: - adds r0, r4, 0 - adds r0, 0xC - bl sub_80B9A44 - adds r1, r0, 0 - movs r0, 0x10 - ldrsh r2, [r4, r0] - movs r0, 0xC8 - muls r0, r2 - adds r1, r0 - ldr r0, _080B983C @ =gBlockSendBuffer - movs r2, 0xC8 - bl memcpy - b _080B9860 - .align 2, 0 -_080B983C: .4byte gBlockSendBuffer -_080B9840: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080B9860 - movs r0, 0x1 - bl sub_8007E9C - b _080B9860 -_080B9852: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bne _080B9868 -_080B9860: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B9884 -_080B9868: - movs r0, 0 - strh r0, [r4, 0x8] - b _080B9884 -_080B986E: - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _080B9884 - ldr r0, _080B988C @ =sub_80B9A1C - str r0, [r4] -_080B9884: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B988C: .4byte sub_80B9A1C - thumb_func_end sub_80B97DC - - thumb_func_start sub_80B9890 -sub_80B9890: @ 80B9890 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r0, 2 - ldr r1, [sp] - adds r0, r1 - lsls r0, 3 - ldr r1, _080B98D0 @ =gTasks - adds r0, r1 - mov r10, r0 - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - bl sub_8008198 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x4] - cmp r3, r0 - bne _080B998A - movs r0, 0 - b _080B9966 - .align 2, 0 -_080B98D0: .4byte gTasks -_080B98D4: - ldr r1, [sp, 0x4] - mov r2, r9 - asrs r1, r2 - movs r0, 0x1 - ands r1, r0 - movs r3, 0x1 - add r3, r9 - mov r8, r3 - cmp r1, 0 - beq _080B9960 - mov r0, r10 - adds r0, 0x12 - bl sub_80B9A44 - mov r1, r8 - lsls r4, r1, 1 - mov r5, r10 - adds r5, 0x8 - adds r4, r5, r4 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0xC8 - muls r1, r3 - adds r0, r1 - ldr r7, _080B9930 @ =0x00001230 - mov r1, r9 - muls r1, r7 - adds r6, r0, r1 - mov r0, r9 - str r3, [sp, 0xC] - bl sub_80B9A68 - adds r1, r0, 0 - movs r0, 0 - ldrsh r2, [r4, r0] - adds r0, r2, 0x1 - ldr r3, [sp, 0xC] - muls r0, r3 - cmp r0, r7 - bls _080B9934 - muls r2, r3 - subs r2, r7, r2 - adds r0, r6, 0 - bl memcpy - b _080B993C - .align 2, 0 -_080B9930: .4byte 0x00001230 -_080B9934: - adds r0, r6, 0 - movs r2, 0xC8 - bl memcpy -_080B993C: - mov r0, r9 - bl ResetBlockReceivedFlag - mov r2, r8 - lsls r1, r2, 1 - adds r1, r5, r1 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bne _080B9960 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] -_080B9960: - mov r3, r8 - lsls r0, r3, 24 - lsrs r0, 24 -_080B9966: - mov r9, r0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r9, r0 - bcc _080B98D4 - ldr r2, _080B99B0 @ =gTasks - mov r0, r10 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] -_080B998A: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x8] - cmp r1, r0 - bne _080B999E - ldr r0, [sp] - bl DestroyTask -_080B999E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B99B0: .4byte gTasks - thumb_func_end sub_80B9890 - - thumb_func_start sub_80B99B4 -sub_80B99B4: @ 80B99B4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r2, _080B99E4 @ =gTasks - adds r0, r2 - movs r4, 0x1C - ldrsh r1, [r0, r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080B99DC - adds r0, r3, 0 - bl DestroyTask -_080B99DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B99E4: .4byte gTasks - thumb_func_end sub_80B99B4 - - thumb_func_start sub_80B99E8 -sub_80B99E8: @ 80B99E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080B9A10 @ =gTasks - adds r1, r0 - ldr r0, _080B9A14 @ =sub_80B99B4 - str r0, [r1] - ldr r0, _080B9A18 @ =gUnknown_03000718 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9A0C - movs r2, 0x12 - ldrsh r0, [r1, r2] - bl sub_80B93B0 -_080B9A0C: - pop {r0} - bx r0 - .align 2, 0 -_080B9A10: .4byte gTasks -_080B9A14: .4byte sub_80B99B4 -_080B9A18: .4byte gUnknown_03000718 - thumb_func_end sub_80B99E8 - - thumb_func_start sub_80B9A1C -sub_80B9A1C: @ 80B9A1C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080B9A38 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080B9A3C @ =sub_80B99E8 - str r0, [r1] - ldr r1, _080B9A40 @ =gUnknown_03000718 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_080B9A38: .4byte gTasks -_080B9A3C: .4byte sub_80B99E8 -_080B9A40: .4byte gUnknown_03000718 - thumb_func_end sub_80B9A1C - - thumb_func_start sub_80B9A44 -sub_80B9A44: @ 80B9A44 - adds r1, r0, 0 - ldrh r0, [r1] - ldrh r1, [r1, 0x2] - lsls r1, 16 - orrs r0, r1 - bx lr - thumb_func_end sub_80B9A44 - - thumb_func_start sub_80B9A50 -sub_80B9A50: @ 80B9A50 - strh r0, [r1] - lsrs r0, 16 - strh r0, [r1, 0x2] - bx lr - thumb_func_end sub_80B9A50 - - thumb_func_start sub_80B9A58 -sub_80B9A58: @ 80B9A58 - push {lr} - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80B9A58 - - thumb_func_start sub_80B9A68 -sub_80B9A68: @ 80B9A68 - lsls r0, 24 - lsrs r0, 16 - ldr r1, _080B9A74 @ =gBlockRecvBuffer - adds r0, r1 - bx lr - .align 2, 0 -_080B9A74: .4byte gBlockRecvBuffer - thumb_func_end sub_80B9A68 - - thumb_func_start sub_80B9A78 -sub_80B9A78: @ 80B9A78 - ldr r1, _080B9A80 @ =gUnknown_03005D2C - ldr r0, _080B9A84 @ =0x00001230 - str r0, [r1] - bx lr - .align 2, 0 -_080B9A80: .4byte gUnknown_03005D2C -_080B9A84: .4byte 0x00001230 - thumb_func_end sub_80B9A78 - - thumb_func_start sub_80B9A88 -sub_80B9A88: @ 80B9A88 - push {r4,lr} - adds r4, r0, 0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080B9AC0 - cmp r0, 0x3 - bhi _080B9AA2 - cmp r0, 0x2 - beq _080B9AA8 - b _080B9B10 -_080B9AA2: - cmp r0, 0x4 - beq _080B9AEC - b _080B9B10 -_080B9AA8: - movs r2, 0 - ldr r3, _080B9ABC @ =gUnknown_083D0288 -_080B9AAC: - adds r0, r4, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x1 - bls _080B9AAC - b _080B9B10 - .align 2, 0 -_080B9ABC: .4byte gUnknown_083D0288 -_080B9AC0: - movs r0, 0 - bl GetLinkPlayerTrainerId - adds r3, r0, 0 - movs r0, 0x1 - ands r3, r0 - movs r2, 0 - ldr r1, _080B9AE8 @ =gUnknown_083D028A - lsls r0, r3, 1 - adds r0, r3 - adds r3, r0, r1 -_080B9AD6: - adds r1, r4, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x2 - bls _080B9AD6 - b _080B9B10 - .align 2, 0 -_080B9AE8: .4byte gUnknown_083D028A -_080B9AEC: - movs r0, 0 - bl GetLinkPlayerTrainerId - movs r1, 0x9 - bl __umodsi3 - adds r3, r0, 0 - movs r2, 0 - ldr r1, _080B9B18 @ =gUnknown_083D0290 - lsls r0, r3, 2 - adds r3, r0, r1 -_080B9B02: - adds r1, r4, r2 - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x3 - bls _080B9B02 -_080B9B10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B9B18: .4byte gUnknown_083D0290 - thumb_func_end sub_80B9A88 - - thumb_func_start sub_80B9B1C -sub_80B9B1C: @ 80B9B1C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r5, r0, 0 - mov r8, r1 - lsls r4, r2, 24 - lsrs r4, 24 - mov r0, sp - bl sub_80B9A88 - mov r0, r8 - muls r0, r4 - adds r0, r5, r0 - ldr r1, _080B9B6C @ =gUnknown_083D0278 - ldr r6, [r1] - adds r1, r6, 0 - movs r2, 0x40 - bl memcpy - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r5, r0 - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x40 - bl memcpy - bl sub_80F7F30 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9B6C: .4byte gUnknown_083D0278 - thumb_func_end sub_80B9B1C - - thumb_func_start sub_80B9B70 -sub_80B9B70: @ 80B9B70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r6, r0, 0 - mov r9, r1 - lsls r4, r2, 24 - lsrs r4, 24 - ldr r0, _080B9BB8 @ =gUnknown_0300071C - mov r8, r0 - bl sub_80B9A88 - mov r5, r9 - muls r5, r4 - adds r5, r6, r5 - add r4, r8 - ldrb r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0xA4 - bl memcpy - adds r0, r5, 0 - bl sub_8134AC0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B9BB8: .4byte gUnknown_0300071C - thumb_func_end sub_80B9B70 - - thumb_func_start sub_80B9BBC -sub_80B9BBC: @ 80B9BBC - ldrh r0, [r0, 0x20] - lsls r0, 24 - lsrs r0, 24 - bx lr - thumb_func_end sub_80B9BBC - - thumb_func_start sub_80B9BC4 -sub_80B9BC4: @ 80B9BC4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x38 - mov r8, r0 - mov r10, r1 - mov r9, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x54] - lsls r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsrs r4, 23 - add r4, r9 - ldrb r0, [r4] - mov r6, r10 - muls r6, r0 - add r6, r8 - ldrb r0, [r4, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - adds r1, r6, r1 - mov r0, sp - movs r2, 0x38 - bl memcpy - lsls r5, 1 - add r5, r9 - ldrb r0, [r5] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r8, r0 - ldrb r1, [r4, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - adds r6, r0 - ldrb r0, [r5, 0x1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 3 - add r1, r8 - adds r0, r6, 0 - movs r2, 0x38 - bl memcpy - ldrb r1, [r5, 0x1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - add r8, r0 - mov r0, r8 - mov r1, sp - movs r2, 0x38 - bl memcpy - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80B9BC4 - - thumb_func_start sub_80B9C4C -sub_80B9C4C: @ 80B9C4C - push {lr} - adds r3, r0, 0 - movs r2, 0 - movs r1, 0 -_080B9C54: - adds r0, r3, r1 - ldrb r0, [r0] - adds r0, r2, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r1, 0x1 - cmp r1, 0xFF - ble _080B9C54 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80B9C4C - - thumb_func_start sub_80B9C6C -sub_80B9C6C: @ 80B9C6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x2C] - str r1, [sp, 0x30] - str r3, [sp, 0x38] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x34] - bl Random - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x40] - ldr r0, _080B9DA8 @ =gLinkPlayers - ldrh r0, [r0, 0x4] - bl SeedRng - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - add r0, sp, 0x1C - mov r9, r0 - movs r1, 0x1D - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0xC - str r2, [sp, 0x4C] - movs r7, 0xFF - add r4, sp, 0x8 - movs r2, 0 - mov r6, r9 - mov r5, r10 -_080B9CBC: - mov r1, sp - adds r1, r3 - adds r1, 0x4 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - adds r0, r4, r3 - strb r2, [r0] - lsls r1, r3, 1 - adds r0, r6, r1 - strb r2, [r0] - adds r1, r5, r1 - strb r2, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9CBC - movs r4, 0 - str r4, [sp, 0x3C] - movs r3, 0 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - str r0, [sp, 0x50] - ldr r4, [sp, 0x30] - ldr r0, [sp, 0x34] - adds r2, r4, 0 - muls r2, r0 - str r2, [sp, 0x48] - ldr r2, [sp, 0x3C] - cmp r2, r1 - bcs _080B9D46 - mov r8, r1 -_080B9D00: - ldr r4, [sp, 0x30] - adds r0, r4, 0 - muls r0, r3 - ldr r1, [sp, 0x2C] - adds r6, r1, r0 - ldr r0, [r6, 0x70] - cmp r0, 0 - beq _080B9D3C - movs r7, 0 - cmp r7, r0 - bcs _080B9D3C - adds r4, r6, 0 - adds r4, 0x74 - mov r2, r9 - lsls r1, r3, 1 - movs r5, 0x1 -_080B9D20: - lsls r0, r7, 1 - adds r0, r4, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080B9D30 - adds r0, r7, r1 - adds r0, r2, r0 - strb r5, [r0] -_080B9D30: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r6, 0x70] - cmp r7, r0 - bcc _080B9D20 -_080B9D3C: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - bcc _080B9D00 -_080B9D46: - movs r7, 0 - movs r3, 0 - ldr r2, [sp, 0x50] - cmp r2, 0 - beq _080B9E3E - mov r4, sp - adds r4, 0x24 - str r4, [sp, 0x44] - movs r0, 0x25 - add r0, sp - mov r8, r0 -_080B9D5C: - ldr r1, [sp, 0x30] - adds r0, r1, 0 - muls r0, r3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - lsls r1, r3, 1 - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080B9D7C - mov r2, r10 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9D86 -_080B9D7C: - ldr r0, [sp, 0x3C] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x3C] -_080B9D86: - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9DAC - mov r2, r10 - adds r0, r2, r1 - ldrb r2, [r0] - cmp r2, 0 - bne _080B9DAC -_080B9D9A: - lsls r1, r7, 1 - ldr r4, [sp, 0x44] - adds r0, r4, r1 - strb r3, [r0] - add r1, r8 - strb r2, [r1] - b _080B9E2C - .align 2, 0 -_080B9DA8: .4byte gLinkPlayers -_080B9DAC: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080B9DC0 - mov r4, r10 - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _080B9D9A -_080B9DC0: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - mov r4, r10 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - lsls r5, r7, 1 - ldr r1, [sp, 0x44] - adds r0, r1, r5 - strb r3, [r0] - adds r0, r6, 0 - str r3, [sp, 0x54] - bl sub_80B9BBC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r0, 0x38 - bl sub_80B9BBC - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x54] - cmp r4, 0 - bne _080B9E0A - cmp r1, 0 - beq _080B9E0E - mov r2, r8 - adds r1, r2, r5 - movs r0, 0x1 - strb r0, [r1] - b _080B9E2C -_080B9E0A: - cmp r1, 0 - beq _080B9E26 -_080B9E0E: - str r3, [sp, 0x54] - bl Random - mov r4, r8 - adds r2, r4, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - ldr r3, [sp, 0x54] - b _080B9E2C -_080B9E26: - mov r2, r8 - adds r0, r2, r5 - strb r1, [r0] -_080B9E2C: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080B9E32: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r4, [sp, 0x50] - cmp r0, r4 - bcc _080B9D5C -_080B9E3E: - movs r3, 0 - ldr r1, [sp, 0x48] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - ldr r1, [sp, 0x4C] -_080B9E4E: - lsls r0, r3, 2 - adds r0, r1, r0 - str r6, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9E4E - ldr r0, [sp, 0x38] - bl sub_80B9C4C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r4, [sp, 0x3C] - cmp r4, 0x3 - beq _080B9E9C - cmp r4, 0x3 - bgt _080B9E82 - cmp r4, 0x2 - beq _080B9E8A - b _080B9EF0 -_080B9E82: - ldr r0, [sp, 0x3C] - cmp r0, 0x4 - beq _080B9EBC - b _080B9EF0 -_080B9E8A: - add r2, sp, 0x24 - movs r0, 0x1 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - movs r3, 0 - bl sub_80B9BC4 - b _080B9EF0 -_080B9E9C: - ldr r0, _080B9EB8 @ =gUnknown_083D02B4 - lsls r1, 1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - add r2, sp, 0x24 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - bl sub_80B9BC4 - b _080B9EF0 - .align 2, 0 -_080B9EB8: .4byte gUnknown_083D02B4 -_080B9EBC: - add r6, sp, 0x24 - ldr r4, _080B9F2C @ =gUnknown_083D02BA - lsls r5, r1, 2 - adds r0, r5, r4 - ldrb r3, [r0] - adds r0, r4, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 - adds r0, r4, 0x2 - adds r0, r5, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r5, r4 - ldrb r0, [r5] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 -_080B9EF0: - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x48] - adds r6, r1, r2 - ldr r4, _080B9F30 @ =gSaveBlock1 - ldr r1, _080B9F34 @ =0x0000303c - adds r0, r4, r1 - adds r1, r6, 0 - movs r2, 0x38 - bl memcpy - ldr r2, _080B9F38 @ =0x00003074 - adds r4, r2 - adds r1, r6, 0 - adds r1, 0x38 - adds r0, r4, 0 - movs r2, 0x38 - bl memcpy - ldr r0, [sp, 0x40] - bl SeedRng - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9F2C: .4byte gUnknown_083D02BA -_080B9F30: .4byte gSaveBlock1 -_080B9F34: .4byte 0x0000303c -_080B9F38: .4byte 0x00003074 - thumb_func_end sub_80B9C6C - - thumb_func_start sub_80B9F3C -sub_80B9F3C: @ 80B9F3C - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - cmp r1, 0 - beq _080BA000 - ldrh r0, [r4] - cmp r0, 0 - beq _080BA000 - bl sub_80A9670 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080B9FC8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A92D4 - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9718 - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9424 - lsls r0, 24 - cmp r0, 0 - beq _080B9FB8 - ldr r0, _080B9FA4 @ =0x00004001 - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FA8 @ =gStringVar1 - ldr r1, _080B9FAC @ =gLinkPlayers + 0x8 - bl StringCopy - ldrh r1, [r4] - ldr r0, _080B9FB0 @ =0x00000113 - cmp r1, r0 - bne _080BA000 - ldr r0, _080B9FB4 @ =0x00000853 - bl FlagSet - b _080BA000 - .align 2, 0 -_080B9FA4: .4byte 0x00004001 -_080B9FA8: .4byte gStringVar1 -_080B9FAC: .4byte gLinkPlayers + 0x8 -_080B9FB0: .4byte 0x00000113 -_080B9FB4: .4byte 0x00000853 -_080B9FB8: - ldr r0, _080B9FC4 @ =0x00004001 - movs r1, 0 - bl VarSet - b _080BA000 - .align 2, 0 -_080B9FC4: .4byte 0x00004001 -_080B9FC8: - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9424 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B9FF8 - ldr r0, _080B9FEC @ =0x00004001 - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FF0 @ =gStringVar1 - ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8 - bl StringCopy - b _080BA000 - .align 2, 0 -_080B9FEC: .4byte 0x00004001 -_080B9FF0: .4byte gStringVar1 -_080B9FF4: .4byte gLinkPlayers + 0x8 -_080B9FF8: - ldr r0, _080BA008 @ =0x00004001 - movs r1, 0 - bl VarSet -_080BA000: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA008: .4byte 0x00004001 - thumb_func_end sub_80B9F3C - - thumb_func_start sub_80BA00C -sub_80BA00C: @ 80BA00C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080BA030 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _080BA09C - lsls r0, 2 - ldr r1, _080BA034 @ =_080BA038 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA030: .4byte gTasks -_080BA034: .4byte _080BA038 - .align 2, 0 -_080BA038: - .4byte _080BA086 - .4byte _080BA086 - .4byte _080BA050 - .4byte _080BA05A - .4byte _080BA074 - .4byte _080BA08E -_080BA050: - bl sub_8047A1C - bl sub_8125E2C - b _080BA086 -_080BA05A: - bl sub_8125E6C - lsls r0, 24 - cmp r0, 0 - beq _080BA09C - bl sub_8047A34 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - b _080BA09C -_080BA074: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080BA09C - bl sub_800832C -_080BA086: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080BA09C -_080BA08E: - ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080BA09C - adds r0, r2, 0 - bl DestroyTask -_080BA09C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA0A4: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_80BA00C - - thumb_func_start sub_80BA0A8 -sub_80BA0A8: @ 80BA0A8 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80BA0A8 - - thumb_func_start sub_80BA0C0 -sub_80BA0C0: @ 80BA0C0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r0, _080BA0E8 @ =gUnknown_020387B0 - ldrb r0, [r0] - cmp r0, 0 - beq _080BA0E2 - bl m4aSoundMain - bl m4aSoundMain - bl m4aSoundMain -_080BA0E2: - pop {r0} - bx r0 - .align 2, 0 -_080BA0E8: .4byte gUnknown_020387B0 - thumb_func_end sub_80BA0C0 - - thumb_func_start unref_sub_80BA0EC -unref_sub_80BA0EC: @ 80BA0EC - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0 - bl SetVBlankCallback - movs r6, 0x80 - lsls r6, 19 - movs r5, 0 - strh r5, [r6] - ldr r0, _080BA20C @ =REG_BG2CNT - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - subs r0, 0x2 - strh r5, [r0] - adds r0, 0x10 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r0, 0x6 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r0, 0x6 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - add r0, sp, 0x4 - strh r5, [r0] - ldr r1, _080BA210 @ =0x040000d4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA214 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r4, 0 - str r4, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA218 @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strh r4, [r0] - str r0, [r1] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _080BA21C @ =0x81000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl ResetTasks - bl ResetSpriteData - ldr r0, _080BA220 @ =gWindowConfig_81E6C3C - bl SetUpWindowConfig - ldr r0, _080BA224 @ =gWindowConfig_81E6CE4 - bl InitMenuWindow - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080BA228 @ =REG_WIN0H - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - subs r0, 0x2 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - ldr r1, _080BA22C @ =REG_WININ - ldr r2, _080BA230 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x31 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xE1 - strh r0, [r1] - ldr r0, _080BA234 @ =REG_BLDALPHA - strh r4, [r0] - adds r1, 0x4 - movs r0, 0x7 - strh r0, [r1] - ldr r1, _080BA238 @ =0x04000200 - movs r2, 0x1 - strh r2, [r1] - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - ldr r2, _080BA23C @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _080BA240 @ =sub_80BA0C0 - bl SetVBlankCallback - ldr r0, _080BA244 @ =sub_80BA0A8 - bl SetMainCallback2 - ldr r1, _080BA248 @ =0x00007140 - adds r0, r1, 0 - strh r0, [r6] - ldr r0, _080BA24C @ =sub_80BA258 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BA250 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r4, [r1, 0xA] - strh r4, [r1, 0xC] - strh r4, [r1, 0xE] - ldr r0, _080BA254 @ =gUnknown_020387B0 - strb r5, [r0] - strh r4, [r1, 0xE] - bl m4aSoundInit - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BA20C: .4byte REG_BG2CNT -_080BA210: .4byte 0x040000d4 -_080BA214: .4byte 0x8100c000 -_080BA218: .4byte 0x85000100 -_080BA21C: .4byte 0x81000200 -_080BA220: .4byte gWindowConfig_81E6C3C -_080BA224: .4byte gWindowConfig_81E6CE4 -_080BA228: .4byte REG_WIN0H -_080BA22C: .4byte REG_WININ -_080BA230: .4byte 0x00001111 -_080BA234: .4byte REG_BLDALPHA -_080BA238: .4byte 0x04000200 -_080BA23C: .4byte REG_DISPSTAT -_080BA240: .4byte sub_80BA0C0 -_080BA244: .4byte sub_80BA0A8 -_080BA248: .4byte 0x00007140 -_080BA24C: .4byte sub_80BA258 -_080BA250: .4byte gTasks -_080BA254: .4byte gUnknown_020387B0 - thumb_func_end unref_sub_80BA0EC - - thumb_func_start sub_80BA258 -sub_80BA258: @ 80BA258 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x40 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080BA354 @ =gDebugText_SoundCheckJap - mov r0, sp - movs r2, 0x9 - bl memcpy - add r7, sp, 0xC - ldr r1, _080BA358 @ =gDebugText_BGM - adds r0, r7, 0 - movs r2, 0x4 - bl memcpy - add r0, sp, 0x10 - mov r8, r0 - ldr r1, _080BA35C @ =gDebugText_SE - movs r2, 0x4 - bl memcpy - add r5, sp, 0x14 - ldr r1, _080BA360 @ =gUnknown_083D02D9 - adds r0, r5, 0 - movs r2, 0xD - bl memcpy - add r4, sp, 0x24 - ldr r1, _080BA364 @ =gDebugText_UpDown - adds r0, r4, 0 - movs r2, 0xC - bl memcpy - add r6, sp, 0x30 - ldr r1, _080BA368 @ =gDebugText_DriverTest - adds r0, r6, 0 - movs r2, 0xE - bl memcpy - ldr r0, _080BA36C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA344 - movs r0, 0x2 - movs r1, 0 - movs r2, 0x1B - movs r3, 0x3 - bl MenuDrawTextWindow - movs r0, 0x2 - movs r1, 0x5 - movs r2, 0x1B - movs r3, 0xA - bl MenuDrawTextWindow - movs r0, 0x2 - movs r1, 0xC - movs r2, 0x1B - movs r3, 0x11 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x4 - movs r2, 0x1 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0xE - movs r2, 0x1 - bl MenuPrint - adds r0, r7, 0 - movs r1, 0x4 - movs r2, 0x6 - bl MenuPrint - adds r0, r4, 0 - movs r1, 0xE - movs r2, 0x6 - bl MenuPrint - mov r0, r8 - movs r1, 0x4 - movs r2, 0xD - bl MenuPrint - adds r0, r4, 0 - movs r1, 0xE - movs r2, 0xD - bl MenuPrint - adds r0, r6, 0 - movs r1, 0xE - movs r2, 0x12 - bl MenuPrint - ldr r1, _080BA370 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BA374 @ =sub_80BA384 - str r1, [r0] - ldr r1, _080BA378 @ =REG_WIN0H - ldr r2, _080BA37C @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA380 @ =0x0000011f - adds r0, r2, 0 - strh r0, [r1] -_080BA344: - add sp, 0x40 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA354: .4byte gDebugText_SoundCheckJap -_080BA358: .4byte gDebugText_BGM -_080BA35C: .4byte gDebugText_SE -_080BA360: .4byte gUnknown_083D02D9 -_080BA364: .4byte gDebugText_UpDown -_080BA368: .4byte gDebugText_DriverTest -_080BA36C: .4byte gPaletteFade -_080BA370: .4byte gTasks -_080BA374: .4byte sub_80BA384 -_080BA378: .4byte REG_WIN0H -_080BA37C: .4byte 0x000011df -_080BA380: .4byte 0x0000011f - thumb_func_end sub_80BA258 - - thumb_func_start sub_80BA384 -sub_80BA384: @ 80BA384 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BA3EC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrb r0, [r4, 0x8] - bl sub_80BA6B8 - ldr r1, _080BA3F0 @ =0x0000015d - adds r0, r1, 0 - ldrh r2, [r4, 0xA] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - movs r2, 0x8 - bl sub_80BA700 - ldr r1, _080BA3F4 @ =gBGMNames - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0x8 - bl sub_80BA79C - ldrh r0, [r4, 0xC] - movs r1, 0x7 - movs r2, 0xF - bl sub_80BA700 - ldr r1, _080BA3F8 @ =gSENames - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xB - movs r2, 0xF - bl sub_80BA79C - ldr r0, _080BA3FC @ =Task_HandleMainMenuInput - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA3EC: .4byte gTasks -_080BA3F0: .4byte 0x0000015d -_080BA3F4: .4byte gBGMNames -_080BA3F8: .4byte gSENames -_080BA3FC: .4byte Task_HandleMainMenuInput - thumb_func_end sub_80BA384 - - thumb_func_start sub_80BA400 -sub_80BA400: @ 80BA400 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080BA428 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BA434 - ldr r0, _080BA42C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA430 @ =sub_80BA800 - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA428: .4byte gMain -_080BA42C: .4byte gTasks -_080BA430: .4byte sub_80BA800 -_080BA434: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080BA458 - ldr r0, _080BA450 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA454 @ =sub_80BAF84 - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA450: .4byte gTasks -_080BA454: .4byte sub_80BAF84 -_080BA458: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080BA478 - ldr r0, _080BA470 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA474 @ =sub_80BB25C - str r0, [r1] - b _080BA64C - .align 2, 0 -_080BA470: .4byte gTasks -_080BA474: .4byte sub_80BB25C -_080BA478: - movs r6, 0x1 - movs r5, 0x1 - ands r5, r1 - cmp r5, 0 - beq _080BA538 - ldr r0, _080BA4AC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r5, r1, r0 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080BA4D0 - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080BA4BA - movs r3, 0xC - ldrsh r4, [r5, r3] - cmp r4, 0 - beq _080BA4B0 - ldrh r0, [r5, 0x10] - bl m4aSongNumStop - b _080BA4C4 - .align 2, 0 -_080BA4AC: .4byte gTasks -_080BA4B0: - ldrh r0, [r5, 0x10] - bl m4aSongNumStop - strh r4, [r5, 0x10] - b _080BA64C -_080BA4BA: - movs r4, 0xC - ldrsh r0, [r5, r4] - cmp r0, 0 - bne _080BA4C4 - b _080BA64C -_080BA4C4: - ldrh r0, [r5, 0xC] - bl m4aSongNumStart - ldrh r0, [r5, 0xC] - strh r0, [r5, 0x10] - b _080BA64C -_080BA4D0: - ldrh r1, [r5, 0xE] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080BA514 - movs r3, 0xA - ldrsh r4, [r5, r3] - cmp r4, 0 - beq _080BA500 - ldr r0, _080BA4FC @ =0x0000015d - adds r4, r0, 0 - adds r0, r1, r4 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStop - ldrh r1, [r5, 0xA] - adds r4, r1 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - b _080BA528 - .align 2, 0 -_080BA4FC: .4byte 0x0000015d -_080BA500: - ldr r2, _080BA510 @ =0x0000015d - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStop - strh r4, [r5, 0xE] - b _080BA64C - .align 2, 0 -_080BA510: .4byte 0x0000015d -_080BA514: - ldrh r1, [r5, 0xA] - movs r3, 0xA - ldrsh r0, [r5, r3] - cmp r0, 0 - bne _080BA520 - b _080BA64C -_080BA520: - ldr r4, _080BA534 @ =0x0000015d - adds r0, r1, r4 - lsls r0, 16 - lsrs r0, 16 -_080BA528: - bl m4aSongNumStart - ldrh r0, [r5, 0xA] - strh r0, [r5, 0xE] - b _080BA64C - .align 2, 0 -_080BA534: .4byte 0x0000015d -_080BA538: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BA570 - movs r0, 0x5 - bl m4aSongNumStart - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080BA568 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BA56C @ =sub_80BA68C - str r1, [r0] - b _080BA64C - .align 2, 0 -_080BA568: .4byte gTasks -_080BA56C: .4byte sub_80BA68C -_080BA570: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080BA582 - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BA59C -_080BA582: - ldr r0, _080BA598 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - eors r0, r6 - strh r0, [r1, 0x8] -_080BA592: - movs r0, 0x1 - b _080BA64E - .align 2, 0 -_080BA598: .4byte gTasks -_080BA59C: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080BA5EA - ldr r0, _080BA5CC @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080BA5D6 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080BA5D0 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080BA592 - .align 2, 0 -_080BA5CC: .4byte gTasks -_080BA5D0: - movs r0, 0xF7 - strh r0, [r1, 0xC] - b _080BA592 -_080BA5D6: - ldrh r2, [r1, 0xA] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r0, 0 - ble _080BA5E4 - subs r0, r2, 0x1 - b _080BA5E6 -_080BA5E4: - movs r0, 0x75 -_080BA5E6: - strh r0, [r1, 0xA] - b _080BA592 -_080BA5EA: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BA630 - ldr r1, _080BA614 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x8 - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080BA61C - ldrh r2, [r1, 0xC] - movs r4, 0xC - ldrsh r0, [r1, r4] - cmp r0, 0xF6 - bgt _080BA618 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _080BA592 - .align 2, 0 -_080BA614: .4byte gTasks -_080BA618: - strh r3, [r1, 0xC] - b _080BA592 -_080BA61C: - ldrh r3, [r1, 0xA] - movs r4, 0xA - ldrsh r0, [r1, r4] - cmp r0, 0x74 - bgt _080BA62C - adds r0, r3, 0x1 - strh r0, [r1, 0xA] - b _080BA592 -_080BA62C: - strh r2, [r1, 0xA] - b _080BA592 -_080BA630: - ldrh r1, [r2, 0x2C] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080BA648 - ldr r0, _080BA644 @ =gUnknown_020387B0 - strb r6, [r0] - b _080BA64C - .align 2, 0 -_080BA644: .4byte gUnknown_020387B0 -_080BA648: - ldr r0, _080BA658 @ =gUnknown_020387B0 - strb r1, [r0] -_080BA64C: - movs r0, 0 -_080BA64E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080BA658: .4byte gUnknown_020387B0 - thumb_func_end sub_80BA400 - - thumb_func_start Task_HandleMainMenuInput -Task_HandleMainMenuInput: @ 80BA65C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80BA400 - lsls r0, 24 - cmp r0, 0 - beq _080BA67C - ldr r0, _080BA684 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080BA688 @ =sub_80BA384 - str r0, [r1] -_080BA67C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA684: .4byte gTasks -_080BA688: .4byte sub_80BA384 - thumb_func_end Task_HandleMainMenuInput - - thumb_func_start sub_80BA68C -sub_80BA68C: @ 80BA68C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080BA6B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BA6AA - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080BA6B4 @ =CB2_InitTitleScreen - bl SetMainCallback2 -_080BA6AA: - pop {r0} - bx r0 - .align 2, 0 -_080BA6B0: .4byte gPaletteFade -_080BA6B4: .4byte CB2_InitTitleScreen - thumb_func_end sub_80BA68C - - thumb_func_start sub_80BA6B8 -sub_80BA6B8: @ 80BA6B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080BA6C6 - cmp r0, 0x1 - beq _080BA6E0 -_080BA6C6: - ldr r1, _080BA6D4 @ =REG_WIN1H - ldr r2, _080BA6D8 @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA6DC @ =0x00002957 - b _080BA6EC - .align 2, 0 -_080BA6D4: .4byte REG_WIN1H -_080BA6D8: .4byte 0x000011df -_080BA6DC: .4byte 0x00002957 -_080BA6E0: - ldr r1, _080BA6F4 @ =REG_WIN1H - ldr r2, _080BA6F8 @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BA6FC @ =0x0000618f -_080BA6EC: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BA6F4: .4byte REG_WIN1H -_080BA6F8: .4byte 0x000011df -_080BA6FC: .4byte 0x0000618f - thumb_func_end sub_80BA6B8 - - thumb_func_start sub_80BA700 -sub_80BA700: @ 80BA700 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r7, r2, 16 - movs r1, 0 - movs r2, 0 -_080BA714: - mov r3, sp - adds r0, r3, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _080BA714 - mov r1, sp - movs r0, 0xB0 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - movs r4, 0 - adds r0, r5, 0 - movs r1, 0x64 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080BA748 - mov r1, sp - adds r0, 0xA1 - strb r0, [r1] - movs r4, 0x1 -_080BA748: - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080BA766 - cmp r4, 0 - beq _080BA76C -_080BA766: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1, 0x1] -_080BA76C: - mov r4, sp - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4, 0x2] - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - mov r0, sp - bl MenuPrint - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BA700 - - thumb_func_start sub_80BA79C -sub_80BA79C: @ 80BA79C - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - movs r3, 0 - movs r1, 0 -_080BA7AE: - mov r2, sp - adds r0, r2, r3 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xA - bls _080BA7AE - mov r0, sp - movs r1, 0xFF - strb r1, [r0, 0xA] - movs r3, 0 - ldrb r0, [r4] - lsls r2, r6, 24 - lsls r5, 24 - cmp r0, 0xFF - beq _080BA7EC -_080BA7D0: - mov r0, sp - adds r1, r0, r3 - adds r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080BA7EC - cmp r3, 0x9 - bls _080BA7D0 -_080BA7EC: - lsrs r1, r2, 24 - lsrs r2, r5, 24 - mov r0, sp - bl MenuPrint - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BA79C - - thumb_func_start sub_80BA800 -sub_80BA800: @ 80BA800 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xCC - lsls r0, 24 - str r0, [sp, 0xB0] - lsrs r2, r0, 24 - str r2, [sp, 0xAC] - ldr r1, _080BA9E8 @ =gUnknown_083D0312 - mov r0, sp - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0xC - str r0, [sp, 0xB4] - ldr r1, _080BA9EC @ =gUnknown_083D031C - movs r2, 0xB - bl memcpy - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0xB8] - ldr r1, _080BA9F0 @ =gDebugText_Voice - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0x24 - str r0, [sp, 0xBC] - ldr r1, _080BA9F4 @ =gDebugText_Volume - movs r2, 0xA - bl memcpy - mov r2, sp - adds r2, 0x30 - str r2, [sp, 0xC0] - ldr r1, _080BA9F8 @ =gDebugText_Panpot - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - mov r0, sp - adds r0, 0x3C - str r0, [sp, 0xC4] - ldr r1, _080BA9FC @ =gDebugText_Pitch - movs r2, 0xA - bl memcpy - mov r2, sp - adds r2, 0x48 - str r2, [sp, 0xC8] - ldr r1, _080BAA00 @ =gDebugText_Length - adds r0, r2, 0 - movs r2, 0xA - bl memcpy - add r4, sp, 0x54 - ldr r1, _080BAA04 @ =gDebugText_Release - adds r0, r4, 0 - movs r2, 0xA - bl memcpy - add r7, sp, 0x60 - ldr r1, _080BAA08 @ =gDebugText_Progress - adds r0, r7, 0 - movs r2, 0xA - bl memcpy - add r0, sp, 0x6C - mov r10, r0 - ldr r1, _080BAA0C @ =gDebugText_Chorus - movs r2, 0xA - bl memcpy - add r2, sp, 0x78 - mov r9, r2 - ldr r1, _080BAA10 @ =gDebugText_Priority - mov r0, r9 - movs r2, 0xA - bl memcpy - add r0, sp, 0x84 - mov r8, r0 - ldr r1, _080BAA14 @ =gUnknown_083D0381 - movs r2, 0x9 - bl memcpy - add r6, sp, 0x90 - ldr r1, _080BAA18 @ =gUnknown_083D038A - adds r0, r6, 0 - movs r2, 0x9 - bl memcpy - add r5, sp, 0x9C - ldr r1, _080BAA1C @ =gUnknown_083D0393 - adds r0, r5, 0 - movs r2, 0x9 - bl memcpy - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x13 - movs r2, 0x4 - bl MenuPrint - ldr r0, [sp, 0xB4] - movs r1, 0x13 - movs r2, 0x2 - bl MenuPrint - ldr r0, [sp, 0xB8] - movs r1, 0x2 - movs r2, 0x1 - bl MenuPrint - ldr r0, [sp, 0xBC] - movs r1, 0x2 - movs r2, 0x3 - bl MenuPrint - ldr r0, [sp, 0xC0] - movs r1, 0x2 - movs r2, 0x5 - bl MenuPrint - ldr r0, [sp, 0xC4] - movs r1, 0x2 - movs r2, 0x7 - bl MenuPrint - ldr r0, [sp, 0xC8] - movs r1, 0x2 - movs r2, 0x9 - bl MenuPrint - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xB - bl MenuPrint - adds r0, r7, 0 - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - mov r0, r10 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - mov r0, r9 - movs r1, 0x2 - movs r2, 0x11 - bl MenuPrint - mov r0, r8 - movs r1, 0x13 - movs r2, 0x10 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x13 - movs r2, 0xE - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x13 - movs r2, 0xC - bl MenuPrint - ldr r1, _080BAA20 @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080BAA24 @ =gUnknown_020387B3 - movs r1, 0 - strb r1, [r0] - ldr r0, _080BAA28 @ =gUnknown_020387B1 - strb r1, [r0] - ldr r0, _080BAA2C @ =gUnknown_020387B2 - strb r1, [r0] - ldr r0, _080BAA30 @ =gUnknown_03005D30 - movs r2, 0 - str r2, [r0] - ldr r0, _080BAA34 @ =gUnknown_020387D8 - strb r2, [r0] - ldr r1, _080BAA38 @ =gUnknown_020387D9 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080BAA3C @ =gUnknown_020387B4 - str r2, [r0] - movs r1, 0x78 - str r1, [r0, 0x4] - str r2, [r0, 0x8] - movs r1, 0xF0 - lsls r1, 6 - str r1, [r0, 0xC] - movs r1, 0xB4 - str r1, [r0, 0x10] - str r2, [r0, 0x18] - str r2, [r0, 0x14] - str r2, [r0, 0x1C] - movs r1, 0x2 - str r1, [r0, 0x20] - bl sub_80BAD5C - movs r0, 0 - movs r1, 0 - bl sub_80BAE10 - ldr r1, _080BAA40 @ =gTasks - ldr r2, [sp, 0xAC] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAA44 @ =sub_80BAA48 - str r1, [r0] - add sp, 0xCC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BA9E8: .4byte gUnknown_083D0312 -_080BA9EC: .4byte gUnknown_083D031C -_080BA9F0: .4byte gDebugText_Voice -_080BA9F4: .4byte gDebugText_Volume -_080BA9F8: .4byte gDebugText_Panpot -_080BA9FC: .4byte gDebugText_Pitch -_080BAA00: .4byte gDebugText_Length -_080BAA04: .4byte gDebugText_Release -_080BAA08: .4byte gDebugText_Progress -_080BAA0C: .4byte gDebugText_Chorus -_080BAA10: .4byte gDebugText_Priority -_080BAA14: .4byte gUnknown_083D0381 -_080BAA18: .4byte gUnknown_083D038A -_080BAA1C: .4byte gUnknown_083D0393 -_080BAA20: .4byte REG_WIN0H -_080BAA24: .4byte gUnknown_020387B3 -_080BAA28: .4byte gUnknown_020387B1 -_080BAA2C: .4byte gUnknown_020387B2 -_080BAA30: .4byte gUnknown_03005D30 -_080BAA34: .4byte gUnknown_020387D8 -_080BAA38: .4byte gUnknown_020387D9 -_080BAA3C: .4byte gUnknown_020387B4 -_080BAA40: .4byte gTasks -_080BAA44: .4byte sub_80BAA48 - thumb_func_end sub_80BA800 - - thumb_func_start sub_80BAA48 -sub_80BAA48: @ 80BAA48 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BAA90 @ =gMain - ldrh r2, [r1, 0x2E] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080BAAA8 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BAA94 @ =0x00007140 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BAA98 @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BAA9C @ =0x0000011f - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BAAA0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BAAA4 @ =sub_80BA258 - str r1, [r0] - b _080BACC6 - .align 2, 0 -_080BAA90: .4byte gMain -_080BAA94: .4byte 0x00007140 -_080BAA98: .4byte 0x000011df -_080BAA9C: .4byte 0x0000011f -_080BAAA0: .4byte gTasks -_080BAAA4: .4byte sub_80BA258 -_080BAAA8: - ldrh r1, [r1, 0x30] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080BAAD0 - ldr r1, _080BAACC @ =gUnknown_020387B3 - ldrb r2, [r1] - subs r0, r2, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080BAAEA - movs r0, 0x8 - strb r0, [r1] - b _080BAAEA - .align 2, 0 -_080BAACC: .4byte gUnknown_020387B3 -_080BAAD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BAAF8 - ldr r1, _080BAAF4 @ =gUnknown_020387B3 - ldrb r2, [r1] - adds r0, r2, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x8 - ble _080BAAEA - strb r3, [r1] -_080BAAEA: - ldrb r1, [r1] - adds r0, r2, 0 - bl sub_80BAE10 - b _080BACC6 - .align 2, 0 -_080BAAF4: .4byte gUnknown_020387B3 -_080BAAF8: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080BAB14 - ldr r0, _080BAB10 @ =gUnknown_020387D8 - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - bl sub_80BAD5C - b _080BACC6 - .align 2, 0 -_080BAB10: .4byte gUnknown_020387D8 -_080BAB14: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _080BAB38 - ldr r4, _080BAB34 @ =gUnknown_020387D9 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] - bl sub_80BAD5C - ldrb r0, [r4] - bl SetPokemonCryStereo - b _080BACC6 - .align 2, 0 -_080BAB34: .4byte gUnknown_020387D9 -_080BAB38: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BAB46 - movs r0, 0xA - b _080BAB6E -_080BAB46: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080BAB56 - movs r0, 0xA - negs r0, r0 - b _080BAB6E -_080BAB56: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BAB64 - movs r0, 0x1 - negs r0, r0 - b _080BAB6E -_080BAB64: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080BAB78 - movs r0, 0x1 -_080BAB6E: - bl sub_80BACDC - bl sub_80BAD5C - b _080BACC6 -_080BAB78: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080BAB82 - b _080BACA2 -_080BAB82: - ldr r4, _080BABE4 @ =gUnknown_020387B4 - ldrb r0, [r4, 0x4] - bl SetPokemonCryVolume - movs r0, 0x8 - ldrsb r0, [r4, r0] - bl SetPokemonCryPanpot - movs r1, 0xC - ldrsh r0, [r4, r1] - bl SetPokemonCryPitch - ldrh r0, [r4, 0x10] - bl SetPokemonCryLength - ldr r0, [r4, 0x18] - bl SetPokemonCryProgress - ldrb r0, [r4, 0x14] - bl SetPokemonCryRelease - movs r0, 0x1C - ldrsb r0, [r4, r0] - bl SetPokemonCryChorus - ldr r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl SetPokemonCryPriority - ldr r4, [r4] - adds r0, r4, 0 - cmp r4, 0 - bge _080BABC8 - adds r0, 0x7F -_080BABC8: - asrs r2, r0, 7 - lsls r0, r2, 7 - subs r0, r4, r0 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BAC1C - cmp r0, 0x1 - bgt _080BABE8 - cmp r0, 0 - beq _080BABF2 - b _080BACA2 - .align 2, 0 -_080BABE4: .4byte gUnknown_020387B4 -_080BABE8: - cmp r0, 0x2 - beq _080BAC48 - cmp r0, 0x3 - beq _080BAC74 - b _080BACA2 -_080BABF2: - ldr r0, _080BAC04 @ =gUnknown_020387D8 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC0C - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC08 @ =voicegroup_84537C0 - b _080BAC98 - .align 2, 0 -_080BAC04: .4byte gUnknown_020387D8 -_080BAC08: .4byte voicegroup_84537C0 -_080BAC0C: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC18 @ =voicegroup_8452590 - b _080BAC98 - .align 2, 0 -_080BAC18: .4byte voicegroup_8452590 -_080BAC1C: - ldr r0, _080BAC30 @ =gUnknown_020387D8 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC38 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC34 @ =voicegroup_8453DC0 - b _080BAC98 - .align 2, 0 -_080BAC30: .4byte gUnknown_020387D8 -_080BAC34: .4byte voicegroup_8453DC0 -_080BAC38: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC44 @ =voicegroup_8452B90 - b _080BAC98 - .align 2, 0 -_080BAC44: .4byte voicegroup_8452B90 -_080BAC48: - ldr r0, _080BAC5C @ =gUnknown_020387D8 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC64 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC60 @ =voicegroup_84543C0 - b _080BAC98 - .align 2, 0 -_080BAC5C: .4byte gUnknown_020387D8 -_080BAC60: .4byte voicegroup_84543C0 -_080BAC64: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC70 @ =voicegroup_8453190 - b _080BAC98 - .align 2, 0 -_080BAC70: .4byte voicegroup_8453190 -_080BAC74: - ldr r0, _080BAC88 @ =gUnknown_020387D8 - ldrb r0, [r0] - cmp r0, 0 - beq _080BAC90 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BAC8C @ =voicegroup_84549C0 - b _080BAC98 - .align 2, 0 -_080BAC88: .4byte gUnknown_020387D8 -_080BAC8C: .4byte voicegroup_84549C0 -_080BAC90: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BACCC @ =voicegroup_8453790 -_080BAC98: - adds r0, r1 - bl SetPokemonCryTone - ldr r1, _080BACD0 @ =gUnknown_03005D30 - str r0, [r1] -_080BACA2: - ldr r0, _080BACD0 @ =gUnknown_03005D30 - ldr r0, [r0] - cmp r0, 0 - beq _080BACC6 - ldr r5, _080BACD4 @ =gUnknown_020387B1 - bl IsPokemonCryPlaying - strb r0, [r5] - ldr r4, _080BACD8 @ =gUnknown_020387B2 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - cmp r0, r2 - beq _080BACC2 - bl sub_80BAD5C -_080BACC2: - ldrb r0, [r5] - strb r0, [r4] -_080BACC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BACCC: .4byte voicegroup_8453790 -_080BACD0: .4byte gUnknown_03005D30 -_080BACD4: .4byte gUnknown_020387B1 -_080BACD8: .4byte gUnknown_020387B2 - thumb_func_end sub_80BAA48 - - thumb_func_start sub_80BACDC -sub_80BACDC: @ 80BACDC - push {r4-r6,lr} - sub sp, 0x40 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080BAD50 @ =gUnknown_083D039C - mov r0, sp - movs r2, 0x40 - bl memcpy - ldr r6, _080BAD54 @ =gUnknown_020387B4 - ldr r5, _080BAD58 @ =gUnknown_020387B3 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r1, 2 - adds r1, r6 - lsls r4, 24 - asrs r4, 24 - ldr r0, [r1] - adds r0, r4 - str r0, [r1] - movs r2, 0 - ldrsb r2, [r5, r2] - lsls r0, r2, 2 - adds r3, r0, r6 - lsls r0, r2, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - ble _080BAD26 - lsls r0, r2, 3 - add r0, sp - ldr r0, [r0] - str r0, [r3] -_080BAD26: - movs r2, 0 - ldrsb r2, [r5, r2] - lsls r0, r2, 2 - adds r3, r0, r6 - lsls r0, r2, 3 - add r0, sp - ldr r1, [r3] - ldr r0, [r0] - cmp r1, r0 - bge _080BAD46 - lsls r0, r2, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - str r0, [r3] -_080BAD46: - add sp, 0x40 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BAD50: .4byte gUnknown_083D039C -_080BAD54: .4byte gUnknown_020387B4 -_080BAD58: .4byte gUnknown_020387B3 - thumb_func_end sub_80BACDC - - thumb_func_start sub_80BAD5C -sub_80BAD5C: @ 80BAD5C - push {r4,lr} - ldr r4, _080BAE00 @ =gUnknown_020387B4 - ldr r0, [r4] - adds r0, 0x1 - movs r1, 0xB - movs r2, 0x1 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x4] - movs r1, 0xB - movs r2, 0x3 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x8] - movs r1, 0xB - movs r2, 0x5 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0xC] - movs r1, 0xB - movs r2, 0x7 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x10] - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x14] - movs r1, 0xB - movs r2, 0xB - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x18] - movs r1, 0xB - movs r2, 0xD - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x1C] - movs r1, 0xB - movs r2, 0xF - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, [r4, 0x20] - movs r1, 0xB - movs r2, 0x11 - movs r3, 0x5 - bl sub_80BAE78 - ldr r0, _080BAE04 @ =gUnknown_020387B1 - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0x10 - movs r3, 0x1 - bl sub_80BAE78 - ldr r0, _080BAE08 @ =gUnknown_020387D8 - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0xE - movs r3, 0x1 - bl sub_80BAE78 - ldr r0, _080BAE0C @ =gUnknown_020387D9 - ldrb r0, [r0] - movs r1, 0x1B - movs r2, 0xC - movs r3, 0x1 - bl sub_80BAE78 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BAE00: .4byte gUnknown_020387B4 -_080BAE04: .4byte gUnknown_020387B1 -_080BAE08: .4byte gUnknown_020387D8 -_080BAE0C: .4byte gUnknown_020387D9 - thumb_func_end sub_80BAD5C - - thumb_func_start sub_80BAE10 -sub_80BAE10: @ 80BAE10 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080BAE6C @ =gUnknown_083D03DC - mov r0, sp - movs r2, 0x2 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _080BAE70 @ =gUnknown_083D03DE - movs r2, 0x2 - bl memcpy - ldr r6, _080BAE74 @ =gUnknown_083D0300 - lsls r4, 1 - adds r0, r4, r6 - ldrb r1, [r0] - adds r4, 0x1 - adds r4, r6 - ldrb r2, [r4] - mov r0, r8 - bl MenuPrint - lsls r5, 1 - adds r0, r5, r6 - ldrb r1, [r0] - adds r5, 0x1 - adds r5, r6 - ldrb r2, [r5] - mov r0, sp - bl MenuPrint - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BAE6C: .4byte gUnknown_083D03DC -_080BAE70: .4byte gUnknown_083D03DE -_080BAE74: .4byte gUnknown_083D0300 - thumb_func_end sub_80BAE10 - - thumb_func_start sub_80BAE78 -sub_80BAE78: @ 80BAE78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 24 - lsrs r7, r3, 24 - mov r1, sp - ldr r0, _080BAF80 @ =gUnknown_083D03E0 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - movs r5, 0 - add r0, sp, 0x18 - mov r9, r0 - cmp r5, r7 - bgt _080BAEC0 - mov r4, r9 - movs r3, 0 -_080BAEAC: - lsls r0, r5, 24 - asrs r0, 24 - adds r1, r4, r0 - strb r3, [r1] - adds r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - asrs r0, 24 - cmp r0, r7 - ble _080BAEAC -_080BAEC0: - adds r0, r7, 0x1 - add r0, r9 - movs r1, 0xFF - strb r1, [r0] - movs r1, 0 - mov r3, r8 - cmp r3, 0 - bge _080BAED6 - negs r3, r3 - mov r8, r3 - movs r1, 0x1 -_080BAED6: - movs r4, 0 - mov r10, r4 - cmp r7, 0x1 - bne _080BAEE2 - movs r5, 0x1 - mov r10, r5 -_080BAEE2: - subs r0, r7, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 24 - lsls r6, 24 - str r6, [sp, 0x24] - lsls r2, 24 - str r2, [sp, 0x28] - cmp r0, 0 - blt _080BAF62 - str r1, [sp, 0x20] -_080BAEF8: - asrs r6, r0, 24 - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - mov r0, r8 - bl __divsi3 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r0, 0 - bne _080BAF1A - mov r0, r10 - cmp r0, 0 - bne _080BAF1A - lsls r4, r5, 24 - cmp r6, 0 - bne _080BAF46 -_080BAF1A: - lsls r4, r5, 24 - ldr r3, [sp, 0x20] - cmp r3, 0 - beq _080BAF34 - mov r5, r10 - cmp r5, 0 - bne _080BAF34 - asrs r0, r4, 24 - subs r0, r7, r0 - subs r0, 0x1 - add r0, r9 - movs r1, 0xAE - strb r1, [r0] -_080BAF34: - asrs r1, r4, 24 - subs r1, r7, r1 - add r1, r9 - lsls r0, r2, 24 - asrs r0, 24 - subs r0, 0x5F - strb r0, [r1] - movs r0, 0x1 - mov r10, r0 -_080BAF46: - asrs r4, 24 - lsls r0, r4, 2 - add r0, sp - ldr r1, [r0] - mov r0, r8 - bl __modsi3 - mov r8, r0 - subs r4, 0x1 - lsls r4, 24 - lsrs r5, r4, 24 - lsls r0, r5, 24 - cmp r0, 0 - bge _080BAEF8 -_080BAF62: - ldr r3, [sp, 0x24] - lsrs r1, r3, 24 - ldr r4, [sp, 0x28] - lsrs r2, r4, 24 - mov r0, r9 - bl MenuPrint - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BAF80: .4byte gUnknown_083D03E0 - thumb_func_end sub_80BAE78 - - thumb_func_start sub_80BAF84 -sub_80BAF84: @ 80BAF84 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080BB01C @ =gOtherText_SE - mov r0, sp - movs r2, 0x3 - bl memcpy - add r6, sp, 0x4 - ldr r1, _080BB020 @ =gOtherText_Pan - adds r0, r6, 0 - movs r2, 0x4 - bl memcpy - add r5, sp, 0x8 - ldr r1, _080BB024 @ =gUnknown_083D0381 - adds r0, r5, 0 - movs r2, 0x9 - bl memcpy - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xC5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - mov r0, sp - movs r1, 0x3 - movs r2, 0x2 - bl MenuPrint - adds r0, r6, 0 - movs r1, 0x3 - movs r2, 0x4 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x8 - bl MenuPrint - ldr r1, _080BB028 @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - ldr r1, _080BB02C @ =gUnknown_020387B4 - movs r0, 0x1 - str r0, [r1] - movs r0, 0 - str r0, [r1, 0x8] - str r0, [r1, 0x1C] - str r0, [r1, 0x18] - str r0, [r1, 0x14] - bl sub_80BB1D4 - ldr r1, _080BB030 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB034 @ =sub_80BB038 - str r1, [r0] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB01C: .4byte gOtherText_SE -_080BB020: .4byte gOtherText_Pan -_080BB024: .4byte gUnknown_083D0381 -_080BB028: .4byte REG_WIN0H -_080BB02C: .4byte gUnknown_020387B4 -_080BB030: .4byte gTasks -_080BB034: .4byte sub_80BB038 - thumb_func_end sub_80BAF84 - - thumb_func_start sub_80BB038 -sub_80BB038: @ 80BB038 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80BB1D4 - ldr r2, _080BB058 @ =gUnknown_020387B4 - ldr r0, [r2, 0x18] - cmp r0, 0 - beq _080BB0A2 - ldr r0, [r2, 0x14] - cmp r0, 0 - beq _080BB05C - subs r0, 0x1 - str r0, [r2, 0x14] - b _080BB0A2 - .align 2, 0 -_080BB058: .4byte gUnknown_020387B4 -_080BB05C: - ldr r0, _080BB088 @ =gUnknown_083D03F8 - ldr r1, [r2, 0x8] - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB08C - cmp r1, 0x7F - bne _080BB0A2 - ldr r0, [r2, 0x1C] - adds r0, 0x2 - str r0, [r2, 0x1C] - cmp r0, 0x3E - bgt _080BB0A2 - lsls r0, 24 - asrs r0, 24 - bl SE12PanpotControl - b _080BB0A2 - .align 2, 0 -_080BB088: .4byte gUnknown_083D03F8 -_080BB08C: - ldr r0, [r2, 0x1C] - subs r1, r0, 0x2 - str r1, [r2, 0x1C] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - ble _080BB0A2 - lsls r0, r1, 24 - asrs r0, 24 - bl SE12PanpotControl -_080BB0A2: - ldr r1, _080BB0EC @ =gMain - ldrh r3, [r1, 0x2E] - movs r0, 0x2 - ands r0, r3 - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r1, 0 - cmp r4, 0 - beq _080BB104 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BB0F0 @ =0x00007140 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BB0F4 @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BB0F8 @ =0x0000011f - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BB0FC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB100 @ =sub_80BA258 - str r1, [r0] - b _080BB1C8 - .align 2, 0 -_080BB0EC: .4byte gMain -_080BB0F0: .4byte 0x00007140 -_080BB0F4: .4byte 0x000011df -_080BB0F8: .4byte 0x0000011f -_080BB0FC: .4byte gTasks -_080BB100: .4byte sub_80BA258 -_080BB104: - movs r6, 0x1 - adds r2, r6, 0 - ands r2, r3 - cmp r2, 0 - beq _080BB15E - ldr r0, _080BB138 @ =gUnknown_083D03F8 - ldr r5, _080BB13C @ =gUnknown_020387B4 - ldr r1, [r5, 0x8] - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB140 - cmp r1, 0x7F - bne _080BB154 - ldrh r0, [r5] - movs r4, 0x40 - negs r4, r4 - adds r1, r4, 0 - bl PlaySE12WithPanning - str r4, [r5, 0x1C] - b _080BB14C - .align 2, 0 -_080BB138: .4byte gUnknown_083D03F8 -_080BB13C: .4byte gUnknown_020387B4 -_080BB140: - ldrh r0, [r5] - movs r1, 0x3F - bl PlaySE12WithPanning - movs r0, 0x3F - str r0, [r5, 0x1C] -_080BB14C: - str r6, [r5, 0x18] - movs r0, 0x1E - str r0, [r5, 0x14] - b _080BB1C8 -_080BB154: - ldrh r0, [r5] - bl PlaySE12WithPanning - str r4, [r5, 0x18] - b _080BB1C8 -_080BB15E: - movs r0, 0x80 - lsls r0, 2 - ands r0, r3 - cmp r0, 0 - beq _080BB176 - ldr r1, _080BB1AC @ =gUnknown_020387B4 - ldr r0, [r1, 0x8] - adds r0, 0x1 - str r0, [r1, 0x8] - cmp r0, 0x4 - ble _080BB176 - str r2, [r1, 0x8] -_080BB176: - ldrh r1, [r7, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BB192 - ldr r1, _080BB1AC @ =gUnknown_020387B4 - ldr r0, [r1, 0x8] - subs r0, 0x1 - str r0, [r1, 0x8] - cmp r0, 0 - bge _080BB192 - movs r0, 0x4 - str r0, [r1, 0x8] -_080BB192: - ldrh r1, [r7, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080BB1B0 - ldr r1, _080BB1AC @ =gUnknown_020387B4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0xF7 - ble _080BB1C8 - movs r0, 0 - b _080BB1C6 - .align 2, 0 -_080BB1AC: .4byte gUnknown_020387B4 -_080BB1B0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080BB1C8 - ldr r1, _080BB1D0 @ =gUnknown_020387B4 - ldr r0, [r1] - subs r0, 0x1 - str r0, [r1] - cmp r0, 0 - bge _080BB1C8 - movs r0, 0xF7 -_080BB1C6: - str r0, [r1] -_080BB1C8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BB1D0: .4byte gUnknown_020387B4 - thumb_func_end sub_80BB038 - - thumb_func_start sub_80BB1D4 -sub_80BB1D4: @ 80BB1D4 - push {r4,r5,lr} - sub sp, 0x10 - ldr r1, _080BB218 @ =gOtherText_LR - mov r0, sp - movs r2, 0x5 - bl memcpy - add r5, sp, 0x8 - ldr r1, _080BB21C @ =gOtherText_RL - adds r0, r5, 0 - movs r2, 0x5 - bl memcpy - ldr r4, _080BB220 @ =gUnknown_020387B4 - ldr r0, [r4] - movs r1, 0x7 - movs r2, 0x2 - movs r3, 0x3 - bl sub_80BAE78 - ldr r1, _080BB224 @ =gUnknown_083D03F8 - ldr r0, [r4, 0x8] - adds r0, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x80 - negs r0, r0 - cmp r1, r0 - beq _080BB228 - cmp r1, 0x7F - bne _080BB234 - mov r0, sp - b _080BB22A - .align 2, 0 -_080BB218: .4byte gOtherText_LR -_080BB21C: .4byte gOtherText_RL -_080BB220: .4byte gUnknown_020387B4 -_080BB224: .4byte gUnknown_083D03F8 -_080BB228: - adds r0, r5, 0 -_080BB22A: - movs r1, 0x7 - movs r2, 0x4 - bl MenuPrint - b _080BB240 -_080BB234: - adds r0, r1, 0 - movs r1, 0x7 - movs r2, 0x4 - movs r3, 0x3 - bl sub_80BAE78 -_080BB240: - bl IsSEPlaying - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - movs r2, 0x8 - movs r3, 0x1 - bl sub_80BAE78 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BB1D4 - - thumb_func_start sub_80BB25C -sub_80BB25C: @ 80BB25C - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BB374 @ =gWindowConfig_81E6C3C - bl SetUpWindowConfig - ldr r0, _080BB378 @ =gWindowConfig_81E6CE4 - bl InitMenuWindow - ldr r1, _080BB37C @ =gUnknown_03005D34 - movs r0, 0x1 - strh r0, [r1] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _080BB380 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - ldr r1, _080BB384 @ =0xff00ffff - ands r0, r1 - movs r1, 0xE8 - lsls r1, 13 - orrs r0, r1 - ldr r1, _080BB388 @ =0x00ffffff - ands r0, r1 - movs r1, 0xC0 - lsls r1, 20 - orrs r0, r1 - str r0, [sp, 0x4] - ldr r1, _080BB38C @ =0xffff00ff - ldr r0, [sp, 0x8] - ands r0, r1 - movs r1, 0xF0 - lsls r1, 5 - orrs r0, r1 - ldr r1, _080BB390 @ =0xffffff00 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - str r0, [sp, 0x8] - movs r1, 0 - ldr r0, _080BB394 @ =gUnknown_03005E98 - strb r1, [r0] - add r4, sp, 0xC -_080BB2BE: - add r0, sp, 0x4 - movs r1, 0x3 - bl sub_8119E3C - lsls r0, 24 - cmp r0, 0 - beq _080BB2BE - ldr r1, _080BB380 @ =0xffff0000 - ldr r0, [sp, 0xC] - ands r0, r1 - ldr r1, _080BB384 @ =0xff00ffff - ands r0, r1 - movs r1, 0xF0 - lsls r1, 12 - orrs r0, r1 - ldr r1, _080BB388 @ =0x00ffffff - ands r0, r1 - movs r1, 0xD0 - lsls r1, 20 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r1, _080BB390 @ =0xffffff00 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0xC - orrs r0, r1 - ldr r1, _080BB38C @ =0xffff00ff - ands r0, r1 - movs r1, 0xC0 - lsls r1, 4 - orrs r0, r1 - str r0, [r4, 0x4] - movs r1, 0 - ldr r0, _080BB394 @ =gUnknown_03005E98 - strb r1, [r0] - lsls r5, r6, 2 -_080BB306: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_811A3CC - lsls r0, 24 - cmp r0, 0 - beq _080BB306 - movs r0, 0 - movs r1, 0x10 - movs r2, 0x5 - movs r3, 0x13 - bl MenuDrawTextWindow - bl sub_80BB494 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080BB398 @ =REG_BG2HOFS - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _080BB39C @ =REG_BG2CNT - ldr r2, _080BB3A0 @ =0x00000f01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080BB3A4 @ =0x00001d03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - adds r2, 0x3D - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080BB3A8 @ =gMPlay_BGM - movs r1, 0x2 - bl m4aMPlayFadeOutTemporarily - ldr r1, _080BB3AC @ =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB3B0 @ =sub_80BB3B4 - str r1, [r0] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB374: .4byte gWindowConfig_81E6C3C -_080BB378: .4byte gWindowConfig_81E6CE4 -_080BB37C: .4byte gUnknown_03005D34 -_080BB380: .4byte 0xffff0000 -_080BB384: .4byte 0xff00ffff -_080BB388: .4byte 0x00ffffff -_080BB38C: .4byte 0xffff00ff -_080BB390: .4byte 0xffffff00 -_080BB394: .4byte gUnknown_03005E98 -_080BB398: .4byte REG_BG2HOFS -_080BB39C: .4byte REG_BG2CNT -_080BB3A0: .4byte 0x00000f01 -_080BB3A4: .4byte 0x00001d03 -_080BB3A8: .4byte gMPlay_BGM -_080BB3AC: .4byte gTasks -_080BB3B0: .4byte sub_80BB3B4 - thumb_func_end sub_80BB25C - - thumb_func_start sub_80BB3B4 -sub_80BB3B4: @ 80BB3B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x3 - bl sub_8119F88 - ldr r4, _080BB478 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BB3D4 - ldr r0, _080BB47C @ =gUnknown_03005D34 - ldrh r0, [r0] - bl sub_811A050 -_080BB3D4: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080BB3E4 - bl StopCryAndClearCrySongs -_080BB3E4: - ldrh r1, [r4, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BB408 - ldr r1, _080BB47C @ =gUnknown_03005D34 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _080BB404 - movs r2, 0xC0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] -_080BB404: - bl sub_80BB494 -_080BB408: - ldr r0, _080BB478 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BB42E - ldr r2, _080BB47C @ =gUnknown_03005D34 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 17 - cmp r0, r1 - bls _080BB42A - movs r0, 0x1 - strh r0, [r2] -_080BB42A: - bl sub_80BB494 -_080BB42E: - ldr r0, _080BB478 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BB472 - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080BB480 @ =0x00007140 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x40 - ldr r2, _080BB484 @ =0x000011df - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080BB488 @ =0x0000011f - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080BB48C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BB490 @ =sub_80BA258 - str r1, [r0] - bl sub_811A4F8 -_080BB472: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BB478: .4byte gMain -_080BB47C: .4byte gUnknown_03005D34 -_080BB480: .4byte 0x00007140 -_080BB484: .4byte 0x000011df -_080BB488: .4byte 0x0000011f -_080BB48C: .4byte gTasks -_080BB490: .4byte sub_80BA258 - thumb_func_end sub_80BB3B4 - - thumb_func_start sub_80BB494 -sub_80BB494: @ 80BB494 - push {lr} - ldr r0, _080BB4A8 @ =gUnknown_03005D34 - ldrh r0, [r0] - movs r1, 0x1 - movs r2, 0x11 - movs r3, 0x3 - bl sub_80BAE78 - pop {r0} - bx r0 - .align 2, 0 -_080BB4A8: .4byte gUnknown_03005D34 - thumb_func_end sub_80BB494 - - thumb_func_start sub_80BB4AC -sub_80BB4AC: @ 80BB4AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - movs r0, 0 - strb r0, [r3] - movs r2, 0 - adds r4, r3, 0x2 - movs r5, 0xFF -_080BB4C4: - adds r0, r4, r2 - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x6 - bls _080BB4C4 - movs r2, 0 - adds r5, r3, 0 - adds r5, 0x12 - adds r6, r3, 0 - adds r6, 0x22 - adds r7, r3, 0 - adds r7, 0x4C - adds r0, r3, 0 - adds r0, 0x34 - str r0, [sp] - adds r1, r3, 0 - adds r1, 0x9A - str r1, [sp, 0x4] - movs r0, 0x7C - adds r0, r3 - mov r10, r0 - movs r1, 0x88 - adds r1, r3 - mov r9, r1 - movs r0, 0x94 - adds r0, r3 - mov r8, r0 - adds r1, r3, 0 - adds r1, 0x9 - movs r4, 0 -_080BB508: - adds r0, r1, r2 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080BB508 - movs r0, 0 - movs r1, 0 - strh r1, [r3, 0xE] - strb r0, [r3, 0x10] - strb r0, [r3, 0x11] - movs r0, 0 - strb r0, [r3, 0x1] - movs r2, 0 - adds r4, r5, 0 - adds r3, r6, 0 -_080BB52A: - adds r0, r4, r2 - strb r1, [r0] - adds r0, r3, r2 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _080BB52A - movs r2, 0 - mov r12, r7 - movs r5, 0 -_080BB542: - movs r1, 0 - adds r7, r2, 0x1 - lsls r4, r2, 2 - lsls r6, r2, 1 - adds r3, r4, 0 -_080BB54C: - adds r0, r3, r1 - lsls r0, 1 - add r0, r12 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080BB54C - ldr r1, [sp] - adds r0, r1, r4 - str r5, [r0] - ldr r1, [sp, 0x4] - adds r0, r1, r2 - strb r5, [r0] - mov r1, r10 - adds r0, r1, r6 - strh r5, [r0] - mov r1, r9 - adds r0, r1, r6 - strh r5, [r0] - mov r1, r8 - adds r0, r1, r2 - strb r5, [r0] - lsls r0, r7, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080BB542 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB4AC - - thumb_func_start sub_80BB594 -sub_80BB594: @ 80BB594 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08 - adds r0, r1 - bl sub_80BB4AC - pop {r0} - bx r0 - .align 2, 0 -_080BB5B0: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BB594 - - thumb_func_start sub_80BB5B4 -sub_80BB5B4: @ 80BB5B4 - push {r4,lr} - movs r4, 0 -_080BB5B8: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BB594 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - bls _080BB5B8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BB5B4 - - thumb_func_start sub_80BB5D0 -sub_80BB5D0: @ 80BB5D0 - ldr r0, _080BB5DC @ =gUnknown_020387DC - ldr r1, _080BB5E0 @ =gUnknown_0202E8CC - ldrh r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_080BB5DC: .4byte gUnknown_020387DC -_080BB5E0: .4byte gUnknown_0202E8CC - thumb_func_end sub_80BB5D0 - - thumb_func_start sub_80BB5E4 -sub_80BB5E4: @ 80BB5E4 - push {r4,lr} - ldr r0, _080BB5F4 @ =gScriptResult - movs r1, 0 - strh r1, [r0] - movs r3, 0 - adds r4, r0, 0 - b _080BB5FE - .align 2, 0 -_080BB5F4: .4byte gScriptResult -_080BB5F8: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_080BB5FE: - cmp r3, 0x13 - bhi _080BB626 - ldr r2, _080BB62C @ =gUnknown_020387DC - ldr r1, _080BB630 @ =gSaveBlock1 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r1 - ldr r1, _080BB634 @ =0x00001a08 - adds r0, r1 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _080BB5F8 - movs r0, 0x1 - strh r0, [r4] - ldr r0, _080BB638 @ =0x00004054 - adds r1, r3, 0 - bl VarSet -_080BB626: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB62C: .4byte gUnknown_020387DC -_080BB630: .4byte gSaveBlock1 -_080BB634: .4byte 0x00001a08 -_080BB638: .4byte 0x00004054 - thumb_func_end sub_80BB5E4 - - thumb_func_start sub_80BB63C -sub_80BB63C: @ 80BB63C - push {lr} - ldr r0, _080BB654 @ =gSaveBlock1 - ldr r1, _080BB658 @ =0x00001a08 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080BB660 - ldr r1, _080BB65C @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - b _080BB664 - .align 2, 0 -_080BB654: .4byte gSaveBlock1 -_080BB658: .4byte 0x00001a08 -_080BB65C: .4byte gScriptResult -_080BB660: - ldr r0, _080BB668 @ =gScriptResult - strh r1, [r0] -_080BB664: - pop {r0} - bx r0 - .align 2, 0 -_080BB668: .4byte gScriptResult - thumb_func_end sub_80BB63C - - thumb_func_start sub_80BB66C -sub_80BB66C: @ 80BB66C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - adds r1, r0, 0 - ldr r2, _080BB6A4 @ =0x00000fff - adds r0, r2, 0 - ands r1, r0 - adds r0, r1, 0 - subs r0, 0x90 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6A8 - movs r0, 0x1 - b _080BB702 - .align 2, 0 -_080BB6A4: .4byte 0x00000fff -_080BB6A8: - adds r0, r1, 0 - subs r0, 0x92 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6B8 - movs r0, 0x2 - b _080BB702 -_080BB6B8: - adds r0, r1, 0 - subs r0, 0x9A - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6C8 - movs r0, 0x3 - b _080BB702 -_080BB6C8: - adds r0, r1, 0 - subs r0, 0x94 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080BB6D8 - movs r0, 0x4 - b _080BB702 -_080BB6D8: - adds r0, r1, 0 - subs r0, 0x96 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BB6EC - cmp r1, 0x9C - beq _080BB6EC - cmp r1, 0x9D - bne _080BB6F0 -_080BB6EC: - movs r0, 0x5 - b _080BB702 -_080BB6F0: - adds r0, r1, 0 - subs r0, 0x98 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BB700 - movs r0, 0 - b _080BB702 -_080BB700: - movs r0, 0x6 -_080BB702: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BB66C - - thumb_func_start sub_80BB70C -sub_80BB70C: @ 80BB70C - push {r4,lr} - ldr r4, _080BB720 @ =gUnknown_0202E8D2 - bl sub_80BB66C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BB720: .4byte gUnknown_0202E8D2 - thumb_func_end sub_80BB70C - - thumb_func_start unref_sub_80BB724 -unref_sub_80BB724: @ 80BB724 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - movs r2, 0 - ldr r6, _080BB748 @ =0x00000fff - lsrs r3, r1, 24 - ldr r5, _080BB74C @ =0x000001ff -_080BB732: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, r3 - bne _080BB750 - lsls r0, r2, 16 - asrs r0, 16 - b _080BB75E - .align 2, 0 -_080BB748: .4byte 0x00000fff -_080BB74C: .4byte 0x000001ff -_080BB750: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r5 - bls _080BB732 - movs r0, 0x1 - negs r0, r0 -_080BB75E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end unref_sub_80BB724 - - thumb_func_start sub_80BB764 -sub_80BB764: @ 80BB764 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - movs r0, 0 - mov r12, r0 - ldr r1, _080BB7C8 @ =gMapHeader - ldr r0, [r1] - ldr r3, [r0, 0x4] - cmp r12, r3 - bge _080BB7EE - ldr r0, [r0] - str r0, [sp, 0x4] - str r3, [sp] -_080BB78E: - movs r2, 0 - mov r1, r12 - lsls r7, r1, 16 - ldr r0, [sp, 0x4] - cmp r2, r0 - bge _080BB7DC - ldr r0, _080BB7C8 @ =gMapHeader - ldr r1, [r0] - asrs r0, r7, 16 - ldr r4, [r1] - adds r6, r0, 0 - muls r6, r4 - ldr r5, [r1, 0xC] -_080BB7A8: - lsls r0, r2, 16 - asrs r3, r0, 16 - adds r0, r6, r3 - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r0, _080BB7CC @ =0x000003ff - ands r0, r1 - cmp r0, r8 - bne _080BB7D0 - mov r1, r9 - strh r2, [r1] - mov r1, r12 - mov r0, r10 - strh r1, [r0] - b _080BB7EE - .align 2, 0 -_080BB7C8: .4byte gMapHeader -_080BB7CC: .4byte 0x000003ff -_080BB7D0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r4 - blt _080BB7A8 -_080BB7DC: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r1, r0, 16 - mov r12, r1 - asrs r0, 16 - ldr r1, [sp] - cmp r0, r1 - blt _080BB78E -_080BB7EE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB764 - - thumb_func_start sub_80BB800 -sub_80BB800: @ 80BB800 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - movs r5, 0 - mov r12, r4 - lsls r0, 16 - asrs r3, r0, 16 - ldr r1, _080BB84C @ =gUnknown_083D1358 - mov r8, r1 - adds r7, r0, 0 - mov r4, sp - mov r6, r12 -_080BB834: - ldr r0, _080BB84C @ =gUnknown_083D1358 - lsls r1, r5, 2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r3 - bne _080BB850 - movs r3, 0 - ldrsh r0, [r4, r3] - movs r5, 0 - ldrsh r1, [r6, r5] - ldrh r3, [r2, 0x2] - b _080BB878 - .align 2, 0 -_080BB84C: .4byte gUnknown_083D1358 -_080BB850: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080BB834 - movs r5, 0 - mov r4, sp - mov r6, r12 -_080BB860: - lsls r0, r5, 2 - mov r1, r8 - adds r3, r0, r1 - ldrh r1, [r3, 0x2] - asrs r0, r7, 16 - cmp r1, r0 - bne _080BB892 - movs r2, 0 - ldrsh r0, [r4, r2] - movs r5, 0 - ldrsh r1, [r6, r5] - ldrh r3, [r3] -_080BB878: - movs r5, 0xC0 - lsls r5, 4 - adds r2, r5, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0 - ldrsh r1, [r6, r2] - bl CurrentMapDrawMetatileAt - b _080BB89C -_080BB892: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080BB860 -_080BB89C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB800 - - thumb_func_start sub_80BB8A8 -sub_80BB8A8: @ 80BB8A8 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BB8AE: - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BB8BA - adds r0, r1, 0 - b _080BB8C6 -_080BB8BA: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x6 - bls _080BB8AE - movs r0, 0x7 -_080BB8C6: - pop {r1} - bx r1 - thumb_func_end sub_80BB8A8 - - thumb_func_start sub_80BB8CC -sub_80BB8CC: @ 80BB8CC - push {r4-r6,lr} - ldr r2, _080BB948 @ =gSaveBlock1 - ldr r0, _080BB94C @ =gUnknown_020387DC - ldrb r1, [r0] - ldr r3, _080BB950 @ =0x00001a08 - adds r0, r2, r3 - strb r1, [r0] - movs r3, 0 - ldr r0, _080BB954 @ =0x00001a11 - adds r2, r0 - ldr r4, _080BB958 @ =gSaveBlock2 + 0xA -_080BB8E2: - adds r1, r3, r2 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080BB8E2 - ldr r0, _080BB95C @ =0x00004054 - movs r1, 0 - bl VarSet - ldr r6, _080BB960 @ =gSaveBlock2 - adds r0, r6, 0 - bl sub_80BB8A8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x7 - bl memset - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl StringCopyN - ldrb r0, [r6, 0x8] - subs r5, 0x1 - movs r1, 0x1 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r0, _080BB968 @ =0x00004026 - ldr r1, _080BB96C @ =gMapHeader - ldrb r1, [r1, 0x14] - bl VarSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BB948: .4byte gSaveBlock1 -_080BB94C: .4byte gUnknown_020387DC -_080BB950: .4byte 0x00001a08 -_080BB954: .4byte 0x00001a11 -_080BB958: .4byte gSaveBlock2 + 0xA -_080BB95C: .4byte 0x00004054 -_080BB960: .4byte gSaveBlock2 -_080BB964: .4byte gSaveBlock1 + 0x1A0A -_080BB968: .4byte 0x00004026 -_080BB96C: .4byte gMapHeader - thumb_func_end sub_80BB8CC - - thumb_func_start sub_80BB970 -sub_80BB970: @ 80BB970 - push {r4-r7,lr} - adds r5, r0, 0 - movs r2, 0 - b _080BBA06 -_080BB978: - ldr r0, [r5, 0x10] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x5] - adds r7, r2, 0x1 - cmp r0, 0x8 - bne _080BBA02 - movs r2, 0 - ldr r4, _080BB9E0 @ =gSaveBlock1 - adds r6, r1, 0 -_080BB990: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 5 - adds r0, r4 - ldr r1, _080BB9E4 @ =0x00001a08 - adds r0, r1 - ldrb r1, [r0] - ldr r0, [r3, 0x8] - cmp r1, r0 - bne _080BB9F8 - ldrh r0, [r3] - adds r0, 0x7 - ldrh r1, [r3, 0x2] - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r3, 0 - lsls r0, 16 - asrs r4, r0, 16 -_080BB9B6: - ldr r0, _080BB9E8 @ =gUnknown_083D1358 - lsls r1, r3, 2 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, r4 - bne _080BB9EC - ldr r1, [r5, 0x10] - adds r1, r6, r1 - ldrh r0, [r1] - adds r0, 0x7 - ldrh r1, [r1, 0x2] - adds r1, 0x7 - ldrh r3, [r2, 0x2] - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - b _080BBA02 - .align 2, 0 -_080BB9E0: .4byte gSaveBlock1 -_080BB9E4: .4byte 0x00001a08 -_080BB9E8: .4byte gUnknown_083D1358 -_080BB9EC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6 - bls _080BB9B6 - b _080BBA02 -_080BB9F8: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x13 - bls _080BB990 -_080BBA02: - lsls r0, r7, 16 - lsrs r2, r0, 16 -_080BBA06: - ldrb r0, [r5, 0x3] - cmp r2, r0 - bcc _080BB978 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BB970 - - thumb_func_start sub_80BBA14 -sub_80BBA14: @ 80BBA14 - push {lr} - ldr r0, _080BBA40 @ =gUnknown_020387DC - ldrb r0, [r0] - movs r1, 0xA - bl __udivsi3 - ldr r2, _080BBA44 @ =gUnknown_083D1374 - lsls r0, 26 - asrs r0, 24 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r0, 0x1 - adds r0, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0x19 - bl warp1_set_2 - pop {r0} - bx r0 - .align 2, 0 -_080BBA40: .4byte gUnknown_020387DC -_080BBA44: .4byte gUnknown_083D1374 - thumb_func_end sub_80BBA14 - - thumb_func_start sub_80BBA48 -sub_80BBA48: @ 80BBA48 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080BBA6C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080BBA7C - cmp r0, 0x1 - bgt _080BBA70 - cmp r0, 0 - beq _080BBA76 - b _080BBAD0 - .align 2, 0 -_080BBA6C: .4byte gTasks -_080BBA70: - cmp r0, 0x2 - beq _080BBA94 - b _080BBAD0 -_080BBA76: - movs r0, 0x1 - strh r0, [r2, 0x8] - b _080BBAD0 -_080BBA7C: - ldr r0, _080BBA90 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BBAD0 - movs r0, 0x2 - strh r0, [r2, 0x8] - b _080BBAD0 - .align 2, 0 -_080BBA90: .4byte gPaletteFade -_080BBA94: - ldr r0, _080BBAD8 @ =0x00004054 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080BBADC @ =gSaveBlock1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BBAE0 @ =0x00001a18 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _080BBAB6 - adds r0, 0x1 - strb r0, [r1] -_080BBAB6: - bl sub_80BBA14 - bl warp_in - ldr r0, _080BBAE4 @ =gUnknown_0300485C - ldr r1, _080BBAE8 @ =sub_8080990 - str r1, [r0] - ldr r0, _080BBAEC @ =CB2_LoadMap - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_080BBAD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBAD8: .4byte 0x00004054 -_080BBADC: .4byte gSaveBlock1 -_080BBAE0: .4byte 0x00001a18 -_080BBAE4: .4byte gUnknown_0300485C -_080BBAE8: .4byte sub_8080990 -_080BBAEC: .4byte CB2_LoadMap - thumb_func_end sub_80BBA48 - - thumb_func_start sub_80BBAF0 -sub_80BBAF0: @ 80BBAF0 - push {lr} - ldr r0, _080BBB1C @ =sub_80BBA48 - movs r1, 0 - bl CreateTask - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r0, _080BBB20 @ =gSaveBlock1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - pop {r0} - bx r0 - .align 2, 0 -_080BBB1C: .4byte sub_80BBA48 -_080BBB20: .4byte gSaveBlock1 - thumb_func_end sub_80BBAF0 - - thumb_func_start sub_80BBB24 -sub_80BBB24: @ 80BBB24 - push {lr} - ldr r0, _080BBB40 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x9 - bne _080BBB48 - ldr r0, _080BBB44 @ =0x00004097 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080BBB48 - movs r0, 0 - b _080BBB4A - .align 2, 0 -_080BBB40: .4byte gMapHeader -_080BBB44: .4byte 0x00004097 -_080BBB48: - movs r0, 0x1 -_080BBB4A: - pop {r1} - bx r1 - thumb_func_end sub_80BBB24 - - thumb_func_start sub_80BBB50 -sub_80BBB50: @ 80BBB50 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080BBB88 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BBB8C @ =gMapObjects - adds r0, r1 - movs r1, 0x2 - bl FieldObjectTurn - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BBB80 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_080BBB80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBB88: .4byte gPlayerAvatar -_080BBB8C: .4byte gMapObjects - thumb_func_end sub_80BBB50 - - thumb_func_start sub_80BBB90 -sub_80BBB90: @ 80BBB90 - push {r4,lr} - sub sp, 0x4 - bl ScriptContext2_Enable - bl HideMapNamePopUpWindow - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x7 - movs r2, 0 - ldrsh r1, [r4, r2] - adds r1, 0x7 - movs r2, 0xE2 - lsls r2, 4 - bl MapGridSetMetatileIdAt - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x7 - movs r2, 0 - ldrsh r1, [r4, r2] - adds r1, 0x7 - bl CurrentMapDrawMetatileAt - bl pal_fill_black - ldr r0, _080BBBE8 @ =sub_80BBB50 - movs r1, 0 - bl CreateTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BBBE8: .4byte sub_80BBB50 - thumb_func_end sub_80BBB90 - - thumb_func_start sub_80BBBEC -sub_80BBBEC: @ 80BBBEC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080BBC5C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BBC52 - ldr r0, _080BBC60 @ =gUnknown_020387DC - ldrb r0, [r0] - movs r1, 0xA - bl __udivsi3 - ldr r1, _080BBC64 @ =gSaveBlock1 - movs r5, 0x4 - ldrsb r5, [r1, r5] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r4, _080BBC68 @ =gUnknown_083D1374 - lsls r0, 26 - asrs r0, 24 - adds r3, r0, 0x2 - adds r3, r4 - ldrb r3, [r3] - lsls r3, 24 - asrs r3, 24 - adds r0, 0x3 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - adds r0, r5, 0 - bl warp1_set - bl warp_in - ldr r1, _080BBC6C @ =gUnknown_0300485C - ldr r0, _080BBC70 @ =sub_80BBB90 - str r0, [r1] - ldr r0, _080BBC74 @ =CB2_LoadMap - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_080BBC52: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BBC5C: .4byte gPaletteFade -_080BBC60: .4byte gUnknown_020387DC -_080BBC64: .4byte gSaveBlock1 -_080BBC68: .4byte gUnknown_083D1374 -_080BBC6C: .4byte gUnknown_0300485C -_080BBC70: .4byte sub_80BBB90 -_080BBC74: .4byte CB2_LoadMap - thumb_func_end sub_80BBBEC - - thumb_func_start sub_80BBC78 -sub_80BBC78: @ 80BBC78 - push {lr} - ldr r0, _080BBCA0 @ =sub_80BBBEC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BBCA4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080BBCA0: .4byte sub_80BBBEC -_080BBCA4: .4byte gTasks - thumb_func_end sub_80BBC78 - - thumb_func_start CurrentMapIsSecretBase -CurrentMapIsSecretBase: @ 80BBCA8 - push {lr} - ldr r1, _080BBCC0 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x19 - bne _080BBCC4 - ldrb r0, [r1, 0x5] - cmp r0, 0x17 - bhi _080BBCC4 - movs r0, 0x1 - b _080BBCC6 - .align 2, 0 -_080BBCC0: .4byte gSaveBlock1 -_080BBCC4: - movs r0, 0 -_080BBCC6: - pop {r1} - bx r1 - thumb_func_end CurrentMapIsSecretBase - - thumb_func_start sub_80BBCCC -sub_80BBCCC: @ 80BBCCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl CurrentMapIsSecretBase - lsls r0, 24 - cmp r0, 0 - beq _080BBDBC - ldr r0, _080BBD70 @ =0x00004054 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - movs r1, 0 - mov r0, sp - strh r1, [r0] - ldr r6, _080BBD74 @ =gSaveBlock1 - mov r4, sp - ldr r0, _080BBD78 @ =0x00001a2a - adds r7, r6, r0 -_080BBCFC: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - ldrh r1, [r4] - adds r2, r0, r1 - ldr r1, _080BBD7C @ =0x00001a1a - adds r0, r6, r1 - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x77 - bhi _080BBD3A - ldr r0, _080BBD80 @ =gDecorations - ldrb r3, [r1] - lsls r1, r3, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - beq _080BBD3A - adds r0, r2, r7 - ldrb r2, [r0] - lsrs r0, r2, 4 - adds r0, 0x7 - movs r1, 0xF - ands r1, r2 - adds r1, 0x7 - adds r2, r3, 0 - bl sub_80FF394 -_080BBD3A: - ldrh r0, [r4] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r4] - cmp r0, 0xF - bls _080BBCFC - cmp r5, 0 - beq _080BBD88 - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x7 - ldr r2, _080BBD84 @ =0x00000e21 - bl MapGridSetMetatileIdAt - b _080BBDBC - .align 2, 0 -_080BBD70: .4byte 0x00004054 -_080BBD74: .4byte gSaveBlock1 -_080BBD78: .4byte 0x00001a2a -_080BBD7C: .4byte 0x00001a1a -_080BBD80: .4byte gDecorations -_080BBD84: .4byte 0x00000e21 -_080BBD88: - mov r0, r8 - cmp r0, 0x1 - bne _080BBDBC - ldr r0, _080BBDC8 @ =0x00004089 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080BBDBC - mov r4, sp - adds r4, 0x2 - movs r2, 0x88 - lsls r2, 2 - mov r0, sp - adds r1, r4, 0 - bl sub_80BB764 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x7 - ldr r2, _080BBDCC @ =0x00000e0a - bl MapGridSetMetatileIdAt -_080BBDBC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBDC8: .4byte 0x00004089 -_080BBDCC: .4byte 0x00000e0a - thumb_func_end sub_80BBCCC - - thumb_func_start sub_80BBDD0 -sub_80BBDD0: @ 80BBDD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, _080BBE00 @ =0x00004054 - bl VarGet - lsls r0, 16 - lsrs r4, r0, 16 - bl CurrentMapIsSecretBase - lsls r0, 24 - cmp r0, 0 - bne _080BBE08 - ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688 - str r0, [sp, 0x4] - adds r0, 0xC - str r0, [sp, 0x8] - movs r1, 0xC - str r1, [sp, 0xC] - b _080BBE1E - .align 2, 0 -_080BBE00: .4byte 0x00004054 -_080BBE04: .4byte gSaveBlock1 + 0x2688 -_080BBE08: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 5 - ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A - adds r2, r1, r0 - str r2, [sp, 0x4] - adds r0, 0x10 - adds r1, r0 - str r1, [sp, 0x8] - movs r3, 0x10 - str r3, [sp, 0xC] -_080BBE1E: - movs r6, 0 - ldr r4, [sp, 0xC] - cmp r6, r4 - bcc _080BBE28 - b _080BBF6C -_080BBE28: - ldr r5, _080BBF80 @ =gSaveBlock1 - mov r10, r5 -_080BBE2C: - ldr r1, [sp, 0x4] - adds r0, r1, r6 - ldrb r1, [r0] - mov r9, r0 - adds r2, r6, 0x1 - str r2, [sp, 0x10] - cmp r1, 0 - bne _080BBE3E - b _080BBF5E -_080BBE3E: - ldrb r0, [r0] - lsls r0, 5 - ldr r3, _080BBF84 @ =gDecorations - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _080BBE4E - b _080BBF5E -_080BBE4E: - movs r5, 0 - ldr r0, _080BBF88 @ =gMapHeader - ldr r2, [r0, 0x4] - ldrb r3, [r2] - mov r8, r0 - cmp r5, r3 - bcs _080BBE8E - ldr r0, [r2, 0x4] - ldrh r1, [r0, 0x14] - ldr r4, _080BBF8C @ =gUnknown_0202E8CC - ldrh r0, [r4] - adds r0, 0xAE - adds r7, r4, 0 - cmp r1, r0 - beq _080BBE8E - adds r4, r2, 0 - adds r2, r3, 0 -_080BBE70: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r2 - bcs _080BBE8E - ldr r1, [r4, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x14] - ldrh r0, [r7] - adds r0, 0xAE - cmp r1, r0 - bne _080BBE70 -_080BBE8E: - mov r1, r8 - ldr r0, [r1, 0x4] - ldrb r0, [r0] - cmp r5, r0 - beq _080BBF5E - ldr r7, _080BBF90 @ =gUnknown_0202E8D0 - ldr r2, [sp, 0x8] - adds r1, r2, r6 - ldrb r0, [r1] - lsrs r0, 4 - strh r0, [r7] - ldr r6, _080BBF94 @ =gUnknown_0202E8D2 - ldrb r1, [r1] - movs r0, 0xF - ands r0, r1 - strh r0, [r6] - ldrh r0, [r7] - adds r0, 0x7 - ldrh r1, [r6] - adds r1, 0x7 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80572D8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BBEDA - adds r0, r4, 0 - bl sub_80572EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BBF5E -_080BBEDA: - mov r3, r8 - ldr r0, [r3, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 3 - adds r1, r4, r1 - ldr r5, _080BBF98 @ =0x00003f20 - adds r0, r5, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, _080BBF9C @ =gScriptResult - strh r0, [r1] - ldrh r0, [r1] - mov r2, r9 - ldrb r1, [r2] - lsls r1, 5 - ldr r3, _080BBFA0 @ =gDecorations + 0x1C - adds r1, r3 - ldr r1, [r1] - ldrh r1, [r1] - bl VarSet - mov r5, r8 - ldr r0, [r5, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - ldr r1, _080BBF9C @ =gScriptResult - strh r0, [r1] - ldr r2, _080BBF8C @ =gUnknown_0202E8CC - ldrh r0, [r2] - adds r0, 0xAE - lsls r0, 16 - lsrs r0, 16 - bl FlagReset - ldr r3, _080BBF9C @ =gScriptResult - ldrb r0, [r3] - mov r4, r10 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - bl show_sprite - ldr r5, _080BBF9C @ =gScriptResult - ldrb r0, [r5] - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r4, 0 - ldrsh r3, [r7, r4] - movs r5, 0 - ldrsh r4, [r6, r5] - str r4, [sp] - bl sub_805C0F8 - ldr r1, _080BBF9C @ =gScriptResult - ldrb r0, [r1] - mov r2, r10 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_805C78C - ldr r3, _080BBF8C @ =gUnknown_0202E8CC - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080BBF5E: - ldr r4, [sp, 0x10] - lsls r0, r4, 24 - lsrs r6, r0, 24 - ldr r5, [sp, 0xC] - cmp r6, r5 - bcs _080BBF6C - b _080BBE2C -_080BBF6C: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BBF7C: .4byte gSaveBlock1 + 0x1A1A -_080BBF80: .4byte gSaveBlock1 -_080BBF84: .4byte gDecorations -_080BBF88: .4byte gMapHeader -_080BBF8C: .4byte gUnknown_0202E8CC -_080BBF90: .4byte gUnknown_0202E8D0 -_080BBF94: .4byte gUnknown_0202E8D2 -_080BBF98: .4byte 0x00003f20 -_080BBF9C: .4byte gScriptResult -_080BBFA0: .4byte gDecorations + 0x1C - thumb_func_end sub_80BBDD0 - - thumb_func_start sub_80BBFA4 -sub_80BBFA4: @ 80BBFA4 - push {r4,r5,lr} - ldr r0, _080BBFCC @ =0x00004054 - bl VarGet - ldr r5, _080BBFD0 @ =0x0000401f - ldr r4, _080BBFD4 @ =gUnknown_083D13EC - lsls r0, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - bl VarSet - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BBFCC: .4byte 0x00004054 -_080BBFD0: .4byte 0x0000401f -_080BBFD4: .4byte gUnknown_083D13EC - thumb_func_end sub_80BBFA4 - - thumb_func_start sub_80BBFD8 -sub_80BBFD8: @ 80BBFD8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r3, 0 - ldrb r0, [r4, 0x3] - cmp r3, r0 - bge _080BC030 - ldr r6, _080BC01C @ =gUnknown_020387DC -_080BBFE8: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r4, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x5] - cmp r0, 0x8 - bne _080BC020 - movs r0, 0 - ldrsh r1, [r5, r0] - ldrh r0, [r2] - adds r0, 0x7 - cmp r1, r0 - bne _080BC020 - movs r0, 0x2 - ldrsh r1, [r5, r0] - ldrh r0, [r2, 0x2] - adds r0, 0x7 - cmp r1, r0 - bne _080BC020 - ldr r0, [r2, 0x8] - strb r0, [r6] - b _080BC030 - .align 2, 0 -_080BC01C: .4byte gUnknown_020387DC -_080BC020: - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r1, [r4, 0x3] - cmp r0, r1 - blt _080BBFE8 -_080BC030: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BBFD8 - - thumb_func_start sub_80BC038 -sub_80BC038: @ 80BC038 - push {lr} - bl sub_80BBFD8 - bl sub_80BB5E4 - ldr r0, _080BC04C @ =gUnknown_081A2E14 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080BC04C: .4byte gUnknown_081A2E14 - thumb_func_end sub_80BC038 - - thumb_func_start sub_80BC050 -sub_80BC050: @ 80BC050 - push {lr} - bl sub_80BB5D0 - bl sub_80BB5E4 - ldr r0, _080BC068 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080BC06C - movs r0, 0x1 - b _080BC06E - .align 2, 0 -_080BC068: .4byte gScriptResult -_080BC06C: - movs r0, 0 -_080BC06E: - pop {r1} - bx r1 - thumb_func_end sub_80BC050 - - thumb_func_start sub_80BC074 -sub_80BC074: @ 80BC074 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080BC098 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080BC0AC - cmp r0, 0x1 - bgt _080BC09C - cmp r0, 0 - beq _080BC0A2 - b _080BC0E4 - .align 2, 0 -_080BC098: .4byte gTasks -_080BC09C: - cmp r0, 0x2 - beq _080BC0C4 - b _080BC0E4 -_080BC0A2: - bl ScriptContext2_Enable - movs r0, 0x1 - strh r0, [r4, 0x8] - b _080BC0E4 -_080BC0AC: - ldr r0, _080BC0C0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080BC0E4 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080BC0E4 - .align 2, 0 -_080BC0C0: .4byte gPaletteFade -_080BC0C4: - movs r0, 0x7E - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - bl warp_in - ldr r0, _080BC0EC @ =gUnknown_0300485C - ldr r1, _080BC0F0 @ =mapldr_default - str r1, [r0] - ldr r0, _080BC0F4 @ =CB2_LoadMap - bl SetMainCallback2 - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask -_080BC0E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC0EC: .4byte gUnknown_0300485C -_080BC0F0: .4byte mapldr_default -_080BC0F4: .4byte CB2_LoadMap - thumb_func_end sub_80BC074 - - thumb_func_start sub_80BC0F8 -sub_80BC0F8: @ 80BC0F8 - push {lr} - ldr r0, _080BC110 @ =sub_80BC074 - movs r1, 0 - bl CreateTask - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - .align 2, 0 -_080BC110: .4byte sub_80BC074 - thumb_func_end sub_80BC0F8 - - thumb_func_start sub_80BC114 -sub_80BC114: @ 80BC114 - push {lr} - ldr r0, _080BC12C @ =gSaveBlock1 - ldr r1, _080BC130 @ =0x00001a08 - adds r0, r1 - ldr r1, _080BC134 @ =gUnknown_020387DC - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BC13C - ldr r1, _080BC138 @ =gScriptResult - movs r0, 0x1 - b _080BC140 - .align 2, 0 -_080BC12C: .4byte gSaveBlock1 -_080BC130: .4byte 0x00001a08 -_080BC134: .4byte gUnknown_020387DC -_080BC138: .4byte gScriptResult -_080BC13C: - ldr r1, _080BC148 @ =gScriptResult - movs r0, 0 -_080BC140: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BC148: .4byte gScriptResult - thumb_func_end sub_80BC114 - - thumb_func_start sub_80BC14C -sub_80BC14C: @ 80BC14C - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r5, _080BC174 @ =gSaveBlock1 - ldr r4, _080BC178 @ =0x00001a08 -_080BC158: - lsls r0, r2, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _080BC17C - lsls r0, r2, 24 - lsrs r0, 24 - b _080BC18A - .align 2, 0 -_080BC174: .4byte gSaveBlock1 -_080BC178: .4byte 0x00001a08 -_080BC17C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BC158 - movs r0, 0 -_080BC18A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC14C - - thumb_func_start sub_80BC190 -sub_80BC190: @ 80BC190 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r1, 2 - adds r4, r1 - lsls r4, 5 - ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A - adds r4, r0 - adds r0, r4, 0 - bl sub_80BB8A8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringCopyN - movs r1, 0xFF - strb r1, [r0] - ldr r1, _080BC1CC @ =gOtherText_PlayersBase - adds r0, r5, 0 - bl StringAppend - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080BC1C8: .4byte gSaveBlock1 + 0x1A0A -_080BC1CC: .4byte gOtherText_PlayersBase - thumb_func_end sub_80BC190 - - thumb_func_start GetSecretBaseMapName -GetSecretBaseMapName: @ 80BC1D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - ldr r6, _080BC214 @ =gUnknown_020387DC - ldr r5, _080BC218 @ =gSaveBlock1 - ldr r4, _080BC21C @ =0x00004054 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r5 - ldr r0, _080BC220 @ =0x00001a08 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r6] - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_80BC190 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080BC214: .4byte gUnknown_020387DC -_080BC218: .4byte gSaveBlock1 -_080BC21C: .4byte 0x00004054 -_080BC220: .4byte 0x00001a08 - thumb_func_end GetSecretBaseMapName - - thumb_func_start sub_80BC224 -sub_80BC224: @ 80BC224 - push {r4,r5,lr} - ldr r0, _080BC25C @ =0x00004054 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A - adds r4, r0 - ldr r5, _080BC264 @ =gStringVar1 - adds r0, r4, 0 - bl sub_80BB8A8 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl StringCopyN - movs r1, 0xFF - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC25C: .4byte 0x00004054 -_080BC260: .4byte gSaveBlock1 + 0x1A0A -_080BC264: .4byte gStringVar1 - thumb_func_end sub_80BC224 - - thumb_func_start sub_80BC268 -sub_80BC268: @ 80BC268 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BC288 @ =gSaveBlock1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BC28C @ =0x00001a09 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 6 - cmp r0, 0 - bne _080BC290 - movs r0, 0 - b _080BC292 - .align 2, 0 -_080BC288: .4byte gSaveBlock1 -_080BC28C: .4byte 0x00001a09 -_080BC290: - movs r0, 0x1 -_080BC292: - pop {r1} - bx r1 - thumb_func_end sub_80BC268 - - thumb_func_start sub_80BC298 -sub_80BC298: @ 80BC298 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1B - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1C - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1D - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1E - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x1F - bl GetMonData - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC298 - - thumb_func_start sub_80BC300 -sub_80BC300: @ 80BC300 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - movs r6, 0 - mov r9, r6 -_080BC314: - movs r4, 0 - lsls r3, r6, 2 - lsls r2, r6, 1 - ldr r7, _080BC424 @ =gPlayerParty - adds r1, r6, 0x1 - str r1, [sp] - adds r1, r3, 0 -_080BC322: - adds r0, r1, r4 - lsls r0, 1 - ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54 - adds r0, r5, r0 - mov r5, r9 - strh r5, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080BC322 - ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84 - adds r0, r1, r2 - strh r5, [r0] - ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90 - adds r0, r5, r2 - mov r1, r9 - strh r1, [r0] - ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C - adds r0, r2, r6 - mov r5, r9 - strb r5, [r0] - ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C - adds r0, r1, r3 - mov r2, r9 - str r2, [r0] - ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2 - adds r0, r3, r6 - strb r2, [r0] - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - adds r4, r5, r7 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080BC408 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080BC408 - movs r4, 0 - mov r0, r10 - lsls r0, 2 - mov r8, r0 - mov r1, r10 - lsls r7, r1, 1 - adds r1, 0x1 - str r1, [sp, 0x4] - ldr r2, _080BC424 @ =gPlayerParty -_080BC38E: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r5, r2 - str r2, [sp, 0x8] - bl GetMonData - mov r3, r8 - adds r1, r3, r4 - lsls r1, 1 - ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54 - adds r1, r3, r1 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r2, [sp, 0x8] - cmp r4, 0x3 - bls _080BC38E - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, _080BC424 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84 - adds r1, r5, r7 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90 - adds r1, r2, r7 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C - add r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C - add r1, r8 - str r0, [r1] - adds r0, r4, 0 - bl sub_80BC298 - ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2 - add r1, r10 - strb r0, [r1] - ldr r3, [sp, 0x4] - lsls r0, r3, 16 - lsrs r0, 16 - mov r10, r0 -_080BC408: - ldr r5, [sp] - lsls r0, r5, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080BC314 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BC424: .4byte gPlayerParty -_080BC428: .4byte gSaveBlock1 + 0x1A54 -_080BC42C: .4byte gSaveBlock1 + 0x1A84 -_080BC430: .4byte gSaveBlock1 + 0x1A90 -_080BC434: .4byte gSaveBlock1 + 0x1A9C -_080BC438: .4byte gSaveBlock1 + 0x1A3C -_080BC43C: .4byte gSaveBlock1 + 0x1AA2 - thumb_func_end sub_80BC300 - - thumb_func_start sub_80BC440 -sub_80BC440: @ 80BC440 - push {r4,r5,lr} - ldr r4, _080BC45C @ =gSaveBlock1 - ldr r0, _080BC460 @ =0x00001a16 - adds r4, r0 - ldrh r5, [r4] - movs r0, 0 - bl sub_80BB594 - strh r5, [r4] - bl sub_80BC0F8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC45C: .4byte gSaveBlock1 -_080BC460: .4byte 0x00001a16 - thumb_func_end sub_80BC440 - - thumb_func_start sub_80BC464 -sub_80BC464: @ 80BC464 - push {lr} - movs r0, 0x14 - bl sav12_xor_increment - bl sub_80BC440 - pop {r0} - bx r0 - thumb_func_end sub_80BC464 - - thumb_func_start sub_80BC474 -sub_80BC474: @ 80BC474 - push {r4-r7,lr} - ldr r0, _080BC4CC @ =gMapHeader - ldr r4, [r0, 0x4] - movs r6, 0 - ldrb r0, [r4, 0x3] - cmp r6, r0 - bcs _080BC504 - ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08 -_080BC484: - ldr r2, [r4, 0x10] - lsls r1, r6, 1 - adds r0, r1, r6 - lsls r0, 2 - adds r2, r0, r2 - ldrb r0, [r2, 0x5] - adds r7, r1, 0 - cmp r0, 0x8 - bne _080BC4F8 - ldrb r1, [r3] - ldr r0, [r2, 0x8] - cmp r1, r0 - bne _080BC4F8 - ldrh r0, [r2] - adds r0, 0x7 - ldrh r1, [r2, 0x2] - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0 - ldr r5, _080BC4D4 @ =gUnknown_083D1358 - lsls r0, 16 - asrs r2, r0, 16 -_080BC4B2: - lsls r0, r1, 2 - adds r3, r0, r5 - ldrh r0, [r3, 0x2] - cmp r0, r2 - beq _080BC4D8 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x6 - bls _080BC4B2 -_080BC4C6: - bl DrawWholeMapView - b _080BC504 - .align 2, 0 -_080BC4CC: .4byte gMapHeader -_080BC4D0: .4byte gSaveBlock1 + 0x1A08 -_080BC4D4: .4byte gUnknown_083D1358 -_080BC4D8: - ldr r0, [r4, 0x10] - adds r1, r7, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - ldrh r1, [r1, 0x2] - adds r1, 0x7 - ldrh r3, [r3] - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r2, r3 - bl MapGridSetMetatileIdAt - b _080BC4C6 -_080BC4F8: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4, 0x3] - cmp r6, r0 - bcc _080BC484 -_080BC504: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BC474 - - thumb_func_start sub_80BC50C -sub_80BC50C: @ 80BC50C - push {r4,r5,lr} - bl sub_80BC474 - movs r0, 0x14 - bl sav12_xor_increment - ldr r4, _080BC530 @ =gSaveBlock1 - ldr r0, _080BC534 @ =0x00001a16 - adds r4, r0 - ldrh r5, [r4] - movs r0, 0 - bl sub_80BB594 - strh r5, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC530: .4byte gSaveBlock1 -_080BC534: .4byte 0x00001a16 - thumb_func_end sub_80BC50C - - thumb_func_start sub_80BC538 -sub_80BC538: @ 80BC538 - push {r4,r5,lr} - movs r5, 0 - movs r4, 0x1 -_080BC53E: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC554 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080BC554: - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BC53E - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BC538 - - thumb_func_start sub_80BC56C -sub_80BC56C: @ 80BC56C - push {lr} - ldr r0, _080BC58C @ =gUnknown_020387DC - ldrb r0, [r0] - bl sub_80BC14C - lsls r0, 24 - lsrs r0, 24 - bl sub_80BC268 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080BC594 - ldr r0, _080BC590 @ =gScriptResult - strh r1, [r0] - b _080BC5B2 - .align 2, 0 -_080BC58C: .4byte gUnknown_020387DC -_080BC590: .4byte gScriptResult -_080BC594: - bl sub_80BC538 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080BC5AC - ldr r1, _080BC5A8 @ =gScriptResult - movs r0, 0x2 - b _080BC5B0 - .align 2, 0 -_080BC5A8: .4byte gScriptResult -_080BC5AC: - ldr r1, _080BC5B8 @ =gScriptResult - movs r0, 0 -_080BC5B0: - strh r0, [r1] -_080BC5B2: - pop {r0} - bx r0 - .align 2, 0 -_080BC5B8: .4byte gScriptResult - thumb_func_end sub_80BC56C - - thumb_func_start sub_80BC5BC -sub_80BC5BC: @ 80BC5BC - push {lr} - ldr r0, _080BC5F8 @ =gUnknown_020387DC - ldrb r0, [r0] - bl sub_80BC14C - ldr r2, _080BC5FC @ =gSaveBlock1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BC600 @ =0x00001a09 - adds r1, r0 - ldrb r3, [r1] - lsrs r2, r3, 6 - movs r0, 0x1 - eors r2, r0 - lsls r2, 6 - movs r0, 0x3F - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - movs r0, 0x86 - lsls r0, 1 - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080BC5F8: .4byte gUnknown_020387DC -_080BC5FC: .4byte gSaveBlock1 -_080BC600: .4byte 0x00001a09 - thumb_func_end sub_80BC5BC - - thumb_func_start sub_80BC604 -sub_80BC604: @ 80BC604 - push {lr} - ldr r0, _080BC614 @ =sub_80FE264 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080BC614: .4byte sub_80FE264 - thumb_func_end sub_80BC604 - - thumb_func_start sub_80BC618 -sub_80BC618: @ 80BC618 - push {lr} - ldr r0, _080BC628 @ =sub_80BC62C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080BC628: .4byte sub_80BC62C - thumb_func_end sub_80BC618 - - thumb_func_start sub_80BC62C -sub_80BC62C: @ 80BC62C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl ScriptContext2_Enable - bl sub_80F944C - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BC688 @ =gTasks + 0x8 - adds r4, r0, r1 - bl sub_80BC538 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - adds r1, r0, 0 - cmp r1, 0 - beq _080BC694 - cmp r1, 0x7 - ble _080BC65E - movs r0, 0x7 -_080BC65E: - strh r0, [r4, 0x6] - movs r0, 0 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_80BC7D8 - ldr r1, _080BC68C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BC690 @ =sub_80BC824 - str r1, [r0] - b _080BC6A0 - .align 2, 0 -_080BC688: .4byte gTasks + 0x8 -_080BC68C: .4byte gTasks -_080BC690: .4byte sub_80BC824 -_080BC694: - ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry - ldr r2, _080BC6AC @ =sub_80BCC54 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080BC6A0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC6A8: .4byte gSecretBaseText_NoRegistry -_080BC6AC: .4byte sub_80BCC54 - thumb_func_end sub_80BC62C - - thumb_func_start sub_80BC6B0 -sub_80BC6B0: @ 80BC6B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BC6D8 @ =gTasks + 0x8 - adds r1, r0 - mov r8, r1 - movs r4, 0 - movs r6, 0 - movs r5, 0x1 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r6, r0 - bne _080BC6DC - movs r4, 0x1 - b _080BC706 - .align 2, 0 -_080BC6D8: .4byte gTasks + 0x8 -_080BC6DC: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC6F0 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BC6F0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bhi _080BC706 - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r4, r0 - bne _080BC6DC - adds r4, r5, 0 -_080BC706: - adds r5, r4, 0 - cmp r5, 0x13 - bhi _080BC75A - ldr r7, _080BC7A0 @ =gStringVar1 -_080BC70E: - adds r0, r5, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC750 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80BC190 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - adds r0, r7, 0 - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x8 - beq _080BC75A -_080BC750: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BC70E -_080BC75A: - cmp r6, 0x7 - bhi _080BC7A8 - lsls r3, r6, 1 - adds r4, r3, 0x2 - lsls r4, 24 - lsrs r4, 24 - adds r3, 0x3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - adds r1, r4, 0 - movs r2, 0x1C - bl MenuFillWindowRectWithBlankTile - ldr r0, _080BC7A4 @ =gUnknownText_Exit - movs r1, 0x12 - adds r2, r4, 0 - bl MenuPrint - movs r0, 0x1 - bl SetBgTilemapBuffer - cmp r6, 0x7 - beq _080BC7B2 - lsls r1, r6, 25 - movs r0, 0x80 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x12 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - b _080BC7B2 - .align 2, 0 -_080BC7A0: .4byte gStringVar1 -_080BC7A4: .4byte gUnknownText_Exit -_080BC7A8: - movs r0, 0x1 - movs r1, 0xBC - movs r2, 0x98 - bl sub_80F953C -_080BC7B2: - mov r1, r8 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080BC7C4 - movs r0, 0 - bl SetBgTilemapBuffer - b _080BC7CE -_080BC7C4: - movs r0, 0 - movs r1, 0xBC - movs r2, 0x8 - bl sub_80F953C -_080BC7CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BC6B0 - - thumb_func_start sub_80BC7D8 -sub_80BC7D8: @ 80BC7D8 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080BC820 @ =gTasks + 0x8 - adds r4, r0 - movs r0, 0x11 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldrb r3, [r4, 0x6] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x2] - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x12 - movs r2, 0x2 - bl InitMenu - adds r0, r5, 0 - bl sub_80BC6B0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BC820: .4byte gTasks + 0x8 - thumb_func_end sub_80BC7D8 - - thumb_func_start sub_80BC824 -sub_80BC824: @ 80BC824 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080BC858 @ =gTasks + 0x8 - adds r4, r0, r1 - ldr r2, _080BC85C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BC874 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080BC860 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080BC8B6 - .align 2, 0 -_080BC858: .4byte gTasks + 0x8 -_080BC85C: .4byte gMain -_080BC860: - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x4] - subs r0, 0x1 - b _080BC8A4 -_080BC874: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BC8C2 - movs r0, 0x2 - ldrsh r1, [r4, r0] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080BC8AE - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4, 0x4] - adds r0, 0x1 -_080BC8A4: - strh r0, [r4, 0x4] - adds r0, r5, 0 - bl sub_80BC6B0 - b _080BC940 -_080BC8AE: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080BC8B6: - bl MoveMenuCursor - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2] - b _080BC940 -_080BC8C2: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BC91C - movs r0, 0x5 - bl PlaySE - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080BC8FC - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_80BCC54 - b _080BC940 -_080BC8FC: - bl sub_8072DEC - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x2] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80BC948 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl sub_80BC980 - b _080BC940 -_080BC91C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BC940 - movs r0, 0x5 - bl PlaySE - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_80BCC54 -_080BC940: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BC824 - - thumb_func_start sub_80BC948 -sub_80BC948: @ 80BC948 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r4, 0x1 -_080BC952: - adds r0, r4, 0 - bl sub_80BC268 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BC96E - cmp r6, r5 - bne _080BC968 - adds r0, r4, 0 - b _080BC97A -_080BC968: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080BC96E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _080BC952 - movs r0, 0 -_080BC97A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BC948 - - thumb_func_start sub_80BC980 -sub_80BC980: @ 80BC980 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80F996C - movs r0, 0x1 - bl sub_80F996C - movs r0, 0x1 - movs r1, 0 - movs r2, 0xC - movs r3, 0x5 - bl MenuDrawTextWindow - ldr r3, _080BC9D8 @ =gUnknown_083D13D4 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x2 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x1 - movs r3, 0x2 - bl InitMenu - ldr r1, _080BC9DC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BC9E0 @ =sub_80BC9E4 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BC9D8: .4byte gUnknown_083D13D4 -_080BC9DC: .4byte gTasks -_080BC9E0: .4byte sub_80BC9E4 - thumb_func_end sub_80BC980 - - thumb_func_start sub_80BC9E4 -sub_80BC9E4: @ 80BC9E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _080BCA14 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BCA18 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080BCA7C - .align 2, 0 -_080BCA14: .4byte gMain -_080BCA18: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BCA3A - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080BCA7C -_080BCA3A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BCA68 - movs r0, 0x5 - bl PlaySE - ldr r4, _080BCA64 @ =gUnknown_083D13D4 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 21 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _080BCA7C - .align 2, 0 -_080BCA64: .4byte gUnknown_083D13D4 -_080BCA68: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80BCBF8 -_080BCA7C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BC9E4 - - thumb_func_start sub_80BCA84 -sub_80BCA84: @ 80BCA84 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080BCAD8 @ =gTasks + 0x8 - adds r4, r0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _080BCADC @ =gStringVar1 - ldrb r1, [r4, 0x8] - bl sub_80BC190 - ldr r4, _080BCAE0 @ =gStringVar4 - ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080BCAE8 @ =sub_80BCAEC - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCAD8: .4byte gTasks + 0x8 -_080BCADC: .4byte gStringVar1 -_080BCAE0: .4byte gStringVar4 -_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry -_080BCAE8: .4byte sub_80BCAEC - thumb_func_end sub_80BCA84 - - thumb_func_start sub_80BCAEC -sub_80BCAEC: @ 80BCAEC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _080BCB0C @ =gUnknown_083D13E4 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCB0C: .4byte gUnknown_083D13E4 - thumb_func_end sub_80BCAEC - - thumb_func_start sub_80BCB10 -sub_80BCB10: @ 80BCB10 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _080BCB80 @ =gTasks + 0x8 - adds r4, r6, r7 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _080BCB84 @ =gSaveBlock1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r2 - ldr r1, _080BCB88 @ =0x00001a09 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r1, [r4, 0x4] - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080BCB5C - subs r0, r1, 0x1 - strh r0, [r4, 0x4] -_080BCB5C: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bgt _080BCB6A - ldrh r0, [r4, 0x6] - subs r0, 0x1 - strh r0, [r4, 0x6] -_080BCB6A: - adds r0, r5, 0 - bl sub_80BC7D8 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _080BCB8C @ =sub_80BC824 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCB80: .4byte gTasks + 0x8 -_080BCB84: .4byte gSaveBlock1 -_080BCB88: .4byte 0x00001a09 -_080BCB8C: .4byte sub_80BC824 - thumb_func_end sub_80BCB10 - - thumb_func_start sub_80BCB90 -sub_80BCB90: @ 80BCB90 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted - ldr r2, _080BCBBC @ =sub_80BCB10 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCBB8: .4byte gOtherText_RegisteredDataDeleted -_080BCBBC: .4byte sub_80BCB10 - thumb_func_end sub_80BCB90 - - thumb_func_start sub_80BCBC0 -sub_80BCBC0: @ 80BCBC0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80BC7D8 - ldr r1, _080BCBF0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080BCBF4 @ =sub_80BC824 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCBF0: .4byte gTasks -_080BCBF4: .4byte sub_80BC824 - thumb_func_end sub_80BCBC0 - - thumb_func_start sub_80BCBF8 -sub_80BCBF8: @ 80BCBF8 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, _080BCC4C @ =gTasks + 0x8 - adds r0, r4, r5 - ldrb r3, [r0, 0x6] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r0, 0x2] - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x12 - movs r2, 0x2 - bl InitMenu - movs r0, 0x1 - movs r1, 0 - movs r2, 0xC - movs r3, 0x5 - bl MenuZeroFillWindowRect - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - subs r5, 0x8 - adds r4, r5 - ldr r0, _080BCC50 @ =sub_80BC824 - str r0, [r4] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCC4C: .4byte gTasks + 0x8 -_080BCC50: .4byte sub_80BC824 - thumb_func_end sub_80BCBF8 - - thumb_func_start sub_80BCC54 -sub_80BCC54: @ 80BCC54 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080BCC84 @ =0x00004054 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl BuyMenuFreeMemory - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - cmp r4, 0 - bne _080BCC8C - ldr r0, _080BCC88 @ =gUnknown_0815F399 - bl ScriptContext1_SetupScript - b _080BCC92 - .align 2, 0 -_080BCC84: .4byte 0x00004054 -_080BCC88: .4byte gUnknown_0815F399 -_080BCC8C: - ldr r0, _080BCCA0 @ =gUnknown_0815F49A - bl ScriptContext1_SetupScript -_080BCC92: - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BCCA0: .4byte gUnknown_0815F49A - thumb_func_end sub_80BCC54 - - thumb_func_start sub_80BCCA4 -sub_80BCCA4: @ 80BCCA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080BCCDC @ =gSaveBlock1 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - adds r4, r1 - ldr r1, _080BCCE0 @ =0x00001a11 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, 0x5 - bl __umodsi3 - ldr r1, _080BCCE4 @ =0x00001a09 - adds r4, r1 - ldrb r2, [r4] - lsls r2, 27 - lsrs r2, 31 - lsls r1, r2, 2 - adds r1, r2 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080BCCDC: .4byte gSaveBlock1 -_080BCCE0: .4byte 0x00001a11 -_080BCCE4: .4byte 0x00001a09 - thumb_func_end sub_80BCCA4 - - thumb_func_start sub_80BCCE8 -sub_80BCCE8: @ 80BCCE8 - push {lr} - ldr r0, _080BCD08 @ =0x00004054 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - bne _080BCD10 - ldr r0, _080BCD0C @ =UnknownString_81A1BB2 - b _080BCD72 - .align 2, 0 -_080BCD08: .4byte 0x00004054 -_080BCD0C: .4byte UnknownString_81A1BB2 -_080BCD10: - cmp r0, 0x1 - bne _080BCD1C - ldr r0, _080BCD18 @ =UnknownString_81A1F67 - b _080BCD72 - .align 2, 0 -_080BCD18: .4byte UnknownString_81A1F67 -_080BCD1C: - cmp r0, 0x2 - bne _080BCD28 - ldr r0, _080BCD24 @ =UnknownString_81A2254 - b _080BCD72 - .align 2, 0 -_080BCD24: .4byte UnknownString_81A2254 -_080BCD28: - cmp r0, 0x3 - bne _080BCD34 - ldr r0, _080BCD30 @ =UnknownString_81A25C3 - b _080BCD72 - .align 2, 0 -_080BCD30: .4byte UnknownString_81A25C3 -_080BCD34: - cmp r0, 0x4 - bne _080BCD40 - ldr r0, _080BCD3C @ =UnknownString_81A2925 - b _080BCD72 - .align 2, 0 -_080BCD3C: .4byte UnknownString_81A2925 -_080BCD40: - cmp r0, 0x5 - bne _080BCD4C - ldr r0, _080BCD48 @ =UnknownString_81A1D74 - b _080BCD72 - .align 2, 0 -_080BCD48: .4byte UnknownString_81A1D74 -_080BCD4C: - cmp r0, 0x6 - bne _080BCD58 - ldr r0, _080BCD54 @ =UnknownString_81A20C9 - b _080BCD72 - .align 2, 0 -_080BCD54: .4byte UnknownString_81A20C9 -_080BCD58: - cmp r0, 0x7 - bne _080BCD64 - ldr r0, _080BCD60 @ =UnknownString_81A2439 - b _080BCD72 - .align 2, 0 -_080BCD60: .4byte UnknownString_81A2439 -_080BCD64: - cmp r1, 0x8 - beq _080BCD70 - ldr r0, _080BCD6C @ =UnknownString_81A2B2A - b _080BCD72 - .align 2, 0 -_080BCD6C: .4byte UnknownString_81A2B2A -_080BCD70: - ldr r0, _080BCD78 @ =UnknownString_81A2754 -_080BCD72: - pop {r1} - bx r1 - .align 2, 0 -_080BCD78: .4byte UnknownString_81A2754 - thumb_func_end sub_80BCCE8 - - thumb_func_start unref_sub_80BCD7C -unref_sub_80BCD7C: @ 80BCD7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - ldr r7, _080BCDFC @ =gSaveBlock1 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 5 - ldr r0, _080BCE00 @ =0x00001a3c - adds r0, r7 - mov r10, r0 - ldr r1, _080BCE04 @ =0x00001a54 - adds r1, r7 - mov r9, r1 - ldr r2, _080BCE08 @ =0x00001a84 - adds r2, r7 - mov r8, r2 - ldr r0, _080BCE0C @ =0x00000115 - mov r12, r0 -_080BCDAA: - lsls r4, r5, 2 - adds r0, r4, r6 - add r0, r10 - adds r3, r5, 0x1 - str r3, [r0] - lsls r0, r5, 3 - adds r0, r6 - add r0, r9 - strh r3, [r0] - lsls r1, r5, 1 - adds r1, r6 - mov r2, r8 - adds r0, r1, r2 - mov r2, r12 - strh r2, [r0] - ldr r2, _080BCE10 @ =0x00001a90 - adds r0, r7, r2 - adds r1, r0 - strh r3, [r1] - adds r2, r5, r6 - ldr r1, _080BCE14 @ =0x00001a9c - adds r0, r7, r1 - adds r0, r2, r0 - adds r1, r5, 0x5 - strb r1, [r0] - ldr r1, _080BCE18 @ =0x00001aa2 - adds r0, r7, r1 - adds r2, r0 - adds r4, r5 - strb r4, [r2] - lsls r3, 16 - lsrs r5, r3, 16 - cmp r5, 0 - beq _080BCDAA - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCDFC: .4byte gSaveBlock1 -_080BCE00: .4byte 0x00001a3c -_080BCE04: .4byte 0x00001a54 -_080BCE08: .4byte 0x00001a84 -_080BCE0C: .4byte 0x00000115 -_080BCE10: .4byte 0x00001a90 -_080BCE14: .4byte 0x00001a9c -_080BCE18: .4byte 0x00001aa2 - thumb_func_end unref_sub_80BCD7C - - thumb_func_start sub_80BCE1C -sub_80BCE1C: @ 80BCE1C - push {r4,lr} - ldr r0, _080BCE44 @ =0x00004054 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x1 - bl sub_810FB10 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 5 - ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08 - adds r0, r1 - bl CreateSecretBaseEnemyParty - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BCE44: .4byte 0x00004054 -_080BCE48: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BCE1C - - thumb_func_start sub_80BCE4C -sub_80BCE4C: @ 80BCE4C - push {lr} - ldr r0, _080BCE80 @ =0x00004054 - bl VarGet - ldr r2, _080BCE84 @ =gSaveBlock1 - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r1, r2 - ldr r0, _080BCE88 @ =gScriptResult - ldrb r0, [r0] - ldr r2, _080BCE8C @ =0x00001a09 - adds r1, r2 - movs r2, 0x1 - ands r2, r0 - lsls r2, 5 - ldrb r3, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BCE80: .4byte 0x00004054 -_080BCE84: .4byte gSaveBlock1 -_080BCE88: .4byte gScriptResult -_080BCE8C: .4byte 0x00001a09 - thumb_func_end sub_80BCE4C - - thumb_func_start sub_80BCE90 -sub_80BCE90: @ 80BCE90 - push {r4-r7,lr} - ldr r0, _080BCF04 @ =0x00004054 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080BCF08 @ =0x000008c2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080BCED4 - movs r3, 0 - ldr r7, _080BCF0C @ =gSaveBlock1 - ldr r4, _080BCF10 @ =0x00001a09 - movs r6, 0x21 - negs r6, r6 -_080BCEB2: - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 5 - adds r1, r7 - adds r1, r4 - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x13 - bls _080BCEB2 - ldr r0, _080BCF08 @ =0x000008c2 - bl FlagSet -_080BCED4: - ldr r4, _080BCF14 @ =gUnknown_0202E8CC - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_80BCCA4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r2, _080BCF18 @ =gScriptResult - ldr r1, _080BCF0C @ =gSaveBlock1 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - adds r0, r1 - ldr r1, _080BCF10 @ =0x00001a09 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 31 - strh r0, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BCF04: .4byte 0x00004054 -_080BCF08: .4byte 0x000008c2 -_080BCF0C: .4byte gSaveBlock1 -_080BCF10: .4byte 0x00001a09 -_080BCF14: .4byte gUnknown_0202E8CC -_080BCF18: .4byte gScriptResult - thumb_func_end sub_80BCE90 - - thumb_func_start sub_80BCF1C -sub_80BCF1C: @ 80BCF1C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080BCF40 @ =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080BCF54 - cmp r0, 0x1 - bgt _080BCF44 - cmp r0, 0 - beq _080BCF4A - b _080BD02C - .align 2, 0 -_080BCF40: .4byte gTasks + 0x8 -_080BCF44: - cmp r0, 0x2 - beq _080BD01C - b _080BD02C -_080BCF4A: - adds r0, r4, 0x4 - adds r1, r4, 0x6 - bl PlayerGetDestCoords - b _080BD028 -_080BCF54: - mov r5, sp - adds r5, 0x2 - mov r0, sp - adds r1, r5, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080BCF7C - movs r0, 0 - ldrsh r1, [r5, r0] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r1, r0 - beq _080BD02C -_080BCF7C: - strh r2, [r4, 0x4] - ldrh r0, [r5] - strh r0, [r4, 0x6] - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFA8 - bl sub_80C6C90 - b _080BD02C -_080BCFA8: - adds r0, r4, 0 - bl sub_8057314 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFD8 - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileIdAt - lsls r0, 16 - asrs r0, 16 - mov r1, sp - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - bl sub_80C68A4 - b _080BD02C -_080BCFD8: - adds r0, r4, 0 - bl sub_8057328 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BCFF6 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl sub_80C6A54 - b _080BD02C -_080BCFF6: - adds r0, r4, 0 - bl sub_805733C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD02C - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileIdAt - lsls r0, 16 - asrs r0, 16 - bl sub_80C6C30 - b _080BD02C -_080BD01C: - ldrb r0, [r4, 0x8] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _080BD02C -_080BD028: - movs r0, 0x1 - strh r0, [r4, 0x2] -_080BD02C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BCF1C - - thumb_func_start sub_80BD034 -sub_80BD034: @ 80BD034 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080BD064 @ =gSaveBlock1 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 5 - adds r4, r2 - ldr r2, _080BD068 @ =0x00001a08 - adds r0, r4, r2 - movs r2, 0xA0 - bl memcpy - ldr r0, _080BD06C @ =0x00001a09 - adds r4, r0 - ldrb r1, [r4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BD064: .4byte gSaveBlock1 -_080BD068: .4byte 0x00001a08 -_080BD06C: .4byte 0x00001a09 - thumb_func_end sub_80BD034 - - thumb_func_start sub_80BD070 -sub_80BD070: @ 80BD070 - push {r4,lr} - movs r2, 0 - adds r4, r0, 0 - adds r4, 0x9 - adds r3, r1, 0 - adds r3, 0x9 -_080BD07C: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BD08C - movs r0, 0 - b _080BD098 -_080BD08C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080BD07C - movs r0, 0x1 -_080BD098: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD070 - - thumb_func_start sub_80BD0A0 -sub_80BD0A0: @ 80BD0A0 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r3, 0 - ldrb r0, [r6, 0x2] - cmp r0, 0xFF - bne _080BD0B4 - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - beq _080BD0E2 -_080BD0B4: - adds r2, r6, 0x2 - adds r0, r2, r3 - adds r4, r5, 0x2 - adds r1, r4, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080BD0C8 - movs r0, 0 - b _080BD0E4 -_080BD0C8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x6 - bhi _080BD0E2 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD0B4 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD0B4 -_080BD0E2: - movs r0, 0x1 -_080BD0E4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BD0A0 - - thumb_func_start sub_80BD0EC -sub_80BD0EC: @ 80BD0EC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r2, [r4, 0x1] - movs r0, 0x10 - adds r1, r0, 0 - ands r1, r2 - ldrb r2, [r5, 0x1] - ands r0, r2 - cmp r1, r0 - bne _080BD122 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD070 - lsls r0, 24 - cmp r0, 0 - beq _080BD122 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD0A0 - lsls r0, 24 - cmp r0, 0 - beq _080BD122 - movs r0, 0x1 - b _080BD124 -_080BD122: - movs r0, 0 -_080BD124: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BD0EC - - thumb_func_start sub_80BD12C -sub_80BD12C: @ 80BD12C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r4, _080BD150 @ =gSaveBlock1 - ldr r3, _080BD154 @ =0x00001a08 -_080BD138: - lsls r0, r1, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080BD158 - adds r0, r1, 0 - b _080BD168 - .align 2, 0 -_080BD150: .4byte gSaveBlock1 -_080BD154: .4byte 0x00001a08 -_080BD158: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD138 - movs r0, 0x1 - negs r0, r0 -_080BD168: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD12C - - thumb_func_start sub_80BD170 -sub_80BD170: @ 80BD170 - push {r4,lr} - movs r2, 0x1 - ldr r4, _080BD194 @ =gSaveBlock1 - ldr r3, _080BD198 @ =0x00001a08 -_080BD178: - lsls r0, r2, 16 - asrs r1, r0, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080BD19C - lsls r0, r2, 24 - lsrs r0, 24 - b _080BD1AA - .align 2, 0 -_080BD194: .4byte gSaveBlock1 -_080BD198: .4byte 0x00001a08 -_080BD19C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD178 - movs r0, 0 -_080BD1AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD170 - - thumb_func_start sub_80BD1B0 -sub_80BD1B0: @ 80BD1B0 - push {r4,lr} - movs r3, 0x1 - ldr r4, _080BD1DC @ =gSaveBlock1 -_080BD1B6: - lsls r2, r3, 16 - asrs r1, r2, 16 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 5 - adds r0, r4 - ldr r1, _080BD1E0 @ =0x00001a09 - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 6 - cmp r0, 0 - bne _080BD1E4 - lsls r0, r1, 28 - cmp r0, 0 - bne _080BD1E4 - lsls r0, r3, 24 - lsrs r0, 24 - b _080BD1F4 - .align 2, 0 -_080BD1DC: .4byte gSaveBlock1 -_080BD1E0: .4byte 0x00001a09 -_080BD1E4: - movs r1, 0x80 - lsls r1, 9 - adds r0, r2, r1 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080BD1B6 - movs r0, 0 -_080BD1F4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BD1B0 - - thumb_func_start sub_80BD1FC -sub_80BD1FC: @ 80BD1FC - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _080BD278 - ldrb r0, [r5] - bl sub_80BD12C - lsls r0, 16 - lsrs r4, r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - beq _080BD278 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _080BD254 - ldr r0, _080BD24C @ =gSaveBlock1 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 5 - adds r1, r0 - ldr r0, _080BD250 @ =0x00001a09 - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 28 - lsrs r0, 28 - cmp r0, 0x1 - beq _080BD278 - lsrs r0, r1, 6 - cmp r0, 0x2 - bne _080BD246 - ldrb r1, [r5, 0x1] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _080BD278 -_080BD246: - lsls r4, 24 - lsrs r4, 24 - b _080BD26C - .align 2, 0 -_080BD24C: .4byte gSaveBlock1 -_080BD250: .4byte 0x00001a09 -_080BD254: - bl sub_80BD170 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080BD26C - bl sub_80BD1B0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080BD278 -_080BD26C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80BD034 - adds r0, r4, 0 - b _080BD27A -_080BD278: - movs r0, 0 -_080BD27A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BD1FC - - thumb_func_start sub_80BD280 -sub_80BD280: @ 80BD280 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xA0 - ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08 - mov r8, r0 - movs r2, 0x1 -_080BD290: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - mov r9, r1 - cmp r5, 0x13 - bhi _080BD30C - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 5 - mov r1, r8 - adds r6, r0, r1 - movs r7, 0xC0 -_080BD2A8: - ldrb r0, [r6, 0x1] - adds r3, r7, 0 - ands r3, r0 - cmp r3, 0 - bne _080BD2C6 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 5 - add r0, r8 - ldrb r1, [r0, 0x1] - adds r0, r7, 0 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0x40 - beq _080BD2DE -_080BD2C6: - cmp r3, 0x80 - bne _080BD302 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 5 - add r0, r8 - ldrb r1, [r0, 0x1] - adds r0, r7, 0 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0x80 - beq _080BD302 -_080BD2DE: - mov r0, sp - adds r1, r6, 0 - movs r2, 0xA0 - bl memcpy - adds r4, r5 - lsls r4, 5 - add r4, r8 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0xA0 - bl memcpy - adds r0, r4, 0 - mov r1, sp - movs r2, 0xA0 - bl memcpy -_080BD302: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD2A8 -_080BD30C: - mov r1, r9 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x12 - bls _080BD290 - add sp, 0xA0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD324: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BD280 - - thumb_func_start sub_80BD328 -sub_80BD328: @ 80BD328 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0x1 -_080BD332: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 5 - adds r1, r0, r6 - ldrb r0, [r1, 0x1] - lsrs r0, 6 - cmp r0, r5 - bne _080BD348 - adds r0, r1, 0 - bl sub_80BD1FC -_080BD348: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x13 - bls _080BD332 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BD328 - - thumb_func_start sub_80BD358 -sub_80BD358: @ 80BD358 - push {r4-r6,lr} - adds r5, r0, 0 - ldrb r0, [r5] - cmp r0, 0 - beq _080BD372 - ldrb r0, [r5, 0x1] - lsls r0, 27 - ldr r1, _080BD378 @ =gSaveBlock2 - lsrs r0, 31 - adds r4, r1, 0 - ldrb r1, [r4, 0x8] - cmp r0, r1 - beq _080BD37C -_080BD372: - movs r0, 0 - b _080BD3D4 - .align 2, 0 -_080BD378: .4byte gSaveBlock2 -_080BD37C: - movs r2, 0 - adds r3, r5, 0 - adds r3, 0x9 - adds r6, r4, 0 - adds r6, 0xA -_080BD386: - adds r0, r3, r2 - adds r1, r2, r6 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080BD372 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080BD386 - movs r2, 0 - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - bne _080BD3AA - ldrb r0, [r4] - cmp r0, 0xFF - beq _080BD3D2 -_080BD3AA: - adds r3, r5, 0x2 - adds r0, r3, r2 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _080BD372 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x6 - bhi _080BD3D2 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD3AA - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BD3AA -_080BD3D2: - movs r0, 0x1 -_080BD3D4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BD358 - - thumb_func_start sub_80BD3DC -sub_80BD3DC: @ 80BD3DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - mov r9, r1 - mov r8, r2 - movs r5, 0 - movs r6, 0 -_080BD3F0: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - bne _080BD41A - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r10 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD41A - adds r0, r4, 0 - bl sub_80BB4AC - movs r0, 0x1 - orrs r5, r0 -_080BD41A: - movs r7, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _080BD448 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD448 - adds r0, r4, 0 - bl sub_80BB4AC - orrs r5, r7 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_080BD448: - movs r7, 0x4 - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - bne _080BD476 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80BD358 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD476 - adds r0, r4, 0 - bl sub_80BB4AC - orrs r5, r7 - lsls r0, r5, 24 - lsrs r5, r0, 24 -_080BD476: - cmp r5, 0x7 - beq _080BD484 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x13 - bls _080BD3F0 -_080BD484: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BD3DC - - thumb_func_start sub_80BD494 -sub_80BD494: @ 80BD494 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - movs r5, 0 -_080BD4A4: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD4FE - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80BD0EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BD4FE - cmp r7, 0 - bne _080BD4D0 - adds r0, r4, 0 - bl sub_80BB4AC - b _080BD508 -_080BD4D0: - ldrh r0, [r6, 0xE] - ldrh r3, [r4, 0xE] - cmp r0, r3 - bls _080BD4E0 - adds r0, r4, 0 - bl sub_80BB4AC - b _080BD508 -_080BD4E0: - ldrb r0, [r6, 0x1] - lsls r0, 28 - lsrs r0, 28 - ldrb r1, [r4, 0x1] - movs r3, 0x10 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x1] - adds r0, r6, 0 - bl sub_80BB4AC - movs r0, 0x1 - b _080BD50A -_080BD4FE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD4A4 -_080BD508: - movs r0, 0 -_080BD50A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80BD494 - - thumb_func_start sub_80BD514 -sub_80BD514: @ 80BD514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - adds r7, r1, 0 - mov r8, r2 - adds r6, r3, 0 - movs r5, 0x1 -_080BD526: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - mov r1, r9 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD578 - ldrb r1, [r4, 0x1] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x40 - bne _080BD54E - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] -_080BD54E: - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD578 - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD578 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD578: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD526 - movs r5, 0 -_080BD584: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 5 - adds r4, r0, r7 - ldrb r0, [r4] - cmp r0, 0 - beq _080BD5B8 - ldrb r0, [r4, 0x1] - movs r2, 0x21 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl sub_80BD494 - lsls r0, 24 - cmp r0, 0 - bne _080BD5B8 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD5B8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD584 - movs r5, 0 - movs r0, 0x21 - negs r0, r0 - adds r7, r0, 0 -_080BD5CA: - lsls r0, r5, 2 - adds r0, r5 - lsls r4, r0, 5 - mov r2, r8 - adds r1, r4, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _080BD5EA - ldrb r0, [r1, 0x1] - ands r0, r7 - strb r0, [r1, 0x1] - adds r0, r1, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80BD494 -_080BD5EA: - adds r1, r4, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _080BD5F8 - ldrb r0, [r1, 0x1] - ands r0, r7 - strb r0, [r1, 0x1] -_080BD5F8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x13 - bls _080BD5CA - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BD514 - - thumb_func_start sub_80BD610 -sub_80BD610: @ 80BD610 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl sub_80BD3DC - ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_80BD514 - adds r0, r4, 0 - bl sub_80BD1FC - adds r0, r5, 0 - bl sub_80BD1FC - adds r0, r6, 0 - bl sub_80BD1FC - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r6, 0 - movs r1, 0x1 - bl sub_80BD328 - adds r0, r4, 0 - movs r1, 0 - bl sub_80BD328 - adds r0, r5, 0 - movs r1, 0 - bl sub_80BD328 - adds r0, r6, 0 - movs r1, 0 - bl sub_80BD328 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BD670: .4byte gSaveBlock1 + 0x1A08 - thumb_func_end sub_80BD610 - - thumb_func_start sub_80BD674 -sub_80BD674: @ 80BD674 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0x60 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080BD68C - b _080BD790 -_080BD68C: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080BD69E - cmp r0, 0x3 - beq _080BD6BA - b _080BD6C8 -_080BD69E: - lsls r4, r5, 1 - adds r0, r6, r4 - movs r1, 0 - adds r2, r5, 0 - bl memset - adds r4, r5 - adds r4, r6, r4 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - b _080BD6C8 -_080BD6BA: - lsls r0, r5, 1 - adds r0, r5 - adds r0, r6, r0 - movs r1, 0 - adds r2, r5, 0 - bl memset -_080BD6C8: - cmp r7, 0x1 - beq _080BD6F0 - cmp r7, 0x1 - bgt _080BD6D6 - cmp r7, 0 - beq _080BD6E0 - b _080BD71C -_080BD6D6: - cmp r7, 0x2 - beq _080BD700 - cmp r7, 0x3 - beq _080BD710 - b _080BD71C -_080BD6E0: - adds r0, r6, r5 - lsls r2, r5, 1 - adds r1, r6, r2 - adds r2, r5 - adds r2, r6, r2 - bl sub_80BD610 - b _080BD71C -_080BD6F0: - lsls r1, r5, 1 - adds r0, r6, r1 - adds r1, r5 - adds r1, r6, r1 - adds r2, r6, 0 - bl sub_80BD610 - b _080BD71C -_080BD700: - lsls r0, r5, 1 - adds r0, r5 - adds r0, r6, r0 - adds r2, r6, r5 - adds r1, r6, 0 - bl sub_80BD610 - b _080BD71C -_080BD710: - adds r1, r6, r5 - lsls r2, r5, 1 - adds r2, r6, r2 - adds r0, r6, 0 - bl sub_80BD610 -_080BD71C: - movs r3, 0x1 - ldr r6, _080BD798 @ =gSaveBlock1 - movs r5, 0x10 - negs r5, r5 - ldr r4, _080BD79C @ =0x00001a09 -_080BD726: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r6 - adds r2, r0, r4 - ldrb r1, [r2] - lsls r0, r1, 28 - lsrs r0, 28 - cmp r0, 0x1 - bne _080BD746 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - ands r0, r5 - strb r0, [r2] -_080BD746: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _080BD726 - bl sub_80BD280 - movs r3, 0x1 - ldr r4, _080BD798 @ =gSaveBlock1 - ldr r6, _080BD79C @ =0x00001a09 - adds r7, r4, 0 - movs r5, 0x3F -_080BD75E: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 5 - adds r0, r4 - adds r2, r0, r6 - ldrb r1, [r2] - lsrs r0, r1, 6 - cmp r0, 0x2 - bne _080BD776 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] -_080BD776: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x13 - bls _080BD75E - ldr r0, _080BD7A0 @ =0x00001a16 - adds r2, r7, r0 - ldrh r1, [r2] - ldr r0, _080BD7A4 @ =0x0000ffff - cmp r1, r0 - beq _080BD790 - adds r0, r1, 0x1 - strh r0, [r2] -_080BD790: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD798: .4byte gSaveBlock1 -_080BD79C: .4byte 0x00001a09 -_080BD7A0: .4byte 0x00001a16 -_080BD7A4: .4byte 0x0000ffff - thumb_func_end sub_80BD674 - - thumb_func_start sub_80BD7A8 -sub_80BD7A8: @ 80BD7A8 - push {r4-r7,lr} - movs r3, 0 - ldr r6, _080BD7F0 @ =gSaveBlock1 - movs r4, 0 - ldr r0, _080BD7F4 @ =0x0000273a - adds r5, r6, r0 -_080BD7B4: - lsls r2, r3, 3 - adds r2, r3 - lsls r2, 2 - adds r1, r2, r6 - ldr r7, _080BD7F8 @ =0x00002738 - adds r0, r1, r7 - strb r4, [r0] - ldr r0, _080BD7FC @ =0x00002739 - adds r1, r0 - strb r4, [r1] - movs r1, 0 - adds r3, 0x1 -_080BD7CC: - adds r0, r1, r2 - adds r0, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x21 - bls _080BD7CC - lsls r0, r3, 24 - lsrs r3, r0, 24 - cmp r3, 0x18 - bls _080BD7B4 - bl sub_80BEBF4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BD7F0: .4byte gSaveBlock1 -_080BD7F4: .4byte 0x0000273a -_080BD7F8: .4byte 0x00002738 -_080BD7FC: .4byte 0x00002739 - thumb_func_end sub_80BD7A8 - - thumb_func_start special_0x44 -special_0x44: @ 80BD800 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0x5 - ldr r1, _080BD874 @ =gSaveBlock1 - ldr r2, _080BD878 @ =0x000027ec - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080BD834 - adds r2, r1, 0 - ldr r1, _080BD87C @ =0x00002738 -_080BD81A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bhi _080BD834 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080BD81A -_080BD834: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - ldr r7, _080BD874 @ =gSaveBlock1 - ldr r0, _080BD87C @ =0x00002738 - adds r0, r7 - mov r9, r0 -_080BD850: - lsls r0, r4, 3 - adds r0, r4 - lsls r6, r0, 2 - adds r5, r6, r7 - ldr r1, _080BD87C @ =0x00002738 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _080BD884 - ldr r2, _080BD880 @ =0x00002739 - adds r0, r5, r2 - ldrb r0, [r0] - b _080BD890 - .align 2, 0 -_080BD874: .4byte gSaveBlock1 -_080BD878: .4byte 0x000027ec -_080BD87C: .4byte 0x00002738 -_080BD880: .4byte 0x00002739 -_080BD884: - mov r0, r9 - adds r1, r6, r0 - ldrh r0, [r1, 0x16] - cmp r0, 0 - bne _080BD898 - ldrb r0, [r1, 0x1] -_080BD890: - cmp r0, 0x1 - bne _080BD898 - adds r0, r4, 0 - b _080BD8AC -_080BD898: - cmp r4, 0 - bne _080BD8A0 - movs r4, 0x17 - b _080BD8A6 -_080BD8A0: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080BD8A6: - cmp r4, r8 - bne _080BD850 - movs r0, 0xFF -_080BD8AC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end special_0x44 - - thumb_func_start sub_80BD8B8 -sub_80BD8B8: @ 80BD8B8 - push {lr} - bl special_0x44 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080BD8CA - movs r0, 0xFF - b _080BD902 -_080BD8CA: - ldr r2, _080BD8F4 @ =gSaveBlock1 - ldr r3, _080BD8F8 @ =0x00002afc - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BD900 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r2, _080BD8FC @ =0x00002738 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BD900 - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BD902 - .align 2, 0 -_080BD8F4: .4byte gSaveBlock1 -_080BD8F8: .4byte 0x00002afc -_080BD8FC: .4byte 0x00002738 -_080BD900: - adds r0, r1, 0 -_080BD902: - pop {r1} - bx r1 - thumb_func_end sub_80BD8B8 - - thumb_func_start UpdateTVScreensOnMap -UpdateTVScreensOnMap: @ 80BD908 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _080BD938 @ =0x00000831 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BD92C - cmp r0, 0x2 - beq _080BD97E - ldr r0, _080BD93C @ =gSaveBlock1 - ldrh r0, [r0, 0x4] - cmp r0, 0xD - bne _080BD940 -_080BD92C: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap - b _080BD97E - .align 2, 0 -_080BD938: .4byte 0x00000831 -_080BD93C: .4byte gSaveBlock1 -_080BD940: - ldr r0, _080BD984 @ =0x00000832 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BD97E - bl sub_80BD8B8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl sub_80BECA0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080BD96E - bl IsTVShowInSearchOfTrainersAiring - lsls r0, 24 - cmp r0, 0 - beq _080BD97E -_080BD96E: - ldr r0, _080BD988 @ =0x00000831 - bl FlagReset - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap -_080BD97E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BD984: .4byte 0x00000832 -_080BD988: .4byte 0x00000831 - thumb_func_end UpdateTVScreensOnMap - - thumb_func_start SetTVMetatilesOnMap -SetTVMetatilesOnMap: @ 80BD98C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - movs r5, 0 - cmp r5, r10 - bge _080BD9E0 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080BD9B2: - movs r4, 0 - adds r7, r5, 0x1 - cmp r4, r9 - bge _080BD9DA - mov r0, r8 - lsls r6, r0, 16 -_080BD9BE: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - cmp r0, 0x86 - bne _080BD9D4 - adds r0, r4, 0 - adds r1, r5, 0 - lsrs r2, r6, 16 - bl MapGridSetMetatileIdAt -_080BD9D4: - adds r4, 0x1 - cmp r4, r9 - blt _080BD9BE -_080BD9DA: - adds r5, r7, 0 - cmp r5, r10 - blt _080BD9B2 -_080BD9E0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetTVMetatilesOnMap - - thumb_func_start TurnOffTVScreen -TurnOffTVScreen: @ 80BD9F0 - push {lr} - ldr r1, _080BDA08 @ =gUnknown_03004870 - ldr r0, [r1] - ldr r1, [r1, 0x4] - movs r2, 0x2 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_080BDA08: .4byte gUnknown_03004870 - thumb_func_end TurnOffTVScreen - - thumb_func_start sub_80BDA0C -sub_80BDA0C: @ 80BDA0C - ldr r2, _080BDA24 @ =gSaveBlock1 - ldr r0, _080BDA28 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080BDA2C @ =0x00002738 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080BDA24: .4byte gSaveBlock1 -_080BDA28: .4byte gUnknown_0202E8CC -_080BDA2C: .4byte 0x00002738 - thumb_func_end sub_80BDA0C - - thumb_func_start sub_80BDA30 -sub_80BDA30: @ 80BDA30 - push {r4,lr} - movs r2, 0 - ldr r3, _080BDA5C @ =gSaveBlock1 -_080BDA36: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldr r4, _080BDA60 @ =0x00002738 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDA64 - cmp r0, 0x29 - beq _080BDA64 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BDA64 - adds r0, r2, 0 - b _080BDA70 - .align 2, 0 -_080BDA5C: .4byte gSaveBlock1 -_080BDA60: .4byte 0x00002738 -_080BDA64: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080BDA36 - movs r0, 0xFF -_080BDA70: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BDA30 - - thumb_func_start special_0x4a -special_0x4a: @ 80BDA78 - push {lr} - ldr r2, _080BDAA4 @ =gUnknown_0202E8CC - ldrh r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BDAAC - movs r3, 0xF1 - lsls r3, 2 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080BDAAC - bl sub_80BDA30 - lsls r0, 24 - lsrs r0, 24 - b _080BDAAE - .align 2, 0 -_080BDAA4: .4byte gUnknown_0202E8CC -_080BDAA8: .4byte gSaveBlock1 + 0x2738 -_080BDAAC: - ldrb r0, [r2] -_080BDAAE: - pop {r1} - bx r1 - thumb_func_end special_0x4a - - thumb_func_start sub_80BDAB4 -sub_80BDAB4: @ 80BDAB4 - push {r4,lr} - ldr r2, _080BDAF8 @ =gSaveBlock1 - ldr r1, _080BDAFC @ =0x00002b10 - adds r0, r2, r1 - movs r3, 0 - movs r1, 0 - strh r1, [r0] - ldr r4, _080BDB00 @ =0x00002b12 - adds r0, r2, r4 - strh r1, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB04 @ =0x00002b16 - adds r1, r2, r0 - ldr r0, _080BDB08 @ =0x0000ffff - strh r0, [r1] - adds r4, 0x6 - adds r1, r2, r4 - movs r0, 0 - strb r0, [r1] - ldr r0, _080BDB0C @ =0x00002b1b - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r1, _080BDB10 @ =0x00002b18 - adds r0, r2, r1 - strb r3, [r0] - subs r4, 0x1 - adds r2, r4 - strb r3, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BDAF8: .4byte gSaveBlock1 -_080BDAFC: .4byte 0x00002b10 -_080BDB00: .4byte 0x00002b12 -_080BDB04: .4byte 0x00002b16 -_080BDB08: .4byte 0x0000ffff -_080BDB0C: .4byte 0x00002b1b -_080BDB10: .4byte 0x00002b18 - thumb_func_end sub_80BDAB4 - - thumb_func_start GabbyAndTyBeforeInterview -GabbyAndTyBeforeInterview: @ 80BDB14 - push {r4,r5,lr} - ldr r2, _080BDB68 @ =gSaveBlock1 - ldr r3, _080BDB6C @ =gUnknown_030042E0 - ldrh r1, [r3, 0x6] - ldr r4, _080BDB70 @ =0x00002b10 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x26] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldrh r1, [r3, 0x22] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, _080BDB74 @ =0x00002b19 - adds r4, r2, r0 - ldrb r1, [r4] - adds r0, r1, 0 - adds r5, r2, 0 - cmp r0, 0xFF - beq _080BDB44 - adds r0, r1, 0x1 - strb r0, [r4] -_080BDB44: - ldrb r0, [r3, 0x5] - lsls r0, 31 - ldr r1, _080BDB78 @ =0x00002b1a - adds r4, r5, r1 - lsrs r0, 31 - ldrb r1, [r4] - movs r2, 0x2 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4] - ldrb r0, [r3] - cmp r0, 0 - beq _080BDB7C - movs r0, 0x2 - orrs r2, r0 - b _080BDB82 - .align 2, 0 -_080BDB68: .4byte gSaveBlock1 -_080BDB6C: .4byte gUnknown_030042E0 -_080BDB70: .4byte 0x00002b10 -_080BDB74: .4byte 0x00002b19 -_080BDB78: .4byte 0x00002b1a -_080BDB7C: - movs r0, 0x3 - negs r0, r0 - ands r2, r0 -_080BDB82: - strb r2, [r4] - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _080BDB9C - ldr r4, _080BDB98 @ =0x00002b1a - adds r0, r5, r4 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080BDBAA - .align 2, 0 -_080BDB98: .4byte 0x00002b1a -_080BDB9C: - ldr r0, _080BDBDC @ =0x00002b1a - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080BDBAA: - ldrb r1, [r3, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDBE0 - movs r1, 0 - adds r0, r3, 0 - adds r0, 0x36 - ldrb r0, [r0] - cmp r0, 0 - bne _080BDBE0 -_080BDBC0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BDBEC - adds r0, r3, 0 - adds r0, 0x36 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080BDBC0 - ldr r4, _080BDBDC @ =0x00002b1a - adds r0, r5, r4 - b _080BDBE4 - .align 2, 0 -_080BDBDC: .4byte 0x00002b1a -_080BDBE0: - ldr r1, _080BDC08 @ =0x00002b1a - adds r0, r5, r1 -_080BDBE4: - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080BDBEC: - bl TakeTVShowInSearchOfTrainersOffTheAir - ldr r0, _080BDC0C @ =gSaveBlock1 - ldr r4, _080BDC10 @ =0x00002b14 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _080BDC02 - movs r0, 0x1 - bl FlagSet -_080BDC02: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BDC08: .4byte 0x00002b1a -_080BDC0C: .4byte gSaveBlock1 -_080BDC10: .4byte 0x00002b14 - thumb_func_end GabbyAndTyBeforeInterview - - thumb_func_start sub_80BDC14 -sub_80BDC14: @ 80BDC14 - push {r4-r6,lr} - ldr r4, _080BDC70 @ =gSaveBlock1 - ldr r0, _080BDC74 @ =0x00002b1a - adds r6, r4, r0 - ldrb r3, [r6] - lsls r1, r3, 31 - adds r0, 0x1 - adds r5, r4, r0 - lsrs r1, 31 - ldrb r2, [r5] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - movs r1, 0x2 - ands r1, r3 - movs r2, 0x3 - negs r2, r2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x4 - ands r1, r3 - subs r2, 0x2 - ands r0, r2 - orrs r0, r1 - movs r1, 0x8 - ands r1, r3 - subs r2, 0x4 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - movs r0, 0x10 - orrs r3, r0 - strb r3, [r6] - ldr r0, _080BDC78 @ =gMapHeader - ldrb r0, [r0, 0x14] - ldr r1, _080BDC7C @ =0x00002b18 - adds r4, r1 - strb r0, [r4] - movs r0, 0x6 - bl sav12_xor_increment - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BDC70: .4byte gSaveBlock1 -_080BDC74: .4byte 0x00002b1a -_080BDC78: .4byte gMapHeader -_080BDC7C: .4byte 0x00002b18 - thumb_func_end sub_80BDC14 - - thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir -TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 - ldr r0, _080BDC94 @ =gSaveBlock1 - ldr r1, _080BDC98 @ =0x00002b1a - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x11 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080BDC94: .4byte gSaveBlock1 -_080BDC98: .4byte 0x00002b1a - thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir - - thumb_func_start GabbyAndTyGetBattleNum -GabbyAndTyGetBattleNum: @ 80BDC9C - push {lr} - ldr r0, _080BDCBC @ =gSaveBlock1 - ldr r2, _080BDCC0 @ =0x00002b19 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bls _080BDCB8 - ldrb r0, [r1] - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x6 - lsls r0, 24 - lsrs r0, 24 -_080BDCB8: - pop {r1} - bx r1 - .align 2, 0 -_080BDCBC: .4byte gSaveBlock1 -_080BDCC0: .4byte 0x00002b19 - thumb_func_end GabbyAndTyGetBattleNum - - thumb_func_start IsTVShowInSearchOfTrainersAiring -IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 - ldr r0, _080BDCD4 @ =gSaveBlock1 - ldr r1, _080BDCD8 @ =0x00002b1a - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_080BDCD4: .4byte gSaveBlock1 -_080BDCD8: .4byte 0x00002b1a - thumb_func_end IsTVShowInSearchOfTrainersAiring - - thumb_func_start GabbyAndTyGetLastQuote -GabbyAndTyGetLastQuote: @ 80BDCDC - push {r4,r5,lr} - ldr r0, _080BDD00 @ =gSaveBlock1 - ldr r1, _080BDD04 @ =0x00002b16 - adds r4, r0, r1 - ldrh r0, [r4] - ldr r5, _080BDD08 @ =0x0000ffff - cmp r0, r5 - beq _080BDD10 - ldr r0, _080BDD0C @ =gStringVar1 - ldrh r1, [r4] - bl sub_80EB3FC - ldrh r1, [r4] - adds r0, r5, 0 - orrs r0, r1 - strh r0, [r4] - movs r0, 0x1 - b _080BDD12 - .align 2, 0 -_080BDD00: .4byte gSaveBlock1 -_080BDD04: .4byte 0x00002b16 -_080BDD08: .4byte 0x0000ffff -_080BDD0C: .4byte gStringVar1 -_080BDD10: - movs r0, 0 -_080BDD12: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastQuote - - thumb_func_start sub_80BDD18 -sub_80BDD18: @ 80BDD18 - push {lr} - ldr r0, _080BDD30 @ =gSaveBlock1 - ldr r1, _080BDD34 @ =0x00002b1b - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BDD38 - movs r0, 0x1 - b _080BDD5E - .align 2, 0 -_080BDD30: .4byte gSaveBlock1 -_080BDD34: .4byte 0x00002b1b -_080BDD38: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080BDD44 - movs r0, 0x2 - b _080BDD5E -_080BDD44: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080BDD50 - movs r0, 0x3 - b _080BDD5E -_080BDD50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080BDD5C - movs r0, 0 - b _080BDD5E -_080BDD5C: - movs r0, 0x4 -_080BDD5E: - pop {r1} - bx r1 - thumb_func_end sub_80BDD18 - - thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds -GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 - push {lr} - bl GabbyAndTyGetBattleNum - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x7 - bhi _080BDE3C - lsls r0, 2 - ldr r1, _080BDD80 @ =_080BDD84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BDD80: .4byte _080BDD84 - .align 2, 0 -_080BDD84: - .4byte _080BDDA4 - .4byte _080BDDB8 - .4byte _080BDDCC - .4byte _080BDDE0 - .4byte _080BDDF4 - .4byte _080BDE08 - .4byte _080BDE1C - .4byte _080BDE30 -_080BDDA4: - ldr r1, _080BDDB0 @ =gUnknown_0202E8CC - movs r0, 0xE - strh r0, [r1] - ldr r1, _080BDDB4 @ =gUnknown_0202E8CE - movs r0, 0xD - b _080BDE3A - .align 2, 0 -_080BDDB0: .4byte gUnknown_0202E8CC -_080BDDB4: .4byte gUnknown_0202E8CE -_080BDDB8: - ldr r1, _080BDDC4 @ =gUnknown_0202E8CC - movs r0, 0x5 - strh r0, [r1] - ldr r1, _080BDDC8 @ =gUnknown_0202E8CE - movs r0, 0x6 - b _080BDE3A - .align 2, 0 -_080BDDC4: .4byte gUnknown_0202E8CC -_080BDDC8: .4byte gUnknown_0202E8CE -_080BDDCC: - ldr r1, _080BDDD8 @ =gUnknown_0202E8CC - movs r0, 0x12 - strh r0, [r1] - ldr r1, _080BDDDC @ =gUnknown_0202E8CE - movs r0, 0x11 - b _080BDE3A - .align 2, 0 -_080BDDD8: .4byte gUnknown_0202E8CC -_080BDDDC: .4byte gUnknown_0202E8CE -_080BDDE0: - ldr r1, _080BDDEC @ =gUnknown_0202E8CC - movs r0, 0x15 - strh r0, [r1] - ldr r1, _080BDDF0 @ =gUnknown_0202E8CE - movs r0, 0x16 - b _080BDE3A - .align 2, 0 -_080BDDEC: .4byte gUnknown_0202E8CC -_080BDDF0: .4byte gUnknown_0202E8CE -_080BDDF4: - ldr r1, _080BDE00 @ =gUnknown_0202E8CC - movs r0, 0x8 - strh r0, [r1] - ldr r1, _080BDE04 @ =gUnknown_0202E8CE - movs r0, 0x9 - b _080BDE3A - .align 2, 0 -_080BDE00: .4byte gUnknown_0202E8CC -_080BDE04: .4byte gUnknown_0202E8CE -_080BDE08: - ldr r1, _080BDE14 @ =gUnknown_0202E8CC - movs r0, 0x13 - strh r0, [r1] - ldr r1, _080BDE18 @ =gUnknown_0202E8CE - movs r0, 0x14 - b _080BDE3A - .align 2, 0 -_080BDE14: .4byte gUnknown_0202E8CC -_080BDE18: .4byte gUnknown_0202E8CE -_080BDE1C: - ldr r1, _080BDE28 @ =gUnknown_0202E8CC - movs r0, 0x17 - strh r0, [r1] - ldr r1, _080BDE2C @ =gUnknown_0202E8CE - movs r0, 0x18 - b _080BDE3A - .align 2, 0 -_080BDE28: .4byte gUnknown_0202E8CC -_080BDE2C: .4byte gUnknown_0202E8CE -_080BDE30: - ldr r1, _080BDE40 @ =gUnknown_0202E8CC - movs r0, 0xA - strh r0, [r1] - ldr r1, _080BDE44 @ =gUnknown_0202E8CE - movs r0, 0xB -_080BDE3A: - strh r0, [r1] -_080BDE3C: - pop {r0} - bx r0 - .align 2, 0 -_080BDE40: .4byte gUnknown_0202E8CC -_080BDE44: .4byte gUnknown_0202E8CE - thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds - - thumb_func_start sub_80BDE48 -sub_80BDE48: @ 80BDE48 - push {lr} - ldr r0, _080BDE60 @ =gUnknown_0202E8CE - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x6 - bhi _080BDEA6 - lsls r0, 2 - ldr r1, _080BDE64 @ =_080BDE68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BDE60: .4byte gUnknown_0202E8CE -_080BDE64: .4byte _080BDE68 - .align 2, 0 -_080BDE68: - .4byte _080BDE84 - .4byte _080BDE8A - .4byte _080BDE90 - .4byte _080BDE96 - .4byte _080BDEA6 - .4byte _080BDE9C - .4byte _080BDEA2 -_080BDE84: - bl sub_80BE5FC - b _080BDEA6 -_080BDE8A: - bl sub_80BE65C - b _080BDEA6 -_080BDE90: - bl sub_80BE6A0 - b _080BDEA6 -_080BDE96: - bl nullsub_21 - b _080BDEA6 -_080BDE9C: - bl sub_80BE188 - b _080BDEA6 -_080BDEA2: - bl sub_80BE320 -_080BDEA6: - pop {r0} - bx r0 - thumb_func_end sub_80BDE48 - - thumb_func_start sub_80BDEAC -sub_80BDEAC: @ 80BDEAC - push {lr} - adds r1, r0, 0 - movs r2, 0x2 - ldrb r0, [r1] - cmp r0, 0xFC - bne _080BDEC0 - ldrb r0, [r1, 0x1] - cmp r0, 0x15 - bne _080BDEC0 - movs r2, 0x1 -_080BDEC0: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_80BDEAC - - thumb_func_start sub_80BDEC8 -sub_80BDEC8: @ 80BDEC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - bl sub_80BEB20 - bl sub_80BE778 - ldr r5, _080BDEE8 @ =gUnknown_030042E0 - ldrh r0, [r5, 0x28] - cmp r0, 0 - bne _080BDEEC - bl sub_80BE074 - b _080BE012 - .align 2, 0 -_080BDEE8: .4byte gUnknown_030042E0 -_080BDEEC: - bl sub_80BE028 - ldr r0, _080BDF98 @ =0x0000ffff - bl sub_80BF77C - lsls r0, 24 - cmp r0, 0 - beq _080BDEFE - b _080BE012 -_080BDEFE: - ldrh r1, [r5, 0x28] - movs r0, 0xB - muls r0, r1 - ldr r1, _080BDF9C @ =gSpeciesNames - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x2A - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _080BDF16 - b _080BE012 -_080BDF16: - ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738 - bl sub_80BF74C - ldr r1, _080BDFA4 @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE012 - movs r0, 0x15 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE012 - movs r2, 0 - adds r7, r5, 0 - adds r1, r7, 0 - adds r1, 0x36 -_080BDF42: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080BDF42 - cmp r4, 0 - bne _080BDF64 - ldrb r1, [r7, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BE012 -_080BDF64: - movs r4, 0 - ldr r0, _080BDFA4 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - movs r0, 0x15 - strb r0, [r5] - strb r4, [r5, 0x1] - ldrb r1, [r7, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BDFAC - movs r4, 0x1 - movs r0, 0x1 - adds r3, r5, 0 - adds r3, 0x13 - ldr r1, _080BDFA8 @ =gSaveBlock2 - mov r8, r1 - adds r6, r5, 0x4 - b _080BDFDE - .align 2, 0 -_080BDF98: .4byte 0x0000ffff -_080BDF9C: .4byte gSpeciesNames -_080BDFA0: .4byte gSaveBlock1 + 0x2738 -_080BDFA4: .4byte gUnknown_03005D38 -_080BDFA8: .4byte gSaveBlock2 -_080BDFAC: - movs r2, 0 - ldr r0, _080BE01C @ =gUnknown_02024C04 - mov r12, r0 - adds r3, r5, 0 - adds r3, 0x13 - ldr r1, _080BE020 @ =gSaveBlock2 - mov r8, r1 - adds r6, r5, 0x4 - adds r1, r7, 0 - adds r1, 0x36 -_080BDFC0: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080BDFC0 - cmp r4, 0xFF - bls _080BDFDA - movs r4, 0xFF -_080BDFDA: - mov r1, r12 - ldrh r0, [r1] -_080BDFDE: - strb r4, [r5, 0x12] - strb r0, [r5, 0xF] - adds r0, r3, 0 - mov r1, r8 - bl StringCopy - ldr r4, _080BE024 @ =gUnknown_0300430A - adds r0, r6, 0 - adds r1, r4, 0 - bl StringCopy - subs r4, 0x2A - ldrh r0, [r4, 0x28] - strh r0, [r5, 0x10] - adds r0, r5, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r5, 0x2] - adds r0, r6, 0 - bl sub_80BDEAC - strb r0, [r5, 0x3] - adds r0, r6, 0 - bl StripExtCtrlCodes -_080BE012: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE01C: .4byte gUnknown_02024C04 -_080BE020: .4byte gSaveBlock2 -_080BE024: .4byte gUnknown_0300430A - thumb_func_end sub_80BDEC8 - - thumb_func_start sub_80BE028 -sub_80BE028: @ 80BE028 - push {r4,lr} - ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98 - ldrb r0, [r4] - cmp r0, 0x19 - beq _080BE048 - ldr r1, _080BE068 @ =0xfffffca0 - adds r0, r4, r1 - movs r1, 0x18 - bl sub_80BF55C - movs r0, 0x5 - bl sub_8053108 - strh r0, [r4, 0x6] - movs r0, 0x19 - strb r0, [r4] -_080BE048: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r1, _080BE06C @ =gUnknown_030042E0 - ldrh r0, [r1, 0x28] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldr r0, _080BE070 @ =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE064: .4byte gSaveBlock1 + 0x2A98 -_080BE068: .4byte 0xfffffca0 -_080BE06C: .4byte gUnknown_030042E0 -_080BE070: .4byte gMapHeader - thumb_func_end sub_80BE028 - - thumb_func_start sub_80BE074 -sub_80BE074: @ 80BE074 - push {r4-r7,lr} - ldr r0, _080BE118 @ =0x0000ffff - bl sub_80BF77C - lsls r0, 24 - cmp r0, 0 - bne _080BE112 - movs r1, 0 - movs r5, 0 - ldr r2, _080BE11C @ =gUnknown_03004316 -_080BE088: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bls _080BE088 - cmp r5, 0xFF - bls _080BE0A2 - movs r5, 0xFF -_080BE0A2: - cmp r5, 0x2 - bls _080BE112 - ldr r7, _080BE120 @ =gUnknown_02024D26 - ldrb r0, [r7] - cmp r0, 0x1 - bne _080BE112 - ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738 - adds r0, r6, 0 - bl sub_80BF74C - ldr r4, _080BE128 @ =gUnknown_03005D38 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE112 - movs r0, 0x17 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE112 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r6 - movs r1, 0 - movs r0, 0x17 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, _080BE12C @ =gUnknown_030042E0 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x20] - strh r0, [r4, 0xE] - strb r5, [r4, 0x10] - ldrb r0, [r7] - strb r0, [r4, 0x11] - ldr r0, _080BE130 @ =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BE134 @ =gSaveBlock2 - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0x2] -_080BE112: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE118: .4byte 0x0000ffff -_080BE11C: .4byte gUnknown_03004316 -_080BE120: .4byte gUnknown_02024D26 -_080BE124: .4byte gSaveBlock1 + 0x2738 -_080BE128: .4byte gUnknown_03005D38 -_080BE12C: .4byte gUnknown_030042E0 -_080BE130: .4byte gMapHeader -_080BE134: .4byte gSaveBlock2 - thumb_func_end sub_80BE074 - - thumb_func_start sub_80BE138 -sub_80BE138: @ 80BE138 - push {r4,lr} - adds r4, r0, 0 - bl sub_80BFB94 - strb r0, [r4, 0x1E] - lsrs r2, r0, 8 - strb r2, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - adds r1, 0x1 - strb r2, [r1] - adds r1, 0x1 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x23 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE138 - - thumb_func_start sub_80BE160 -sub_80BE160: @ 80BE160 - push {r4,lr} - adds r4, r0, 0 - bl sub_80BFB94 - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - lsrs r1, r0, 8 - adds r2, r4, 0 - adds r2, 0x21 - strb r1, [r2] - adds r2, 0x1 - strb r0, [r2] - adds r0, r4, 0 - adds r0, 0x23 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE160 - - thumb_func_start sub_80BE188 -sub_80BE188: @ 80BE188 - push {r4-r6,lr} - ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98 - ldrb r1, [r6] - cmp r1, 0x6 - bne _080BE224 - ldr r0, _080BE230 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r2, _080BE234 @ =0xfffffca0 - adds r0, r6, r2 - adds r4, r0 - strb r1, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - ldrh r0, [r6, 0x2] - strh r0, [r4, 0x2] - adds r0, r4, 0 - adds r0, 0x16 - ldr r1, _080BE238 @ =gSaveBlock2 - bl StringCopy - adds r5, r4, 0 - adds r5, 0x8 - adds r1, r6, 0 - adds r1, 0x8 - adds r0, r5, 0 - bl StringCopy - ldrb r0, [r6, 0x13] - lsls r0, 29 - lsrs r0, 29 - ldrb r2, [r4, 0x13] - movs r3, 0x8 - negs r3, r3 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x13] - ldrb r2, [r6, 0x13] - movs r0, 0x18 - ands r0, r2 - movs r2, 0x19 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x13] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x14] - ldrb r0, [r6, 0x13] - movs r1, 0x60 - ands r1, r0 - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x13] - ldrb r1, [r6, 0x13] - lsls r1, 29 - lsrs r1, 29 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x13] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0x1F] - adds r0, r5, 0 - bl StripExtCtrlCodes -_080BE224: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE22C: .4byte gSaveBlock1 + 0x2A98 -_080BE230: .4byte gUnknown_03005D38 -_080BE234: .4byte 0xfffffca0 -_080BE238: .4byte gSaveBlock2 - thumb_func_end sub_80BE188 - - thumb_func_start sub_80BE23C -sub_80BE23C: @ 80BE23C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98 - bl sub_80BF484 - ldr r0, _080BE27C @ =0xfffffca0 - adds r5, r4, r0 - adds r0, r5, 0 - bl sub_80BF720 - ldr r1, _080BE280 @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE270 - adds r0, r5, 0 - movs r1, 0x18 - bl sub_80BF55C - strh r6, [r4, 0x14] - movs r0, 0x6 - strb r0, [r4] -_080BE270: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE278: .4byte gSaveBlock1 + 0x2A98 -_080BE27C: .4byte 0xfffffca0 -_080BE280: .4byte gUnknown_03005D38 - thumb_func_end sub_80BE23C - - thumb_func_start sub_80BE284 -sub_80BE284: @ 80BE284 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98 - ldr r1, _080BE308 @ =0xfffffca0 - adds r0, r7, r1 - bl sub_80BF720 - ldr r1, _080BE30C @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE2FE - movs r3, 0x3 - adds r1, r4, 0 - ands r1, r3 - lsls r1, 5 - ldrb r2, [r7, 0x13] - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - ldr r1, _080BE310 @ =gUnknown_0203869C - ldrb r2, [r1] - movs r1, 0x7 - ands r1, r2 - movs r2, 0x8 - negs r2, r2 - ands r0, r2 - orrs r0, r1 - ldr r1, _080BE314 @ =gUnknown_0203869E - ldrb r1, [r1] - ands r3, r1 - lsls r3, 3 - movs r1, 0x19 - negs r1, r1 - ands r0, r1 - orrs r0, r3 - strb r0, [r7, 0x13] - ldr r6, _080BE318 @ =gUnknown_02038694 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080BE31C @ =gPlayerParty - adds r0, r4 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - adds r2, r7, 0 - adds r2, 0x8 - movs r1, 0x2 - bl GetMonData -_080BE2FE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE304: .4byte gSaveBlock1 + 0x2A98 -_080BE308: .4byte 0xfffffca0 -_080BE30C: .4byte gUnknown_03005D38 -_080BE310: .4byte gUnknown_0203869C -_080BE314: .4byte gUnknown_0203869E -_080BE318: .4byte gUnknown_02038694 -_080BE31C: .4byte gPlayerParty - thumb_func_end sub_80BE284 - - thumb_func_start sub_80BE320 -sub_80BE320: @ 80BE320 - push {r4-r6,lr} - ldr r0, _080BE384 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738 - adds r6, r0, r1 - movs r0, 0x7 - strb r0, [r6] - movs r0, 0x1 - strb r0, [r6, 0x1] - adds r0, r6, 0x2 - ldr r4, _080BE38C @ =gSaveBlock2 - adds r1, r4, 0 - bl StringCopy - adds r0, r6, 0 - adds r0, 0xC - ldr r2, _080BE390 @ =0x00000484 - adds r1, r4, r2 - bl StringCopy - movs r1, 0x90 - lsls r1, 3 - adds r0, r4, r1 - ldrh r0, [r0] - strh r0, [r6, 0xA] - ldr r2, _080BE394 @ =0x00000482 - adds r0, r4, r2 - ldrh r0, [r0] - strh r0, [r6, 0x14] - movs r0, 0xAF - lsls r0, 3 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_8135D3C - strh r0, [r6, 0x16] - ldr r1, _080BE398 @ =0x00000555 - adds r4, r1 - ldrb r0, [r4] - strb r0, [r6, 0x1C] - ldrb r0, [r5] - cmp r0, 0 - bne _080BE39C - movs r0, 0x32 - b _080BE39E - .align 2, 0 -_080BE384: .4byte gUnknown_03005D38 -_080BE388: .4byte gSaveBlock1 + 0x2738 -_080BE38C: .4byte gSaveBlock2 -_080BE390: .4byte 0x00000484 -_080BE394: .4byte 0x00000482 -_080BE398: .4byte 0x00000555 -_080BE39C: - movs r0, 0x64 -_080BE39E: - strb r0, [r6, 0x1A] - ldr r0, _080BE3B8 @ =gUnknown_0202E8CC - ldrh r0, [r0] - strb r0, [r6, 0x1B] - adds r0, r6, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r6, 0x1D] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE3B8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80BE320 - - thumb_func_start sub_80BE3BC -sub_80BE3BC: @ 80BE3BC - push {r4-r7,lr} - ldr r0, _080BE460 @ =0x00005555 - bl sub_80BF77C - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080BE458 - ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738 - adds r0, r6, 0 - bl sub_80BF74C - ldr r5, _080BE468 @ =gUnknown_03005D38 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE458 - movs r0, 0x16 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BE458 - bl sub_80BF20C - ldr r2, _080BE46C @ =gUnknown_02038724 - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bls _080BE458 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r6 - movs r0, 0x16 - strb r0, [r5] - strb r4, [r5, 0x1] - ldr r0, _080BE470 @ =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r5, 0x12] - movs r4, 0 - adds r7, r5, 0x6 - mov r12, r2 - adds r6, r5, 0 - adds r6, 0xC -_080BE420: - lsls r2, r4, 1 - adds r3, r7, r2 - lsls r1, r4, 2 - add r1, r12 - ldrh r0, [r1] - strh r0, [r3] - adds r2, r6, r2 - ldrh r0, [r1, 0x2] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080BE420 - movs r0, 0x1 - bl GetPriceReduction - strb r0, [r5, 0x2] - adds r0, r5, 0 - adds r0, 0x13 - ldr r1, _080BE474 @ =gSaveBlock2 - bl StringCopy - adds r0, r5, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r5, 0x3] -_080BE458: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE460: .4byte 0x00005555 -_080BE464: .4byte gSaveBlock1 + 0x2738 -_080BE468: .4byte gUnknown_03005D38 -_080BE46C: .4byte gUnknown_02038724 -_080BE470: .4byte gMapHeader -_080BE474: .4byte gSaveBlock2 - thumb_func_end sub_80BE3BC - - thumb_func_start sub_80BE478 -sub_80BE478: @ 80BE478 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_80BF478 - ldr r0, _080BE554 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080BE548 - ldr r0, _080BE558 @ =gUnknown_0202E8CC - mov r8, r0 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r6, _080BE55C @ =gPlayerParty - adds r0, r6 - ldr r4, _080BE560 @ =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r1, _080BE564 @ =gSaveBlock2 - mov r9, r1 - mov r0, r9 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080BE548 - ldr r0, _080BE568 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x5 - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strb r0, [r4, 0x1A] - bl Random - lsls r0, 16 - lsrs r0, 16 - ands r0, r5 - strb r0, [r4, 0x1B] - ldrh r0, [r4, 0x2] - bl sub_80BF674 - strh r0, [r4, 0x1C] - adds r0, r4, 0 - adds r0, 0xF - mov r1, r9 - bl StringCopy - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - adds r5, r4, 0x4 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0x1F] - adds r0, r5, 0 - bl StripExtCtrlCodes -_080BE548: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BE554: .4byte gScriptResult -_080BE558: .4byte gUnknown_0202E8CC -_080BE55C: .4byte gPlayerParty -_080BE560: .4byte gStringVar1 -_080BE564: .4byte gSaveBlock2 -_080BE568: .4byte gUnknown_03005D38 -_080BE56C: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BE478 - - thumb_func_start StartMassOutbreak -StartMassOutbreak: @ 80BE570 - push {r4,lr} - ldr r0, _080BE5F0 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738 - adds r0, r2 - ldrh r3, [r0, 0xC] - movs r4, 0xF1 - lsls r4, 2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x10] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x11] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x14] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrb r3, [r0, 0x2] - adds r4, 0x1 - adds r1, r2, r4 - strb r3, [r1] - ldrh r3, [r0, 0xE] - adds r4, 0x1 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x4] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x6] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0x8] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrh r3, [r0, 0xA] - adds r4, 0x2 - adds r1, r2, r4 - strh r3, [r1] - ldrb r3, [r0, 0x3] - adds r4, 0x2 - adds r1, r2, r4 - strb r3, [r1] - ldrb r1, [r0, 0x13] - ldr r3, _080BE5F8 @ =0x000003d5 - adds r0, r2, r3 - strb r1, [r0] - adds r4, 0x2 - adds r2, r4 - movs r0, 0x2 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE5F0: .4byte gUnknown_0202E8CC -_080BE5F4: .4byte gSaveBlock1 + 0x2738 -_080BE5F8: .4byte 0x000003d5 - thumb_func_end StartMassOutbreak - - thumb_func_start sub_80BE5FC -sub_80BE5FC: @ 80BE5FC - push {r4,lr} - ldr r0, _080BE64C @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE654 @ =gSaveBlock2 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080BE658 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE64C: .4byte gUnknown_03005D38 -_080BE650: .4byte gSaveBlock1 + 0x2738 -_080BE654: .4byte gSaveBlock2 -_080BE658: .4byte gPlayerParty - thumb_func_end sub_80BE5FC - - thumb_func_start sub_80BE65C -sub_80BE65C: @ 80BE65C - push {r4-r6,lr} - ldr r0, _080BE694 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r6, 0 - movs r5, 0x2 - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, _080BE69C @ =gSaveBlock2 - bl StringCopy - strh r6, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - strb r5, [r4, 0x18] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE694: .4byte gUnknown_03005D38 -_080BE698: .4byte gSaveBlock1 + 0x2738 -_080BE69C: .4byte gSaveBlock2 - thumb_func_end sub_80BE65C - - thumb_func_start sub_80BE6A0 -sub_80BE6A0: @ 80BE6A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080BE760 @ =gUnknown_03005D38 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _080BE768 @ =gPlayerParty - adds r0, r6 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsrs r0, 4 - movs r1, 0xF - ands r0, r1 - ldrb r2, [r4, 0x4] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - ldr r0, _080BE76C @ =gUnknown_0202E8D2 - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - adds r0, r4, 0x5 - ldr r1, _080BE770 @ =gSaveBlock2 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r5, r4, 0 - adds r5, 0x10 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0xD] - adds r0, r5, 0 - bl sub_80BDEAC - strb r0, [r4, 0xE] - adds r0, r5, 0 - bl StripExtCtrlCodes - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE760: .4byte gUnknown_03005D38 -_080BE764: .4byte gSaveBlock1 + 0x2738 -_080BE768: .4byte gPlayerParty -_080BE76C: .4byte gUnknown_0202E8D2 -_080BE770: .4byte gSaveBlock2 - thumb_func_end sub_80BE6A0 - - thumb_func_start nullsub_21 -nullsub_21: @ 80BE774 - bx lr - thumb_func_end nullsub_21 - - thumb_func_start sub_80BE778 -sub_80BE778: @ 80BE778 - push {r4-r6,lr} - ldr r0, _080BE83C @ =0x00000804 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BE836 - movs r1, 0 - ldr r3, _080BE840 @ =gSaveBlock1 - ldr r2, _080BE844 @ =0x00002738 -_080BE78C: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - beq _080BE836 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x17 - bls _080BE78C - ldr r0, _080BE848 @ =0x00000147 - bl sub_80BF77C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080BE836 - ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738 - adds r0, r6, 0 - bl sub_80BF720 - ldr r4, _080BE850 @ =gUnknown_03005D38 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BE836 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r4, r1, 3 - adds r4, r1 - lsls r4, 2 - adds r4, r6 - movs r1, 0x29 - strb r1, [r4] - movs r3, 0x1 - strb r3, [r4, 0x1] - ldr r2, _080BE854 @ =gUnknown_083D13F8 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - strb r0, [r4, 0x14] - strb r5, [r4, 0x2] - strb r5, [r4, 0x3] - ldrh r0, [r1] - movs r2, 0 - strh r0, [r4, 0xC] - strh r5, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x6] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0xA] - ldrb r0, [r1, 0xB] - strb r0, [r4, 0x10] - strb r2, [r4, 0x11] - strb r2, [r4, 0x12] - movs r0, 0x32 - strb r0, [r4, 0x13] - strb r2, [r4, 0x15] - strh r3, [r4, 0x16] - adds r0, r4, 0 - bl sub_80BE160 - movs r0, 0x2 - strb r0, [r4, 0x18] -_080BE836: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BE83C: .4byte 0x00000804 -_080BE840: .4byte gSaveBlock1 -_080BE844: .4byte 0x00002738 -_080BE848: .4byte 0x00000147 -_080BE84C: .4byte gSaveBlock1 + 0x2738 -_080BE850: .4byte gUnknown_03005D38 -_080BE854: .4byte gUnknown_083D13F8 - thumb_func_end sub_80BE778 - - thumb_func_start EndMassOutbreak -EndMassOutbreak: @ 80BE858 - push {r4,lr} - ldr r0, _080BE8B4 @ =gSaveBlock1 - ldr r2, _080BE8B8 @ =0x00002afc - adds r1, r0, r2 - movs r3, 0 - movs r2, 0 - strh r2, [r1] - ldr r4, _080BE8BC @ =0x00002afe - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strh r2, [r1] - adds r4, 0x2 - adds r1, r0, r4 - strb r3, [r1] - adds r4, 0x1 - adds r1, r0, r4 - strb r3, [r1] - ldr r1, _080BE8C0 @ =0x00002b0e - adds r0, r1 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE8B4: .4byte gSaveBlock1 -_080BE8B8: .4byte 0x00002afc -_080BE8BC: .4byte 0x00002afe -_080BE8C0: .4byte 0x00002b0e - thumb_func_end EndMassOutbreak - - thumb_func_start sub_80BE8C4 -sub_80BE8C4: @ 80BE8C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80BE8EC - adds r0, r4, 0 - bl UpdateMassOutbreakTimeLeft - adds r0, r4, 0 - bl sub_80BEE84 - adds r0, r4, 0 - bl sub_80BEA5C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BE8C4 - - thumb_func_start sub_80BE8EC -sub_80BE8EC: @ 80BE8EC - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080BE930 @ =gSaveBlock1 - ldr r2, _080BE934 @ =0x00002afc - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _080BE94C - movs r3, 0 - adds r5, r1, 0 - ldr r7, _080BE938 @ =0x00002738 - adds r6, r5, r7 -_080BE906: - lsls r0, r3, 3 - adds r0, r3 - lsls r2, r0, 2 - adds r1, r2, r5 - ldr r7, _080BE938 @ =0x00002738 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080BE942 - adds r7, 0x1 - adds r0, r1, r7 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BE942 - adds r1, r2, r6 - ldrh r0, [r1, 0x16] - cmp r0, r4 - bcs _080BE93C - movs r0, 0 - strh r0, [r1, 0x16] - b _080BE94C - .align 2, 0 -_080BE930: .4byte gSaveBlock1 -_080BE934: .4byte 0x00002afc -_080BE938: .4byte 0x00002738 -_080BE93C: - subs r0, r4 - strh r0, [r1, 0x16] - b _080BE94C -_080BE942: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x17 - bls _080BE906 -_080BE94C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BE8EC - - thumb_func_start UpdateMassOutbreakTimeLeft -UpdateMassOutbreakTimeLeft: @ 80BE954 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080BE96C @ =gSaveBlock1 - ldr r3, _080BE970 @ =0x00002b0e - adds r2, r0, r3 - ldrh r0, [r2] - cmp r0, r1 - bhi _080BE974 - bl EndMassOutbreak - b _080BE978 - .align 2, 0 -_080BE96C: .4byte gSaveBlock1 -_080BE970: .4byte 0x00002b0e -_080BE974: - subs r0, r1 - strh r0, [r2] -_080BE978: - pop {r0} - bx r0 - thumb_func_end UpdateMassOutbreakTimeLeft - - thumb_func_start sub_80BE97C -sub_80BE97C: @ 80BE97C - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - beq _080BE9A4 - ldr r4, _080BE9A0 @ =gUnknown_020387E2 - ldrh r0, [r4] - lsrs r0, 8 - cmp r0, 0x4 - bls _080BE992 - bl sub_80BE9D4 -_080BE992: - ldrb r0, [r4] - strh r0, [r4] - cmp r0, 0xFF - beq _080BE9C8 - adds r0, 0x1 - b _080BE9C6 - .align 2, 0 -_080BE9A0: .4byte gUnknown_020387E2 -_080BE9A4: - ldr r4, _080BE9D0 @ =gUnknown_020387E2 - ldrb r0, [r4] - cmp r0, 0x4 - bls _080BE9B0 - bl sub_80BE9D4 -_080BE9B0: - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - strh r1, [r4] - lsrs r0, r1, 8 - cmp r0, 0xFF - beq _080BE9C8 - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 -_080BE9C6: - strh r0, [r4] -_080BE9C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BE9D0: .4byte gUnknown_020387E2 - thumb_func_end sub_80BE97C - - thumb_func_start sub_80BE9D4 -sub_80BE9D4: @ 80BE9D4 - push {r4,r5,lr} - ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738 - adds r0, r5, 0 - bl sub_80BF74C - ldr r4, _080BEA40 @ =gUnknown_03005D38 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEA36 - movs r0, 0x18 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEA36 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r5 - movs r1, 0 - movs r0, 0x18 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, _080BEA44 @ =gUnknown_020387E2 - ldrh r0, [r1] - strb r0, [r4, 0x2] - ldrh r0, [r1] - lsrs r0, 8 - strb r0, [r4, 0x3] - ldr r0, _080BEA48 @ =gUnknown_020387E0 - ldrh r0, [r0] - strh r0, [r4, 0x4] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BEA4C @ =gSaveBlock2 - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0x6] -_080BEA36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BEA3C: .4byte gSaveBlock1 + 0x2738 -_080BEA40: .4byte gUnknown_03005D38 -_080BEA44: .4byte gUnknown_020387E2 -_080BEA48: .4byte gUnknown_020387E0 -_080BEA4C: .4byte gSaveBlock2 - thumb_func_end sub_80BE9D4 - - thumb_func_start sub_80BEA50 -sub_80BEA50: @ 80BEA50 - ldr r1, _080BEA58 @ =gUnknown_020387E0 - strh r0, [r1] - bx lr - .align 2, 0 -_080BEA58: .4byte gUnknown_020387E0 - thumb_func_end sub_80BEA50 - - thumb_func_start sub_80BEA5C -sub_80BEA5C: @ 80BEA5C - push {lr} - ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98 - ldrb r0, [r1] - cmp r0, 0x19 - bne _080BEA84 - ldrh r0, [r1, 0x2] - cmp r0, 0x13 - bhi _080BEA80 - ldr r2, _080BEA7C @ =0xfffffca0 - adds r0, r1, r2 - movs r1, 0x18 - bl sub_80BF55C - b _080BEA84 - .align 2, 0 -_080BEA78: .4byte gSaveBlock1 + 0x2A98 -_080BEA7C: .4byte 0xfffffca0 -_080BEA80: - bl sub_80BEA88 -_080BEA84: - pop {r0} - bx r0 - thumb_func_end sub_80BEA5C - - thumb_func_start sub_80BEA88 -sub_80BEA88: @ 80BEA88 - push {r4-r7,lr} - ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98 - ldr r0, _080BEB10 @ =0x0000ffff - bl sub_80BF77C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080BEB04 - ldr r0, _080BEB14 @ =0xfffffca0 - adds r7, r5, r0 - adds r0, r7, 0 - bl sub_80BF74C - ldr r4, _080BEB18 @ =gUnknown_03005D38 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEB04 - movs r0, 0x19 - bl sub_80BF1B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEB04 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - adds r4, r7 - movs r0, 0x19 - strb r0, [r4] - strb r6, [r4, 0x1] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - movs r0, 0x5 - bl sub_8053108 - ldrh r1, [r5, 0x6] - subs r0, r1 - strh r0, [r4, 0x6] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x8] - ldrb r0, [r5, 0xA] - strb r0, [r4, 0xA] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, _080BEB1C @ =gSaveBlock2 - bl StringCopy - adds r0, r4, 0 - bl sub_80BE138 - movs r0, 0x2 - strb r0, [r4, 0xB] -_080BEB04: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BEB0C: .4byte gSaveBlock1 + 0x2A98 -_080BEB10: .4byte 0x0000ffff -_080BEB14: .4byte 0xfffffca0 -_080BEB18: .4byte gUnknown_03005D38 -_080BEB1C: .4byte gSaveBlock2 - thumb_func_end sub_80BEA88 - - thumb_func_start sub_80BEB20 -sub_80BEB20: @ 80BEB20 - push {r4-r6,lr} - ldr r0, _080BEBAC @ =0x00000804 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080BEBA6 - ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC - adds r0, r6, 0 - bl sub_80BEBC8 - ldr r5, _080BEBB4 @ =gUnknown_03005D38 - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BEBA6 - ldr r0, _080BEBB8 @ =0x0000028f - bl sub_80BF77C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEBA6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80BEE48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEBA6 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - ldr r1, _080BEBBC @ =0xffffd544 - adds r2, r6, r1 - adds r0, r6, r0 - strb r4, [r0] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r0, r2 - ldr r1, _080BEBC0 @ =0x00002abe - adds r0, r1 - movs r1, 0x4 - strh r1, [r0] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r0, r2 - ldr r1, _080BEBC4 @ =0x00002abd - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_080BEBA6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BEBAC: .4byte 0x00000804 -_080BEBB0: .4byte gSaveBlock1 + 0x2ABC -_080BEBB4: .4byte gUnknown_03005D38 -_080BEBB8: .4byte 0x0000028f -_080BEBBC: .4byte 0xffffd544 -_080BEBC0: .4byte 0x00002abe -_080BEBC4: .4byte 0x00002abd - thumb_func_end sub_80BEB20 - - thumb_func_start sub_80BEBC8 -sub_80BEBC8: @ 80BEBC8 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BEBCE: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BEBE0 - adds r0, r1, 0 - b _080BEBF0 -_080BEBE0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0xF - ble _080BEBCE - movs r0, 0x1 - negs r0, r0 -_080BEBF0: - pop {r1} - bx r1 - thumb_func_end sub_80BEBC8 - - thumb_func_start sub_80BEBF4 -sub_80BEBF4: @ 80BEBF4 - push {r4,lr} - movs r4, 0 -_080BEBF8: - adds r0, r4, 0 - bl sub_80BEC10 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080BEBF8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80BEBF4 - - thumb_func_start sub_80BEC10 -sub_80BEC10: @ 80BEC10 - lsls r0, 24 - ldr r1, _080BEC30 @ =gSaveBlock1 - lsrs r0, 22 - adds r0, r1 - ldr r2, _080BEC34 @ =0x00002abc - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r3, _080BEC38 @ =0x00002abd - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _080BEC3C @ =0x00002abe - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080BEC30: .4byte gSaveBlock1 -_080BEC34: .4byte 0x00002abc -_080BEC38: .4byte 0x00002abd -_080BEC3C: .4byte 0x00002abe - thumb_func_end sub_80BEC10 - - thumb_func_start sub_80BEC40 -sub_80BEC40: @ 80BEC40 - push {r4-r7,lr} - movs r1, 0 - ldr r6, _080BEC80 @ =gSaveBlock1 -_080BEC46: - ldr r3, _080BEC80 @ =gSaveBlock1 - lsls r2, r1, 2 - adds r0, r2, r3 - ldr r4, _080BEC84 @ =0x00002abc - adds r0, r4 - ldrb r0, [r0] - adds r5, r1, 0x1 - cmp r0, 0 - bne _080BEC92 - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _080BEC92 - adds r4, r3, r4 - adds r3, r2, r4 -_080BEC64: - lsls r2, r1, 2 - adds r0, r2, r6 - ldr r7, _080BEC84 @ =0x00002abc - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _080BEC88 - adds r0, r2, r4 - ldr r0, [r0] - str r0, [r3] - adds r0, r1, 0 - bl sub_80BEC10 - b _080BEC92 - .align 2, 0 -_080BEC80: .4byte gSaveBlock1 -_080BEC84: .4byte 0x00002abc -_080BEC88: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080BEC64 -_080BEC92: - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0xE - bls _080BEC46 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BEC40 - - thumb_func_start sub_80BECA0 -sub_80BECA0: @ 80BECA0 - push {r4,lr} - movs r2, 0 - ldr r3, _080BECCC @ =gSaveBlock1 -_080BECA6: - lsls r0, r2, 2 - adds r1, r0, r3 - ldr r4, _080BECD0 @ =0x00002abc - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080BECD4 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080BECD4 - adds r4, 0x1 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, 0x2 - bhi _080BECD4 - adds r0, r2, 0 - b _080BECE0 - .align 2, 0 -_080BECCC: .4byte gSaveBlock1 -_080BECD0: .4byte 0x00002abc -_080BECD4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080BECA6 - movs r0, 0xFF -_080BECE0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BECA0 - - thumb_func_start sub_80BECE8 -sub_80BECE8: @ 80BECE8 - push {r4,lr} - bl sub_80BECA0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080BED00 - ldr r1, _080BECFC @ =gScriptResult - movs r0, 0 - b _080BED86 - .align 2, 0 -_080BECFC: .4byte gScriptResult -_080BED00: - ldr r0, _080BED2C @ =gSaveBlock1 - lsls r1, 2 - adds r4, r1, r0 - ldr r0, _080BED30 @ =0x00002abe - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _080BED5C - ldr r2, _080BED34 @ =0x00002abd - adds r1, r4, r2 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _080BED38 @ =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x13 - bgt _080BED40 - ldr r1, _080BED3C @ =gUnknown_083D1444 - subs r2, 0x1 - b _080BED44 - .align 2, 0 -_080BED2C: .4byte gSaveBlock1 -_080BED30: .4byte 0x00002abe -_080BED34: .4byte 0x00002abd -_080BED38: .4byte gLocalTime -_080BED3C: .4byte gUnknown_083D1444 -_080BED40: - ldr r1, _080BED54 @ =gUnknown_083D1454 - ldr r2, _080BED58 @ =0x00002abc -_080BED44: - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - b _080BED82 - .align 2, 0 -_080BED54: .4byte gUnknown_083D1454 -_080BED58: .4byte 0x00002abc -_080BED5C: - ldrh r1, [r1] - ldr r0, _080BED90 @ =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, _080BED94 @ =0x00002abd - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r1, _080BED98 @ =gUnknown_083D1434 - ldr r2, _080BED9C @ =0x00002abc - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage -_080BED82: - ldr r1, _080BEDA0 @ =gScriptResult - movs r0, 0x1 -_080BED86: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BED90: .4byte gStringVar1 -_080BED94: .4byte 0x00002abd -_080BED98: .4byte gUnknown_083D1434 -_080BED9C: .4byte 0x00002abc -_080BEDA0: .4byte gScriptResult - thumb_func_end sub_80BECE8 - - thumb_func_start GetPriceReduction -GetPriceReduction: @ 80BEDA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080BEDB4 - b _080BEDF6 -_080BEDB0: - movs r0, 0x1 - b _080BEDF8 -_080BEDB4: - movs r2, 0 - ldr r4, _080BEDE0 @ =gSaveBlock1 -_080BEDB8: - lsls r0, r2, 2 - adds r1, r0, r4 - ldr r5, _080BEDE4 @ =0x00002abc - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _080BEDEC - ldr r2, _080BEDE8 @ =0x00002abd - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080BEDF6 - adds r0, r3, 0 - bl IsPriceDiscounted - lsls r0, 24 - cmp r0, 0 - bne _080BEDB0 - b _080BEDF6 - .align 2, 0 -_080BEDE0: .4byte gSaveBlock1 -_080BEDE4: .4byte 0x00002abc -_080BEDE8: .4byte 0x00002abd -_080BEDEC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080BEDB8 -_080BEDF6: - movs r0, 0 -_080BEDF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetPriceReduction - - thumb_func_start IsPriceDiscounted -IsPriceDiscounted: @ 80BEE00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BEE12 - cmp r0, 0x3 - beq _080BEE30 -_080BEE0E: - movs r0, 0x1 - b _080BEE3C -_080BEE12: - ldr r0, _080BEE28 @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _080BEE3A - ldr r0, _080BEE2C @ =gUnknown_0202E8DE - ldrh r0, [r0] - cmp r0, 0x1A - beq _080BEE0E - b _080BEE3A - .align 2, 0 -_080BEE28: .4byte gSaveBlock1 -_080BEE2C: .4byte gUnknown_0202E8DE -_080BEE30: - ldr r0, _080BEE40 @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - ldr r0, _080BEE44 @ =0x0000160d - cmp r1, r0 - beq _080BEE0E -_080BEE3A: - movs r0, 0 -_080BEE3C: - pop {r1} - bx r1 - .align 2, 0 -_080BEE40: .4byte gSaveBlock1 -_080BEE44: .4byte 0x0000160d - thumb_func_end IsPriceDiscounted - - thumb_func_start sub_80BEE48 -sub_80BEE48: @ 80BEE48 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080BEE56 -_080BEE52: - movs r0, 0x1 - b _080BEE74 -_080BEE56: - movs r1, 0 - ldr r4, _080BEE7C @ =gSaveBlock1 - ldr r3, _080BEE80 @ =0x00002abc -_080BEE5C: - lsls r0, r1, 2 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - beq _080BEE52 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080BEE5C - movs r0, 0 -_080BEE74: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080BEE7C: .4byte gSaveBlock1 -_080BEE80: .4byte 0x00002abc - thumb_func_end sub_80BEE48 - - thumb_func_start sub_80BEE84 -sub_80BEE84: @ 80BEE84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 - ldr r0, _080BEEB8 @ =gSaveBlock1 - mov r8, r0 -_080BEE94: - lsls r0, r5, 2 - mov r1, r8 - adds r2, r0, r1 - ldr r3, _080BEEBC @ =0x00002abc - adds r1, r2, r3 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0 - beq _080BEEEC - ldr r1, _080BEEC0 @ =0x00002abe - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r7 - bcs _080BEEC4 - adds r0, r5, 0 - bl sub_80BEC10 - b _080BEEEC - .align 2, 0 -_080BEEB8: .4byte gSaveBlock1 -_080BEEBC: .4byte 0x00002abc -_080BEEC0: .4byte 0x00002abe -_080BEEC4: - ldr r3, _080BEF04 @ =0x00002abd - adds r4, r2, r3 - ldrb r0, [r4] - cmp r0, 0 - bne _080BEEDE - ldr r0, _080BEF08 @ =0x00000804 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080BEEDE - strb r0, [r4] -_080BEEDE: - mov r0, r8 - adds r1, r6, r0 - ldr r3, _080BEF0C @ =0x00002abe - adds r1, r3 - ldrh r0, [r1] - subs r0, r7 - strh r0, [r1] -_080BEEEC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _080BEE94 - bl sub_80BEC40 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BEF04: .4byte 0x00002abd -_080BEF08: .4byte 0x00000804 -_080BEF0C: .4byte 0x00002abe - thumb_func_end sub_80BEE84 - - thumb_func_start sub_80BEF10 -sub_80BEF10: @ 80BEF10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _080BEF50 - cmp r1, 0x1 - bgt _080BEF2A - cmp r1, 0 - beq _080BEF34 - b _080BEF98 -_080BEF2A: - cmp r2, 0x2 - beq _080BEF6C - cmp r2, 0x3 - beq _080BEF88 - b _080BEF98 -_080BEF34: - ldr r1, _080BEF48 @ =gUnknown_083D1464 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF4C @ =gUnknown_083CE048 - ldr r1, [r1, 0x14] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF48: .4byte gUnknown_083D1464 -_080BEF4C: .4byte gUnknown_083CE048 -_080BEF50: - ldr r1, _080BEF64 @ =gUnknown_083D1464 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF68 @ =gUnknown_083CE048 - ldr r1, [r1, 0x18] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF64: .4byte gUnknown_083D1464 -_080BEF68: .4byte gUnknown_083CE048 -_080BEF6C: - ldr r1, _080BEF80 @ =gUnknown_083D1464 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEF84 @ =gUnknown_083CE048 - ldr r1, [r1, 0x1C] - bl StringCopy - b _080BEF98 - .align 2, 0 -_080BEF80: .4byte gUnknown_083D1464 -_080BEF84: .4byte gUnknown_083CE048 -_080BEF88: - ldr r1, _080BEF9C @ =gUnknown_083D1464 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEFA0 @ =gUnknown_083CE048 - ldr r1, [r1, 0x20] - bl StringCopy -_080BEF98: - pop {r0} - bx r0 - .align 2, 0 -_080BEF9C: .4byte gUnknown_083D1464 -_080BEFA0: .4byte gUnknown_083CE048 - thumb_func_end sub_80BEF10 - - thumb_func_start CopyContestCategoryToStringVar -CopyContestCategoryToStringVar: @ 80BEFA4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x4 - bhi _080BF054 - lsls r0, 2 - ldr r1, _080BEFBC @ =_080BEFC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BEFBC: .4byte _080BEFC0 - .align 2, 0 -_080BEFC0: - .4byte _080BEFD4 - .4byte _080BEFF0 - .4byte _080BF00C - .4byte _080BF028 - .4byte _080BF044 -_080BEFD4: - ldr r1, _080BEFE8 @ =gUnknown_083D1464 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BEFEC @ =gUnknown_083CE048 - ldr r1, [r1] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BEFE8: .4byte gUnknown_083D1464 -_080BEFEC: .4byte gUnknown_083CE048 -_080BEFF0: - ldr r1, _080BF004 @ =gUnknown_083D1464 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF008 @ =gUnknown_083CE048 - ldr r1, [r1, 0x4] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF004: .4byte gUnknown_083D1464 -_080BF008: .4byte gUnknown_083CE048 -_080BF00C: - ldr r1, _080BF020 @ =gUnknown_083D1464 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF024 @ =gUnknown_083CE048 - ldr r1, [r1, 0x8] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF020: .4byte gUnknown_083D1464 -_080BF024: .4byte gUnknown_083CE048 -_080BF028: - ldr r1, _080BF03C @ =gUnknown_083D1464 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF040 @ =gUnknown_083CE048 - ldr r1, [r1, 0xC] - bl StringCopy - b _080BF054 - .align 2, 0 -_080BF03C: .4byte gUnknown_083D1464 -_080BF040: .4byte gUnknown_083CE048 -_080BF044: - ldr r1, _080BF058 @ =gUnknown_083D1464 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080BF05C @ =gUnknown_083CE048 - ldr r1, [r1, 0x10] - bl StringCopy -_080BF054: - pop {r0} - bx r0 - .align 2, 0 -_080BF058: .4byte gUnknown_083D1464 -_080BF05C: .4byte gUnknown_083CE048 - thumb_func_end CopyContestCategoryToStringVar - - thumb_func_start SetContestCategoryStringVarForInterview -SetContestCategoryStringVarForInterview: @ 80BF060 - push {lr} - ldr r0, _080BF080 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrb r1, [r0, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - pop {r0} - bx r0 - .align 2, 0 -_080BF080: .4byte gUnknown_0202E8CC -_080BF084: .4byte gSaveBlock1 + 0x2738 - thumb_func_end SetContestCategoryStringVarForInterview - - thumb_func_start sub_80BF088 -sub_80BF088: @ 80BF088 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - ldr r0, _080BF0B4 @ =gUnknown_083D1464 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - lsls r3, 24 - lsrs r3, 24 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080BF0B4: .4byte gUnknown_083D1464 - thumb_func_end sub_80BF088 - - thumb_func_start sub_80BF0B8 -sub_80BF0B8: @ 80BF0B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xA - bl __divsi3 - cmp r0, 0 - beq _080BF144 - adds r0, r4, 0 - movs r1, 0x64 - bl __divsi3 - cmp r0, 0 - bne _080BF0D6 - movs r0, 0x2 - b _080BF14E -_080BF0D6: - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF0E8 - movs r0, 0x3 - b _080BF14E -_080BF0E8: - ldr r1, _080BF0F8 @ =0x00002710 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF0FC - movs r0, 0x4 - b _080BF14E - .align 2, 0 -_080BF0F8: .4byte 0x00002710 -_080BF0FC: - ldr r1, _080BF10C @ =0x000186a0 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF110 - movs r0, 0x5 - b _080BF14E - .align 2, 0 -_080BF10C: .4byte 0x000186a0 -_080BF110: - ldr r1, _080BF120 @ =0x000f4240 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF124 - movs r0, 0x6 - b _080BF14E - .align 2, 0 -_080BF120: .4byte 0x000f4240 -_080BF124: - ldr r1, _080BF134 @ =0x00989680 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080BF138 - movs r0, 0x7 - b _080BF14E - .align 2, 0 -_080BF134: .4byte 0x00989680 -_080BF138: - ldr r1, _080BF148 @ =0x05f5e100 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - beq _080BF14C -_080BF144: - movs r0, 0x1 - b _080BF14E - .align 2, 0 -_080BF148: .4byte 0x05f5e100 -_080BF14C: - movs r0, 0x8 -_080BF14E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF0B8 - - thumb_func_start sub_80BF154 -sub_80BF154: @ 80BF154 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 -_080BF166: - lsls r4, r5, 1 - adds r0, r6, 0x6 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, 0 - beq _080BF186 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - adds r1, 0xC - adds r1, r4 - ldrh r1, [r1] - muls r0, r1 - adds r7, r0 -_080BF186: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080BF166 - ldrb r0, [r6, 0x2] - cmp r0, 0x1 - bne _080BF1A0 - asrs r1, r7, 1 - mov r0, r8 - bl sub_80BF088 - b _080BF1A8 -_080BF1A0: - mov r0, r8 - adds r1, r7, 0 - bl sub_80BF088 -_080BF1A8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BF154 - - thumb_func_start sub_80BF1B4 -sub_80BF1B4: @ 80BF1B4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738 - bl sub_80BFB94 - adds r5, r0, 0 - movs r4, 0x5 -_080BF1C4: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, r6 - bne _080BF1F8 - movs r3, 0xFF - adds r0, r5, 0 - ands r0, r3 - adds r2, r1, 0 - adds r2, 0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080BF1F8 - lsrs r0, r5, 8 - ands r0, r3 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080BF1F8 - movs r0, 0x1 - b _080BF204 - .align 2, 0 -_080BF1F4: .4byte gSaveBlock1 + 0x2738 -_080BF1F8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bls _080BF1C4 - movs r0, 0 -_080BF204: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80BF1B4 - - thumb_func_start sub_80BF20C -sub_80BF20C: @ 80BF20C - push {r4-r7,lr} - movs r2, 0 -_080BF210: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - adds r7, r1, 0 - cmp r5, 0x2 - bhi _080BF248 - ldr r6, _080BF258 @ =gUnknown_02038724 - lsls r0, r2, 2 - adds r4, r0, r6 -_080BF222: - lsls r0, r5, 2 - adds r3, r0, r6 - ldrh r0, [r4, 0x2] - ldrh r1, [r3, 0x2] - cmp r0, r1 - bcs _080BF23E - ldrh r1, [r4] - adds r2, r0, 0 - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3, 0x2] - strh r0, [r4, 0x2] - strh r1, [r3] - strh r2, [r3, 0x2] -_080BF23E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080BF222 -_080BF248: - lsls r0, r7, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _080BF210 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF258: .4byte gUnknown_02038724 - thumb_func_end sub_80BF20C - - thumb_func_start sub_80BF25C -sub_80BF25C: @ 80BF25C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0 - ldr r3, _080BF28C @ =gSaveBlock1 - ldr r0, _080BF290 @ =0x00002738 - adds r4, r3, r0 -_080BF26A: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - ldr r6, _080BF290 @ =0x00002738 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r5 - bne _080BF2AE - ldr r3, _080BF294 @ =0x00002739 - adds r0, r2, r3 - ldrb r2, [r0] - cmp r2, 0x1 - bne _080BF29C - ldr r0, _080BF298 @ =gScriptResult - strh r2, [r0] - b _080BF2BC - .align 2, 0 -_080BF28C: .4byte gSaveBlock1 -_080BF290: .4byte 0x00002738 -_080BF294: .4byte 0x00002739 -_080BF298: .4byte gScriptResult -_080BF29C: - adds r0, r4, 0 - bl sub_80BF55C - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80BF6D8 - b _080BF2BC -_080BF2AE: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF26A - bl sub_80BF6D8 -_080BF2BC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80BF25C - - thumb_func_start sub_80BF2C4 -sub_80BF2C4: @ 80BF2C4 - push {lr} - ldr r1, _080BF2E0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080BF2E4 @ =gUnknown_0202E8CE - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x6 - bhi _080BF330 - lsls r0, 2 - ldr r1, _080BF2E8 @ =_080BF2EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BF2E0: .4byte gScriptResult -_080BF2E4: .4byte gUnknown_0202E8CE -_080BF2E8: .4byte _080BF2EC - .align 2, 0 -_080BF2EC: - .4byte _080BF308 - .4byte _080BF30E - .4byte _080BF314 - .4byte _080BF31A - .4byte _080BF320 - .4byte _080BF326 - .4byte _080BF32C -_080BF308: - bl sub_80BF334 - b _080BF330 -_080BF30E: - bl sub_80BF3A4 - b _080BF330 -_080BF314: - bl sub_80BF3DC - b _080BF330 -_080BF31A: - bl sub_80BF46C - b _080BF330 -_080BF320: - bl sub_80BF478 - b _080BF330 -_080BF326: - bl sub_80BF484 - b _080BF330 -_080BF32C: - bl sub_80BF4BC -_080BF330: - pop {r0} - bx r0 - thumb_func_end sub_80BF2C4 - - thumb_func_start sub_80BF334 -sub_80BF334: @ 80BF334 - push {r4,lr} - movs r0, 0x1 - bl sub_80BF25C - ldr r0, _080BF38C @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080BF384 - ldr r4, _080BF390 @ =gStringVar1 - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080BF394 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _080BF398 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r0, _080BF39C @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x6 - bl sub_80EB6FC -_080BF384: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BF38C: .4byte gScriptResult -_080BF390: .4byte gStringVar1 -_080BF394: .4byte gPlayerParty -_080BF398: .4byte gSpeciesNames -_080BF39C: .4byte gUnknown_03005D38 -_080BF3A0: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF334 - - thumb_func_start sub_80BF3A4 -sub_80BF3A4: @ 80BF3A4 - push {lr} - movs r0, 0x2 - bl sub_80BF25C - ldr r0, _080BF3D0 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080BF3CC - ldr r0, _080BF3D4 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x6 - bl sub_80EB6FC -_080BF3CC: - pop {r0} - bx r0 - .align 2, 0 -_080BF3D0: .4byte gScriptResult -_080BF3D4: .4byte gUnknown_03005D38 -_080BF3D8: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF3A4 - - thumb_func_start sub_80BF3DC -sub_80BF3DC: @ 80BF3DC - push {r4-r6,lr} - movs r0, 0x3 - bl sub_80BF25C - ldr r0, _080BF450 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080BF448 - ldr r6, _080BF454 @ =gStringVar1 - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - movs r5, 0x64 - muls r0, r5 - ldr r4, _080BF458 @ =gPlayerParty - adds r0, r4 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, _080BF45C @ =gSpeciesNames - adds r1, r0 - adds r0, r6, 0 - bl StringCopy - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - adds r0, r4 - ldr r4, _080BF460 @ =gStringVar2 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - ldr r0, _080BF464 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - adds r0, 0x1C - movs r1, 0x2 - bl sub_80EB6FC -_080BF448: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BF450: .4byte gScriptResult -_080BF454: .4byte gStringVar1 -_080BF458: .4byte gPlayerParty -_080BF45C: .4byte gSpeciesNames -_080BF460: .4byte gStringVar2 -_080BF464: .4byte gUnknown_03005D38 -_080BF468: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF3DC - - thumb_func_start sub_80BF46C -sub_80BF46C: @ 80BF46C - ldr r1, _080BF474 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - bx lr - .align 2, 0 -_080BF474: .4byte gScriptResult - thumb_func_end sub_80BF46C - - thumb_func_start sub_80BF478 -sub_80BF478: @ 80BF478 - push {lr} - movs r0, 0x5 - bl sub_80BF25C - pop {r0} - bx r0 - thumb_func_end sub_80BF478 - - thumb_func_start sub_80BF484 -sub_80BF484: @ 80BF484 - push {lr} - movs r0, 0x6 - bl sub_80BF25C - ldr r0, _080BF4B0 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080BF4AC - ldr r0, _080BF4B4 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - adds r0, 0x4 - movs r1, 0x2 - bl sub_80EB6FC -_080BF4AC: - pop {r0} - bx r0 - .align 2, 0 -_080BF4B0: .4byte gScriptResult -_080BF4B4: .4byte gUnknown_03005D38 -_080BF4B8: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF484 - - thumb_func_start sub_80BF4BC -sub_80BF4BC: @ 80BF4BC - push {lr} - movs r0, 0x7 - bl sub_80BF25C - ldr r0, _080BF4E8 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080BF4E4 - ldr r0, _080BF4EC @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - adds r0, 0x18 - movs r1, 0x1 - bl sub_80EB6FC -_080BF4E4: - pop {r0} - bx r0 - .align 2, 0 -_080BF4E8: .4byte gScriptResult -_080BF4EC: .4byte gUnknown_03005D38 -_080BF4F0: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BF4BC - - thumb_func_start sub_80BF4F4 -sub_80BF4F4: @ 80BF4F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080BF530 @ =gPlayerParty - adds r4, r0 - ldr r5, _080BF534 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r0, r1 - ldr r1, _080BF538 @ =gSpeciesNames - adds r0, r1 - adds r1, r5, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080BF53C - movs r0, 0x1 - b _080BF53E - .align 2, 0 -_080BF530: .4byte gPlayerParty -_080BF534: .4byte gStringVar1 -_080BF538: .4byte gSpeciesNames -_080BF53C: - movs r0, 0 -_080BF53E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80BF4F4 - - thumb_func_start sub_80BF544 -sub_80BF544: @ 80BF544 - push {lr} - bl sub_810F87C - lsls r0, 24 - lsrs r0, 24 - bl sub_80BF4F4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80BF544 - - thumb_func_start sub_80BF55C -sub_80BF55C: @ 80BF55C - push {lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 3 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - movs r0, 0 - strb r0, [r2] - strb r0, [r2, 0x1] - movs r1, 0 - adds r2, 0x2 - movs r3, 0 -_080BF576: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x21 - bls _080BF576 - pop {r0} - bx r0 - thumb_func_end sub_80BF55C - - thumb_func_start sub_80BF588 -sub_80BF588: @ 80BF588 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 -_080BF58E: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF5D2 - adds r0, r5, 0x1 - b _080BF5CA -_080BF5A0: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080BF5C8 - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80BF55C - b _080BF5D2 -_080BF5C8: - adds r0, r2, 0x1 -_080BF5CA: - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _080BF5A0 -_080BF5D2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080BF58E - movs r5, 0x5 -_080BF5DE: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - adds r5, 0x1 - cmp r0, 0 - bne _080BF62A - lsls r0, r5, 24 - b _080BF624 -_080BF5F2: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080BF620 - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738 - adds r1, r2, 0 - bl sub_80BF55C - b _080BF62A - .align 2, 0 -_080BF61C: .4byte gSaveBlock1 + 0x2738 -_080BF620: - adds r0, r2, 0x1 - lsls r0, 24 -_080BF624: - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080BF5F2 -_080BF62A: - lsls r0, r5, 24 - lsrs r5, r0, 24 - cmp r5, 0x17 - bls _080BF5DE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BF588 - - thumb_func_start sub_80BF638 -sub_80BF638: @ 80BF638 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80BF674 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _080BF66C @ =gUnknown_083D1464 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0xB - muls r1, r5 - ldr r2, _080BF670 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080BF66C: .4byte gUnknown_083D1464 -_080BF670: .4byte gSpeciesNames - thumb_func_end sub_80BF638 - - thumb_func_start sub_80BF674 -sub_80BF674: @ 80BF674 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080BF694 @ =0x0000019b - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - b _080BF6B2 - .align 2, 0 -_080BF694: .4byte 0x0000019b -_080BF698: - cmp r4, 0x1 - bne _080BF6A4 - ldr r4, _080BF6A0 @ =0x0000019b - b _080BF6AA - .align 2, 0 -_080BF6A0: .4byte 0x0000019b -_080BF6A4: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080BF6AA: - cmp r4, r6 - bne _080BF6B2 - adds r4, r5, 0 - b _080BF6CE -_080BF6B2: - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _080BF698 - cmp r4, r5 - beq _080BF698 -_080BF6CE: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80BF674 - - thumb_func_start sub_80BF6D8 -sub_80BF6D8: @ 80BF6D8 - push {lr} - ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738 - bl sub_80BF720 - ldr r1, _080BF704 @ =gUnknown_03005D38 - strb r0, [r1] - ldr r2, _080BF708 @ =gUnknown_0202E8D0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - strh r1, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080BF710 - ldr r1, _080BF70C @ =gScriptResult - movs r0, 0x1 - b _080BF714 - .align 2, 0 -_080BF700: .4byte gSaveBlock1 + 0x2738 -_080BF704: .4byte gUnknown_03005D38 -_080BF708: .4byte gUnknown_0202E8D0 -_080BF70C: .4byte gScriptResult -_080BF710: - ldr r1, _080BF71C @ =gScriptResult - movs r0, 0 -_080BF714: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080BF71C: .4byte gScriptResult - thumb_func_end sub_80BF6D8 - - thumb_func_start sub_80BF720 -sub_80BF720: @ 80BF720 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080BF726: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF73A - lsls r0, r1, 24 - asrs r0, 24 - b _080BF748 -_080BF73A: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF726 - movs r0, 0x1 - negs r0, r0 -_080BF748: - pop {r1} - bx r1 - thumb_func_end sub_80BF720 - - thumb_func_start sub_80BF74C -sub_80BF74C: @ 80BF74C - push {lr} - adds r2, r0, 0 - movs r1, 0x5 -_080BF752: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080BF768 - adds r0, r1, 0 - b _080BF778 -_080BF768: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080BF752 - movs r0, 0x1 - negs r0, r0 -_080BF778: - pop {r1} - bx r1 - thumb_func_end sub_80BF74C - - thumb_func_start sub_80BF77C -sub_80BF77C: @ 80BF77C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bls _080BF794 - movs r0, 0x1 - b _080BF796 -_080BF794: - movs r0, 0 -_080BF796: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF77C - - thumb_func_start sub_80BF79C -sub_80BF79C: @ 80BF79C - push {r4-r6,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r4, 0x4 - ldr r6, _080BF7B8 @ =0x0000ffff - b _080BF7C2 - .align 2, 0 -_080BF7B8: .4byte 0x0000ffff -_080BF7BC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080BF7C2: - cmp r2, 0x6 - bne _080BF7C8 - movs r2, 0 -_080BF7C8: - lsls r1, r2, 1 - adds r0, r5, r1 - ldrh r0, [r0] - adds r3, r4, 0x4 - cmp r0, r6 - beq _080BF7BC - ldr r0, _080BF7E4 @ =gStringVar3 - adds r1, r3, r1 - ldrh r1, [r1] - bl sub_80EB3FC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BF7E4: .4byte gStringVar3 - thumb_func_end sub_80BF79C - - thumb_func_start sub_80BF7E8 -sub_80BF7E8: @ 80BF7E8 - push {lr} - adds r2, r0, 0 - movs r3, 0 - movs r1, 0 - ldrb r0, [r2, 0x4] - cmp r0, 0xFF - beq _080BF814 - adds r2, 0x4 -_080BF7F8: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080BF814 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080BF7F8 -_080BF814: - movs r0, 0x7 - ands r3, r0 - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end sub_80BF7E8 - - thumb_func_start sub_80BF820 -sub_80BF820: @ 80BF820 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - movs r2, 0 - movs r7, 0xFF -_080BF844: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080BF844 - cmp r3, 0 - bne _080BF8A6 - ldr r4, [sp, 0x20] - adds r4, 0xF - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF874 - mov r0, sp - adds r1, r4, r5 - b _080BF920 -_080BF874: - cmp r6, 0x1 - bne _080BF880 - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080BF920 -_080BF880: - cmp r6, 0x2 - bne _080BF892 - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - adds r0, r4, r0 - b _080BF950 -_080BF892: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4, r0 - b _080BF950 -_080BF8A6: - cmp r3, 0x1 - bne _080BF8F4 - ldr r4, [sp, 0x20] - adds r4, 0x4 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF8C2 - mov r0, sp - adds r1, r4, r5 - b _080BF920 -_080BF8C2: - cmp r6, 0x1 - bne _080BF8CE - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 - b _080BF920 -_080BF8CE: - cmp r6, 0x2 - bne _080BF8E0 - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - adds r0, r4, r0 - b _080BF950 -_080BF8E0: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4, r0 - b _080BF950 -_080BF8F4: - movs r0, 0xB - muls r4, r0 - ldr r7, _080BF910 @ =gSpeciesNames - adds r0, r4, r7 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080BF914 - mov r0, sp - adds r1, r5, r4 - b _080BF91E - .align 2, 0 -_080BF910: .4byte gSpeciesNames -_080BF914: - cmp r6, 0x1 - bne _080BF926 - mov r0, sp - subs r1, r2, r5 - adds r1, r4 -_080BF91E: - adds r1, r7 -_080BF920: - ldrb r1, [r1] - strb r1, [r0] - b _080BF954 -_080BF926: - cmp r6, 0x2 - bne _080BF93A - mov r1, sp - adds r0, r5, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - adds r0, r5, r0 - b _080BF94E -_080BF93A: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4 -_080BF94E: - adds r0, r7 -_080BF950: - ldrb r0, [r0] - strb r0, [r1, 0x1] -_080BF954: - ldr r0, _080BF970 @ =gUnknown_083D1464 - mov r2, r8 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - mov r1, sp - bl StringCopy - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BF970: .4byte gUnknown_083D1464 - thumb_func_end sub_80BF820 - - thumb_func_start sub_80BF974 -sub_80BF974: @ 80BF974 - push {r4,lr} - movs r1, 0 - ldr r4, _080BF994 @ =gSaveBlock1 - ldr r0, _080BF998 @ =gUnknown_0202E8CC - ldrh r2, [r0] - ldr r3, _080BF99C @ =0x00002738 -_080BF980: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080BF9A0 - movs r0, 0x1 - b _080BF9AC - .align 2, 0 -_080BF994: .4byte gSaveBlock1 -_080BF998: .4byte gUnknown_0202E8CC -_080BF99C: .4byte 0x00002738 -_080BF9A0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080BF980 - movs r0, 0 -_080BF9AC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF974 - - thumb_func_start sub_80BF9B4 -sub_80BF9B4: @ 80BF9B4 - push {r4,lr} - ldr r0, _080BF9E0 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BF9E4 @ =gPlayerParty - adds r0, r1 - ldr r4, _080BF9E8 @ =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r0, _080BF9EC @ =gStringVar3 - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _080BF9F0 - bl sub_80BE478 - movs r0, 0x1 - b _080BF9F2 - .align 2, 0 -_080BF9E0: .4byte gUnknown_0202E8CC -_080BF9E4: .4byte gPlayerParty -_080BF9E8: .4byte gStringVar1 -_080BF9EC: .4byte gStringVar3 -_080BF9F0: - movs r0, 0 -_080BF9F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80BF9B4 - - thumb_func_start sub_80BF9F8 -sub_80BF9F8: @ 80BF9F8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _080BFAA0 @ =gUnknown_0202E8CC - mov r9, r0 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _080BFAA4 @ =gPlayerParty - adds r0, r6 - ldr r2, _080BFAA8 @ =gStringVar3 - movs r1, 0x2 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - ldr r1, _080BFAAC @ =gStringVar2 - mov r10, r1 - movs r1, 0x2 - mov r2, r10 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _080BFAB0 @ =c2_080CC144 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080BFAA0: .4byte gUnknown_0202E8CC -_080BFAA4: .4byte gPlayerParty -_080BFAA8: .4byte gStringVar3 -_080BFAAC: .4byte gStringVar2 -_080BFAB0: .4byte c2_080CC144 - thumb_func_end sub_80BF9F8 - - thumb_func_start c2_080CC144 -c2_080CC144: @ 80BFAB4 - push {lr} - ldr r0, _080BFAD4 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFAD8 @ =gPlayerParty - adds r0, r1 - ldr r2, _080BFADC @ =gStringVar2 - movs r1, 0x2 - bl SetMonData - bl c2_exit_to_overworld_1_continue_scripts_restart_music - pop {r0} - bx r0 - .align 2, 0 -_080BFAD4: .4byte gUnknown_0202E8CC -_080BFAD8: .4byte gPlayerParty -_080BFADC: .4byte gStringVar2 - thumb_func_end c2_080CC144 - - thumb_func_start sub_80BFAE0 -sub_80BFAE0: @ 80BFAE0 - push {r4,lr} - ldr r0, _080BFB04 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFB08 @ =gPlayerParty - adds r0, r1 - ldr r4, _080BFB0C @ =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFB04: .4byte gUnknown_0202E8CC -_080BFB08: .4byte gPlayerParty -_080BFB0C: .4byte gStringVar1 - thumb_func_end sub_80BFAE0 - - thumb_func_start sub_80BFB10 -sub_80BFB10: @ 80BFB10 - push {r4,lr} - bl sub_80BFB94 - adds r4, r0, 0 - ldr r0, _080BFB38 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080BFB3C @ =gPlayerParty - adds r0, r1 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - cmp r4, r0 - bne _080BFB44 - ldr r1, _080BFB40 @ =gScriptResult - movs r0, 0 - b _080BFB48 - .align 2, 0 -_080BFB38: .4byte gUnknown_0202E8CC -_080BFB3C: .4byte gPlayerParty -_080BFB40: .4byte gScriptResult -_080BFB44: - ldr r1, _080BFB50 @ =gScriptResult - movs r0, 0x1 -_080BFB48: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFB50: .4byte gScriptResult - thumb_func_end sub_80BFB10 - - thumb_func_start sub_80BFB54 -sub_80BFB54: @ 80BFB54 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - cmp r1, 0 - beq _080BFB8A - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080BFB6E - movs r0, 0x2 - b _080BFB90 -_080BFB6E: - adds r0, r1, 0 - subs r0, 0x15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080BFB7E - movs r0, 0x3 - b _080BFB90 -_080BFB7E: - adds r0, r2, 0 - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080BFB8E -_080BFB8A: - movs r0, 0 - b _080BFB90 -_080BFB8E: - movs r0, 0x4 -_080BFB90: - pop {r1} - bx r1 - thumb_func_end sub_80BFB54 - - thumb_func_start sub_80BFB94 -sub_80BFB94: @ 80BFB94 - ldr r2, _080BFBAC @ =gSaveBlock2 - ldrb r0, [r2, 0xD] - lsls r0, 24 - ldrb r1, [r2, 0xC] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0xB] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0xA] - orrs r0, r1 - bx lr - .align 2, 0 -_080BFBAC: .4byte gSaveBlock2 - thumb_func_end sub_80BFB94 - - thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV -CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 - push {lr} - ldr r1, _080BFBD0 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080BFBCC - ldr r0, _080BFBD4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080BFBD8 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - beq _080BFBE0 -_080BFBCC: - movs r0, 0 - b _080BFC0A - .align 2, 0 -_080BFBD0: .4byte gSaveBlock1 -_080BFBD4: .4byte gSaveBlock2 -_080BFBD8: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080BFBCC -_080BFBE0: - ldr r0, _080BFC04 @ =0x0000085d - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFBFE - movs r0, 0x83 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFC08 -_080BFBFE: - movs r0, 0x1 - b _080BFC0A - .align 2, 0 -_080BFC04: .4byte 0x0000085d -_080BFC08: - movs r0, 0x2 -_080BFC0A: - pop {r1} - bx r1 - thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV - - thumb_func_start GetMomOrDadStringForTVMessage -GetMomOrDadStringForTVMessage: @ 80BFC10 - push {r4,lr} - ldr r1, _080BFC40 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080BFC6C - ldr r0, _080BFC44 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080BFC54 - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080BFC6C - ldr r0, _080BFC48 @ =gStringVar1 - ldr r1, _080BFC4C @ =gOtherText_Mom - bl StringCopy - ldr r0, _080BFC50 @ =0x00004003 - movs r1, 0x1 - bl VarSet - b _080BFC6C - .align 2, 0 -_080BFC40: .4byte gSaveBlock1 -_080BFC44: .4byte gSaveBlock2 -_080BFC48: .4byte gStringVar1 -_080BFC4C: .4byte gOtherText_Mom -_080BFC50: .4byte 0x00004003 -_080BFC54: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080BFC6C - ldr r0, _080BFCB4 @ =gStringVar1 - ldr r1, _080BFCB8 @ =gOtherText_Mom - bl StringCopy - ldr r0, _080BFCBC @ =0x00004003 - movs r1, 0x1 - bl VarSet -_080BFC6C: - ldr r4, _080BFCBC @ =0x00004003 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080BFCAA - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _080BFCC0 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _080BFCD4 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080BFCC0 -_080BFCAA: - ldr r0, _080BFCB4 @ =gStringVar1 - ldr r1, _080BFCB8 @ =gOtherText_Mom - bl StringCopy - b _080BFD10 - .align 2, 0 -_080BFCB4: .4byte gStringVar1 -_080BFCB8: .4byte gOtherText_Mom -_080BFCBC: .4byte 0x00004003 -_080BFCC0: - ldr r0, _080BFCCC @ =gStringVar1 - ldr r1, _080BFCD0 @ =gOtherText_Dad - bl StringCopy - b _080BFD10 - .align 2, 0 -_080BFCCC: .4byte gStringVar1 -_080BFCD0: .4byte gOtherText_Dad -_080BFCD4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BFD00 - ldr r0, _080BFCF8 @ =gStringVar1 - ldr r1, _080BFCFC @ =gOtherText_Mom - bl StringCopy - adds r0, r4, 0 - movs r1, 0x1 - bl VarSet - b _080BFD10 - .align 2, 0 -_080BFCF8: .4byte gStringVar1 -_080BFCFC: .4byte gOtherText_Mom -_080BFD00: - ldr r0, _080BFD18 @ =gStringVar1 - ldr r1, _080BFD1C @ =gOtherText_Dad - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - bl VarSet -_080BFD10: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BFD18: .4byte gStringVar1 -_080BFD1C: .4byte gOtherText_Dad - thumb_func_end GetMomOrDadStringForTVMessage - - thumb_func_start sub_80BFD20 -sub_80BFD20: @ 80BFD20 - push {lr} - ldr r0, _080BFD3C @ =0x000040bc - movs r1, 0 - bl VarSet - ldr r0, _080BFD40 @ =gSaveBlock1 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x5 - bl RemoveFieldObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_080BFD3C: .4byte 0x000040bc -_080BFD40: .4byte gSaveBlock1 - thumb_func_end sub_80BFD20 - - thumb_func_start sub_80BFD44 -sub_80BFD44: @ 80BFD44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r4, 0 -_080BFD54: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 5 - adds r0, r4 - lsls r0, 2 - ldr r5, _080BFD8C @ =0x02007000 - adds r0, r5 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080BFD54 - adds r4, r5, 0 - cmp r6, 0x1 - beq _080BFDBC - cmp r6, 0x1 - bgt _080BFD90 - cmp r6, 0 - beq _080BFD9A - b _080BFDFC - .align 2, 0 -_080BFD8C: .4byte 0x02007000 -_080BFD90: - cmp r6, 0x2 - beq _080BFDCC - cmp r6, 0x3 - beq _080BFDE8 - b _080BFDFC -_080BFD9A: - ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738 - movs r2, 0xE1 - lsls r2, 2 - adds r1, r4, r2 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r4, r3 - ldr r5, _080BFDB8 @ =0x00000a8c - adds r3, r4, r5 - bl sub_80BFE24 - b _080BFDFC - .align 2, 0 -_080BFDB4: .4byte gSaveBlock1 + 0x2738 -_080BFDB8: .4byte 0x00000a8c -_080BFDBC: - ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738 - movs r0, 0xE1 - lsls r0, 3 - adds r2, r4, r0 - b _080BFDD4 - .align 2, 0 -_080BFDC8: .4byte gSaveBlock1 + 0x2738 -_080BFDCC: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r4, r0 - ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738 -_080BFDD4: - ldr r5, _080BFDE4 @ =0x00000a8c - adds r3, r4, r5 - adds r0, r4, 0 - bl sub_80BFE24 - b _080BFDFC - .align 2, 0 -_080BFDE0: .4byte gSaveBlock1 + 0x2738 -_080BFDE4: .4byte 0x00000a8c -_080BFDE8: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r5, r0 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r5, r3 - ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738 - adds r0, r5, 0 - bl sub_80BFE24 -_080BFDFC: - ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738 - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80C04A0 - adds r0, r4, 0 - bl sub_80BF588 - bl sub_80C01D4 - bl sub_80C0408 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080BFE20: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80BFD44 - - thumb_func_start sub_80BFE24 -sub_80BFE24: @ 80BFE24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl GetLinkPlayerCount - ldr r1, _080BFEA0 @ =gUnknown_03000720 - strb r0, [r1] -_080BFE50: - movs r6, 0 - ldr r0, _080BFEA0 @ =gUnknown_03000720 - ldrb r1, [r0] - cmp r6, r1 - bcs _080BFE50 - mov r10, r0 -_080BFE5C: - cmp r6, 0 - bne _080BFE64 - ldr r2, _080BFEA4 @ =gUnknown_020387E4 - strb r6, [r2] -_080BFE64: - lsls r4, r6, 2 - mov r3, sp - adds r0, r3, r4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_80C019C - ldr r1, _080BFEA8 @ =gUnknown_03000722 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r7, r4, 0 - cmp r0, r1 - bne _080BFEAC - ldr r1, _080BFEA4 @ =gUnknown_020387E4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r0, r2 - beq _080BFF58 - adds r6, 0x1 - mov r9, r6 - b _080BFF3C - .align 2, 0 -_080BFEA0: .4byte gUnknown_03000720 -_080BFEA4: .4byte gUnknown_020387E4 -_080BFEA8: .4byte gUnknown_03000722 -_080BFEAC: - movs r5, 0 - mov r3, r10 - ldrb r0, [r3] - subs r0, 0x1 - adds r2, r6, 0x1 - mov r9, r2 - cmp r5, r0 - bge _080BFF22 - ldr r3, _080BFF4C @ =gUnknown_03000720 - mov r8, r3 -_080BFEC0: - adds r0, r6, r5 - adds r4, r0, 0x1 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80BF74C - ldr r1, _080BFF50 @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080BFF12 - mov r2, r8 - ldrb r1, [r2] - adds r0, r4, 0 - bl __modsi3 - adds r2, r0, 0 - lsls r0, r2, 2 - add r0, sp - ldr r0, [r0] - mov r3, sp - adds r1, r3, r7 - ldr r1, [r1] - lsls r2, 24 - lsrs r2, 24 - bl sub_80BFF68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BFF22 -_080BFF12: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080BFEC0 -_080BFF22: - mov r2, r10 - ldrb r0, [r2] - subs r0, 0x1 - cmp r5, r0 - bne _080BFF3C - mov r3, sp - adds r0, r3, r7 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, _080BFF54 @ =gUnknown_03000722 - ldrb r1, [r1] - bl sub_80BF55C -_080BFF3C: - mov r1, r9 - lsls r0, r1, 24 - lsrs r6, r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r6, r2 - bcc _080BFE5C - b _080BFE50 - .align 2, 0 -_080BFF4C: .4byte gUnknown_03000720 -_080BFF50: .4byte gUnknown_03005D38 -_080BFF54: .4byte gUnknown_03000722 -_080BFF58: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80BFE24 - - thumb_func_start sub_80BFF68 -sub_80BFF68: @ 80BFF68 - push {r4-r7,lr} - sub sp, 0x4 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r4, [r0] - ldr r6, [r1] - movs r5, 0 - ldr r2, _080BFFA4 @ =gUnknown_03000722 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0] - str r2, [sp] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - ldr r2, [sp] - cmp r0, 0x3 - beq _080BFFD8 - cmp r0, 0x3 - bgt _080BFFA8 - cmp r0, 0x2 - beq _080BFFAE - b _080C0026 - .align 2, 0 -_080BFFA4: .4byte gUnknown_03000722 -_080BFFA8: - cmp r1, 0x4 - beq _080C0000 - b _080C0026 -_080BFFAE: - ldr r0, _080BFFD4 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C004C - b _080C0022 - .align 2, 0 -_080BFFD4: .4byte gUnknown_03005D38 -_080BFFD8: - ldr r0, _080BFFFC @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C00B4 - b _080C0022 - .align 2, 0 -_080BFFFC: .4byte gUnknown_03005D38 -_080C0000: - ldr r0, _080C0030 @ =gUnknown_03005D38 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80C0134 -_080C0022: - lsls r0, 24 - lsrs r5, r0, 24 -_080C0026: - cmp r5, 0x1 - beq _080C0034 - movs r0, 0 - b _080C0040 - .align 2, 0 -_080C0030: .4byte gUnknown_03005D38 -_080C0034: - ldr r0, _080C0048 @ =gUnknown_03000722 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_80BF55C - movs r0, 0x1 -_080C0040: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C0048: .4byte gUnknown_03000722 - thumb_func_end sub_80BFF68 - - thumb_func_start sub_80C004C -sub_80C004C: @ 80C004C - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C007C - movs r0, 0 - b _080C00AC -_080C007C: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080C00AC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C004C - - thumb_func_start sub_80C00B4 -sub_80C00B4: @ 80C00B4 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r2, r0, 0 - movs r3, 0xFF - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x20 - ldrb r1, [r1] - cmp r0, r1 - bne _080C00E0 - lsrs r0, r2, 8 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r0, r1 - beq _080C0100 -_080C00E0: - movs r3, 0xFF - adds r0, r2, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x22 - lsrs r5, r2, 8 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0104 - adds r0, r5, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0104 -_080C0100: - movs r0, 0 - b _080C012C -_080C0104: - ldrb r1, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x21 - strb r0, [r1] - strb r2, [r4, 0x1E] - strb r5, [r4, 0x1F] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080C012C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C00B4 - - thumb_func_start sub_80C0134 -sub_80C0134: @ 80C0134 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl GetLinkPlayerTrainerId - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0164 - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080C0164 - movs r0, 0 - b _080C0196 -_080C0164: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] - strh r0, [r6, 0x16] -_080C0196: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C0134 - - thumb_func_start sub_80C019C -sub_80C019C: @ 80C019C - push {lr} - adds r3, r0, 0 - movs r2, 0 -_080C01A2: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080C01C2 - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _080C01C2 - lsls r0, r2, 24 - asrs r0, 24 - b _080C01D0 -_080C01C2: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080C01A2 - movs r0, 0x1 - negs r0, r0 -_080C01D0: - pop {r1} - bx r1 - thumb_func_end sub_80C019C - - thumb_func_start sub_80C01D4 -sub_80C01D4: @ 80C01D4 - push {r4-r6,lr} - movs r6, 0 -_080C01D8: - ldr r0, _080C01F8 @ =gSaveBlock1 - lsls r2, r6, 3 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldr r0, _080C01FC @ =0x00002738 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x29 - bls _080C01EE - b _080C038C -_080C01EE: - lsls r0, 2 - ldr r1, _080C0200 @ =_080C0204 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C01F8: .4byte gSaveBlock1 -_080C01FC: .4byte 0x00002738 -_080C0200: .4byte _080C0204 - .align 2, 0 -_080C0204: - .4byte _080C0394 - .4byte _080C02AC - .4byte _080C0394 - .4byte _080C02BC - .4byte _080C02CC - .4byte _080C02DC - .4byte _080C02F8 - .4byte _080C0308 - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C0324 - .4byte _080C0394 - .4byte _080C0334 - .4byte _080C0350 - .4byte _080C0368 - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C038C - .4byte _080C0394 -_080C02AC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C02B8: .4byte gSaveBlock1 + 0x2738 -_080C02BC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C02C8: .4byte gSaveBlock1 + 0x2738 -_080C02CC: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x6] - b _080C035A - .align 2, 0 -_080C02D8: .4byte gSaveBlock1 + 0x2738 -_080C02DC: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldrh r0, [r4, 0x2] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x1C] - b _080C037E - .align 2, 0 -_080C02F4: .4byte gSaveBlock1 + 0x2738 -_080C02F8: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x2] - b _080C035A - .align 2, 0 -_080C0304: .4byte gSaveBlock1 + 0x2738 -_080C0308: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldrh r0, [r4, 0xA] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x14] - b _080C037E - .align 2, 0 -_080C0320: .4byte gSaveBlock1 + 0x2738 -_080C0324: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x10] - b _080C035A - .align 2, 0 -_080C0330: .4byte gSaveBlock1 + 0x2738 -_080C0334: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C034C @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldrh r0, [r4, 0xC] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0xE] - b _080C037E - .align 2, 0 -_080C034C: .4byte gSaveBlock1 + 0x2738 -_080C0350: - adds r0, r2, r6 - lsls r0, 2 - ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738 - adds r0, r1 - ldrh r0, [r0, 0x4] -_080C035A: - lsls r1, r6, 24 - lsrs r1, 24 - bl sub_80C03C8 - b _080C0394 - .align 2, 0 -_080C0364: .4byte gSaveBlock1 + 0x2738 -_080C0368: - adds r4, r2, r6 - lsls r4, 2 - ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldrh r0, [r4, 0x8] - lsls r5, r6, 24 - lsrs r5, 24 - adds r1, r5, 0 - bl sub_80C03C8 - ldrh r0, [r4, 0x4] -_080C037E: - adds r1, r5, 0 - bl sub_80C03C8 - b _080C0394 - .align 2, 0 -_080C0388: .4byte gSaveBlock1 + 0x2738 -_080C038C: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_80C03A8 -_080C0394: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x17 - bhi _080C03A0 - b _080C01D8 -_080C03A0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80C01D4 - - thumb_func_start sub_80C03A8 -sub_80C03A8: @ 80C03A8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C03C0 @ =gSaveBlock1 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080C03C4 @ =0x00002739 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080C03C0: .4byte gSaveBlock1 -_080C03C4: .4byte 0x00002739 - thumb_func_end sub_80C03A8 - - thumb_func_start sub_80C03C8 -sub_80C03C8: @ 80C03C8 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - asrs r2, r0, 24 - cmp r2, 0 - bne _080C03F8 - ldr r1, _080C0400 @ =gSaveBlock1 - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, _080C0404 @ =0x00002739 - adds r0, r1 - strb r2, [r0] -_080C03F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C0400: .4byte gSaveBlock1 -_080C0404: .4byte 0x00002739 - thumb_func_end sub_80C03C8 - - thumb_func_start sub_80C0408 -sub_80C0408: @ 80C0408 - push {r4-r6,lr} - ldr r0, _080C044C @ =0x00000804 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C0444 - movs r2, 0 - ldr r6, _080C0450 @ =gSaveBlock1 - ldr r4, _080C0454 @ =0x00002739 - movs r3, 0 - ldr r5, _080C0458 @ =0x00002738 -_080C0422: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080C0436 - cmp r0, 0x29 - bne _080C043A -_080C0436: - adds r0, r1, r4 - strb r3, [r0] -_080C043A: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x17 - bls _080C0422 -_080C0444: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C044C: .4byte 0x00000804 -_080C0450: .4byte gSaveBlock1 -_080C0454: .4byte 0x00002739 -_080C0458: .4byte 0x00002738 - thumb_func_end sub_80C0408 - - thumb_func_start sub_80C045C -sub_80C045C: @ 80C045C - push {r4-r6,lr} - movs r5, 0 - ldr r6, _080C0494 @ =gSaveBlock1 -_080C0462: - lsls r0, r5, 3 - adds r0, r5 - lsls r0, 2 - adds r4, r0, r6 - ldr r1, _080C0498 @ =0x00002738 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80BFB54 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080C0484 - ldr r0, _080C049C @ =0x00002739 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] -_080C0484: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080C0462 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C0494: .4byte gSaveBlock1 -_080C0498: .4byte 0x00002738 -_080C049C: .4byte 0x00002739 - thumb_func_end sub_80C045C - - thumb_func_start sub_80C04A0 -sub_80C04A0: @ 80C04A0 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0x5 - ldr r5, _080C0508 @ =gSaveBlock1 - ldr r4, _080C050C @ =0x00002738 -_080C04AA: - lsls r0, r2, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080C04C8 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 -_080C04C8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080C04AA - movs r2, 0 - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0x5 - subs r0, r1, r0 - cmp r2, r0 - bge _080C0502 - adds r5, r0, 0 -_080C04E4: - lsls r1, r2, 24 - asrs r4, r1, 24 - movs r0, 0xA0 - lsls r0, 19 - adds r1, r0 - lsrs r1, 24 - ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738 - bl sub_80BF55C - adds r4, 0x1 - lsls r4, 24 - lsrs r2, r4, 24 - asrs r4, 24 - cmp r4, r5 - blt _080C04E4 -_080C0502: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0508: .4byte gSaveBlock1 -_080C050C: .4byte 0x00002738 -_080C0510: .4byte gSaveBlock1 + 0x2738 - thumb_func_end sub_80C04A0 - - thumb_func_start sub_80C0514 -sub_80C0514: @ 80C0514 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 -_080C0524: - lsls r0, r4, 6 - ldr r6, _080C0550 @ =0x02007000 - adds r0, r6 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080C0524 - adds r4, r6, 0 - cmp r5, 0x1 - beq _080C0578 - cmp r5, 0x1 - bgt _080C0554 - cmp r5, 0 - beq _080C055E - b _080C05AC - .align 2, 0 -_080C0550: .4byte 0x02007000 -_080C0554: - cmp r5, 0x2 - beq _080C0584 - cmp r5, 0x3 - beq _080C059C - b _080C05AC -_080C055E: - ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC - adds r1, r4, 0 - adds r1, 0x40 - adds r2, r4, 0 - adds r2, 0x80 - adds r3, r4, 0 - adds r3, 0xC0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0574: .4byte gSaveBlock1 + 0x2ABC -_080C0578: - ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC - adds r2, r4, 0 - adds r2, 0x80 - b _080C058A - .align 2, 0 -_080C0580: .4byte gSaveBlock1 + 0x2ABC -_080C0584: - adds r1, r4, 0 - adds r1, 0x40 - ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC -_080C058A: - adds r3, r4, 0 - adds r3, 0xC0 - adds r0, r4, 0 - bl sub_80C05C4 - b _080C05AC - .align 2, 0 -_080C0598: .4byte gSaveBlock1 + 0x2ABC -_080C059C: - adds r1, r6, 0 - adds r1, 0x40 - adds r2, r6, 0 - adds r2, 0x80 - ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC - adds r0, r6, 0 - bl sub_80C05C4 -_080C05AC: - bl sub_80C0750 - bl sub_80C0788 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C05C0: .4byte gSaveBlock1 + 0x2ABC - thumb_func_end sub_80C0514 - - thumb_func_start sub_80C05C4 -sub_80C05C4: @ 80C05C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl GetLinkPlayerCount - ldr r1, _080C0600 @ =gUnknown_03000721 - strb r0, [r1] - movs r0, 0 - mov r10, r0 -_080C05F4: - movs r7, 0 - mov r1, r10 - adds r1, 0x1 - str r1, [sp, 0x20] - b _080C068C - .align 2, 0 -_080C0600: .4byte gUnknown_03000721 -_080C0604: - lsls r4, r7, 2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r10 - bl sub_80C0730 - ldr r1, _080C06B0 @ =gUnknown_03000722 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - mov r8, r4 - adds r1, r7, 0x1 - mov r9, r1 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0686 - movs r5, 0 - ldr r1, _080C06B4 @ =gUnknown_03000721 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - bge _080C0686 - adds r6, r1, 0 -_080C0638: - adds r0, r7, r5 - adds r4, r0, 0x1 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80BEBC8 - ldr r1, _080C06B8 @ =gUnknown_03005D38 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080C0678 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - mov r1, sp - add r1, r8 - ldr r1, [r1] - bl sub_80C06BC -_080C0678: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - subs r0, 0x1 - cmp r5, r0 - blt _080C0638 -_080C0686: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 -_080C068C: - ldr r0, _080C06B4 @ =gUnknown_03000721 - ldrb r0, [r0] - cmp r7, r0 - bcc _080C0604 - ldr r1, [sp, 0x20] - lsls r0, r1, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bls _080C05F4 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C06B0: .4byte gUnknown_03000722 -_080C06B4: .4byte gUnknown_03000721 -_080C06B8: .4byte gUnknown_03005D38 - thumb_func_end sub_80C05C4 - - thumb_func_start sub_80C06BC -sub_80C06BC: @ 80C06BC - push {lr} - ldr r0, [r0] - ldr r1, [r1] - ldr r2, _080C06E0 @ =gUnknown_03000722 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r2, 2 - adds r1, r2 - ldr r2, _080C06E4 @ =gUnknown_03005D38 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - bl sub_80C06E8 - pop {r0} - bx r0 - .align 2, 0 -_080C06E0: .4byte gUnknown_03000722 -_080C06E4: .4byte gUnknown_03005D38 - thumb_func_end sub_80C06BC - - thumb_func_start sub_80C06E8 -sub_80C06E8: @ 80C06E8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r3, [r5] - adds r0, r3, 0 - cmp r0, 0 - bne _080C06FE -_080C06FA: - movs r0, 0 - b _080C072A -_080C06FE: - movs r1, 0 - adds r2, r3, 0 - adds r3, r0, 0 -_080C0704: - lsls r0, r1, 2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _080C06FA - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080C0704 - lsls r0, r6, 24 - asrs r0, 22 - adds r0, r4 - strb r2, [r0] - movs r1, 0x1 - strb r1, [r0, 0x1] - ldrh r1, [r5, 0x2] - strh r1, [r0, 0x2] - movs r0, 0x1 -_080C072A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C06E8 - - thumb_func_start sub_80C0730 -sub_80C0730: @ 80C0730 - push {lr} - lsls r1, 24 - lsrs r2, r1, 24 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080C0746 - lsls r0, r2, 24 - asrs r0, 24 - b _080C074A -_080C0746: - movs r0, 0x1 - negs r0, r0 -_080C074A: - pop {r1} - bx r1 - thumb_func_end sub_80C0730 - - thumb_func_start sub_80C0750 -sub_80C0750: @ 80C0750 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080C0780 @ =gSaveBlock1 -_080C0756: - lsls r0, r4, 2 - adds r0, r5 - ldr r1, _080C0784 @ =0x00002abc - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3 - bls _080C076A - adds r0, r4, 0 - bl sub_80BEC10 -_080C076A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080C0756 - bl sub_80BEC40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0780: .4byte gSaveBlock1 -_080C0784: .4byte 0x00002abc - thumb_func_end sub_80C0750 - - thumb_func_start sub_80C0788 -sub_80C0788: @ 80C0788 - push {r4,lr} - ldr r0, _080C07B8 @ =0x00000804 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C07B2 - movs r1, 0 - ldr r4, _080C07BC @ =gSaveBlock1 - ldr r3, _080C07C0 @ =0x00002abd - movs r2, 0 -_080C07A0: - lsls r0, r1, 2 - adds r0, r4 - adds r0, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080C07A0 -_080C07B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C07B8: .4byte 0x00000804 -_080C07BC: .4byte gSaveBlock1 -_080C07C0: .4byte 0x00002abd - thumb_func_end sub_80C0788 - - thumb_func_start sub_80C07C4 -sub_80C07C4: @ 80C07C4 - push {lr} - ldr r2, _080C07F8 @ =gSaveBlock1 - ldr r0, _080C07FC @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldr r2, _080C0800 @ =0x00002739 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C07E0 - b _080C08F8 -_080C07E0: - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x28 - bls _080C07EE - b _080C08F8 -_080C07EE: - lsls r0, 2 - ldr r1, _080C0804 @ =_080C0808 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C07F8: .4byte gSaveBlock1 -_080C07FC: .4byte gUnknown_0202E8CC -_080C0800: .4byte 0x00002739 -_080C0804: .4byte _080C0808 - .align 2, 0 -_080C0808: - .4byte _080C08AC - .4byte _080C08B2 - .4byte _080C08B8 - .4byte _080C08BE - .4byte _080C08E2 - .4byte _080C08CA - .4byte _080C08D0 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08D6 - .4byte _080C08DC - .4byte _080C08E8 - .4byte _080C08EE - .4byte _080C08F4 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08F8 - .4byte _080C08C4 -_080C08AC: - bl DoTVShowPokemonFanClubLetter - b _080C08F8 -_080C08B2: - bl DoTVShowRecentHappenings - b _080C08F8 -_080C08B8: - bl DoTVShowPokemonFanClubOpinions - b _080C08F8 -_080C08BE: - bl nullsub_22 - b _080C08F8 -_080C08C4: - bl DoTVShowPokemonNewsMassOutbreak - b _080C08F8 -_080C08CA: - bl DoTVShowBravoTrainerPokemonProfile - b _080C08F8 -_080C08D0: - bl sub_80C0B9C - b _080C08F8 -_080C08D6: - bl DoTVShowPokemonTodaySuccessfulCapture - b _080C08F8 -_080C08DC: - bl DoTVShowTodaysSmartShopper - b _080C08F8 -_080C08E2: - bl DoTVShowTheNameRaterShow - b _080C08F8 -_080C08E8: - bl DoTVShowPokemonTodayFailedCapture - b _080C08F8 -_080C08EE: - bl DoTVShowPokemonAngler - b _080C08F8 -_080C08F4: - bl DoTVShowTheWorldOfMasters -_080C08F8: - pop {r0} - bx r0 - thumb_func_end sub_80C07C4 - - thumb_func_start sub_80C08FC -sub_80C08FC: @ 80C08FC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 24 - lsrs r4, 24 - bl StringCopy - cmp r4, 0x1 - bhi _080C0914 - adds r0, r5, 0 - movs r1, 0x1 - bl ConvertInternationalString -_080C0914: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C08FC - - thumb_func_start DoTVShowBravoTrainerPokemonProfile -DoTVShowBravoTrainerPokemonProfile: @ 80C091C - push {r4,r5,lr} - ldr r0, _080C0948 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C094C @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C0950 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0954 @ =gUnknown_020387E8 - ldrb r5, [r0] - cmp r5, 0x8 - bls _080C093C - b _080C0B7A -_080C093C: - lsls r0, r5, 2 - ldr r1, _080C0958 @ =_080C095C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0948: .4byte gUnknown_0202E8CC -_080C094C: .4byte gSaveBlock1 + 0x2738 -_080C0950: .4byte gScriptResult -_080C0954: .4byte gUnknown_020387E8 -_080C0958: .4byte _080C095C - .align 2, 0 -_080C095C: - .4byte _080C0980 - .4byte _080C09D8 - .4byte _080C0A10 - .4byte _080C0A40 - .4byte _080C0A74 - .4byte _080C0AA8 - .4byte _080C0AEC - .4byte _080C0B34 - .4byte _080C0B64 -_080C0980: - ldr r0, _080C09C0 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldrb r1, [r4, 0x13] - lsls r1, 27 - lsrs r1, 30 - movs r0, 0x2 - bl sub_80BEF10 - ldrh r1, [r4, 0x2] - movs r0, 0xB - muls r0, r1 - ldr r1, _080C09C4 @ =gSpeciesNames - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _080C09CC - ldr r1, _080C09C8 @ =gUnknown_020387E8 - movs r0, 0x8 - b _080C0B78 - .align 2, 0 -_080C09C0: .4byte gStringVar1 -_080C09C4: .4byte gSpeciesNames -_080C09C8: .4byte gUnknown_020387E8 -_080C09CC: - ldr r1, _080C09D4 @ =gUnknown_020387E8 - movs r0, 0x1 - b _080C0B78 - .align 2, 0 -_080C09D4: .4byte gUnknown_020387E8 -_080C09D8: - ldr r0, _080C0A04 @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0A08 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0A0C @ =gStringVar2 - adds r1, r4, 0 - adds r1, 0x8 - ldrb r2, [r4, 0x1F] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x2 - bl CopyContestCategoryToStringVar - b _080C0B74 - .align 2, 0 -_080C0A04: .4byte gStringVar1 -_080C0A08: .4byte gSpeciesNames -_080C0A0C: .4byte gStringVar2 -_080C0A10: - ldr r0, _080C0A2C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _080C0A34 - ldr r1, _080C0A30 @ =gUnknown_020387E8 - movs r0, 0x3 - b _080C0B78 - .align 2, 0 -_080C0A2C: .4byte gStringVar1 -_080C0A30: .4byte gUnknown_020387E8 -_080C0A34: - ldr r1, _080C0A3C @ =gUnknown_020387E8 - movs r0, 0x4 - b _080C0B78 - .align 2, 0 -_080C0A3C: .4byte gUnknown_020387E8 -_080C0A40: - ldr r0, _080C0A68 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0A6C @ =gStringVar2 - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0A70 @ =gUnknown_020387E8 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A68: .4byte gStringVar1 -_080C0A6C: .4byte gStringVar2 -_080C0A70: .4byte gUnknown_020387E8 -_080C0A74: - ldr r0, _080C0A9C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0AA0 @ =gStringVar2 - ldrh r1, [r4, 0x4] - bl sub_80EB3FC - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldr r1, _080C0AA4 @ =gUnknown_020387E8 - movs r0, 0x5 - b _080C0B78 - .align 2, 0 -_080C0A9C: .4byte gStringVar1 -_080C0AA0: .4byte gStringVar2 -_080C0AA4: .4byte gUnknown_020387E8 -_080C0AA8: - ldr r0, _080C0AD4 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldr r0, _080C0AD8 @ =gStringVar3 - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldrh r0, [r4, 0x14] - cmp r0, 0 - beq _080C0AE0 - ldr r1, _080C0ADC @ =gUnknown_020387E8 - movs r0, 0x6 - b _080C0B78 - .align 2, 0 -_080C0AD4: .4byte gStringVar1 -_080C0AD8: .4byte gStringVar3 -_080C0ADC: .4byte gUnknown_020387E8 -_080C0AE0: - ldr r1, _080C0AE8 @ =gUnknown_020387E8 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0AE8: .4byte gUnknown_020387E8 -_080C0AEC: - ldr r0, _080C0B1C @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B20 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0B24 @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, _080C0B28 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, _080C0B2C @ =gStringVar3 - ldrh r1, [r4, 0x6] - bl sub_80EB3FC - ldr r1, _080C0B30 @ =gUnknown_020387E8 - movs r0, 0x7 - b _080C0B78 - .align 2, 0 -_080C0B1C: .4byte gStringVar1 -_080C0B20: .4byte gSpeciesNames -_080C0B24: .4byte gStringVar2 -_080C0B28: .4byte gMoveNames -_080C0B2C: .4byte gStringVar3 -_080C0B30: .4byte gUnknown_020387E8 -_080C0B34: - ldr r0, _080C0B58 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_80C08FC - ldr r0, _080C0B5C @ =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B60 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - b _080C0B7A - .align 2, 0 -_080C0B58: .4byte gStringVar1 -_080C0B5C: .4byte gStringVar2 -_080C0B60: .4byte gSpeciesNames -_080C0B64: - ldr r0, _080C0B8C @ =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0B90 @ =gSpeciesNames - adds r1, r2 - bl StringCopy -_080C0B74: - ldr r1, _080C0B94 @ =gUnknown_020387E8 - movs r0, 0x2 -_080C0B78: - strb r0, [r1] -_080C0B7A: - ldr r0, _080C0B98 @ =gUnknown_083D1524 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0B8C: .4byte gStringVar1 -_080C0B90: .4byte gSpeciesNames -_080C0B94: .4byte gUnknown_020387E8 -_080C0B98: .4byte gUnknown_083D1524 - thumb_func_end DoTVShowBravoTrainerPokemonProfile - - thumb_func_start sub_80C0B9C -sub_80C0B9C: @ 80C0B9C - push {r4,r5,lr} - ldr r0, _080C0BC8 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C0BD0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0BD4 @ =gUnknown_020387E8 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xE - bls _080C0BBE - b _080C0DDE -_080C0BBE: - lsls r0, r5, 2 - ldr r1, _080C0BD8 @ =_080C0BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0BC8: .4byte gUnknown_0202E8CC -_080C0BCC: .4byte gSaveBlock1 + 0x2738 -_080C0BD0: .4byte gScriptResult -_080C0BD4: .4byte gUnknown_020387E8 -_080C0BD8: .4byte _080C0BDC - .align 2, 0 -_080C0BDC: - .4byte _080C0C18 - .4byte _080C0C5C - .4byte _080C0C8C - .4byte _080C0CB0 - .4byte _080C0CDC - .4byte _080C0D24 - .4byte _080C0D30 - .4byte _080C0D3C - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D42 - .4byte _080C0D5C - .4byte _080C0D88 - .4byte _080C0D88 - .4byte _080C0DC0 -_080C0C18: - ldr r0, _080C0C40 @ =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0C44 @ =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0C48 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r0, [r4, 0x16] - cmp r0, 0x6 - bls _080C0C50 - ldr r1, _080C0C4C @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C40: .4byte gStringVar1 -_080C0C44: .4byte gStringVar2 -_080C0C48: .4byte gSpeciesNames -_080C0C4C: .4byte gUnknown_020387E8 -_080C0C50: - ldr r1, _080C0C58 @ =gUnknown_020387E8 - movs r0, 0x2 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C58: .4byte gUnknown_020387E8 -_080C0C5C: - ldrb r1, [r4, 0x1A] - movs r0, 0 - bl sub_80BF088 - ldrh r1, [r4, 0x16] - movs r0, 0x1 - bl sub_80BF088 - ldrb r0, [r4, 0x1C] - cmp r0, 0x1 - bne _080C0C80 - ldr r1, _080C0C7C @ =gUnknown_020387E8 - movs r0, 0x3 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C7C: .4byte gUnknown_020387E8 -_080C0C80: - ldr r1, _080C0C88 @ =gUnknown_020387E8 - movs r0, 0x4 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0C88: .4byte gUnknown_020387E8 -_080C0C8C: - ldr r0, _080C0CAC @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldrh r1, [r4, 0x16] - adds r1, 0x1 - movs r0, 0x1 - bl sub_80BF088 -_080C0CA2: - ldrb r0, [r4, 0x1B] - cmp r0, 0 - beq _080C0CFE - b _080C0D18 - .align 2, 0 -_080C0CAC: .4byte gStringVar1 -_080C0CB0: - ldr r0, _080C0CD0 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0CD4 @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0CD8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - b _080C0CA2 - .align 2, 0 -_080C0CD0: .4byte gStringVar1 -_080C0CD4: .4byte gStringVar2 -_080C0CD8: .4byte gSpeciesNames -_080C0CDC: - ldr r0, _080C0D08 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0D0C @ =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0D10 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D18 -_080C0CFE: - ldr r1, _080C0D14 @ =gUnknown_020387E8 - movs r0, 0x5 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D08: .4byte gStringVar1 -_080C0D0C: .4byte gStringVar2 -_080C0D10: .4byte gSpeciesNames -_080C0D14: .4byte gUnknown_020387E8 -_080C0D18: - ldr r1, _080C0D20 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D20: .4byte gUnknown_020387E8 -_080C0D24: - ldr r0, _080C0D2C @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D2C: .4byte gStringVar1 -_080C0D30: - ldr r0, _080C0D38 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - b _080C0D46 - .align 2, 0 -_080C0D38: .4byte gStringVar1 -_080C0D3C: - movs r0, 0xB - strb r0, [r2] - b _080C0DDE -_080C0D42: - ldr r0, _080C0D54 @ =gStringVar1 - adds r1, r4, 0x2 -_080C0D46: - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r1, _080C0D58 @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D54: .4byte gStringVar1 -_080C0D58: .4byte gUnknown_020387E8 -_080C0D5C: - ldr r0, _080C0D74 @ =gStringVar1 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080C0D7C - ldr r1, _080C0D78 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D74: .4byte gStringVar1 -_080C0D78: .4byte gUnknown_020387E8 -_080C0D7C: - ldr r1, _080C0D84 @ =gUnknown_020387E8 - movs r0, 0xD - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0D84: .4byte gUnknown_020387E8 -_080C0D88: - ldr r0, _080C0DB0 @ =gStringVar1 - ldrh r1, [r4, 0x18] - bl sub_80EB3FC - ldr r0, _080C0DB4 @ =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0DB8 @ =gStringVar3 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r1, _080C0DBC @ =gUnknown_020387E8 - movs r0, 0xE - strb r0, [r1] - b _080C0DDE - .align 2, 0 -_080C0DB0: .4byte gStringVar1 -_080C0DB4: .4byte gStringVar2 -_080C0DB8: .4byte gStringVar3 -_080C0DBC: .4byte gUnknown_020387E8 -_080C0DC0: - ldr r0, _080C0DF0 @ =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_80C08FC - ldr r0, _080C0DF4 @ =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C0DF8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080C0DDE: - ldr r0, _080C0DFC @ =gUnknown_083D1548 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C0DF0: .4byte gStringVar1 -_080C0DF4: .4byte gStringVar2 -_080C0DF8: .4byte gSpeciesNames -_080C0DFC: .4byte gUnknown_083D1548 - thumb_func_end sub_80C0B9C - - thumb_func_start DoTVShowTodaysSmartShopper -DoTVShowTodaysSmartShopper: @ 80C0E00 - push {r4-r6,lr} - ldr r0, _080C0E2C @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - ldr r1, _080C0E34 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C0E38 @ =gUnknown_020387E8 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xC - bls _080C0E22 - b _080C1014 -_080C0E22: - lsls r0, r6, 2 - ldr r1, _080C0E3C @ =_080C0E40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C0E2C: .4byte gUnknown_0202E8CC -_080C0E30: .4byte gSaveBlock1 + 0x2738 -_080C0E34: .4byte gScriptResult -_080C0E38: .4byte gUnknown_020387E8 -_080C0E3C: .4byte _080C0E40 - .align 2, 0 -_080C0E40: - .4byte _080C0E74 - .4byte _080C0EB0 - .4byte _080C0EF8 - .4byte _080C0F0A - .4byte _080C0EF8 - .4byte _080C0EF8 - .4byte _080C0F34 - .4byte _080C0F64 - .4byte _080C0F94 - .4byte _080C0FA0 - .4byte _080C0FAE - .4byte _080C0FC0 - .4byte _080C1004 -_080C0E74: - ldr r0, _080C0E98 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r0, _080C0E9C @ =gStringVar2 - ldrb r1, [r5, 0x12] - movs r2, 0 - bl sub_80FBFB4 - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0EA4 - ldr r1, _080C0EA0 @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0E98: .4byte gStringVar1 -_080C0E9C: .4byte gStringVar2 -_080C0EA0: .4byte gUnknown_020387E8 -_080C0EA4: - ldr r1, _080C0EAC @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0EAC: .4byte gUnknown_020387E8 -_080C0EB0: - ldr r0, _080C0EEC @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C0EF0 @ =gStringVar2 - ldrh r0, [r5, 0x6] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xC] - movs r0, 0x2 - bl sub_80BF088 - ldr r4, _080C0EF4 @ =gUnknown_020387E8 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080C1014 - .align 2, 0 -_080C0EEC: .4byte gStringVar1 -_080C0EF0: .4byte gStringVar2 -_080C0EF4: .4byte gUnknown_020387E8 -_080C0EF8: - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F04 - movs r0, 0x6 - strb r0, [r2] - b _080C1014 -_080C0F04: - movs r0, 0xA - strb r0, [r2] - b _080C1014 -_080C0F0A: - ldrh r1, [r5, 0xC] - adds r1, 0x1 - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080C0F28 - ldr r1, _080C0F24 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F24: .4byte gUnknown_020387E8 -_080C0F28: - ldr r1, _080C0F30 @ =gUnknown_020387E8 - movs r0, 0xA - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F30: .4byte gUnknown_020387E8 -_080C0F34: - ldr r4, _080C0F5C @ =gStringVar2 - ldrh r0, [r5, 0x8] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xE] - movs r0, 0x2 - bl sub_80BF088 - ldrh r0, [r5, 0xA] - cmp r0, 0 - beq _080C0F7C - ldr r1, _080C0F60 @ =gUnknown_020387E8 - movs r0, 0x7 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F5C: .4byte gStringVar2 -_080C0F60: .4byte gUnknown_020387E8 -_080C0F64: - ldr r4, _080C0F8C @ =gStringVar2 - ldrh r0, [r5, 0xA] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80BF088 -_080C0F7C: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - beq _080C0FE2 - ldr r1, _080C0F90 @ =gUnknown_020387E8 - movs r0, 0x9 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0F8C: .4byte gStringVar2 -_080C0F90: .4byte gUnknown_020387E8 -_080C0F94: - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080C0FBA - movs r0, 0xC - strb r0, [r2] - b _080C1014 -_080C0FA0: - movs r0, 0x1 - adds r1, r5, 0 - bl sub_80BF154 - bl TVShowDone - b _080C1014 -_080C0FAE: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FBA - movs r0, 0x8 - strb r0, [r2] - b _080C1014 -_080C0FBA: - movs r0, 0x9 - strb r0, [r2] - b _080C1014 -_080C0FC0: - ldr r0, _080C0FEC @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C0FF0 @ =gStringVar2 - ldrh r0, [r5, 0x6] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080C0FF8 -_080C0FE2: - ldr r1, _080C0FF4 @ =gUnknown_020387E8 - movs r0, 0x8 - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C0FEC: .4byte gStringVar1 -_080C0FF0: .4byte gStringVar2 -_080C0FF4: .4byte gUnknown_020387E8 -_080C0FF8: - ldr r1, _080C1000 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C1014 - .align 2, 0 -_080C1000: .4byte gUnknown_020387E8 -_080C1004: - ldr r0, _080C1028 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - bl TVShowDone -_080C1014: - ldr r0, _080C102C @ =gUnknown_083D14F0 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1028: .4byte gStringVar1 -_080C102C: .4byte gUnknown_083D14F0 - thumb_func_end DoTVShowTodaysSmartShopper - - thumb_func_start DoTVShowTheNameRaterShow -DoTVShowTheNameRaterShow: @ 80C1030 - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080C1060 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738 - adds r6, r0, r1 - ldr r1, _080C1068 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C106C @ =gUnknown_020387E8 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x12 - bls _080C1054 - b _080C138A -_080C1054: - lsls r0, r7, 2 - ldr r1, _080C1070 @ =_080C1074 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1060: .4byte gUnknown_0202E8CC -_080C1064: .4byte gSaveBlock1 + 0x2738 -_080C1068: .4byte gScriptResult -_080C106C: .4byte gUnknown_020387E8 -_080C1070: .4byte _080C1074 - .align 2, 0 -_080C1074: - .4byte _080C10C0 - .4byte _080C1108 - .4byte _080C112A - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1108 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C1170 - .4byte _080C136C - .4byte _080C11CC - .4byte _080C1228 - .4byte _080C127C - .4byte _080C12D4 - .4byte _080C1314 - .4byte _080C1370 -_080C10C0: - ldr r0, _080C10F4 @ =gStringVar1 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - ldr r0, _080C10F8 @ =gStringVar2 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C10FC @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1100 @ =gStringVar3 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldr r4, _080C1104 @ =gUnknown_020387E8 - adds r0, r6, 0 - bl sub_80BF7E8 - adds r0, 0x1 - strb r0, [r4] - b _080C138A - .align 2, 0 -_080C10F4: .4byte gStringVar1 -_080C10F8: .4byte gStringVar2 -_080C10FC: .4byte gSpeciesNames -_080C1100: .4byte gStringVar3 -_080C1104: .4byte gUnknown_020387E8 -_080C1108: - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C1114 - movs r0, 0x9 - strb r0, [r2] - b _080C138A -_080C1114: - cmp r0, 0x1 - bne _080C111E - movs r0, 0xA - strb r0, [r2] - b _080C138A -_080C111E: - cmp r0, 0x2 - beq _080C1124 - b _080C138A -_080C1124: - movs r0, 0xB - strb r0, [r2] - b _080C138A -_080C112A: - ldr r0, _080C1144 @ =gStringVar1 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - ldrb r0, [r6, 0x1A] - cmp r0, 0 - bne _080C114C - ldr r1, _080C1148 @ =gUnknown_020387E8 - movs r0, 0x9 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1144: .4byte gStringVar1 -_080C1148: .4byte gUnknown_020387E8 -_080C114C: - cmp r0, 0x1 - bne _080C115C - ldr r1, _080C1158 @ =gUnknown_020387E8 - movs r0, 0xA - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1158: .4byte gUnknown_020387E8 -_080C115C: - cmp r0, 0x2 - beq _080C1162 - b _080C138A -_080C1162: - ldr r1, _080C116C @ =gUnknown_020387E8 - movs r0, 0xB - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C116C: .4byte gUnknown_020387E8 -_080C1170: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11BC @ =gStringVar3 - ldr r4, _080C11C0 @ =gStringVar1 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C11C4 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - adds r0, r4, 0 - bl sub_80C08FC - ldr r1, _080C11C8 @ =gUnknown_020387E8 - movs r0, 0xC - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C11BC: .4byte gStringVar3 -_080C11C0: .4byte gStringVar1 -_080C11C4: .4byte gStringVar2 -_080C11C8: .4byte gUnknown_020387E8 -_080C11CC: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1218 @ =gStringVar3 - ldr r4, _080C121C @ =gStringVar1 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1220 @ =gStringVar2 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl sub_80C08FC - ldr r1, _080C1224 @ =gUnknown_020387E8 - movs r0, 0xE - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1218: .4byte gStringVar3 -_080C121C: .4byte gStringVar1 -_080C1220: .4byte gStringVar2 -_080C1224: .4byte gUnknown_020387E8 -_080C1228: - movs r5, 0 - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0 - bl sub_80BF820 - ldr r0, _080C1270 @ =gStringVar3 - ldr r4, _080C1274 @ =gStringVar1 - ldrb r2, [r6, 0x1E] - adds r1, r4, 0 - bl sub_80C08FC - str r5, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1278 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - adds r0, r4, 0 - bl sub_80C08FC - b _080C1354 - .align 2, 0 -_080C1270: .4byte gStringVar3 -_080C1274: .4byte gStringVar1 -_080C1278: .4byte gStringVar2 -_080C127C: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C12C4 @ =gStringVar1 - ldr r4, _080C12C8 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - ldrh r1, [r6, 0x2] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C12CC @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C12D0 @ =gUnknown_020387E8 - movs r0, 0x10 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C12C4: .4byte gStringVar1 -_080C12C8: .4byte gStringVar2 -_080C12CC: .4byte gSpeciesNames -_080C12D0: .4byte gUnknown_020387E8 -_080C12D4: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C1308 @ =gStringVar3 - ldr r1, _080C130C @ =gStringVar1 - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldrh r0, [r6, 0x2] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_80BF820 - ldr r1, _080C1310 @ =gUnknown_020387E8 - movs r0, 0x11 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C1308: .4byte gStringVar3 -_080C130C: .4byte gStringVar1 -_080C1310: .4byte gUnknown_020387E8 -_080C1314: - movs r0, 0 - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80BF820 - ldr r0, _080C135C @ =gStringVar1 - ldr r4, _080C1360 @ =gStringVar2 - ldrb r2, [r6, 0x1F] - adds r1, r4, 0 - bl sub_80C08FC - ldrh r0, [r6, 0x1C] - str r0, [sp] - str r6, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80BF820 - ldrh r1, [r6, 0x1C] - movs r0, 0xB - muls r1, r0 - ldr r0, _080C1364 @ =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy -_080C1354: - ldr r1, _080C1368 @ =gUnknown_020387E8 - movs r0, 0x12 - strb r0, [r1] - b _080C138A - .align 2, 0 -_080C135C: .4byte gStringVar1 -_080C1360: .4byte gStringVar2 -_080C1364: .4byte gSpeciesNames -_080C1368: .4byte gUnknown_020387E8 -_080C136C: - movs r7, 0x12 - strb r7, [r2] -_080C1370: - ldr r0, _080C13A0 @ =gStringVar1 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1F] - bl sub_80C08FC - ldr r0, _080C13A4 @ =gStringVar2 - adds r1, r6, 0 - adds r1, 0xF - ldrb r2, [r6, 0x1E] - bl sub_80C08FC - bl TVShowDone -_080C138A: - ldr r0, _080C13A8 @ =gUnknown_083D1584 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C13A0: .4byte gStringVar1 -_080C13A4: .4byte gStringVar2 -_080C13A8: .4byte gUnknown_083D1584 - thumb_func_end DoTVShowTheNameRaterShow - - thumb_func_start DoTVShowPokemonTodaySuccessfulCapture -DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC - push {r4-r6,lr} - ldr r0, _080C13D8 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - ldr r1, _080C13E0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C13E4 @ =gUnknown_020387E8 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xB - bls _080C13CE - b _080C15DC -_080C13CE: - lsls r0, r6, 2 - ldr r1, _080C13E8 @ =_080C13EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C13D8: .4byte gUnknown_0202E8CC -_080C13DC: .4byte gSaveBlock1 + 0x2738 -_080C13E0: .4byte gScriptResult -_080C13E4: .4byte gUnknown_020387E8 -_080C13E8: .4byte _080C13EC - .align 2, 0 -_080C13EC: - .4byte _080C141C - .4byte _080C1470 - .4byte _080C1476 - .4byte _080C14B0 - .4byte _080C14E8 - .4byte _080C14EE - .4byte _080C1524 - .4byte _080C1578 - .4byte _080C1578 - .4byte _080C15A8 - .4byte _080C15A8 - .4byte _080C15D8 -_080C141C: - ldr r0, _080C1450 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1454 @ =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1458 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C145C @ =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldrb r0, [r5, 0xF] - cmp r0, 0x1 - bne _080C1464 - ldr r1, _080C1460 @ =gUnknown_020387E8 - movs r0, 0x5 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C1450: .4byte gStringVar1 -_080C1454: .4byte gStringVar2 -_080C1458: .4byte gSpeciesNames -_080C145C: .4byte gStringVar3 -_080C1460: .4byte gUnknown_020387E8 -_080C1464: - ldr r1, _080C146C @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C146C: .4byte gUnknown_020387E8 -_080C1470: - movs r0, 0x2 - strb r0, [r2] - b _080C15DC -_080C1476: - ldr r4, _080C149C @ =gStringVar2 - ldrb r0, [r5, 0xF] - bl itemid_get_item - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r1, [r5, 0x12] - movs r0, 0x2 - bl sub_80BF088 - ldrb r0, [r5, 0x12] - cmp r0, 0x3 - bhi _080C14A4 - ldr r1, _080C14A0 @ =gUnknown_020387E8 - movs r0, 0x3 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C149C: .4byte gStringVar2 -_080C14A0: .4byte gUnknown_020387E8 -_080C14A4: - ldr r1, _080C14AC @ =gUnknown_020387E8 - movs r0, 0x4 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C14AC: .4byte gUnknown_020387E8 -_080C14B0: - ldr r0, _080C14D8 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C14DC @ =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C14E0 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C14E4 @ =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - b _080C150A - .align 2, 0 -_080C14D8: .4byte gStringVar1 -_080C14DC: .4byte gStringVar2 -_080C14E0: .4byte gSpeciesNames -_080C14E4: .4byte gStringVar3 -_080C14E8: - movs r0, 0x6 - strb r0, [r2] - b _080C15DC -_080C14EE: - ldr r0, _080C1514 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1518 @ =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C151C @ =gSpeciesNames - adds r1, r2 - bl StringCopy -_080C150A: - ldr r1, _080C1520 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C15DC - .align 2, 0 -_080C1514: .4byte gStringVar1 -_080C1518: .4byte gStringVar2 -_080C151C: .4byte gSpeciesNames -_080C1520: .4byte gUnknown_020387E8 -_080C1524: - ldr r0, _080C1564 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_80C08FC - ldr r0, _080C1568 @ =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C156C @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1570 @ =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldr r4, _080C1574 @ =gUnknown_020387E8 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080C15DC - .align 2, 0 -_080C1564: .4byte gStringVar1 -_080C1568: .4byte gStringVar2 -_080C156C: .4byte gSpeciesNames -_080C1570: .4byte gStringVar3 -_080C1574: .4byte gUnknown_020387E8 -_080C1578: - ldr r0, _080C159C @ =gStringVar1 - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, _080C15A0 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C15A4 @ =gStringVar2 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80BF638 - b _080C15C2 - .align 2, 0 -_080C159C: .4byte gStringVar1 -_080C15A0: .4byte gSpeciesNames -_080C15A4: .4byte gStringVar2 -_080C15A8: - ldr r0, _080C15C8 @ =gStringVar1 - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, _080C15CC @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C15D0 @ =gStringVar2 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_80C08FC -_080C15C2: - ldr r0, _080C15D4 @ =gUnknown_020387E8 - strb r4, [r0] - b _080C15DC - .align 2, 0 -_080C15C8: .4byte gStringVar1 -_080C15CC: .4byte gSpeciesNames -_080C15D0: .4byte gStringVar2 -_080C15D4: .4byte gUnknown_020387E8 -_080C15D8: - bl TVShowDone -_080C15DC: - ldr r0, _080C15F0 @ =gUnknown_083D14C0 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C15F0: .4byte gUnknown_083D14C0 - thumb_func_end DoTVShowPokemonTodaySuccessfulCapture - - thumb_func_start DoTVShowPokemonTodayFailedCapture -DoTVShowPokemonTodayFailedCapture: @ 80C15F4 - push {r4,r5,lr} - ldr r0, _080C1620 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C1628 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C162C @ =gUnknown_020387E8 - ldrb r5, [r0] - cmp r5, 0x6 - bls _080C1614 - b _080C173C -_080C1614: - lsls r0, r5, 2 - ldr r1, _080C1630 @ =_080C1634 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1620: .4byte gUnknown_0202E8CC -_080C1624: .4byte gSaveBlock1 + 0x2738 -_080C1628: .4byte gScriptResult -_080C162C: .4byte gUnknown_020387E8 -_080C1630: .4byte _080C1634 - .align 2, 0 -_080C1634: - .4byte _080C1650 - .4byte _080C1684 - .4byte _080C16D8 - .4byte _080C16D8 - .4byte _080C171C - .4byte _080C171C - .4byte _080C1738 -_080C1650: - ldr r0, _080C1674 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r0, _080C1678 @ =gStringVar2 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C167C @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, _080C1680 @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1674: .4byte gStringVar1 -_080C1678: .4byte gStringVar2 -_080C167C: .4byte gSpeciesNames -_080C1680: .4byte gUnknown_020387E8 -_080C1684: - ldr r0, _080C16B8 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r0, _080C16BC @ =gStringVar2 - ldrb r1, [r4, 0x12] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C16C0 @ =gStringVar3 - ldrh r2, [r4, 0xE] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C16C4 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x11] - cmp r0, 0x1 - bne _080C16CC - ldr r1, _080C16C8 @ =gUnknown_020387E8 - movs r0, 0x3 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C16B8: .4byte gStringVar1 -_080C16BC: .4byte gStringVar2 -_080C16C0: .4byte gStringVar3 -_080C16C4: .4byte gSpeciesNames -_080C16C8: .4byte gUnknown_020387E8 -_080C16CC: - ldr r1, _080C16D4 @ =gUnknown_020387E8 - movs r0, 0x2 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C16D4: .4byte gUnknown_020387E8 -_080C16D8: - ldr r0, _080C1708 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldrb r1, [r4, 0x10] - movs r0, 0x1 - bl sub_80BF088 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080C1710 - ldr r1, _080C170C @ =gUnknown_020387E8 - movs r0, 0x5 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1708: .4byte gStringVar1 -_080C170C: .4byte gUnknown_020387E8 -_080C1710: - ldr r1, _080C1718 @ =gUnknown_020387E8 - movs r0, 0x4 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1718: .4byte gUnknown_020387E8 -_080C171C: - ldr r0, _080C1730 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_80C08FC - ldr r1, _080C1734 @ =gUnknown_020387E8 - movs r0, 0x6 - strb r0, [r1] - b _080C173C - .align 2, 0 -_080C1730: .4byte gStringVar1 -_080C1734: .4byte gUnknown_020387E8 -_080C1738: - bl TVShowDone -_080C173C: - ldr r0, _080C1750 @ =gUnknown_083D15D0 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1750: .4byte gUnknown_083D15D0 - thumb_func_end DoTVShowPokemonTodayFailedCapture - - thumb_func_start DoTVShowPokemonFanClubLetter -DoTVShowPokemonFanClubLetter: @ 80C1754 - push {r4-r7,lr} - ldr r0, _080C1780 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - ldr r1, _080C1788 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C178C @ =gUnknown_020387E8 - ldrb r7, [r0] - adds r6, r0, 0 - cmp r7, 0x33 - bls _080C1776 - b _080C1960 -_080C1776: - lsls r0, r7, 2 - ldr r1, _080C1790 @ =_080C1794 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1780: .4byte gUnknown_0202E8CC -_080C1784: .4byte gSaveBlock1 + 0x2738 -_080C1788: .4byte gScriptResult -_080C178C: .4byte gUnknown_020387E8 -_080C1790: .4byte _080C1794 - .align 2, 0 -_080C1794: - .4byte _080C1864 - .4byte _080C1898 - .4byte _080C18C4 - .4byte _080C18CA - .4byte _080C18E2 - .4byte _080C18E2 - .4byte _080C18E2 - .4byte _080C18F4 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1960 - .4byte _080C1916 - .4byte _080C193C -_080C1864: - ldr r0, _080C1888 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_80C08FC - ldr r0, _080C188C @ =gStringVar2 - ldrh r2, [r5, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1890 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, _080C1894 @ =gUnknown_020387E8 - movs r0, 0x32 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C1888: .4byte gStringVar1 -_080C188C: .4byte gStringVar2 -_080C1890: .4byte gSpeciesNames -_080C1894: .4byte gUnknown_020387E8 -_080C1898: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r2, r0, 0x1 - cmp r2, 0x1 - bne _080C18B8 - ldr r1, _080C18B4 @ =gUnknown_020387E8 - movs r0, 0x2 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18B4: .4byte gUnknown_020387E8 -_080C18B8: - ldr r1, _080C18C0 @ =gUnknown_020387E8 - adds r0, r2, 0x2 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18C0: .4byte gUnknown_020387E8 -_080C18C4: - movs r0, 0x33 - strb r0, [r6] - b _080C1960 -_080C18CA: - bl Random - ldrb r4, [r6] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r6] - b _080C1960 -_080C18E2: - adds r0, r5, 0 - bl sub_80BF79C - ldr r1, _080C18F0 @ =gUnknown_020387E8 - movs r0, 0x7 - strb r0, [r1] - b _080C1960 - .align 2, 0 -_080C18F0: .4byte gUnknown_020387E8 -_080C18F4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - bl __umodsi3 - adds r0, 0x46 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x2 - adds r1, r2, 0 - bl sub_80BF088 - bl TVShowDone - b _080C1960 -_080C1916: - ldr r4, _080C1934 @ =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C1938 @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C196C - .align 2, 0 -_080C1934: .4byte gStringVar4 -_080C1938: .4byte gUnknown_020387E8 -_080C193C: - ldr r4, _080C1958 @ =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C195C @ =gUnknown_020387E8 - movs r0, 0x3 - strb r0, [r1] - b _080C196C - .align 2, 0 -_080C1958: .4byte gStringVar4 -_080C195C: .4byte gUnknown_020387E8 -_080C1960: - ldr r0, _080C1974 @ =gUnknown_083D1470 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080C196C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1974: .4byte gUnknown_083D1470 - thumb_func_end DoTVShowPokemonFanClubLetter - - thumb_func_start DoTVShowRecentHappenings -DoTVShowRecentHappenings: @ 80C1978 - push {r4-r7,lr} - ldr r0, _080C19A4 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738 - adds r5, r0, r1 - ldr r1, _080C19AC @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, _080C19B0 @ =gUnknown_020387E8 - ldrb r6, [r0] - adds r7, r0, 0 - cmp r6, 0x32 - bls _080C199A - b _080C1AF0 -_080C199A: - lsls r0, r6, 2 - ldr r1, _080C19B4 @ =_080C19B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C19A4: .4byte gUnknown_0202E8CC -_080C19A8: .4byte gSaveBlock1 + 0x2738 -_080C19AC: .4byte gScriptResult -_080C19B0: .4byte gUnknown_020387E8 -_080C19B4: .4byte _080C19B8 - .align 2, 0 -_080C19B8: - .4byte _080C1A84 - .4byte _080C1AA8 - .4byte _080C1AC0 - .4byte _080C1AC0 - .4byte _080C1AC0 - .4byte _080C1AC6 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1AF0 - .4byte _080C1ACC -_080C1A84: - ldr r0, _080C1AA0 @ =gStringVar1 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_80C08FC - adds r0, r5, 0 - bl sub_80BF79C - ldr r1, _080C1AA4 @ =gUnknown_020387E8 - movs r0, 0x32 - strb r0, [r1] - b _080C1AF0 - .align 2, 0 -_080C1AA0: .4byte gStringVar1 -_080C1AA4: .4byte gUnknown_020387E8 -_080C1AA8: - bl Random - ldrb r4, [r7] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r7] - b _080C1AF0 -_080C1AC0: - movs r0, 0x5 - strb r0, [r7] - b _080C1AF0 -_080C1AC6: - bl TVShowDone - b _080C1AF0 -_080C1ACC: - ldr r4, _080C1AE8 @ =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldMessage - ldr r1, _080C1AEC @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C1AFC - .align 2, 0 -_080C1AE8: .4byte gStringVar4 -_080C1AEC: .4byte gUnknown_020387E8 -_080C1AF0: - ldr r0, _080C1B04 @ =gUnknown_083D1490 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage -_080C1AFC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1B04: .4byte gUnknown_083D1490 - thumb_func_end DoTVShowRecentHappenings - - thumb_func_start DoTVShowPokemonFanClubOpinions -DoTVShowPokemonFanClubOpinions: @ 80C1B08 - push {r4-r6,lr} - ldr r0, _080C1B30 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C1B38 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r6, _080C1B3C @ =gUnknown_020387E8 - ldrb r5, [r6] - cmp r5, 0x3 - bgt _080C1B40 - cmp r5, 0x1 - bge _080C1B88 - cmp r5, 0 - beq _080C1B46 - b _080C1BD6 - .align 2, 0 -_080C1B30: .4byte gUnknown_0202E8CC -_080C1B34: .4byte gSaveBlock1 + 0x2738 -_080C1B38: .4byte gScriptResult -_080C1B3C: .4byte gUnknown_020387E8 -_080C1B40: - cmp r5, 0x4 - beq _080C1BC0 - b _080C1BD6 -_080C1B46: - ldr r0, _080C1B78 @ =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1B7C @ =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1B80 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1B84 @ =gStringVar3 - adds r1, r4, 0 - adds r1, 0x10 - ldrb r2, [r4, 0xE] - bl sub_80C08FC - ldrb r0, [r4, 0x4] - lsrs r0, 4 - adds r0, 0x1 - strb r0, [r6] - b _080C1BD6 - .align 2, 0 -_080C1B78: .4byte gStringVar1 -_080C1B7C: .4byte gStringVar2 -_080C1B80: .4byte gSpeciesNames -_080C1B84: .4byte gStringVar3 -_080C1B88: - ldr r0, _080C1BB0 @ =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1BB4 @ =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1BB8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1BBC @ =gStringVar3 - ldrh r1, [r4, 0x1C] - bl sub_80EB3FC - movs r0, 0x4 - strb r0, [r6] - b _080C1BD6 - .align 2, 0 -_080C1BB0: .4byte gStringVar1 -_080C1BB4: .4byte gStringVar2 -_080C1BB8: .4byte gSpeciesNames -_080C1BBC: .4byte gStringVar3 -_080C1BC0: - ldr r0, _080C1BE8 @ =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_80C08FC - ldr r0, _080C1BEC @ =gStringVar3 - ldrh r1, [r4, 0x1E] - bl sub_80EB3FC - bl TVShowDone -_080C1BD6: - ldr r0, _080C1BF0 @ =gUnknown_083D14A8 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1BE8: .4byte gStringVar1 -_080C1BEC: .4byte gStringVar3 -_080C1BF0: .4byte gUnknown_083D14A8 - thumb_func_end DoTVShowPokemonFanClubOpinions - - thumb_func_start nullsub_22 -nullsub_22: @ 80C1BF4 - bx lr - thumb_func_end nullsub_22 - - thumb_func_start DoTVShowPokemonNewsMassOutbreak -DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 - push {r4,lr} - ldr r0, _080C1C40 @ =gUnknown_0202E8CC - ldrh r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738 - adds r4, r0 - ldr r0, _080C1C48 @ =gStringVar1 - ldrb r1, [r4, 0x10] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1C4C @ =gStringVar2 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1C50 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - bl StartMassOutbreak - ldr r1, _080C1C54 @ =gUnknown_083D14BC - ldr r0, _080C1C58 @ =gUnknown_020387E8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl ShowFieldMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C1C40: .4byte gUnknown_0202E8CC -_080C1C44: .4byte gSaveBlock1 + 0x2738 -_080C1C48: .4byte gStringVar1 -_080C1C4C: .4byte gStringVar2 -_080C1C50: .4byte gSpeciesNames -_080C1C54: .4byte gUnknown_083D14BC -_080C1C58: .4byte gUnknown_020387E8 - thumb_func_end DoTVShowPokemonNewsMassOutbreak - - thumb_func_start DoTVShowInSearchOfTrainers -DoTVShowInSearchOfTrainers: @ 80C1C5C - push {r4-r7,lr} - ldr r0, _080C1C7C @ =gScriptResult - movs r1, 0 - strh r1, [r0] - ldr r0, _080C1C80 @ =gUnknown_020387E8 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x8 - bls _080C1C70 - b _080C1DF8 -_080C1C70: - lsls r0, r7, 2 - ldr r1, _080C1C84 @ =_080C1C88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C1C7C: .4byte gScriptResult -_080C1C80: .4byte gUnknown_020387E8 -_080C1C84: .4byte _080C1C88 - .align 2, 0 -_080C1C88: - .4byte _080C1CAC - .4byte _080C1CF0 - .4byte _080C1CF6 - .4byte _080C1D44 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB0 - .4byte _080C1DB6 -_080C1CAC: - ldr r0, _080C1CD0 @ =gStringVar1 - ldr r4, _080C1CD4 @ =gSaveBlock1 - ldr r2, _080C1CD8 @ =0x00002b18 - adds r1, r4, r2 - ldrb r1, [r1] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1CDC @ =0x00002b19 - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0x1 - bls _080C1CE4 - ldr r1, _080C1CE0 @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1CD0: .4byte gStringVar1 -_080C1CD4: .4byte gSaveBlock1 -_080C1CD8: .4byte 0x00002b18 -_080C1CDC: .4byte 0x00002b19 -_080C1CE0: .4byte gUnknown_020387E8 -_080C1CE4: - ldr r1, _080C1CEC @ =gUnknown_020387E8 - movs r0, 0x2 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1CEC: .4byte gUnknown_020387E8 -_080C1CF0: - movs r0, 0x2 - strb r0, [r2] - b _080C1DF8 -_080C1CF6: - ldr r0, _080C1D0C @ =gSaveBlock1 - ldr r1, _080C1D10 @ =0x00002b1a - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C1D14 - movs r0, 0x4 - strb r0, [r2] - b _080C1DF8 - .align 2, 0 -_080C1D0C: .4byte gSaveBlock1 -_080C1D10: .4byte 0x00002b1a -_080C1D14: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080C1D22 - movs r0, 0x5 - strb r0, [r2] - b _080C1DF8 -_080C1D22: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080C1D30 - movs r0, 0x6 - strb r0, [r2] - b _080C1DF8 -_080C1D30: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C1D3E - movs r0, 0x7 - strb r0, [r2] - b _080C1DF8 -_080C1D3E: - movs r0, 0x3 - strb r0, [r2] - b _080C1DF8 -_080C1D44: - ldr r0, _080C1D88 @ =gStringVar1 - ldr r4, _080C1D8C @ =gSaveBlock1 - ldr r2, _080C1D90 @ =0x00002b10 - adds r1, r4, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, _080C1D94 @ =gSpeciesNames - adds r1, r5 - bl StringCopy - ldr r0, _080C1D98 @ =gStringVar2 - ldr r2, _080C1D9C @ =0x00002b14 - adds r1, r4, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, _080C1DA0 @ =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, _080C1DA4 @ =gStringVar3 - ldr r1, _080C1DA8 @ =0x00002b12 - adds r4, r1 - ldrh r1, [r4] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, _080C1DAC @ =gUnknown_020387E8 - movs r0, 0x8 - strb r0, [r1] - b _080C1DF8 - .align 2, 0 -_080C1D88: .4byte gStringVar1 -_080C1D8C: .4byte gSaveBlock1 -_080C1D90: .4byte 0x00002b10 -_080C1D94: .4byte gSpeciesNames -_080C1D98: .4byte gStringVar2 -_080C1D9C: .4byte 0x00002b14 -_080C1DA0: .4byte gMoveNames -_080C1DA4: .4byte gStringVar3 -_080C1DA8: .4byte 0x00002b12 -_080C1DAC: .4byte gUnknown_020387E8 -_080C1DB0: - movs r0, 0x8 - strb r0, [r2] - b _080C1DF8 -_080C1DB6: - ldr r0, _080C1E0C @ =gStringVar1 - ldr r4, _080C1E10 @ =gSaveBlock1 - ldr r2, _080C1E14 @ =0x00002b16 - adds r1, r4, r2 - ldrh r1, [r1] - bl sub_80EB3FC - ldr r0, _080C1E18 @ =gStringVar2 - ldr r2, _080C1E1C @ =0x00002b10 - adds r1, r4, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, _080C1E20 @ =gSpeciesNames - adds r1, r5 - bl StringCopy - ldr r0, _080C1E24 @ =gStringVar3 - ldr r1, _080C1E28 @ =0x00002b12 - adds r4, r1 - ldrh r1, [r4] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, _080C1E2C @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - ldr r1, _080C1E30 @ =gUnknown_020387E8 - movs r0, 0 - strb r0, [r1] - bl TakeTVShowInSearchOfTrainersOffTheAir -_080C1DF8: - ldr r0, _080C1E34 @ =gUnknown_083D1600 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C1E0C: .4byte gStringVar1 -_080C1E10: .4byte gSaveBlock1 -_080C1E14: .4byte 0x00002b16 -_080C1E18: .4byte gStringVar2 -_080C1E1C: .4byte 0x00002b10 -_080C1E20: .4byte gSpeciesNames -_080C1E24: .4byte gStringVar3 -_080C1E28: .4byte 0x00002b12 -_080C1E2C: .4byte gScriptResult -_080C1E30: .4byte gUnknown_020387E8 -_080C1E34: .4byte gUnknown_083D1600 - thumb_func_end DoTVShowInSearchOfTrainers - - thumb_func_start DoTVShowPokemonAngler -DoTVShowPokemonAngler: @ 80C1E38 - push {r4,r5,lr} - ldr r0, _080C1E5C @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r0, _080C1E64 @ =gScriptResult - movs r1, 0 - strh r1, [r0] - ldrb r0, [r4, 0x2] - ldrb r2, [r4, 0x3] - cmp r0, r2 - bcs _080C1E6C - ldr r0, _080C1E68 @ =gUnknown_020387E8 - strb r1, [r0] - b _080C1E74 - .align 2, 0 -_080C1E5C: .4byte gUnknown_0202E8CC -_080C1E60: .4byte gSaveBlock1 + 0x2738 -_080C1E64: .4byte gScriptResult -_080C1E68: .4byte gUnknown_020387E8 -_080C1E6C: - ldr r1, _080C1E80 @ =gUnknown_020387E8 - movs r0, 0x1 - strb r0, [r1] - adds r0, r1, 0 -_080C1E74: - ldrb r5, [r0] - cmp r5, 0 - beq _080C1E84 - cmp r5, 0x1 - beq _080C1EBC - b _080C1EE4 - .align 2, 0 -_080C1E80: .4byte gUnknown_020387E8 -_080C1E84: - ldr r0, _080C1EB0 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_80C08FC - ldr r0, _080C1EB4 @ =gStringVar2 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1EB8 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x3] - movs r0, 0x2 - bl sub_80BF088 - bl TVShowDone - b _080C1EE4 - .align 2, 0 -_080C1EB0: .4byte gStringVar1 -_080C1EB4: .4byte gStringVar2 -_080C1EB8: .4byte gSpeciesNames -_080C1EBC: - ldr r0, _080C1EF8 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_80C08FC - ldr r0, _080C1EFC @ =gStringVar2 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1F00 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80BF088 - bl TVShowDone -_080C1EE4: - ldr r0, _080C1F04 @ =gUnknown_083D15EC - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C1EF8: .4byte gStringVar1 -_080C1EFC: .4byte gStringVar2 -_080C1F00: .4byte gSpeciesNames -_080C1F04: .4byte gUnknown_083D15EC - thumb_func_end DoTVShowPokemonAngler - - thumb_func_start DoTVShowTheWorldOfMasters -DoTVShowTheWorldOfMasters: @ 80C1F08 - push {r4-r6,lr} - ldr r0, _080C1F30 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738 - adds r4, r0, r1 - ldr r1, _080C1F38 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r6, _080C1F3C @ =gUnknown_020387E8 - ldrb r5, [r6] - cmp r5, 0x1 - beq _080C1F6C - cmp r5, 0x1 - bgt _080C1F40 - cmp r5, 0 - beq _080C1F46 - b _080C1FB6 - .align 2, 0 -_080C1F30: .4byte gUnknown_0202E8CC -_080C1F34: .4byte gSaveBlock1 + 0x2738 -_080C1F38: .4byte gScriptResult -_080C1F3C: .4byte gUnknown_020387E8 -_080C1F40: - cmp r5, 0x2 - beq _080C1F8C - b _080C1FB6 -_080C1F46: - ldr r0, _080C1F68 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_80C08FC - ldrh r1, [r4, 0x6] - movs r0, 0x1 - bl sub_80BF088 - ldrh r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80BF088 - movs r0, 0x1 - strb r0, [r6] - b _080C1FB6 - .align 2, 0 -_080C1F68: .4byte gStringVar1 -_080C1F6C: - ldr r0, _080C1F84 @ =gStringVar1 - ldrh r2, [r4, 0x8] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1F88 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - movs r0, 0x2 - strb r0, [r6] - b _080C1FB6 - .align 2, 0 -_080C1F84: .4byte gStringVar1 -_080C1F88: .4byte gSpeciesNames -_080C1F8C: - ldr r0, _080C1FC8 @ =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_80C08FC - ldr r0, _080C1FCC @ =gStringVar2 - ldrb r1, [r4, 0xA] - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080C1FD0 @ =gStringVar3 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, _080C1FD4 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080C1FB6: - ldr r0, _080C1FD8 @ =gUnknown_083D15F4 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C1FC8: .4byte gStringVar1 -_080C1FCC: .4byte gStringVar2 -_080C1FD0: .4byte gStringVar3 -_080C1FD4: .4byte gSpeciesNames -_080C1FD8: .4byte gUnknown_083D15F4 - thumb_func_end DoTVShowTheWorldOfMasters - - thumb_func_start TVShowDone -TVShowDone: @ 80C1FDC - ldr r1, _080C2000 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - ldr r1, _080C2004 @ =gUnknown_020387E8 - movs r0, 0 - strb r0, [r1] - ldr r2, _080C2008 @ =gSaveBlock1 - ldr r0, _080C200C @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080C2010 @ =0x00002739 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080C2000: .4byte gScriptResult -_080C2004: .4byte gUnknown_020387E8 -_080C2008: .4byte gSaveBlock1 -_080C200C: .4byte gUnknown_0202E8CC -_080C2010: .4byte 0x00002739 - thumb_func_end TVShowDone - - thumb_func_start sub_80C2014 -sub_80C2014: @ 80C2014 - ldr r1, _080C201C @ =gUnknown_020387E8 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080C201C: .4byte gUnknown_020387E8 - thumb_func_end sub_80C2014 - - thumb_func_start sub_80C2020 -sub_80C2020: @ 80C2020 - push {r4,r5,lr} - movs r5, 0x80 - lsls r5, 19 - movs r0, 0x40 - strh r0, [r5] - ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0 - adds r0, r4, 0 - bl SetUpWindowConfig - ldr r0, _080C20F4 @ =gMenuWindow - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r1, _080C20F8 @ =REG_BG0CNT - movs r2, 0xF8 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080C20FC @ =0x00001803 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080C2100 @ =0x00001c03 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080C2104 @ =0x00003a03 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080C2108 @ =REG_MOSAIC - movs r2, 0 - strh r2, [r0] - adds r1, 0x3A - ldr r3, _080C210C @ =0x00003f3f - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - subs r3, 0x11 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080C2110 @ =REG_WIN0H - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - subs r0, 0x2 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - adds r0, 0xA - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - subs r0, 0x44 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - ldrh r0, [r5] - movs r3, 0xFE - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r5] - ldr r0, _080C2114 @ =gUnknown_030042A4 - strh r2, [r0] - ldr r0, _080C2118 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r0, _080C211C @ =gUnknown_030042C0 - strh r2, [r0] - ldr r0, _080C2120 @ =gUnknown_030041B4 - strh r2, [r0] - ldr r0, _080C2124 @ =gUnknown_03004288 - strh r2, [r0] - ldr r0, _080C2128 @ =gUnknown_03004280 - strh r2, [r0] - ldr r0, _080C212C @ =gUnknown_030041B0 - strh r2, [r0] - ldr r0, _080C2130 @ =gUnknown_030041B8 - strh r2, [r0] - ldr r0, _080C2134 @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _080C2138 @ =gUnknown_03004240 - strh r2, [r0] - ldr r0, _080C213C @ =gUnknown_03004200 - strh r2, [r0] - ldr r0, _080C2140 @ =gUnknown_03004244 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C20F0: .4byte gWindowConfig_81E6FA0 -_080C20F4: .4byte gMenuWindow -_080C20F8: .4byte REG_BG0CNT -_080C20FC: .4byte 0x00001803 -_080C2100: .4byte 0x00001c03 -_080C2104: .4byte 0x00003a03 -_080C2108: .4byte REG_MOSAIC -_080C210C: .4byte 0x00003f3f -_080C2110: .4byte REG_WIN0H -_080C2114: .4byte gUnknown_030042A4 -_080C2118: .4byte gUnknown_030042A0 -_080C211C: .4byte gUnknown_030042C0 -_080C2120: .4byte gUnknown_030041B4 -_080C2124: .4byte gUnknown_03004288 -_080C2128: .4byte gUnknown_03004280 -_080C212C: .4byte gUnknown_030041B0 -_080C2130: .4byte gUnknown_030041B8 -_080C2134: .4byte gUnknown_030042C4 -_080C2138: .4byte gUnknown_03004240 -_080C213C: .4byte gUnknown_03004200 -_080C2140: .4byte gUnknown_03004244 - thumb_func_end sub_80C2020 - - thumb_func_start sub_80C2144 -sub_80C2144: @ 80C2144 - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - ldr r0, _080C220C @ =gUnknown_08D1977C - mov r12, r0 - movs r5, 0 - ldr r1, _080C2210 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080C2214 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_080C2162: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080C2162 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0xC0 - lsls r1, 19 - mov r0, r12 - bl LZDecompressVram - ldr r0, _080C2218 @ =gUnknown_08D1A490 - ldr r1, _080C221C @ =0x0600d000 - bl LZDecompressVram - ldr r0, _080C2220 @ =gUnknown_08D1A364 - ldr r1, _080C2224 @ =0x0600e000 - bl LZDecompressVram - ldr r0, _080C2228 @ =gUnknown_08D1A250 - ldr r1, _080C222C @ =0x0600f000 - bl LZDecompressVram - bl sub_80C37E4 - ldr r0, _080C2230 @ =gUnknown_08D1A618 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, _080C2234 @ =gWindowConfig_81E6FA0 - bl LoadFontDefaultPalette - movs r6, 0 -_080C21C0: - lsls r5, r6, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C3990 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C39E4 - movs r5, 0 - lsls r1, r6, 1 - adds r2, r6, 0x1 - mov r12, r2 - lsls r4, 24 - asrs r7, r4, 24 - adds r1, r6 - lsls r1, 6 - lsls r4, r0, 24 -_080C21EC: - ldr r6, _080C2238 @ =0x000060b2 - cmp r5, r7 - bge _080C21F4 - adds r6, 0x2 -_080C21F4: - asrs r2, r4, 24 - adds r0, r2, 0 - cmp r2, 0 - bge _080C21FE - negs r0, r2 -_080C21FE: - cmp r5, r0 - bge _080C2240 - ldr r3, _080C223C @ =0x000060a4 - cmp r2, 0 - bge _080C2242 - adds r3, 0x2 - b _080C2242 - .align 2, 0 -_080C220C: .4byte gUnknown_08D1977C -_080C2210: .4byte 0x040000d4 -_080C2214: .4byte 0x85000400 -_080C2218: .4byte gUnknown_08D1A490 -_080C221C: .4byte 0x0600d000 -_080C2220: .4byte gUnknown_08D1A364 -_080C2224: .4byte 0x0600e000 -_080C2228: .4byte gUnknown_08D1A250 -_080C222C: .4byte 0x0600f000 -_080C2230: .4byte gUnknown_08D1A618 -_080C2234: .4byte gWindowConfig_81E6FA0 -_080C2238: .4byte 0x000060b2 -_080C223C: .4byte 0x000060a4 -_080C2240: - ldr r3, _080C2264 @ =0x000060a2 -_080C2242: - ldr r2, _080C2268 @ =0x0600c166 - adds r0, r1, r2 - strh r6, [r0] - adds r2, 0x40 - adds r0, r1, r2 - strh r3, [r0] - adds r1, 0x2 - adds r5, 0x1 - cmp r5, 0x9 - ble _080C21EC - mov r6, r12 - cmp r6, 0x3 - ble _080C21C0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2264: .4byte 0x000060a2 -_080C2268: .4byte 0x0600c166 - thumb_func_end sub_80C2144 - - thumb_func_start sub_80C226C -sub_80C226C: @ 80C226C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C2288 @ =gUnknown_02038695 - ldrb r0, [r0] - cmp r5, r0 - bne _080C2294 - ldr r0, _080C228C @ =gUnknown_020238CC - ldr r1, _080C2290 @ =gUnknown_083D17DC - bl StringCopy - adds r2, r0, 0 - b _080C2296 - .align 2, 0 -_080C2288: .4byte gUnknown_02038695 -_080C228C: .4byte gUnknown_020238CC -_080C2290: .4byte gUnknown_083D17DC -_080C2294: - ldr r2, _080C22E8 @ =gUnknown_020238CC -_080C2296: - movs r4, 0xFC - strb r4, [r2] - movs r0, 0x6 - strb r0, [r2, 0x1] - movs r0, 0x4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r6, r5, 6 - ldr r7, _080C22EC @ =gUnknown_02038572 - adds r1, r6, r7 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - strb r4, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - movs r0, 0x32 - strb r0, [r2, 0x2] - adds r2, 0x3 - ldr r1, _080C22F0 @ =gUnknown_083D17E0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _080C22F4 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C22FC - lsls r4, r5, 3 - subs r1, r4, r5 - lsls r1, 2 - ldr r0, _080C22F8 @ =gLinkPlayers + 0x8 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - b _080C230A - .align 2, 0 -_080C22E8: .4byte gUnknown_020238CC -_080C22EC: .4byte gUnknown_02038572 -_080C22F0: .4byte gUnknown_083D17E0 -_080C22F4: .4byte gUnknown_0203869A -_080C22F8: .4byte gLinkPlayers + 0x8 -_080C22FC: - adds r1, r7, 0 - adds r1, 0xB - adds r1, r6, r1 - adds r0, r2, 0 - bl StringCopy - lsls r4, r5, 3 -_080C230A: - ldr r0, _080C2334 @ =gMenuWindow - ldr r1, _080C2338 @ =gUnknown_020238CC - adds r2, r4, r5 - lsls r2, 18 - ldr r3, _080C233C @ =0x03020000 - adds r2, r3 - lsrs r2, 16 - lsls r3, r5, 1 - adds r3, r5 - adds r3, 0x4 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x7 - bl sub_8003460 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2334: .4byte gMenuWindow -_080C2338: .4byte gUnknown_020238CC -_080C233C: .4byte 0x03020000 - thumb_func_end sub_80C226C - - thumb_func_start sub_80C2340 -sub_80C2340: @ 80C2340 - push {r4,lr} - movs r4, 0 -_080C2344: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80C226C - adds r4, 0x1 - cmp r4, 0x3 - ble _080C2344 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C2340 - - thumb_func_start sub_80C2358 -sub_80C2358: @ 80C2358 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080C240C @ =gPaletteFade - ldrb r0, [r5, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r5, 0x8] - movs r0, 0 - bl SetVBlankCallback - bl sub_80C2020 - bl dp12_8087EA4 - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl sub_80C2144 - bl sub_80C310C - movs r0, 0 - movs r1, 0x1 - bl sub_80C30D4 - bl sub_80C2340 - ldr r4, _080C2410 @ =0x02018000 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x18 - bl memset - adds r0, r4, 0 - adds r0, 0x18 - movs r1, 0 - movs r2, 0x50 - bl memset - bl sub_80C33DC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrb r1, [r5, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r5, 0x8] - ldr r0, _080C2414 @ =sub_80C24F4 - movs r1, 0x5 - bl CreateTask - strb r0, [r4, 0x2] - ldr r0, _080C2418 @ =sub_80C2430 - bl SetMainCallback2 - ldr r1, _080C241C @ =gUnknown_03004200 - movs r0, 0xF0 - strh r0, [r1] - ldr r1, _080C2420 @ =gUnknown_03004244 - ldr r2, _080C2424 @ =0x000080a0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080C2428 @ =sub_80C2F28 - movs r1, 0x14 - bl CreateTask - bl sub_80C3F00 - movs r0, 0xDF - lsls r0, 1 - bl PlayBGM - ldr r0, _080C242C @ =sub_80C2448 - bl SetVBlankCallback - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C240C: .4byte gPaletteFade -_080C2410: .4byte 0x02018000 -_080C2414: .4byte sub_80C24F4 -_080C2418: .4byte sub_80C2430 -_080C241C: .4byte gUnknown_03004200 -_080C2420: .4byte gUnknown_03004244 -_080C2424: .4byte 0x000080a0 -_080C2428: .4byte sub_80C2F28 -_080C242C: .4byte sub_80C2448 - thumb_func_end sub_80C2358 - - thumb_func_start sub_80C2430 -sub_80C2430: @ 80C2430 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80C2430 - - thumb_func_start sub_80C2448 -sub_80C2448: @ 80C2448 - push {lr} - ldr r1, _080C24C0 @ =REG_BG0HOFS - ldr r0, _080C24C4 @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24C8 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24CC @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D0 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D4 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24D8 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24DC @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _080C24E0 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _080C24E4 @ =gUnknown_030042C4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24E8 @ =gUnknown_03004240 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _080C24EC @ =gUnknown_03004200 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _080C24F0 @ =gUnknown_03004244 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080C24C0: .4byte REG_BG0HOFS -_080C24C4: .4byte gUnknown_030042A4 -_080C24C8: .4byte gUnknown_030042A0 -_080C24CC: .4byte gUnknown_030042C0 -_080C24D0: .4byte gUnknown_030041B4 -_080C24D4: .4byte gUnknown_03004288 -_080C24D8: .4byte gUnknown_03004280 -_080C24DC: .4byte gUnknown_030041B0 -_080C24E0: .4byte gUnknown_030041B8 -_080C24E4: .4byte gUnknown_030042C4 -_080C24E8: .4byte gUnknown_03004240 -_080C24EC: .4byte gUnknown_03004200 -_080C24F0: .4byte gUnknown_03004244 - thumb_func_end sub_80C2448 - - thumb_func_start sub_80C24F4 -sub_80C24F4: @ 80C24F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - ldr r0, _080C252C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C254E - ldr r0, _080C2530 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2540 - ldr r0, _080C2534 @ =gOtherText_LinkStandby - bl sub_80C3698 - ldr r1, _080C2538 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C253C @ =sub_80C255C - str r1, [r0] - b _080C254E - .align 2, 0 -_080C252C: .4byte gPaletteFade -_080C2530: .4byte gUnknown_0203869A -_080C2534: .4byte gOtherText_LinkStandby -_080C2538: .4byte gTasks -_080C253C: .4byte sub_80C255C -_080C2540: - ldr r0, _080C2554 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2558 @ =sub_80C2600 - str r0, [r1] -_080C254E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2554: .4byte gTasks -_080C2558: .4byte sub_80C2600 - thumb_func_end sub_80C24F4 - - thumb_func_start sub_80C255C -sub_80C255C: @ 80C255C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080C258C - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C258C - ldr r0, _080C2598 @ =sub_80C25A4 - movs r1, 0 - bl CreateTask - ldr r1, _080C259C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C25A0 @ =TaskDummy - str r1, [r0] -_080C258C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2594: .4byte gReceivedRemoteLinkPlayers -_080C2598: .4byte sub_80C25A4 -_080C259C: .4byte gTasks -_080C25A0: .4byte TaskDummy - thumb_func_end sub_80C255C - - thumb_func_start sub_80C25A4 -sub_80C25A4: @ 80C25A4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C25B8 @ =sub_80C89DC - ldr r2, _080C25BC @ =sub_80C25C0 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C25B8: .4byte sub_80C89DC -_080C25BC: .4byte sub_80C25C0 - thumb_func_end sub_80C25A4 - - thumb_func_start sub_80C25C0 -sub_80C25C0: @ 80C25C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C25EC - adds r0, r4, 0 - bl DestroyTask - ldr r2, _080C25F4 @ =gTasks - ldr r0, _080C25F8 @ =0x02018000 - ldrb r1, [r0, 0x2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080C25FC @ =sub_80C2600 - str r1, [r0] - bl sub_80C3764 -_080C25EC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C25F4: .4byte gTasks -_080C25F8: .4byte 0x02018000 -_080C25FC: .4byte sub_80C2600 - thumb_func_end sub_80C25C0 - - thumb_func_start sub_80C2600 -sub_80C2600: @ 80C2600 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2644 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrh r1, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080C2654 - ldr r0, _080C2648 @ =sub_80C2F64 - movs r1, 0x14 - bl CreateTask - ldr r4, _080C264C @ =gContestText_AnnounceResults - ldr r0, _080C2650 @ =0x02018000 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - movs r2, 0x78 - b _080C26A6 - .align 2, 0 -_080C2644: .4byte gTasks -_080C2648: .4byte sub_80C2F64 -_080C264C: .4byte gContestText_AnnounceResults -_080C2650: .4byte 0x02018000 -_080C2654: - cmp r0, 0x1 - bne _080C2668 - ldr r0, _080C2664 @ =0x02018000 - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _080C26D4 - b _080C267C - .align 2, 0 -_080C2664: .4byte 0x02018000 -_080C2668: - cmp r0, 0x2 - bne _080C2684 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080C26D4 - movs r0, 0 -_080C267C: - strh r0, [r5, 0xA] - adds r0, r1, 0x1 - strh r0, [r5, 0x8] - b _080C26D4 -_080C2684: - cmp r0, 0x3 - bne _080C26C0 - ldr r4, _080C26B4 @ =gContestText_PreliminaryResults - ldr r0, _080C26B8 @ =0x02018000 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C26BC @ =0x0000ffff - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 -_080C26A6: - bl sub_80C34CC - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080C26D4 - .align 2, 0 -_080C26B4: .4byte gContestText_PreliminaryResults -_080C26B8: .4byte 0x02018000 -_080C26BC: .4byte 0x0000ffff -_080C26C0: - cmp r0, 0x4 - bne _080C26D4 - ldr r0, _080C26DC @ =0x02018000 - ldrb r0, [r0, 0x4] - cmp r0, 0x2 - bne _080C26D4 - movs r0, 0 - strh r0, [r5, 0x8] - ldr r0, _080C26E0 @ =sub_80C26E4 - str r0, [r5] -_080C26D4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C26DC: .4byte 0x02018000 -_080C26E0: .4byte sub_80C26E4 - thumb_func_end sub_80C2600 - - thumb_func_start sub_80C26E4 -sub_80C26E4: @ 80C26E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2708 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C2744 - cmp r0, 0x1 - bgt _080C270C - cmp r0, 0 - beq _080C2712 - b _080C2766 - .align 2, 0 -_080C2708: .4byte gTasks -_080C270C: - cmp r0, 0x2 - beq _080C2754 - b _080C2766 -_080C2712: - ldr r5, _080C2738 @ =0x02018000 - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _080C2766 - ldrh r1, [r4, 0xC] - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_80C40D4 - ldrb r0, [r5, 0x14] - cmp r0, 0 - bne _080C273C - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080C2766 - .align 2, 0 -_080C2738: .4byte 0x02018000 -_080C273C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C2766 -_080C2744: - ldr r0, _080C2750 @ =0x02018000 - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080C2766 - strh r0, [r4, 0x8] - b _080C2766 - .align 2, 0 -_080C2750: .4byte 0x02018000 -_080C2754: - movs r0, 0x88 - lsls r0, 3 - bl sub_80C3520 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xC] - ldr r0, _080C276C @ =sub_80C2770 - str r0, [r4] -_080C2766: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C276C: .4byte sub_80C2770 - thumb_func_end sub_80C26E4 - - thumb_func_start sub_80C2770 -sub_80C2770: @ 80C2770 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r5, _080C27BC @ =0x02018000 - ldrb r3, [r5, 0x4] - cmp r3, 0 - bne _080C27CC - ldr r1, _080C27C0 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080C27DE - strh r3, [r1, 0xA] - ldr r4, _080C27C4 @ =gContestText_Round2Results - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C27C8 @ =0x0000ffff - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - bl sub_80C34CC - b _080C27DE - .align 2, 0 -_080C27BC: .4byte 0x02018000 -_080C27C0: .4byte gTasks -_080C27C4: .4byte gContestText_Round2Results -_080C27C8: .4byte 0x0000ffff -_080C27CC: - cmp r3, 0x2 - bne _080C27DE - ldr r0, _080C27E4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C27E8 @ =sub_80C27EC - str r0, [r1] -_080C27DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C27E4: .4byte gTasks -_080C27E8: .4byte sub_80C27EC - thumb_func_end sub_80C2770 - - thumb_func_start sub_80C27EC -sub_80C27EC: @ 80C27EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C2810 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C284C - cmp r0, 0x1 - bgt _080C2814 - cmp r0, 0 - beq _080C281A - b _080C286C - .align 2, 0 -_080C2810: .4byte gTasks -_080C2814: - cmp r0, 0x2 - beq _080C285C - b _080C286C -_080C281A: - ldr r5, _080C2840 @ =0x02018000 - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _080C286C - ldrh r1, [r4, 0xC] - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_80C40D4 - ldrb r0, [r5, 0x14] - cmp r0, 0 - bne _080C2844 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080C286C - .align 2, 0 -_080C2840: .4byte 0x02018000 -_080C2844: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C286C -_080C284C: - ldr r0, _080C2858 @ =0x02018000 - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080C286C - strh r0, [r4, 0x8] - b _080C286C - .align 2, 0 -_080C2858: .4byte 0x02018000 -_080C285C: - movs r0, 0x88 - lsls r0, 3 - bl sub_80C3520 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, _080C2874 @ =sub_80C2878 - str r0, [r4] -_080C286C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2874: .4byte sub_80C2878 - thumb_func_end sub_80C27EC - - thumb_func_start sub_80C2878 -sub_80C2878: @ 80C2878 - push {r4-r7,lr} - sub sp, 0x64 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C28A0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x5 - bls _080C2896 - b _080C2A80 -_080C2896: - lsls r0, 2 - ldr r1, _080C28A4 @ =_080C28A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C28A0: .4byte gTasks -_080C28A4: .4byte _080C28A8 - .align 2, 0 -_080C28A8: - .4byte _080C28C0 - .4byte _080C28E0 - .4byte _080C28FE - .4byte _080C2938 - .4byte _080C299C - .4byte _080C2A70 -_080C28C0: - ldr r0, _080C28DC @ =0x02018000 - ldrb r0, [r0, 0x4] - cmp r0, 0 - beq _080C28CA - b _080C2A80 -_080C28CA: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C2A80 - .align 2, 0 -_080C28DC: .4byte 0x02018000 -_080C28E0: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - beq _080C28F8 - b _080C2A80 -_080C28F8: - movs r0, 0 - strh r0, [r1, 0xA] - b _080C2A4A -_080C28FE: - movs r4, 0 - lsls r6, r5, 2 - ldr r7, _080C292C @ =gTasks -_080C2904: - ldr r0, _080C2930 @ =sub_80C3A5C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - ldr r0, _080C2934 @ =gUnknown_02038690 - adds r0, r4, r0 - ldrb r0, [r0] - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - adds r4, 0x1 - cmp r4, 0x3 - ble _080C2904 - b _080C2A42 - .align 2, 0 -_080C292C: .4byte gTasks -_080C2930: .4byte sub_80C3A5C -_080C2934: .4byte gUnknown_02038690 -_080C2938: - ldr r0, _080C2990 @ =0x02018000 - ldrb r0, [r0, 0x5] - cmp r0, 0x4 - beq _080C2942 - b _080C2A80 -_080C2942: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r2 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - beq _080C295A - b _080C2A80 -_080C295A: - movs r0, 0 - strh r0, [r4, 0xA] - ldr r0, _080C2994 @ =sub_80C3B30 - movs r1, 0xA - bl CreateTask - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r4, 0 - ldr r1, _080C2998 @ =gUnknown_02038690 - ldrb r0, [r1] - cmp r0, 0 - beq _080C2984 -_080C2976: - adds r4, 0x1 - cmp r4, 0x3 - bgt _080C2984 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080C2976 -_080C2984: - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0xE - bl sub_80C3E60 - b _080C2A80 - .align 2, 0 -_080C2990: .4byte 0x02018000 -_080C2994: .4byte sub_80C3B30 -_080C2998: .4byte gUnknown_02038690 -_080C299C: - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r2, r0, r2 - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - adds r6, r1, 0 - cmp r0, 0x15 - bne _080C2A80 - movs r0, 0 - strh r0, [r2, 0xA] - movs r4, 0 - ldr r2, _080C29F4 @ =gUnknown_02038690 - ldrb r0, [r2] - ldr r1, _080C29F8 @ =gUnknown_0203869A - ldr r3, _080C29FC @ =gStringVar1 - cmp r0, 0 - beq _080C29D4 -_080C29C6: - adds r4, 0x1 - cmp r4, 0x3 - bgt _080C29D4 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C29C6 -_080C29D4: - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2A04 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r0, _080C2A00 @ =gLinkPlayers + 0x8 - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - lsls r4, 6 - b _080C2A10 - .align 2, 0 -_080C29F4: .4byte gUnknown_02038690 -_080C29F8: .4byte gUnknown_0203869A -_080C29FC: .4byte gStringVar1 -_080C2A00: .4byte gLinkPlayers + 0x8 -_080C2A04: - lsls r4, 6 - ldr r1, _080C2A54 @ =gUnknown_0203857D - adds r1, r4, r1 - adds r0, r3, 0 - bl StringCopy -_080C2A10: - ldr r0, _080C2A58 @ =gStringVar2 - ldr r1, _080C2A5C @ =gUnknown_02038572 - adds r1, r4, r1 - bl StringCopy - ldr r1, _080C2A60 @ =gContestText_PokeWon - mov r0, sp - bl StringExpandPlaceholders - ldr r0, _080C2A64 @ =0x02018000 - ldrb r1, [r0] - mov r0, sp - bl sub_80C3158 - mov r0, sp - bl sub_80C34AC - lsls r0, 16 - asrs r0, 16 - ldr r2, _080C2A68 @ =0x0000ffff - movs r3, 0x88 - lsls r3, 3 - movs r1, 0x90 - bl sub_80C34CC -_080C2A42: - ldr r0, _080C2A6C @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 -_080C2A4A: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C2A80 - .align 2, 0 -_080C2A54: .4byte gUnknown_0203857D -_080C2A58: .4byte gStringVar2 -_080C2A5C: .4byte gUnknown_02038572 -_080C2A60: .4byte gContestText_PokeWon -_080C2A64: .4byte 0x02018000 -_080C2A68: .4byte 0x0000ffff -_080C2A6C: .4byte gTasks -_080C2A70: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080C2A88 @ =sub_80C2A8C - str r1, [r0] -_080C2A80: - add sp, 0x64 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2A88: .4byte sub_80C2A8C - thumb_func_end sub_80C2878 - - thumb_func_start sub_80C2A8C -sub_80C2A8C: @ 80C2A8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080C2ABC @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080C2AB2 - b _080C2D04 -_080C2AB2: - lsls r0, 2 - ldr r1, _080C2AC0 @ =_080C2AC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C2ABC: .4byte gTasks -_080C2AC0: .4byte _080C2AC4 - .align 2, 0 -_080C2AC4: - .4byte _080C2ADC - .4byte _080C2C04 - .4byte _080C2C54 - .4byte _080C2C64 - .4byte _080C2CA8 - .4byte _080C2CE8 -_080C2ADC: - ldr r1, _080C2BC4 @ =gUnknown_030042C4 - movs r0, 0xF0 - strh r0, [r1] - ldr r1, _080C2BC8 @ =gUnknown_03004240 - ldr r3, _080C2BCC @ =0x00005050 - adds r0, r3, 0 - strh r0, [r1] - movs r1, 0 - ldr r3, _080C2BD0 @ =gUnknown_02038690 - ldrb r0, [r3] - lsls r4, r7, 2 - mov r10, r4 - ldr r2, _080C2BD4 @ =gUnknown_02038570 - ldr r5, _080C2BD8 @ =gMonFrontPicTable - mov r12, r5 - ldr r4, _080C2BDC @ =gMonFrontPicCoords - mov r8, r4 - ldr r5, _080C2BE0 @ =gUnknown_081FAF4C - mov r9, r5 - cmp r0, 0 - beq _080C2B14 -_080C2B06: - adds r1, 0x1 - cmp r1, 0x3 - bgt _080C2B14 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080C2B06 -_080C2B14: - lsls r1, 6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r1, r0 - ldr r4, [r0] - adds r0, r2, 0 - adds r0, 0x3C - adds r1, r0 - ldr r1, [r1] - str r1, [sp, 0xC] - lsls r0, r6, 3 - add r0, r12 - lsls r2, r6, 2 - add r2, r8 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - mov r5, r9 - ldr r3, [r5, 0x4] - str r3, [sp] - str r6, [sp, 0x4] - str r4, [sp, 0x8] - ldr r3, _080C2BE4 @ =0x02000000 - bl sub_800D334 - adds r0, r6, 0 - ldr r1, [sp, 0xC] - adds r2, r4, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080C2BE8 @ =gUnknown_02024E8C - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x2] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x50 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _080C2BEC @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r3, r2, r5 - strh r6, [r3, 0x30] - ldrb r4, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - strb r1, [r3, 0x5] - adds r5, 0x1C - adds r2, r5 - ldr r1, _080C2BF0 @ =sub_80C3C44 - str r1, [r2] - ldr r2, _080C2BE4 @ =0x02000000 - movs r3, 0xC0 - lsls r3, 9 - adds r1, r2, r3 - strb r0, [r1, 0x8] - ldr r0, _080C2BF4 @ =gUnknown_083D17CC - bl LoadCompressedObjectPic - ldr r0, _080C2BF8 @ =gUnknown_083D17D4 - bl LoadCompressedObjectPalette - ldr r0, _080C2BFC @ =sub_80C3D04 - movs r1, 0xA - bl CreateTask - ldr r0, _080C2C00 @ =gTasks - mov r4, r10 - adds r1, r4, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C2D04 - .align 2, 0 -_080C2BC4: .4byte gUnknown_030042C4 -_080C2BC8: .4byte gUnknown_03004240 -_080C2BCC: .4byte 0x00005050 -_080C2BD0: .4byte gUnknown_02038690 -_080C2BD4: .4byte gUnknown_02038570 -_080C2BD8: .4byte gMonFrontPicTable -_080C2BDC: .4byte gMonFrontPicCoords -_080C2BE0: .4byte gUnknown_081FAF4C -_080C2BE4: .4byte 0x02000000 -_080C2BE8: .4byte gUnknown_02024E8C -_080C2BEC: .4byte gSprites -_080C2BF0: .4byte sub_80C3C44 -_080C2BF4: .4byte gUnknown_083D17CC -_080C2BF8: .4byte gUnknown_083D17D4 -_080C2BFC: .4byte sub_80C3D04 -_080C2C00: .4byte gTasks -_080C2C04: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080C2D04 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080C2C30 - movs r0, 0x20 - strh r0, [r4, 0xC] -_080C2C30: - ldrb r2, [r4, 0xC] - ldr r3, _080C2C50 @ =gUnknown_03004240 - movs r0, 0x50 - subs r0, r2 - lsls r0, 8 - adds r1, r2, 0 - adds r1, 0x50 - orrs r0, r1 - strh r0, [r3] - cmp r2, 0x20 - bne _080C2D04 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C2D04 - .align 2, 0 -_080C2C50: .4byte gUnknown_03004240 -_080C2C54: - ldr r0, _080C2C60 @ =0x02018000 - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - bne _080C2D04 - b _080C2CD0 - .align 2, 0 -_080C2C60: .4byte 0x02018000 -_080C2C64: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r4 - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x79 - bne _080C2D04 - movs r0, 0 - strh r0, [r3, 0xA] - ldr r2, _080C2C9C @ =gSprites - ldr r0, _080C2CA0 @ =0x02018000 - ldrb r1, [r0, 0x8] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080C2CA4 @ =sub_80C3CB8 - str r1, [r0] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080C2D04 - .align 2, 0 -_080C2C9C: .4byte gSprites -_080C2CA0: .4byte 0x02018000 -_080C2CA4: .4byte sub_80C3CB8 -_080C2CA8: - ldr r0, _080C2CE0 @ =0x02018000 - ldrb r0, [r0, 0x6] - cmp r0, 0x2 - bne _080C2D04 - ldr r3, _080C2CE4 @ =gUnknown_03004240 - ldrh r0, [r3] - lsrs r2, r0, 8 - adds r0, r2, 0x2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x50 - bls _080C2CC2 - movs r2, 0x50 -_080C2CC2: - lsls r1, r2, 8 - movs r0, 0xA0 - subs r0, r2 - orrs r1, r0 - strh r1, [r3] - cmp r2, 0x50 - bne _080C2D04 -_080C2CD0: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C2D04 - .align 2, 0 -_080C2CE0: .4byte 0x02018000 -_080C2CE4: .4byte gUnknown_03004240 -_080C2CE8: - ldr r2, _080C2D14 @ =0x02018000 - ldrb r0, [r2, 0x6] - cmp r0, 0x2 - bne _080C2D04 - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x9] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 - strh r1, [r0, 0x8] - ldr r1, _080C2D18 @ =sub_80C2D1C - str r1, [r0] -_080C2D04: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2D14: .4byte 0x02018000 -_080C2D18: .4byte sub_80C2D1C - thumb_func_end sub_80C2A8C - - thumb_func_start sub_80C2D1C -sub_80C2D1C: @ 80C2D1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080C2D6C @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080C2D66 - ldr r0, _080C2D70 @ =gUnknown_0203869A - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - lsls r6, r7, 2 - cmp r0, 0 - bne _080C2D5A - ldr r5, _080C2D74 @ =gUnknown_02038570 - movs r4, 0x3 -_080C2D42: - ldrh r0, [r5] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - adds r5, 0x40 - subs r4, 0x1 - cmp r4, 0 - bge _080C2D42 -_080C2D5A: - ldr r0, _080C2D78 @ =gTasks - adds r1, r6, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2D7C @ =sub_80C2D80 - str r0, [r1] -_080C2D66: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2D6C: .4byte gMain -_080C2D70: .4byte gUnknown_0203869A -_080C2D74: .4byte gUnknown_02038570 -_080C2D78: .4byte gTasks -_080C2D7C: .4byte sub_80C2D80 - thumb_func_end sub_80C2D1C - - thumb_func_start sub_80C2D80 -sub_80C2D80: @ 80C2D80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2DAC @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C2DBC - ldr r0, _080C2DB0 @ =gOtherText_LinkStandby - bl sub_80C3698 - bl sub_800832C - ldr r1, _080C2DB4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2DB8 @ =sub_80C2DD8 - str r1, [r0] - b _080C2DCA - .align 2, 0 -_080C2DAC: .4byte gUnknown_0203869A -_080C2DB0: .4byte gOtherText_LinkStandby -_080C2DB4: .4byte gTasks -_080C2DB8: .4byte sub_80C2DD8 -_080C2DBC: - ldr r0, _080C2DD0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C2DD4 @ =sub_80C2E14 - str r0, [r1] -_080C2DCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2DD0: .4byte gTasks -_080C2DD4: .4byte sub_80C2E14 - thumb_func_end sub_80C2D80 - - thumb_func_start sub_80C2DD8 -sub_80C2DD8: @ 80C2DD8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers - ldrb r1, [r0] - cmp r1, 0 - bne _080C2DFC - ldr r0, _080C2E08 @ =gUnknown_0203869A - strb r1, [r0] - bl sub_80C3764 - ldr r1, _080C2E0C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2E10 @ =sub_80C2E14 - str r1, [r0] -_080C2DFC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C2E04: .4byte gReceivedRemoteLinkPlayers -_080C2E08: .4byte gUnknown_0203869A -_080C2E0C: .4byte gTasks -_080C2E10: .4byte sub_80C2E14 - thumb_func_end sub_80C2DD8 - - thumb_func_start sub_80C2E14 -sub_80C2E14: @ 80C2E14 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080C2E80 @ =gUnknown_02038690 - ldr r0, _080C2E84 @ =gUnknown_02038695 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - bl sub_80BE284 - movs r0, 0x2 - bl sub_810FB10 - ldr r0, _080C2E88 @ =gUnknown_0203869E - ldrb r0, [r0] - bl sub_80B2A7C - movs r0, 0xFE - bl sub_80B2A7C - ldr r4, _080C2E8C @ =0x02000000 - ldr r0, _080C2E90 @ =0x00015ddf - adds r1, r4, r0 - movs r6, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0xFE - movs r1, 0 - bl sub_80B2C4C - ldr r1, _080C2E94 @ =0x00015dde - adds r4, r1 - strb r0, [r4] - str r6, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldr r1, _080C2E98 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C2E9C @ =sub_80C2EA0 - str r1, [r0] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C2E80: .4byte gUnknown_02038690 -_080C2E84: .4byte gUnknown_02038695 -_080C2E88: .4byte gUnknown_0203869E -_080C2E8C: .4byte 0x02000000 -_080C2E90: .4byte 0x00015ddf -_080C2E94: .4byte 0x00015dde -_080C2E98: .4byte gTasks -_080C2E9C: .4byte sub_80C2EA0 - thumb_func_end sub_80C2E14 - - thumb_func_start sub_80C2EA0 -sub_80C2EA0: @ 80C2EA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - ldr r0, _080C2ED8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080C2F18 - ldr r1, _080C2EDC @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C2EE8 - ldr r0, _080C2EE0 @ =0x02018000 - ldrb r0, [r0, 0x3] - bl DestroyTask - ldr r0, _080C2EE4 @ =0x0000ffff - b _080C2EEE - .align 2, 0 -_080C2ED8: .4byte gPaletteFade -_080C2EDC: .4byte gTasks -_080C2EE0: .4byte 0x02018000 -_080C2EE4: .4byte 0x0000ffff -_080C2EE8: - cmp r0, 0x1 - bne _080C2F04 - ldr r0, _080C2F00 @ =0xffff0000 -_080C2EEE: - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080C2F18 - .align 2, 0 -_080C2F00: .4byte 0xffff0000 -_080C2F04: - ldr r0, _080C2F20 @ =REG_BLDCNT - strh r3, [r0] - adds r0, 0x4 - strh r3, [r0] - adds r0, r5, 0 - bl DestroyTask - ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_080C2F18: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2F20: .4byte REG_BLDCNT -_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C2EA0 - - thumb_func_start sub_80C2F28 -sub_80C2F28: @ 80C2F28 - push {r4,r5,lr} - ldr r2, _080C2F5C @ =gUnknown_030041B0 - ldrh r3, [r2] - adds r0, r3, 0x2 - strh r0, [r2] - ldr r4, _080C2F60 @ =gUnknown_030041B8 - ldrh r5, [r4] - adds r1, r5, 0x1 - strh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _080C2F48 - adds r0, r3, 0 - subs r0, 0xFD - strh r0, [r2] -_080C2F48: - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _080C2F56 - adds r0, r5, 0 - subs r0, 0xFE - strh r0, [r4] -_080C2F56: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C2F5C: .4byte gUnknown_030041B0 -_080C2F60: .4byte gUnknown_030041B8 - thumb_func_end sub_80C2F28 - - thumb_func_start sub_80C2F64 -sub_80C2F64: @ 80C2F64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C2F94 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080C2FE6 - movs r0, 0 - strh r0, [r2, 0x8] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080C2F98 - ldrh r0, [r2, 0xA] - adds r0, 0x1 - b _080C2F9C - .align 2, 0 -_080C2F94: .4byte gTasks -_080C2F98: - ldrh r0, [r2, 0xA] - subs r0, 0x1 -_080C2F9C: - strh r0, [r2, 0xA] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x10 - bne _080C2FB2 - movs r0, 0x1 - b _080C2FB6 -_080C2FB2: - cmp r0, 0 - bne _080C2FB8 -_080C2FB6: - strh r0, [r1, 0xC] -_080C2FB8: - ldr r0, _080C3000 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r2, [r4, 0xA] - ldr r3, _080C3004 @ =0x00002ede - movs r0, 0x6B - movs r1, 0x1 - bl BlendPalette - ldrb r2, [r4, 0xA] - ldr r3, _080C3008 @ =0x00007fff - movs r0, 0x68 - movs r1, 0x1 - bl BlendPalette - ldrb r2, [r4, 0xA] - ldr r3, _080C300C @ =0x000077be - movs r0, 0x6E - movs r1, 0x1 - bl BlendPalette -_080C2FE6: - ldr r1, _080C3000 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r3, 0xA - ldrsh r4, [r0, r3] - cmp r4, 0 - bne _080C3014 - ldr r0, _080C3010 @ =0x02018000 - strb r4, [r0, 0xA] - b _080C301A - .align 2, 0 -_080C3000: .4byte gTasks -_080C3004: .4byte 0x00002ede -_080C3008: .4byte 0x00007fff -_080C300C: .4byte 0x000077be -_080C3010: .4byte 0x02018000 -_080C3014: - ldr r1, _080C3020 @ =0x02018000 - movs r0, 0x1 - strb r0, [r1, 0xA] -_080C301A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3020: .4byte 0x02018000 - thumb_func_end sub_80C2F64 - - thumb_func_start sub_80C3024 -sub_80C3024: @ 80C3024 - push {r4-r6,lr} - ldr r6, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - cmp r3, 0 - beq _080C30B0 - adds r1, r6, 0 - bl sub_809D4F4 - lsls r1, r5, 9 - adds r0, r1 - adds r0, 0x80 - lsls r1, r4, 9 - ldr r2, _080C30A0 @ =0x06004000 - adds r1, r2 - ldr r2, _080C30A4 @ =0x040000d4 - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080C30A8 @ =0x84000060 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, r4, 0 - adds r1, 0xA - lsls r1, 28 - lsls r0, r4, 20 - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - orrs r0, r1 - lsrs r1, r0, 16 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 21 - movs r2, 0x83 - lsls r2, 16 - adds r0, r2 - lsrs r5, r0, 16 - movs r2, 0 - ldr r6, _080C30AC @ =0x0600c000 -_080C307C: - lsls r0, r2, 5 - adds r4, r2, 0x1 - adds r0, r5 - movs r3, 0x3 - lsls r0, 1 - adds r2, r0, r6 -_080C3088: - strh r1, [r2] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3088 - adds r2, r4, 0 - cmp r2, 0x2 - ble _080C307C - b _080C30CA - .align 2, 0 -_080C30A0: .4byte 0x06004000 -_080C30A4: .4byte 0x040000d4 -_080C30A8: .4byte 0x84000060 -_080C30AC: .4byte 0x0600c000 -_080C30B0: - adds r1, r6, 0 - bl sub_809D4F4 - lsls r1, r5, 9 - adds r0, r1 - adds r0, 0x80 - lsls r1, r4, 9 - ldr r2, _080C30D0 @ =0x06004000 - adds r1, r2 - movs r2, 0xC0 - lsls r2, 1 - bl RequestSpriteCopy -_080C30CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C30D0: .4byte 0x06004000 - thumb_func_end sub_80C3024 - - thumb_func_start sub_80C30D4 -sub_80C30D4: @ 80C30D4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - movs r5, 0 - ldr r4, _080C3108 @ =gUnknown_02038570 -_080C30E4: - ldrh r0, [r4] - lsls r1, r5, 24 - lsrs r1, 24 - ldr r2, [r4, 0x38] - str r2, [sp] - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_80C3024 - adds r4, 0x40 - adds r5, 0x1 - cmp r5, 0x3 - ble _080C30E4 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3108: .4byte gUnknown_02038570 - thumb_func_end sub_80C30D4 - - thumb_func_start sub_80C310C -sub_80C310C: @ 80C310C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _080C314C @ =gMonIconPaletteIndices - movs r5, 0xA0 - lsls r5, 16 -_080C3116: - ldr r1, _080C3150 @ =gUnknown_02038570 - lsls r0, r4, 6 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0 - bl mon_icon_convert_unown_species_id - lsls r0, 16 - lsrs r0, 16 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 5 - ldr r1, _080C3154 @ =gMonIconPalettes - adds r0, r1 - lsrs r1, r5, 16 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x80 - lsls r0, 13 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x3 - ble _080C3116 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C314C: .4byte gMonIconPaletteIndices -_080C3150: .4byte gUnknown_02038570 -_080C3154: .4byte gMonIconPalettes - thumb_func_end sub_80C310C - - thumb_func_start sub_80C3158 -sub_80C3158: @ 80C3158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - ldr r3, _080C32C0 @ =gSprites - adds r2, r3 - mov r1, sp - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1] - mov r4, sp - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x2] - movs r0, 0x30 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x4] - movs r0, 0x32 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x6] - ldr r1, _080C32C4 @ =gWindowConfig_81E7278 - mov r8, r1 - ldr r7, _080C32C8 @ =0x06010000 - ldr r2, _080C32CC @ =0x040000d4 - ldr r6, _080C32D0 @ =0x85000100 - mov r1, sp - movs r5, 0 - add r3, sp, 0x8 - movs r4, 0x3 -_080C31CE: - ldrh r0, [r1] - lsls r0, 5 - adds r0, r7 - str r5, [sp, 0x8] - str r3, [r2] - str r0, [r2, 0x4] - str r6, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080C31CE - mov r0, r8 - mov r1, r9 - bl GetStringWidthGivenWindowConfig - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080C32D4 @ =gUnknown_020238CC - ldr r1, _080C32D8 @ =gUnknown_083D17E2 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - mvns r0, r5 - adds r1, r0, 0x1 - movs r0, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080C3218 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - lsrs r0, r1, 1 - strb r0, [r2, 0x2] - adds r2, 0x3 -_080C3218: - adds r6, r5, 0x7 - movs r1, 0x8 - negs r1, r1 - adds r0, r1, 0 - ands r6, r0 - lsls r6, 24 - lsrs r5, r6, 24 - adds r0, r2, 0 - mov r1, r9 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - strb r5, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080C32DC @ =0x02018068 - mov r10, r0 - ldr r1, _080C32D4 @ =gUnknown_020238CC - bl sub_80034D4 - mov r0, sp - ldrh r4, [r0] - lsls r4, 5 - ldr r1, _080C32C8 @ =0x06010000 - adds r7, r4, r1 - ldr r0, _080C32E0 @ =gUnknown_083D1624 - mov r9, r0 - ldr r1, _080C32E4 @ =REG_BG0CNT - mov r8, r1 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - mov r5, r9 - adds r5, 0x80 - ldr r0, _080C32E8 @ =0x06010100 - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - ldr r0, _080C32EC @ =0x06010200 - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, r9 - adds r0, 0x40 - ldr r1, _080C32F0 @ =0x06010300 - adds r4, r1 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - lsrs r5, r6, 27 - movs r4, 0 - cmp r4, r5 - bgt _080C3382 - mov r6, sp - mov r0, r10 - adds r0, 0x20 - str r0, [sp, 0xC] - mov r1, r10 - str r1, [sp, 0x10] - ldr r0, _080C32F4 @ =0x0600fd20 - str r0, [sp, 0x14] - ldr r1, _080C32F8 @ =0x0600fe20 - str r1, [sp, 0x18] - ldr r0, _080C32FC @ =0x0600ff20 - mov r10, r0 - ldr r1, _080C3300 @ =0x06010020 - mov r9, r1 -_080C32B2: - cmp r4, 0x6 - bgt _080C3304 - ldrh r0, [r6] - lsls r0, 5 - mov r1, r9 - b _080C3322 - .align 2, 0 -_080C32C0: .4byte gSprites -_080C32C4: .4byte gWindowConfig_81E7278 -_080C32C8: .4byte 0x06010000 -_080C32CC: .4byte 0x040000d4 -_080C32D0: .4byte 0x85000100 -_080C32D4: .4byte gUnknown_020238CC -_080C32D8: .4byte gUnknown_083D17E2 -_080C32DC: .4byte 0x02018068 -_080C32E0: .4byte gUnknown_083D1624 -_080C32E4: .4byte REG_BG0CNT -_080C32E8: .4byte 0x06010100 -_080C32EC: .4byte 0x06010200 -_080C32F0: .4byte 0x06010300 -_080C32F4: .4byte 0x0600fd20 -_080C32F8: .4byte 0x0600fe20 -_080C32FC: .4byte 0x0600ff20 -_080C3300: .4byte 0x06010020 -_080C3304: - cmp r4, 0xE - bgt _080C3310 - ldrh r0, [r6, 0x2] - lsls r0, 5 - mov r1, r10 - b _080C3322 -_080C3310: - cmp r4, 0x16 - bgt _080C331C - ldrh r0, [r6, 0x4] - lsls r0, 5 - ldr r1, [sp, 0x18] - b _080C3322 -_080C331C: - ldrh r0, [r6, 0x6] - lsls r0, 5 - ldr r1, [sp, 0x14] -_080C3322: - adds r7, r0, r1 - cmp r4, r5 - beq _080C3382 - ldr r0, _080C33D0 @ =gUnknown_083D16E4 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, _080C33D0 @ =gUnknown_083D16E4 - adds r0, 0x20 - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - ldr r0, [sp, 0x10] - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, [sp, 0xC] - mov r2, r8 - bl CpuSet - ldr r1, [sp, 0xC] - adds r1, 0x40 - str r1, [sp, 0xC] - ldr r0, [sp, 0x10] - adds r0, 0x40 - str r0, [sp, 0x10] - ldr r1, [sp, 0x14] - adds r1, 0x20 - str r1, [sp, 0x14] - ldr r0, [sp, 0x18] - adds r0, 0x20 - str r0, [sp, 0x18] - movs r1, 0x20 - add r10, r1 - add r9, r1 - adds r4, 0x1 - cmp r4, r5 - ble _080C32B2 -_080C3382: - ldr r4, _080C33D4 @ =gUnknown_083D1644 - ldr r5, _080C33D8 @ =REG_BG0CNT - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl CpuSet - adds r6, r4, 0 - adds r6, 0x80 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - adds r4, 0x40 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C33D0: .4byte gUnknown_083D16E4 -_080C33D4: .4byte gUnknown_083D1644 -_080C33D8: .4byte REG_BG0CNT - thumb_func_end sub_80C3158 - - thumb_func_start sub_80C33DC -sub_80C33DC: @ 80C33DC - push {r4-r6,lr} - sub sp, 0x20 - mov r1, sp - ldr r0, _080C3498 @ =gSpriteTemplate_83D174C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - add r5, sp, 0x18 - ldr r6, _080C349C @ =gUnknown_083D1764 - movs r4, 0x7 -_080C33F2: - adds r0, r6, 0 - bl LoadSpriteSheet - adds r6, 0x8 - subs r4, 0x1 - cmp r4, 0 - bge _080C33F2 - ldr r0, _080C34A0 @ =gUnknown_083D17A4 - bl LoadSpritePalette - movs r4, 0 - mov r6, sp -_080C340A: - mov r0, sp - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x90 - movs r3, 0xA - bl CreateSprite - adds r1, r5, r4 - strb r0, [r1] - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - adds r4, 0x1 - cmp r4, 0x7 - ble _080C340A - ldr r2, _080C34A4 @ =gSprites - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x1] - movs r3, 0 - strh r1, [r0, 0x2E] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x2] - strh r1, [r0, 0x30] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x3] - strh r1, [r0, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x5] - strh r1, [r0, 0x2E] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x6] - strh r1, [r0, 0x30] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r5, 0x7] - strh r1, [r0, 0x32] - ldr r1, _080C34A8 @ =0x02018000 - ldrb r0, [r5] - strb r0, [r1] - strb r3, [r1, 0x4] - ldrb r0, [r5, 0x4] - strb r0, [r1, 0x1] - bl sub_80C3764 - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3498: .4byte gSpriteTemplate_83D174C -_080C349C: .4byte gUnknown_083D1764 -_080C34A0: .4byte gUnknown_083D17A4 -_080C34A4: .4byte gSprites -_080C34A8: .4byte 0x02018000 - thumb_func_end sub_80C33DC - - thumb_func_start sub_80C34AC -sub_80C34AC: @ 80C34AC - push {lr} - bl StringLength - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 25 - lsrs r1, 25 - movs r0, 0x70 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80C34AC - - thumb_func_start sub_80C34CC -sub_80C34CC: @ 80C34CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _080C3514 @ =0x02018000 - mov r8, r4 - ldrb r5, [r4] - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r5, _080C3518 @ =gSprites - adds r4, r5 - movs r6, 0 - movs r5, 0x88 - lsls r5, 1 - strh r5, [r4, 0x20] - strh r1, [r4, 0x22] - strh r6, [r4, 0x24] - strh r6, [r4, 0x26] - lsls r0, 16 - asrs r0, 16 - adds r0, 0x20 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - strh r3, [r4, 0x3A] - strh r6, [r4, 0x3C] - ldr r0, _080C351C @ =sub_80C3588 - str r0, [r4, 0x1C] - movs r0, 0x1 - mov r1, r8 - strb r0, [r1, 0x4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3514: .4byte 0x02018000 -_080C3518: .4byte gSprites -_080C351C: .4byte sub_80C3588 - thumb_func_end sub_80C34CC - - thumb_func_start sub_80C3520 -sub_80C3520: @ 80C3520 - push {r4,r5,lr} - ldr r4, _080C3558 @ =0x02018000 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _080C355C @ =gSprites - adds r1, r2 - ldrh r2, [r1, 0x24] - ldrh r3, [r1, 0x20] - adds r2, r3 - movs r3, 0 - strh r2, [r1, 0x20] - ldrh r2, [r1, 0x26] - ldrh r5, [r1, 0x22] - adds r2, r5 - strh r2, [r1, 0x22] - strh r3, [r1, 0x26] - strh r3, [r1, 0x24] - strh r0, [r1, 0x3A] - strh r3, [r1, 0x3C] - ldr r0, _080C3560 @ =sub_80C3630 - str r0, [r1, 0x1C] - movs r0, 0x3 - strb r0, [r4, 0x4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3558: .4byte 0x02018000 -_080C355C: .4byte gSprites -_080C3560: .4byte sub_80C3630 - thumb_func_end sub_80C3520 - - thumb_func_start sub_80C3564 -sub_80C3564: @ 80C3564 - movs r3, 0 - movs r2, 0 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r1, 0x90 - strh r1, [r0, 0x22] - strh r2, [r0, 0x26] - strh r2, [r0, 0x24] - ldr r1, _080C3580 @ =SpriteCallbackDummy - str r1, [r0, 0x1C] - ldr r0, _080C3584 @ =0x02018000 - strb r3, [r0, 0x4] - bx lr - .align 2, 0 -_080C3580: .4byte SpriteCallbackDummy -_080C3584: .4byte 0x02018000 - thumb_func_end sub_80C3564 - - thumb_func_start sub_80C3588 -sub_80C3588: @ 80C3588 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - ldrh r0, [r3, 0x3C] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r3, 0x3C] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r3, 0x36] - movs r4, 0x36 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _080C35B2 - strh r2, [r3, 0x20] -_080C35B2: - movs r4, 0 - ldr r6, _080C35F4 @ =gSprites - movs r5, 0x40 - adds r2, r3, 0 - adds r2, 0x2E -_080C35BC: - movs r7, 0 - ldrsh r0, [r2, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r3, 0x24] - ldrh r7, [r3, 0x20] - adds r0, r7 - adds r0, r5 - strh r0, [r1, 0x20] - adds r5, 0x40 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _080C35BC - movs r0, 0x20 - ldrsh r1, [r3, r0] - movs r2, 0x36 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _080C35EC - ldr r0, _080C35F8 @ =sub_80C35FC - str r0, [r3, 0x1C] -_080C35EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C35F4: .4byte gSprites -_080C35F8: .4byte sub_80C35FC - thumb_func_end sub_80C3588 - - thumb_func_start sub_80C35FC -sub_80C35FC: @ 80C35FC - push {lr} - adds r2, r0, 0 - ldr r0, _080C3628 @ =0x02018000 - movs r1, 0x2 - strb r1, [r0, 0x4] - ldrh r3, [r2, 0x38] - ldr r1, _080C362C @ =0xffff0000 - lsrs r0, r1, 16 - cmp r3, r0 - beq _080C3624 - subs r0, r3, 0x1 - strh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 16 - asrs r1, 16 - cmp r0, r1 - bne _080C3624 - ldrh r0, [r2, 0x3A] - bl sub_80C3520 -_080C3624: - pop {r0} - bx r0 - .align 2, 0 -_080C3628: .4byte 0x02018000 -_080C362C: .4byte 0xffff0000 - thumb_func_end sub_80C35FC - - thumb_func_start sub_80C3630 -sub_80C3630: @ 80C3630 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - ldrh r0, [r3, 0x3C] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r0, 0xFF - ands r2, r0 - strh r2, [r3, 0x3C] - movs r4, 0 - ldr r6, _080C3694 @ =gSprites - movs r5, 0x40 - adds r2, r3, 0 - adds r2, 0x2E -_080C3654: - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r3, 0x24] - ldrh r7, [r3, 0x20] - adds r0, r7 - adds r0, r5 - strh r0, [r1, 0x20] - adds r5, 0x40 - adds r2, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - ble _080C3654 - movs r1, 0x20 - ldrsh r0, [r3, r1] - movs r2, 0x24 - ldrsh r1, [r3, r2] - adds r0, r1 - movs r1, 0xE0 - negs r1, r1 - cmp r0, r1 - bge _080C368C - adds r0, r3, 0 - bl sub_80C3564 -_080C368C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3694: .4byte gSprites - thumb_func_end sub_80C3630 - - thumb_func_start sub_80C3698 -sub_80C3698: @ 80C3698 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080C374C @ =0x02018000 - ldrb r1, [r5, 0x1] - bl sub_80C3158 - adds r0, r4, 0 - bl sub_80C34AC - lsls r0, 16 - lsrs r0, 16 - ldrb r2, [r5, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r3, _080C3750 @ =gSprites - adds r4, r1, r3 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x50 - strh r0, [r4, 0x22] - adds r5, r4, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r5] - movs r5, 0 - adds r6, r3, 0 - mov r12, r2 - movs r3, 0x40 -_080C36DA: - lsls r0, r5, 1 - adds r2, r4, 0 - adds r2, 0x2E - adds r2, r0 - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r4, 0x24] - ldrh r7, [r4, 0x20] - adds r0, r7 - adds r0, r3 - strh r0, [r1, 0x20] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x22] - strh r1, [r0, 0x22] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - adds r3, 0x40 - adds r5, 0x1 - cmp r5, 0x2 - ble _080C36DA - ldr r1, _080C3754 @ =gUnknown_030042C4 - movs r0, 0xF0 - strh r0, [r1] - ldr r2, _080C3758 @ =gUnknown_03004240 - ldrh r1, [r4, 0x22] - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 8 - adds r1, 0x10 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080C375C @ =REG_WININ - ldr r2, _080C3760 @ =0x00003f3e - adds r0, r2, 0 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C374C: .4byte 0x02018000 -_080C3750: .4byte gSprites -_080C3754: .4byte gUnknown_030042C4 -_080C3758: .4byte gUnknown_03004240 -_080C375C: .4byte REG_WININ -_080C3760: .4byte 0x00003f3e - thumb_func_end sub_80C3698 - - thumb_func_start sub_80C3764 -sub_80C3764: @ 80C3764 - push {r4-r7,lr} - ldr r0, _080C37C8 @ =0x02018000 - ldrb r0, [r0, 0x1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r3, _080C37CC @ =gSprites - adds r2, r3 - movs r0, 0x3E - adds r0, r2 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r7, _080C37D0 @ =gUnknown_030042C4 - ldr r6, _080C37D4 @ =gUnknown_03004240 - adds r5, r3, 0 - movs r4, 0x4 - adds r2, 0x2E - movs r3, 0x2 -_080C3790: - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3790 - movs r1, 0 - strh r1, [r7] - strh r1, [r6] - ldr r0, _080C37D8 @ =REG_WIN0H - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldr r1, _080C37DC @ =REG_WININ - ldr r2, _080C37E0 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C37C8: .4byte 0x02018000 -_080C37CC: .4byte gSprites -_080C37D0: .4byte gUnknown_030042C4 -_080C37D4: .4byte gUnknown_03004240 -_080C37D8: .4byte REG_WIN0H -_080C37DC: .4byte REG_WININ -_080C37E0: .4byte 0x00003f3f - thumb_func_end sub_80C3764 - - thumb_func_start sub_80C37E4 -sub_80C37E4: @ 80C37E4 - push {r4-r6,lr} - sub sp, 0x10 - movs r5, 0x1 - movs r4, 0 - ldr r0, _080C3808 @ =gUnknown_0203869A - ldrb r0, [r0] - adds r1, r5, 0 - ands r1, r0 - cmp r1, 0 - beq _080C3814 - ldr r0, _080C380C @ =0x0600e000 - ldr r3, _080C3810 @ =gUnknown_08E964B8 - movs r1, 0x9 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - b _080C386A - .align 2, 0 -_080C3808: .4byte gUnknown_0203869A -_080C380C: .4byte 0x0600e000 -_080C3810: .4byte gUnknown_08E964B8 -_080C3814: - ldr r0, _080C3830 @ =gUnknown_0203869E - ldrh r2, [r0] - cmp r2, 0 - bne _080C383C - movs r4, 0x1 - ldr r0, _080C3834 @ =0x0600e000 - ldr r3, _080C3838 @ =gUnknown_08E964B8 - str r2, [sp] - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - b _080C3870 - .align 2, 0 -_080C3830: .4byte gUnknown_0203869E -_080C3834: .4byte 0x0600e000 -_080C3838: .4byte gUnknown_08E964B8 -_080C383C: - cmp r2, 0x1 - bne _080C385C - ldr r0, _080C3854 @ =0x0600e000 - ldr r3, _080C3858 @ =gUnknown_08E964B8 - movs r1, 0x9 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - b _080C3870 - .align 2, 0 -_080C3854: .4byte 0x0600e000 -_080C3858: .4byte gUnknown_08E964B8 -_080C385C: - cmp r2, 0x2 - bne _080C3884 - ldr r0, _080C387C @ =0x0600e000 - ldr r3, _080C3880 @ =gUnknown_08E964B8 - movs r1, 0x11 - str r1, [sp] - str r4, [sp, 0x4] -_080C386A: - movs r1, 0x8 - str r1, [sp, 0x8] - str r2, [sp, 0xC] -_080C3870: - movs r1, 0x5 - movs r2, 0x1 - bl sub_809D104 - b _080C389E - .align 2, 0 -_080C387C: .4byte 0x0600e000 -_080C3880: .4byte gUnknown_08E964B8 -_080C3884: - movs r4, 0x1 - ldr r0, _080C38C0 @ =0x0600e000 - ldr r3, _080C38C4 @ =gUnknown_08E964B8 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x5 - movs r2, 0x1 - bl sub_809D104 -_080C389E: - adds r4, 0xD - ldr r0, _080C38C8 @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0 - bne _080C38CC - movs r6, 0 - ldr r0, _080C38C0 @ =0x0600e000 - ldr r3, _080C38C4 @ =gUnknown_08E964B8 - movs r1, 0x11 - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r2, [sp, 0xC] - b _080C392A - .align 2, 0 -_080C38C0: .4byte 0x0600e000 -_080C38C4: .4byte gUnknown_08E964B8 -_080C38C8: .4byte gUnknown_0203869C -_080C38CC: - cmp r0, 0x1 - bne _080C38EC - movs r6, 0x1 - ldr r0, _080C38E4 @ =0x0600e000 - ldr r3, _080C38E8 @ =gUnknown_08E964B8 - movs r1, 0 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xB - b _080C3924 - .align 2, 0 -_080C38E4: .4byte 0x0600e000 -_080C38E8: .4byte gUnknown_08E964B8 -_080C38EC: - cmp r0, 0x2 - bne _080C3910 - movs r6, 0x2 - ldr r0, _080C3908 @ =0x0600e000 - ldr r3, _080C390C @ =gUnknown_08E964B8 - movs r1, 0xB - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r6, [sp, 0xC] - b _080C392A - .align 2, 0 -_080C3908: .4byte 0x0600e000 -_080C390C: .4byte gUnknown_08E964B8 -_080C3910: - cmp r0, 0x3 - bne _080C393C - movs r6, 0x3 - ldr r0, _080C3934 @ =0x0600e000 - ldr r3, _080C3938 @ =gUnknown_08E964B8 - movs r1, 0x15 - str r1, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - movs r1, 0xA -_080C3924: - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] -_080C392A: - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809D104 - b _080C395A - .align 2, 0 -_080C3934: .4byte 0x0600e000 -_080C3938: .4byte gUnknown_08E964B8 -_080C393C: - movs r6, 0x4 - ldr r0, _080C3984 @ =0x0600e000 - ldr r3, _080C3988 @ =gUnknown_08E964B8 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809D104 -_080C395A: - ldr r5, _080C398C @ =0x00000fff - lsls r4, r6, 12 - ldr r2, _080C3984 @ =0x0600e000 - movs r3, 0x7F -_080C3962: - ldrh r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strh r0, [r2] - ldrh r1, [r2] - adds r0, r4, 0 - orrs r0, r1 - strh r0, [r2] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3962 - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C3984: .4byte 0x0600e000 -_080C3988: .4byte gUnknown_08E964B8 -_080C398C: .4byte 0x00000fff - thumb_func_end sub_80C37E4 - - thumb_func_start sub_80C3990 -sub_80C3990: @ 80C3990 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r1, _080C39DC @ =gUnknown_02038670 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x3F - bl __udivsi3 - adds r1, r0, 0 - ldr r0, _080C39E0 @ =0x0000ffff - ands r0, r1 - cmp r0, 0 - beq _080C39BC - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 -_080C39BC: - lsrs r1, 16 - cmp r1, 0 - bne _080C39C8 - cmp r4, 0 - beq _080C39C8 - movs r1, 0x1 -_080C39C8: - cmp r5, 0 - beq _080C39D2 - cmp r1, 0xA - bls _080C39D2 - movs r1, 0xA -_080C39D2: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080C39DC: .4byte gUnknown_02038670 -_080C39E0: .4byte 0x0000ffff - thumb_func_end sub_80C3990 - - thumb_func_start sub_80C39E4 -sub_80C39E4: @ 80C39E4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080C3A44 @ =gUnknown_02038688 - lsls r0, r5, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r7, r1, 0 - cmp r0, 0 - bge _080C3A00 - negs r0, r0 -_080C3A00: - lsls r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x50 - bl __udivsi3 - adds r2, r0, 0 - ldr r0, _080C3A48 @ =0x0000ffff - ands r0, r2 - cmp r0, 0 - beq _080C3A1A - movs r0, 0x80 - lsls r0, 9 - adds r2, r0 -_080C3A1A: - lsrs r2, 16 - cmp r2, 0 - bne _080C3A26 - cmp r4, 0 - beq _080C3A26 - movs r2, 0x1 -_080C3A26: - cmp r6, 0 - beq _080C3A30 - cmp r2, 0xA - bls _080C3A30 - movs r2, 0xA -_080C3A30: - lsls r0, r5, 1 - adds r0, r7 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _080C3A4C - negs r0, r2 - lsls r0, 24 - b _080C3A4E - .align 2, 0 -_080C3A44: .4byte gUnknown_02038688 -_080C3A48: .4byte 0x0000ffff -_080C3A4C: - lsls r0, r2, 24 -_080C3A4E: - lsrs r0, 24 - lsls r0, 24 - asrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C39E4 - - thumb_func_start sub_80C3A5C -sub_80C3A5C: @ 80C3A5C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _080C3A90 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0x1C] - movs r1, 0x1C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080C3A94 - movs r1, 0x8 - ldrsh r0, [r3, r1] - movs r1, 0x3 - subs r1, r0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - strh r0, [r3, 0x1E] - adds r0, r2, 0x1 - strh r0, [r3, 0x1C] - b _080C3B12 - .align 2, 0 -_080C3A90: .4byte gTasks -_080C3A94: - cmp r0, 0x1 - bne _080C3B12 - ldrh r0, [r3, 0x1E] - subs r0, 0x1 - strh r0, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080C3B12 - movs r0, 0x8 - ldrsh r2, [r3, r0] - lsls r2, 17 - ldr r1, _080C3B18 @ =0x50430000 - adds r2, r1 - lsrs r2, 16 - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B1C @ =0x0600e142 - adds r0, r1 - strh r2, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B20 @ =0x0600e144 - adds r0, r1 - adds r1, r2, 0x1 - strh r1, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B24 @ =0x0600e182 - adds r0, r1 - adds r1, r2, 0 - adds r1, 0x10 - strh r1, [r0] - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 6 - ldr r1, _080C3B28 @ =0x0600e184 - adds r0, r1 - adds r2, 0x11 - strh r2, [r0] - ldr r1, _080C3B2C @ =0x02018000 - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r4, 0 - bl DestroyTask - movs r0, 0x18 - bl PlaySE -_080C3B12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3B18: .4byte 0x50430000 -_080C3B1C: .4byte 0x0600e142 -_080C3B20: .4byte 0x0600e144 -_080C3B24: .4byte 0x0600e182 -_080C3B28: .4byte 0x0600e184 -_080C3B2C: .4byte 0x02018000 - thumb_func_end sub_80C3A5C - - thumb_func_start sub_80C3B30 -sub_80C3B30: @ 80C3B30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r5, 0 - ldr r1, _080C3BC0 @ =gUnknown_02038690 - ldrb r0, [r1] - ldr r2, _080C3BC4 @ =gTasks - mov r10, r2 - cmp r0, 0 - beq _080C3B5C -_080C3B4E: - adds r5, 0x1 - cmp r5, 0x3 - bgt _080C3B5C - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080C3B4E -_080C3B5C: - movs r1, 0 - lsls r0, r5, 1 - mov r2, r12 - lsls r2, 2 - mov r9, r2 - adds r0, r5 - lsls r0, 5 - mov r8, r0 - ldr r7, _080C3BC8 @ =0x00000fff - movs r0, 0x90 - lsls r0, 8 - adds r6, r0, 0 -_080C3B74: - lsls r0, r1, 5 - adds r4, r1, 0x1 - add r0, r8 - movs r3, 0x1D - lsls r0, 1 - ldr r1, _080C3BCC @ =0x0600e100 - adds r2, r0, r1 -_080C3B82: - ldrh r1, [r2] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strh r0, [r2] - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C3B82 - adds r1, r4, 0 - cmp r1, 0x2 - ble _080C3B74 - mov r0, r9 - add r0, r12 - lsls r0, 3 - add r0, r10 - strh r5, [r0, 0x1C] - movs r1, 0x1 - strh r1, [r0, 0x20] - ldr r2, _080C3BD0 @ =sub_80C3BD8 - str r2, [r0] - mov r1, r12 - ldr r0, _080C3BD4 @ =0x02018000 - strb r1, [r0, 0x3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3BC0: .4byte gUnknown_02038690 -_080C3BC4: .4byte gTasks -_080C3BC8: .4byte 0x00000fff -_080C3BCC: .4byte 0x0600e100 -_080C3BD0: .4byte sub_80C3BD8 -_080C3BD4: .4byte 0x02018000 - thumb_func_end sub_80C3B30 - - thumb_func_start sub_80C3BD8 -sub_80C3BD8: @ 80C3BD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3C24 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x1 - bne _080C3C3C - movs r0, 0 - strh r0, [r4, 0x1E] - ldrh r2, [r4, 0x20] - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080C3C28 @ =0x00006f8d - movs r0, 0x91 - movs r1, 0x1 - bl BlendPalette - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C3C2C - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080C3C3C - strh r5, [r4, 0x22] - b _080C3C3C - .align 2, 0 -_080C3C24: .4byte gTasks -_080C3C28: .4byte 0x00006f8d -_080C3C2C: - ldrh r0, [r4, 0x20] - subs r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080C3C3C - strh r0, [r4, 0x22] -_080C3C3C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C3BD8 - - thumb_func_start sub_80C3C44 -sub_80C3C44: @ 80C3C44 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x9 - bgt _080C3C6C - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080C3CA8 - ldrh r0, [r4, 0x30] - movs r1, 0 - bl PlayCry1 - movs r0, 0 - strh r0, [r4, 0x30] - b _080C3CA8 -_080C3C6C: - movs r0, 0xC0 - lsls r0, 3 - adds r2, r0, 0 - ldrh r1, [r4, 0x30] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x20] - subs r0, r1 - strh r0, [r4, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x77 - bgt _080C3C92 - movs r0, 0x78 - strh r0, [r4, 0x20] -_080C3C92: - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - bne _080C3CA8 - ldr r0, _080C3CB0 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080C3CB4 @ =0x02018000 - movs r0, 0x1 - strb r0, [r1, 0x6] -_080C3CA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C3CB0: .4byte SpriteCallbackDummy -_080C3CB4: .4byte 0x02018000 - thumb_func_end sub_80C3C44 - - thumb_func_start sub_80C3CB8 -sub_80C3CB8: @ 80C3CB8 - push {lr} - adds r3, r0, 0 - movs r0, 0xC0 - lsls r0, 3 - adds r2, r0, 0 - ldrh r0, [r3, 0x30] - adds r2, r0 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r3, 0x20] - subs r0, r1 - strh r0, [r3, 0x20] - movs r1, 0xFF - ands r2, r1 - strh r2, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080C3CF8 - ldr r0, _080C3CFC @ =SpriteCallbackDummy - str r0, [r3, 0x1C] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080C3D00 @ =0x02018000 - movs r0, 0x2 - strb r0, [r1, 0x6] -_080C3CF8: - pop {r0} - bx r0 - .align 2, 0 -_080C3CFC: .4byte SpriteCallbackDummy -_080C3D00: .4byte 0x02018000 - thumb_func_end sub_80C3CB8 - - thumb_func_start sub_80C3D04 -sub_80C3D04: @ 80C3D04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080C3DD8 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080C3DBE - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _080C3DDC @ =0x02018000 - mov r8, r0 - ldrb r0, [r0, 0x7] - cmp r0, 0x27 - bhi _080C3DBE - ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r1, r0, 0 - subs r1, 0x14 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - movs r2, 0x2C - movs r3, 0x5 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - ldr r1, _080C3DE4 @ =gSprites - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r1 - lsls r0, 23 - lsrs r0, 23 - strh r0, [r5, 0x2E] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - adds r0, 0x10 - strh r0, [r5, 0x30] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xFF - ands r0, r1 - adds r0, 0x30 - strh r0, [r5, 0x32] - bl Random - ldrh r6, [r5, 0x4] - lsls r4, r6, 22 - lsrs r4, 22 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x11 - bl __umodsi3 - adds r4, r0 - ldr r1, _080C3DE8 @ =0x000003ff - adds r0, r1, 0 - ands r4, r0 - ldr r0, _080C3DEC @ =0xfffffc00 - ands r0, r6 - orrs r0, r4 - strh r0, [r5, 0x4] - mov r1, r8 - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] -_080C3DBE: - ldr r0, _080C3DDC @ =0x02018000 - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _080C3DCC - adds r0, r7, 0 - bl DestroyTask -_080C3DCC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C3DD8: .4byte gTasks -_080C3DDC: .4byte 0x02018000 -_080C3DE0: .4byte gSpriteTemplate_83D17B4 -_080C3DE4: .4byte gSprites -_080C3DE8: .4byte 0x000003ff -_080C3DEC: .4byte 0xfffffc00 - thumb_func_end sub_80C3D04 - - thumb_func_start sub_80C3DF0 -sub_80C3DF0: @ 80C3DF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x32] - ldrh r0, [r4, 0x36] - adds r1, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x36] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldr r5, _080C3E5C @ =0x02018000 - ldrb r0, [r5, 0x9] - cmp r0, 0 - beq _080C3E3A - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080C3E3A: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0xF8 - bgt _080C3E4A - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0x74 - ble _080C3E56 -_080C3E4A: - adds r0, r4, 0 - bl DestroySprite - ldrb r0, [r5, 0x7] - subs r0, 0x1 - strb r0, [r5, 0x7] -_080C3E56: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3E5C: .4byte 0x02018000 - thumb_func_end sub_80C3DF0 - - thumb_func_start sub_80C3E60 -sub_80C3E60: @ 80C3E60 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080C3E98 @ =sub_80C3EA4 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3E9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - ldr r0, _080C3EA0 @ =gUnknown_02038570 - lsls r4, 6 - adds r4, r0 - ldrh r0, [r4] - strh r0, [r1, 0xC] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3E98: .4byte sub_80C3EA4 -_080C3E9C: .4byte gTasks -_080C3EA0: .4byte gUnknown_02038570 - thumb_func_end sub_80C3E60 - - thumb_func_start sub_80C3EA4 -sub_80C3EA4: @ 80C3EA4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C3EF8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrb r5, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080C3EEE - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xC] - ldrb r2, [r4, 0x1E] - ldr r1, _080C3EFC @ =gUnknown_02038570 - lsls r3, r5, 6 - adds r1, 0x38 - adds r3, r1 - ldr r1, [r3] - str r1, [sp] - adds r1, r5, 0 - movs r3, 0 - bl sub_80C3024 - ldrh r0, [r4, 0x1E] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x1E] -_080C3EEE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C3EF8: .4byte gTasks -_080C3EFC: .4byte gUnknown_02038570 - thumb_func_end sub_80C3EA4 - - thumb_func_start sub_80C3F00 -sub_80C3F00: @ 80C3F00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _080C4098 @ =gUnknown_02038678 - ldrh r2, [r0] - adds r4, r0, 0 - adds r3, r4, 0x2 - movs r0, 0x2 - mov r8, r0 -_080C3F16: - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0 - ldrsh r1, [r3, r5] - cmp r0, r1 - bge _080C3F24 - ldrh r2, [r3] -_080C3F24: - adds r3, 0x2 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r1, r8 - cmp r1, 0 - bge _080C3F16 - lsls r0, r2, 16 - mov r9, r0 - cmp r0, 0 - bge _080C3F62 - ldrh r2, [r4] - adds r3, r4, 0x2 - movs r4, 0x2 - mov r8, r4 -_080C3F42: - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0 - ldrsh r1, [r3, r5] - cmp r0, r1 - ble _080C3F50 - ldrh r2, [r3] -_080C3F50: - adds r3, 0x2 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - lsls r1, r2, 16 - mov r9, r1 - mov r4, r8 - cmp r4, 0 - bge _080C3F42 -_080C3F62: - movs r5, 0 - mov r8, r5 - mov r10, r5 -_080C3F68: - ldr r0, _080C409C @ =gUnknown_02038670 - mov r1, r8 - lsls r7, r1, 1 - adds r0, r7, r0 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - mov r4, r9 - asrs r6, r4, 16 - adds r1, r6, 0 - cmp r6, 0 - bge _080C3F8A - negs r1, r6 -_080C3F8A: - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C3F9C - adds r4, 0xA -_080C3F9C: - ldr r0, _080C40A0 @ =0x02018018 - mov r1, r10 - adds r5, r1, r0 - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - str r0, [r5] - ldr r0, _080C40A4 @ =gUnknown_02038688 - adds r7, r0 - movs r2, 0 - ldrsh r1, [r7, r2] - cmp r1, 0 - bge _080C3FBA - negs r1, r1 -_080C3FBA: - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r6, 0 - cmp r1, 0 - bge _080C3FCC - negs r1, r1 -_080C3FCC: - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C3FDE - adds r4, 0xA -_080C3FDE: - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - str r0, [r5, 0x4] - movs r4, 0 - ldrsh r0, [r7, r4] - cmp r0, 0 - bge _080C3FF4 - movs r0, 0x1 - strb r0, [r5, 0x10] -_080C3FF4: - ldr r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r0, r1 - lsls r0, 11 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - movs r4, 0xFF - ands r0, r4 - cmp r0, 0x7F - bls _080C4016 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 -_080C4016: - lsrs r0, r1, 8 - str r0, [r5, 0x8] - ldr r1, [r5, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r0, r1 - lsls r0, 11 - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - ands r0, r4 - cmp r0, 0x7F - bls _080C403A - movs r2, 0x80 - lsls r2, 1 - adds r1, r2 -_080C403A: - lsrs r0, r1, 8 - str r0, [r5, 0xC] - mov r0, r8 - lsls r4, r0, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80C3990 - strb r0, [r5, 0x11] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80C39E4 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080C4060 - negs r0, r0 -_080C4060: - strb r0, [r5, 0x12] - ldr r0, _080C40A8 @ =gUnknown_02038690 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0 - beq _080C40B4 - ldr r4, [r5, 0x8] - ldrh r2, [r5, 0x8] - ldr r3, [r5, 0xC] - ldrh r1, [r5, 0xC] - ldrb r0, [r5, 0x10] - cmp r0, 0 - beq _080C4080 - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080C4080: - lsls r0, r2, 16 - asrs r2, r0, 16 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r0, r2, r1 - cmp r0, 0x58 - bne _080C40B4 - cmp r1, 0 - ble _080C40AC - subs r0, r3, 0x1 - str r0, [r5, 0xC] - b _080C40B4 - .align 2, 0 -_080C4098: .4byte gUnknown_02038678 -_080C409C: .4byte gUnknown_02038670 -_080C40A0: .4byte 0x02018018 -_080C40A4: .4byte gUnknown_02038688 -_080C40A8: .4byte gUnknown_02038690 -_080C40AC: - cmp r2, 0 - ble _080C40B4 - subs r0, r4, 0x1 - str r0, [r5, 0x8] -_080C40B4: - movs r1, 0x14 - add r10, r1 - movs r2, 0x1 - add r8, r2 - mov r4, r8 - cmp r4, 0x3 - bgt _080C40C4 - b _080C3F68 -_080C40C4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C3F00 - - thumb_func_start sub_80C40D4 -sub_80C40D4: @ 80C40D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r1, 0 - mov r10, r1 - movs r2, 0 - str r2, [sp] - cmp r0, 0 - bne _080C4198 - mov r8, r2 - ldr r0, _080C417C @ =0x02018018 - subs r1, 0x18 - adds r1, r0 - mov r9, r1 - adds r4, r0, 0 - adds r4, 0x8 - movs r6, 0xA0 -_080C4102: - ldrb r0, [r4, 0x9] - cmp r7, r0 - bcs _080C416A - adds r0, 0x13 - adds r0, r6, r0 - subs r0, r7 - lsls r0, 1 - ldr r2, _080C4180 @ =0x0600bffe - adds r0, r2 - ldr r2, _080C4184 @ =0x000060b3 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _080C4188 @ =sub_80C42C0 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r4] - lsls r0, 16 - ldrb r1, [r4, 0x9] - bl __udivsi3 - adds r1, r7, 0x1 - adds r3, r0, 0 - muls r3, r1 - ldr r0, _080C418C @ =0x0000ffff - ands r0, r3 - ldr r1, _080C4190 @ =0x00007fff - cmp r0, r1 - bls _080C4146 - movs r0, 0x80 - lsls r0, 9 - adds r3, r0 -_080C4146: - ldr r1, _080C4194 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x8] - lsrs r1, r3, 16 - strh r1, [r0, 0xA] - mov r2, r9 - ldrb r0, [r2, 0x14] - adds r0, 0x1 - strb r0, [r2, 0x14] - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_080C416A: - adds r4, 0x14 - adds r6, 0x60 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x3 - ble _080C4102 - b _080C4292 - .align 2, 0 -_080C417C: .4byte 0x02018018 -_080C4180: .4byte 0x0600bffe -_080C4184: .4byte 0x000060b3 -_080C4188: .4byte sub_80C42C0 -_080C418C: .4byte 0x0000ffff -_080C4190: .4byte 0x00007fff -_080C4194: .4byte gTasks -_080C4198: - movs r2, 0 - mov r8, r2 - ldr r0, _080C4220 @ =0x02018018 - mov r12, r0 - mov r9, r2 - movs r1, 0xC0 - str r1, [sp, 0x4] -_080C41A6: - mov r6, r9 - add r6, r12 - ldrb r1, [r6, 0x12] - ldrb r0, [r6, 0x10] - ldr r2, _080C4224 @ =0x000060a3 - cmp r0, 0 - beq _080C41B6 - adds r2, 0x2 -_080C41B6: - lsls r0, r1, 24 - asrs r0, 24 - cmp r7, r0 - bge _080C427E - adds r0, 0x13 - ldr r1, [sp, 0x4] - adds r0, r1, r0 - subs r0, r7 - lsls r0, 1 - ldr r1, _080C4228 @ =0x0600bffe - adds r0, r1 - strh r2, [r0] - ldr r0, _080C422C @ =sub_80C42C0 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r6, 0xC] - lsls r0, 16 - ldrb r1, [r6, 0x12] - bl __udivsi3 - adds r1, r7, 0x1 - adds r3, r0, 0 - muls r3, r1 - ldr r0, _080C4230 @ =0x0000ffff - ands r0, r3 - ldr r1, _080C4234 @ =0x00007fff - cmp r0, r1 - bls _080C41FA - movs r2, 0x80 - lsls r2, 9 - adds r3, r2 -_080C41FA: - ldr r1, _080C4238 @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r4, r0, r1 - mov r0, r8 - strh r0, [r4, 0x8] - ldrb r0, [r6, 0x10] - adds r6, r1, 0 - cmp r0, 0 - beq _080C423C - movs r0, 0x1 - strh r0, [r4, 0xC] - ldr r0, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - b _080C4246 - .align 2, 0 -_080C4220: .4byte 0x02018018 -_080C4224: .4byte 0x000060a3 -_080C4228: .4byte 0x0600bffe -_080C422C: .4byte sub_80C42C0 -_080C4230: .4byte 0x0000ffff -_080C4234: .4byte 0x00007fff -_080C4238: .4byte gTasks -_080C423C: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_080C4246: - ldr r0, _080C4264 @ =0x02018018 - mov r1, r9 - adds r4, r1, r0 - ldrb r1, [r4, 0x10] - mov r12, r0 - cmp r1, 0 - beq _080C4268 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r6 - lsrs r2, r3, 16 - ldr r1, [r4, 0x8] - subs r1, r2 - b _080C4274 - .align 2, 0 -_080C4264: .4byte 0x02018018 -_080C4268: - adds r0, r2, r5 - lsls r0, 3 - adds r0, r6 - lsrs r2, r3, 16 - ldr r1, [r4, 0x8] - adds r1, r2 -_080C4274: - strh r1, [r0, 0xA] - ldr r1, _080C42BC @ =0x02018000 - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] -_080C427E: - movs r2, 0x14 - add r9, r2 - ldr r0, [sp, 0x4] - adds r0, 0x60 - str r0, [sp, 0x4] - movs r1, 0x1 - add r8, r1 - mov r2, r8 - cmp r2, 0x3 - ble _080C41A6 -_080C4292: - ldr r0, [sp] - cmp r0, 0 - beq _080C429E - movs r0, 0x16 - bl PlaySE -_080C429E: - mov r1, r10 - cmp r1, 0 - beq _080C42AA - movs r0, 0x15 - bl PlaySE -_080C42AA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C42BC: .4byte 0x02018000 - thumb_func_end sub_80C40D4 - - thumb_func_start sub_80C42C0 -sub_80C42C0: @ 80C42C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - movs r6, 0 - mov r9, r6 - ldr r1, _080C4308 @ =gTasks - lsls r0, 2 - add r0, r12 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x8] - ldrh r7, [r0, 0xA] - ldrh r1, [r0, 0xC] - mov r8, r1 - movs r2, 0xC - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080C4310 - ldr r1, _080C430C @ =0x02018000 - lsls r2, r5, 1 - adds r0, r1, 0 - adds r0, 0xC - adds r0, r2, r0 - movs r3, 0 - ldrsh r0, [r0, r3] - mov r10, r1 - adds r4, r2, 0 - cmp r0, 0 - bgt _080C4328 - b _080C4326 - .align 2, 0 -_080C4308: .4byte gTasks -_080C430C: .4byte 0x02018000 -_080C4310: - ldr r1, _080C4350 @ =0x02018000 - lsls r2, r5, 1 - adds r0, r1, 0 - adds r0, 0xC - adds r0, r2, r0 - movs r3, 0 - ldrsh r0, [r0, r3] - mov r10, r1 - adds r4, r2, 0 - cmp r0, 0x57 - ble _080C4328 -_080C4326: - movs r6, 0x1 -_080C4328: - mov r0, r10 - adds r0, 0xC - adds r3, r4, r0 - ldrh r2, [r3] - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - bne _080C4340 - movs r1, 0x1 - mov r9, r1 -_080C4340: - mov r0, r9 - cmp r0, 0 - bne _080C4362 - cmp r6, 0 - beq _080C4354 - strh r7, [r3] - b _080C4362 - .align 2, 0 -_080C4350: .4byte 0x02018000 -_080C4354: - mov r1, r8 - cmp r1, 0 - beq _080C435E - subs r0, r2, 0x1 - b _080C4360 -_080C435E: - adds r0, r2, 0x1 -_080C4360: - strh r0, [r3] -_080C4362: - cmp r6, 0 - bne _080C43C8 - mov r2, r9 - cmp r2, 0 - bne _080C43CE - movs r2, 0 - ldr r0, _080C4388 @ =0x0201800c - adds r6, r4, r0 - adds r0, r4, r5 - lsls r5, r0, 5 -_080C4376: - movs r0, 0 - ldrsh r3, [r6, r0] - adds r0, r2, 0x1 - lsls r1, r0, 3 - adds r4, r0, 0 - cmp r3, r1 - blt _080C438C - movs r0, 0x8 - b _080C43A8 - .align 2, 0 -_080C4388: .4byte 0x0201800c -_080C438C: - lsls r0, r2, 3 - cmp r3, r0 - blt _080C43A6 - adds r0, r3, 0 - cmp r3, 0 - bge _080C439A - adds r0, r3, 0x7 -_080C439A: - asrs r0, 3 - lsls r0, 3 - subs r0, r3, r0 - lsls r0, 24 - lsrs r0, 24 - b _080C43A8 -_080C43A6: - movs r0, 0 -_080C43A8: - cmp r0, 0x3 - bhi _080C43B4 - ldr r3, _080C43B0 @ =0x0000504c - b _080C43B6 - .align 2, 0 -_080C43B0: .4byte 0x0000504c -_080C43B4: - ldr r3, _080C43EC @ =0x00005057 -_080C43B6: - adds r1, r0, r3 - adds r0, r5, r2 - lsls r0, 1 - ldr r2, _080C43F0 @ =0x0600e18e - adds r0, r2 - strh r1, [r0] - adds r2, r4, 0 - cmp r2, 0xA - ble _080C4376 -_080C43C8: - mov r3, r9 - cmp r3, 0 - beq _080C43DC -_080C43CE: - mov r1, r10 - ldrb r0, [r1, 0x14] - subs r0, 0x1 - strb r0, [r1, 0x14] - mov r0, r12 - bl DestroyTask -_080C43DC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C43EC: .4byte 0x00005057 -_080C43F0: .4byte 0x0600e18e - thumb_func_end sub_80C42C0 - - thumb_func_start sub_80C43F4 -sub_80C43F4: @ 80C43F4 - push {r4,r5,lr} - ldr r0, _080C442C @ =gUnknown_02038694 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080C4430 @ =gPlayerParty - adds r0, r1 - bl sub_80AE47C - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0 - beq _080C4422 - ldr r4, _080C4434 @ =gUnknown_0203869C - ldrb r0, [r4] - ldr r1, _080C4438 @ =gUnknown_0203869E - ldrb r1, [r1] - bl sub_80AE398 - ldrb r0, [r4] - bl sub_80AE82C -_080C4422: - ldr r0, _080C443C @ =gScriptResult - strh r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C442C: .4byte gUnknown_02038694 -_080C4430: .4byte gPlayerParty -_080C4434: .4byte gUnknown_0203869C -_080C4438: .4byte gUnknown_0203869E -_080C443C: .4byte gScriptResult - thumb_func_end sub_80C43F4 - - thumb_func_start sub_80C4440 -sub_80C4440: @ 80C4440 - push {r4,lr} - movs r4, 0 - ldr r0, _080C4464 @ =gUnknown_02038694 - ldrb r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080C4468 @ =gPlayerParty - adds r2, r1, r0 - ldr r0, _080C446C @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080C44B2 - lsls r0, 2 - ldr r1, _080C4470 @ =_080C4474 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4464: .4byte gUnknown_02038694 -_080C4468: .4byte gPlayerParty -_080C446C: .4byte gUnknown_0203869C -_080C4470: .4byte _080C4474 - .align 2, 0 -_080C4474: - .4byte _080C4488 - .4byte _080C448E - .4byte _080C4494 - .4byte _080C449A - .4byte _080C44A0 -_080C4488: - adds r0, r2, 0 - movs r1, 0x32 - b _080C44A4 -_080C448E: - adds r0, r2, 0 - movs r1, 0x33 - b _080C44A4 -_080C4494: - adds r0, r2, 0 - movs r1, 0x34 - b _080C44A4 -_080C449A: - adds r0, r2, 0 - movs r1, 0x35 - b _080C44A4 -_080C44A0: - adds r0, r2, 0 - movs r1, 0x36 -_080C44A4: - bl GetMonData - ldr r1, _080C44BC @ =gUnknown_0203869E - ldrh r1, [r1] - cmp r0, r1 - bls _080C44B2 - movs r4, 0x1 -_080C44B2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C44BC: .4byte gUnknown_0203869E - thumb_func_end sub_80C4440 - - thumb_func_start sub_80C44C0 -sub_80C44C0: @ 80C44C0 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _080C44E8 @ =gUnknown_02038690 - ldr r0, _080C44EC @ =gUnknown_02038695 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080C44D4 - b _080C465E -_080C44D4: - ldr r0, _080C44F0 @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bls _080C44DE - b _080C465E -_080C44DE: - lsls r0, 2 - ldr r1, _080C44F4 @ =_080C44F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C44E8: .4byte gUnknown_02038690 -_080C44EC: .4byte gUnknown_02038695 -_080C44F0: .4byte gUnknown_0203869C -_080C44F4: .4byte _080C44F8 - .align 2, 0 -_080C44F8: - .4byte _080C450C - .4byte _080C4554 - .4byte _080C4598 - .4byte _080C45DC - .4byte _080C4624 -_080C450C: - ldr r6, _080C4548 @ =gUnknown_02038694 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080C454C @ =gPlayerParty - adds r0, r4 - movs r1, 0x32 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - mov r0, sp - strb r1, [r0] - ldr r0, _080C4550 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r1, r0 - bls _080C4530 - b _080C465E -_080C4530: - adds r0, r1, 0 - cmp r0, 0x3 - bls _080C4538 - b _080C465E -_080C4538: - adds r1, r0, 0x1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x32 - b _080C4610 - .align 2, 0 -_080C4548: .4byte gUnknown_02038694 -_080C454C: .4byte gPlayerParty -_080C4550: .4byte gUnknown_0203869E -_080C4554: - mov r4, sp - ldr r7, _080C458C @ =gUnknown_02038694 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C4590 @ =gPlayerParty - adds r0, r5 - movs r1, 0x33 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4594 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x33 - b _080C4610 - .align 2, 0 -_080C458C: .4byte gUnknown_02038694 -_080C4590: .4byte gPlayerParty -_080C4594: .4byte gUnknown_0203869E -_080C4598: - mov r4, sp - ldr r7, _080C45D0 @ =gUnknown_02038694 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C45D4 @ =gPlayerParty - adds r0, r5 - movs r1, 0x34 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C45D8 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x34 - b _080C4610 - .align 2, 0 -_080C45D0: .4byte gUnknown_02038694 -_080C45D4: .4byte gPlayerParty -_080C45D8: .4byte gUnknown_0203869E -_080C45DC: - mov r4, sp - ldr r7, _080C4618 @ =gUnknown_02038694 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C461C @ =gPlayerParty - adds r0, r5 - movs r1, 0x35 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4620 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x35 -_080C4610: - mov r2, sp - bl SetMonData - b _080C465E - .align 2, 0 -_080C4618: .4byte gUnknown_02038694 -_080C461C: .4byte gPlayerParty -_080C4620: .4byte gUnknown_0203869E -_080C4624: - mov r4, sp - ldr r7, _080C4668 @ =gUnknown_02038694 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080C466C @ =gPlayerParty - adds r0, r5 - movs r1, 0x36 - bl GetMonData - strb r0, [r4] - mov r0, sp - ldrb r2, [r0] - ldr r0, _080C4670 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r2, r0 - bhi _080C465E - cmp r2, 0x3 - bhi _080C465E - mov r1, sp - adds r0, r2, 0x1 - strb r0, [r1] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x36 - mov r2, sp - bl SetMonData -_080C465E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4668: .4byte gUnknown_02038694 -_080C466C: .4byte gPlayerParty -_080C4670: .4byte gUnknown_0203869E - thumb_func_end sub_80C44C0 - - thumb_func_start sub_80C4674 -sub_80C4674: @ 80C4674 - push {r4,lr} - adds r4, r0, 0 - bl StringCopy - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C4690 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C4690 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString -_080C4690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C4674 - - thumb_func_start sub_80C4698 -sub_80C4698: @ 80C4698 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r1, r4, 6 - ldr r0, _080C46E0 @ =gUnknown_02038572 - adds r1, r0 - adds r0, r5, 0 - bl StringCopy - ldr r0, _080C46E4 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C46DA - ldr r0, _080C46E8 @ =gLinkPlayers - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x1A] - cmp r0, 0x1 - bne _080C46DA - adds r0, r5, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl ConvertInternationalString -_080C46DA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C46E0: .4byte gUnknown_02038572 -_080C46E4: .4byte gUnknown_0203869A -_080C46E8: .4byte gLinkPlayers - thumb_func_end sub_80C4698 - - thumb_func_start sub_80C46EC -sub_80C46EC: @ 80C46EC - push {lr} - ldr r0, _080C4710 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4720 - ldr r0, _080C4714 @ =gStringVar1 - ldr r1, _080C4718 @ =gUnknown_0202E8D0 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r2, _080C471C @ =gLinkPlayers + 0x8 - adds r1, r2 - bl sub_80C4674 - b _080C4730 - .align 2, 0 -_080C4710: .4byte gUnknown_0203869A -_080C4714: .4byte gStringVar1 -_080C4718: .4byte gUnknown_0202E8D0 -_080C471C: .4byte gLinkPlayers + 0x8 -_080C4720: - ldr r0, _080C4734 @ =gStringVar1 - ldr r1, _080C4738 @ =gUnknown_0202E8D0 - ldrh r1, [r1] - lsls r1, 6 - ldr r2, _080C473C @ =gUnknown_0203857D - adds r1, r2 - bl sub_80C4674 -_080C4730: - pop {r0} - bx r0 - .align 2, 0 -_080C4734: .4byte gStringVar1 -_080C4738: .4byte gUnknown_0202E8D0 -_080C473C: .4byte gUnknown_0203857D - thumb_func_end sub_80C46EC - - thumb_func_start sub_80C4740 -sub_80C4740: @ 80C4740 - push {lr} - ldr r0, _080C4750 @ =gStringVar3 - ldr r1, _080C4754 @ =gUnknown_0202E8D0 - ldrb r1, [r1] - bl sub_80C4698 - pop {r0} - bx r0 - .align 2, 0 -_080C4750: .4byte gStringVar3 -_080C4754: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4740 - - thumb_func_start sub_80C4758 -sub_80C4758: @ 80C4758 - push {r4-r6,lr} - movs r1, 0 - movs r2, 0 - ldr r5, _080C4794 @ =gUnknown_0202E8CC - ldr r4, _080C4798 @ =gUnknown_02038670 - ldr r0, _080C479C @ =gUnknown_0202E8D0 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r4 - movs r6, 0 - ldrsh r3, [r0, r6] -_080C476E: - lsls r0, r1, 1 - adds r0, r4 - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r3, r0 - bge _080C4780 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080C4780: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C476E - strh r2, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4794: .4byte gUnknown_0202E8CC -_080C4798: .4byte gUnknown_02038670 -_080C479C: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4758 - - thumb_func_start sub_80C47A0 -sub_80C47A0: @ 80C47A0 - ldr r2, _080C47B4 @ =gUnknown_0202E8CC - ldr r1, _080C47B8 @ =gUnknown_02038670 - ldr r0, _080C47BC @ =gUnknown_0202E8D0 - ldrh r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080C47B4: .4byte gUnknown_0202E8CC -_080C47B8: .4byte gUnknown_02038670 -_080C47BC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C47A0 - - thumb_func_start sub_80C47C0 -sub_80C47C0: @ 80C47C0 - push {lr} - movs r1, 0 - ldr r2, _080C47E8 @ =gUnknown_02038690 - ldrb r0, [r2] - ldr r3, _080C47EC @ =gUnknown_0202E8CE - cmp r0, 0 - beq _080C47E0 -_080C47CE: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080C47E0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C47CE -_080C47E0: - strh r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080C47E8: .4byte gUnknown_02038690 -_080C47EC: .4byte gUnknown_0202E8CE - thumb_func_end sub_80C47C0 - - thumb_func_start sub_80C47F0 -sub_80C47F0: @ 80C47F0 - push {r4,lr} - movs r2, 0 - ldr r3, _080C4830 @ =gUnknown_02038690 - ldrb r0, [r3] - ldr r1, _080C4834 @ =gUnknown_0203869A - ldr r4, _080C4838 @ =gStringVar3 - cmp r0, 0 - beq _080C4812 -_080C4800: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bhi _080C4812 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4800 -_080C4812: - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4840 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _080C483C @ =gLinkPlayers + 0x8 - adds r1, r0 - adds r0, r4, 0 - bl sub_80C4674 - b _080C484C - .align 2, 0 -_080C4830: .4byte gUnknown_02038690 -_080C4834: .4byte gUnknown_0203869A -_080C4838: .4byte gStringVar3 -_080C483C: .4byte gLinkPlayers + 0x8 -_080C4840: - lsls r1, r2, 6 - ldr r0, _080C4854 @ =gUnknown_0203857D - adds r1, r0 - adds r0, r4, 0 - bl sub_80C4674 -_080C484C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4854: .4byte gUnknown_0203857D - thumb_func_end sub_80C47F0 - - thumb_func_start sub_80C4858 -sub_80C4858: @ 80C4858 - push {lr} - movs r1, 0 - ldr r2, _080C4884 @ =gUnknown_02038690 - ldrb r0, [r2] - ldr r3, _080C4888 @ =gStringVar1 - cmp r0, 0 - beq _080C4878 -_080C4866: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080C4878 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4866 -_080C4878: - adds r0, r3, 0 - bl sub_80C4698 - pop {r0} - bx r0 - .align 2, 0 -_080C4884: .4byte gUnknown_02038690 -_080C4888: .4byte gStringVar1 - thumb_func_end sub_80C4858 - - thumb_func_start sub_80C488C -sub_80C488C: @ 80C488C - push {lr} - ldr r0, _080C4898 @ =sub_80AB47C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4898: .4byte sub_80AB47C - thumb_func_end sub_80C488C - - thumb_func_start sub_80C489C -sub_80C489C: @ 80C489C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C48C0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C48BA - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080C48C4 @ =sub_80C488C - bl SetMainCallback2 -_080C48BA: - pop {r0} - bx r0 - .align 2, 0 -_080C48C0: .4byte gPaletteFade -_080C48C4: .4byte sub_80C488C - thumb_func_end sub_80C489C - - thumb_func_start sub_80C48C8 -sub_80C48C8: @ 80C48C8 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080C48F0 @ =sub_80C489C - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C48F0: .4byte sub_80C489C - thumb_func_end sub_80C48C8 - - thumb_func_start sub_80C48F4 -sub_80C48F4: @ 80C48F4 - ldr r2, _080C4908 @ =gUnknown_0202E8CC - ldr r1, _080C490C @ =gUnknown_02038570 - ldr r0, _080C4910 @ =gUnknown_0202E8D0 - ldrh r0, [r0] - lsls r0, 6 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - bx lr - .align 2, 0 -_080C4908: .4byte gUnknown_0202E8CC -_080C490C: .4byte gUnknown_02038570 -_080C4910: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C48F4 - - thumb_func_start sub_80C4914 -sub_80C4914: @ 80C4914 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C4938 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C4932 - adds r0, r2, 0 - bl DestroyTask - ldr r0, _080C493C @ =sub_80C2358 - bl SetMainCallback2 -_080C4932: - pop {r0} - bx r0 - .align 2, 0 -_080C4938: .4byte gPaletteFade -_080C493C: .4byte sub_80C2358 - thumb_func_end sub_80C4914 - - thumb_func_start sub_80C4940 -sub_80C4940: @ 80C4940 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080C4968 @ =sub_80C4914 - movs r1, 0xA - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C4968: .4byte sub_80C4914 - thumb_func_end sub_80C4940 - - thumb_func_start sub_80C496C -sub_80C496C: @ 80C496C - ldr r0, _080C4978 @ =gUnknown_0202E8CC - ldr r1, _080C497C @ =gUnknown_02038695 - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080C4978: .4byte gUnknown_0202E8CC -_080C497C: .4byte gUnknown_02038695 - thumb_func_end sub_80C496C - - thumb_func_start sub_80C4980 -sub_80C4980: @ 80C4980 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl ScriptContext2_Enable - ldr r6, _080C49B8 @ =sub_80C8604 - adds r0, r6, 0 - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080C49BC @ =sub_80C49C4 - adds r0, r4, 0 - adds r1, r6, 0 - bl SetTaskFuncWithFollowupFunc - ldr r1, _080C49C0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1A] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C49B8: .4byte sub_80C8604 -_080C49BC: .4byte sub_80C49C4 -_080C49C0: .4byte gTasks - thumb_func_end sub_80C4980 - - thumb_func_start sub_80C49C4 -sub_80C49C4: @ 80C49C4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C49E4 @ =gUnknown_02038694 - ldrb r0, [r0] - bl sub_80AE098 - ldr r1, _080C49E8 @ =sub_80C8734 - ldr r2, _080C49EC @ =sub_80C49F0 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C49E4: .4byte gUnknown_02038694 -_080C49E8: .4byte sub_80C8734 -_080C49EC: .4byte sub_80C49F0 - thumb_func_end sub_80C49C4 - - thumb_func_start sub_80C49F0 -sub_80C49F0: @ 80C49F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A04 @ =sub_80C88AC - ldr r2, _080C4A08 @ =sub_80C4A0C - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A04: .4byte sub_80C88AC -_080C4A08: .4byte sub_80C4A0C - thumb_func_end sub_80C49F0 - - thumb_func_start sub_80C4A0C -sub_80C4A0C: @ 80C4A0C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A20 @ =sub_80C8E1C - ldr r2, _080C4A24 @ =sub_80C4A28 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A20: .4byte sub_80C8E1C -_080C4A24: .4byte sub_80C4A28 - thumb_func_end sub_80C4A0C - - thumb_func_start sub_80C4A28 -sub_80C4A28: @ 80C4A28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C4A3C @ =sub_80C8938 - ldr r2, _080C4A40 @ =sub_80C4A44 - bl SetTaskFuncWithFollowupFunc - pop {r0} - bx r0 - .align 2, 0 -_080C4A3C: .4byte sub_80C8938 -_080C4A40: .4byte sub_80C4A44 - thumb_func_end sub_80C4A28 - - thumb_func_start sub_80C4A44 -sub_80C4A44: @ 80C4A44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r0, _080C4AA0 @ =gUnknown_0202E8CC - mov r8, r0 - add r1, sp, 0x4 - mov r12, r1 - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r4, r0, 3 - ldr r6, _080C4AA4 @ =gTasks + 0x8 - adds r7, r1, 0 -_080C4A64: - mov r0, sp - adds r2, r0, r3 - adds r1, r3, 0x1 - lsls r0, r1, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0x3 - bls _080C4A64 - movs r3, 0 - mov r2, sp -_080C4A80: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bhi _080C4A96 - mov r0, sp - adds r1, r0, r3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080C4A80 -_080C4A96: - cmp r3, 0x4 - bne _080C4AA8 - movs r0, 0 - b _080C4AAA - .align 2, 0 -_080C4AA0: .4byte gUnknown_0202E8CC -_080C4AA4: .4byte gTasks + 0x8 -_080C4AA8: - movs r0, 0x1 -_080C4AAA: - mov r1, r8 - strh r0, [r1] - movs r3, 0 - mov r4, r12 - adds r0, r7, r5 - lsls r2, r0, 3 - ldr r6, _080C4AF8 @ =gTasks + 0x8 -_080C4AB8: - adds r1, r4, r3 - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r2 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _080C4AB8 - mov r0, r12 - bl sub_80C4B34 - ldr r1, _080C4AFC @ =gUnknown_0203869B - strb r0, [r1] - ldr r0, _080C4B00 @ =gUnknown_0203869C - ldrb r0, [r0] - bl sub_80AE82C - ldr r1, _080C4B04 @ =sub_80C8EBC - ldr r2, _080C4B08 @ =sub_80C4B0C - adds r0, r5, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4AF8: .4byte gTasks + 0x8 -_080C4AFC: .4byte gUnknown_0203869B -_080C4B00: .4byte gUnknown_0203869C -_080C4B04: .4byte sub_80C8EBC -_080C4B08: .4byte sub_80C4B0C - thumb_func_end sub_80C4A44 - - thumb_func_start sub_80C4B0C -sub_80C4B0C: @ 80C4B0C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80B0F28 - ldr r1, _080C4B2C @ =sub_80C8F34 - ldr r2, _080C4B30 @ =sub_80C4B5C - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4B2C: .4byte sub_80C8F34 -_080C4B30: .4byte sub_80C4B5C - thumb_func_end sub_80C4B0C - - thumb_func_start sub_80C4B34 -sub_80C4B34: @ 80C4B34 - push {r4,lr} - adds r3, r0, 0 - movs r4, 0 - movs r2, 0x1 -_080C4B3C: - adds r0, r3, r4 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _080C4B4C - lsls r0, r2, 24 - lsrs r4, r0, 24 -_080C4B4C: - adds r2, 0x1 - cmp r2, 0x3 - ble _080C4B3C - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C4B34 - - thumb_func_start sub_80C4B5C -sub_80C4B5C: @ 80C4B5C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C4B84 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0x1 - bne _080C4B90 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C4B9E - ldr r0, _080C4B88 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C4B8C @ =sub_80C4BA4 - str r0, [r1] - b _080C4B9E - .align 2, 0 -_080C4B84: .4byte gUnknown_0202E8CC -_080C4B88: .4byte gTasks -_080C4B8C: .4byte sub_80C4BA4 -_080C4B90: - adds r0, r4, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_080C4B9E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C4B5C - - thumb_func_start sub_80C4BA4 -sub_80C4BA4: @ 80C4BA4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800832C - ldr r1, _080C4BC4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C4BC8 @ =sub_80C4BCC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4BC4: .4byte gTasks -_080C4BC8: .4byte sub_80C4BCC - thumb_func_end sub_80C4BA4 - - thumb_func_start sub_80C4BCC -sub_80C4BCC: @ 80C4BCC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080C4BE8 - adds r0, r1, 0 - bl DestroyTask - bl ScriptContext2_Disable - bl EnableBothScriptContexts -_080C4BE8: - pop {r0} - bx r0 - .align 2, 0 -_080C4BEC: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_80C4BCC - - thumb_func_start sub_80C4BF0 -sub_80C4BF0: @ 80C4BF0 - push {r4,lr} - ldr r2, _080C4C1C @ =gSaveBlock1 - ldr r1, _080C4C20 @ =gUnknown_02038570 - ldrb r3, [r1, 0x15] - movs r4, 0x9B - lsls r4, 5 - adds r0, r2, r4 - strh r3, [r0] - adds r0, r1, 0 - adds r0, 0x55 - ldrb r3, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r3, [r0] - adds r1, 0x95 - ldrb r0, [r1] - ldr r1, _080C4C24 @ =0x00001364 - adds r2, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4C1C: .4byte gSaveBlock1 -_080C4C20: .4byte gUnknown_02038570 -_080C4C24: .4byte 0x00001364 - thumb_func_end sub_80C4BF0 - - thumb_func_start sub_80C4C28 -sub_80C4C28: @ 80C4C28 - push {lr} - ldr r0, _080C4C40 @ =gUnknown_0202E8CE - ldrb r0, [r0] - adds r1, r0, 0 - cmp r0, 0x1 - beq _080C4C4E - cmp r0, 0x1 - bgt _080C4C44 - cmp r0, 0 - beq _080C4C4A - b _080C4C56 - .align 2, 0 -_080C4C40: .4byte gUnknown_0202E8CE -_080C4C44: - cmp r1, 0x2 - beq _080C4C52 - b _080C4C56 -_080C4C4A: - movs r1, 0x3 - b _080C4C58 -_080C4C4E: - movs r1, 0x4 - b _080C4C58 -_080C4C52: - movs r1, 0x5 - b _080C4C58 -_080C4C56: - movs r1, 0x64 -_080C4C58: - ldr r0, _080C4C60 @ =gUnknown_0202E8CC - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080C4C60: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C28 - - thumb_func_start sub_80C4C64 -sub_80C4C64: @ 80C4C64 - push {lr} - bl sub_80C46EC - bl sub_80C4740 - bl sub_80C48F4 - pop {r0} - bx r0 - thumb_func_end sub_80C4C64 - - thumb_func_start sub_80C4C78 -sub_80C4C78: @ 80C4C78 - push {lr} - ldr r0, _080C4C8C @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080C4CB8 - lsls r0, 2 - ldr r1, _080C4C90 @ =_080C4C94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4C8C: .4byte gUnknown_0203869C -_080C4C90: .4byte _080C4C94 - .align 2, 0 -_080C4C94: - .4byte _080C4CA8 - .4byte _080C4CAC - .4byte _080C4CB0 - .4byte _080C4CB4 - .4byte _080C4CB8 -_080C4CA8: - movs r0, 0x8 - b _080C4CBA -_080C4CAC: - movs r0, 0x9 - b _080C4CBA -_080C4CB0: - movs r0, 0xA - b _080C4CBA -_080C4CB4: - movs r0, 0xB - b _080C4CBA -_080C4CB8: - movs r0, 0xC -_080C4CBA: - ldr r1, _080C4CD0 @ =gSaveBlock1 - lsls r0, 5 - adds r0, r1 - ldr r1, _080C4CD4 @ =0x00002e04 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - bne _080C4CDC - ldr r0, _080C4CD8 @ =gUnknown_0202E8CC - strh r1, [r0] - b _080C4CE2 - .align 2, 0 -_080C4CD0: .4byte gSaveBlock1 -_080C4CD4: .4byte 0x00002e04 -_080C4CD8: .4byte gUnknown_0202E8CC -_080C4CDC: - ldr r1, _080C4CE8 @ =gUnknown_0202E8CC - movs r0, 0x1 - strh r0, [r1] -_080C4CE2: - pop {r0} - bx r0 - .align 2, 0 -_080C4CE8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C78 - - thumb_func_start sub_80C4CEC -sub_80C4CEC: @ 80C4CEC - push {lr} - movs r0, 0xFF - bl sub_80B2A7C - pop {r0} - bx r0 - thumb_func_end sub_80C4CEC - - thumb_func_start sub_80C4CF8 -sub_80C4CF8: @ 80C4CF8 - push {lr} - ldr r0, _080C4D28 @ =gUnknown_02038690 - ldr r1, _080C4D2C @ =gUnknown_02038695 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4D40 - ldr r0, _080C4D30 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C4D40 - ldr r1, _080C4D34 @ =gUnknown_02038678 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C4D38 @ =0x0000031f - cmp r1, r0 - ble _080C4D40 - ldr r1, _080C4D3C @ =gUnknown_0202E8CC - movs r0, 0x1 - b _080C4D44 - .align 2, 0 -_080C4D28: .4byte gUnknown_02038690 -_080C4D2C: .4byte gUnknown_02038695 -_080C4D30: .4byte gUnknown_0203869E -_080C4D34: .4byte gUnknown_02038678 -_080C4D38: .4byte 0x0000031f -_080C4D3C: .4byte gUnknown_0202E8CC -_080C4D40: - ldr r1, _080C4D4C @ =gUnknown_0202E8CC - movs r0, 0 -_080C4D44: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C4D4C: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4CF8 - - thumb_func_start sub_80C4D50 -sub_80C4D50: @ 80C4D50 - push {lr} - movs r3, 0 - ldr r0, _080C4D78 @ =gSaveBlock1 - ldr r1, _080C4D7C @ =0x00002f04 - adds r2, r0, r1 - movs r1, 0x4 -_080C4D5C: - ldrh r0, [r2] - cmp r0, 0 - beq _080C4D68 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C4D68: - adds r2, 0x20 - subs r1, 0x1 - cmp r1, 0 - bge _080C4D5C - adds r0, r3, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C4D78: .4byte gSaveBlock1 -_080C4D7C: .4byte 0x00002f04 - thumb_func_end sub_80C4D50 - - thumb_func_start sub_80C4D80 -sub_80C4D80: @ 80C4D80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _080C4EA0 @ =gUnknown_02038670 - mov r12, r0 - ldr r1, _080C4EA4 @ =gUnknown_0202E8D0 - mov r8, r1 - ldr r2, _080C4EA8 @ =gStringVar1 - mov r9, r2 - mov r2, r12 - mov r1, sp - movs r6, 0x3 -_080C4D9E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080C4D9E - movs r6, 0 -_080C4DAE: - movs r1, 0x3 - cmp r1, r6 - ble _080C4DD8 -_080C4DB4: - subs r4, r1, 0x1 - lsls r0, r4, 1 - mov r5, sp - adds r3, r5, r0 - lsls r0, r1, 1 - adds r2, r5, r0 - ldrh r5, [r3] - movs r7, 0 - ldrsh r1, [r3, r7] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080C4DD2 - strh r5, [r2] - strh r0, [r3] -_080C4DD2: - adds r1, r4, 0 - cmp r1, r6 - bgt _080C4DB4 -_080C4DD8: - adds r6, 0x1 - cmp r6, 0x2 - ble _080C4DAE - mov r2, r8 - ldrh r0, [r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - movs r2, 0 - movs r7, 0 - movs r6, 0 - lsls r0, 16 - asrs r4, r0, 16 - adds r3, r0, 0 - mov r1, sp -_080C4DF6: - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, r4 - bne _080C4E12 - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - mov r5, r8 - ldrh r5, [r5] - cmp r6, r5 - bne _080C4E12 - adds r7, r2, 0 -_080C4E12: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080C4DF6 - movs r6, 0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r1, r3, 16 - lsls r2, 24 - mov r10, r2 - cmp r0, r1 - beq _080C4E40 - adds r2, r1, 0 - mov r1, sp -_080C4E30: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E40 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r2 - bne _080C4E30 -_080C4E40: - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r2, r7, 0 - movs r6, 0 - asrs r5, r3, 16 - mov r8, r5 - mov r1, r12 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r8, r0 - bne _080C4E60 - cmp r7, 0x1 - beq _080C4E78 -_080C4E5A: - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080C4E60: - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E78 - lsls r0, r6, 1 - add r0, r12 - asrs r1, r3, 16 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080C4E60 - cmp r2, 0x1 - bne _080C4E5A -_080C4E78: - lsls r1, r6, 24 - lsrs r1, 24 - mov r0, r9 - bl sub_80C4698 - ldr r0, _080C4EAC @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4EB8 - ldr r0, _080C4EB0 @ =gStringVar2 - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8 - adds r1, r2 - bl sub_80C4674 - b _080C4EC4 - .align 2, 0 -_080C4EA0: .4byte gUnknown_02038670 -_080C4EA4: .4byte gUnknown_0202E8D0 -_080C4EA8: .4byte gStringVar1 -_080C4EAC: .4byte gUnknown_0203869A -_080C4EB0: .4byte gStringVar2 -_080C4EB4: .4byte gLinkPlayers + 0x8 -_080C4EB8: - ldr r0, _080C4ED8 @ =gStringVar2 - lsls r1, r6, 6 - ldr r2, _080C4EDC @ =gUnknown_0203857D - adds r1, r2 - bl sub_80C4674 -_080C4EC4: - mov r1, r10 - asrs r0, r1, 24 - cmp r0, 0x1 - beq _080C4ED0 - cmp r7, r0 - bne _080C4EE4 -_080C4ED0: - ldr r0, _080C4EE0 @ =gUnknown_0202E8D0 - strh r4, [r0] - b _080C4EEA - .align 2, 0 -_080C4ED8: .4byte gStringVar2 -_080C4EDC: .4byte gUnknown_0203857D -_080C4EE0: .4byte gUnknown_0202E8D0 -_080C4EE4: - ldr r1, _080C4EFC @ =gUnknown_0202E8D0 - adds r0, r4, 0x4 - strh r0, [r1] -_080C4EEA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4EFC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4D80 - - thumb_func_start sub_80C4F00 -sub_80C4F00: @ 80C4F00 - push {lr} - ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C4F00 - - thumb_func_start sub_80C4F10 -sub_80C4F10: @ 80C4F10 - push {r4-r6,lr} - ldr r6, _080C4F54 @ =gUnknown_0203856C - ldrb r0, [r6] - cmp r0, 0 - beq _080C4F40 - bl sub_80AAF30 - ldr r4, _080C4F58 @ =0x02000000 - ldr r0, _080C4F5C @ =0x00015ddf - adds r1, r4, r0 - movs r5, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0xFE - movs r1, 0 - bl sub_80B2C4C - ldr r1, _080C4F60 @ =0x00015dde - adds r4, r1 - strb r0, [r4] - movs r0, 0x3 - bl sub_80B2A7C - strb r5, [r6] -_080C4F40: - ldr r0, _080C4F64 @ =sub_8106668 - bl SetMainCallback2 - ldr r1, _080C4F68 @ =gMain - ldr r0, _080C4F6C @ =sub_80C4F00 - str r0, [r1, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4F54: .4byte gUnknown_0203856C -_080C4F58: .4byte 0x02000000 -_080C4F5C: .4byte 0x00015ddf -_080C4F60: .4byte 0x00015dde -_080C4F64: .4byte sub_8106668 -_080C4F68: .4byte gMain -_080C4F6C: .4byte sub_80C4F00 - thumb_func_end sub_80C4F10 - - thumb_func_start sub_80C4F70 -sub_80C4F70: @ 80C4F70 - push {r4,lr} - ldr r0, _080C4FA8 @ =0x00004010 - ldr r4, _080C4FAC @ =gUnknown_02038570 - ldrb r1, [r4, 0x15] - bl VarSet - ldr r0, _080C4FB0 @ =0x00004011 - adds r1, r4, 0 - adds r1, 0x55 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB4 @ =0x00004012 - adds r1, r4, 0 - adds r1, 0x95 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB8 @ =0x00004013 - adds r1, r4, 0 - adds r1, 0xD5 - ldrb r1, [r1] - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4FA8: .4byte 0x00004010 -_080C4FAC: .4byte gUnknown_02038570 -_080C4FB0: .4byte 0x00004011 -_080C4FB4: .4byte 0x00004012 -_080C4FB8: .4byte 0x00004013 - thumb_func_end sub_80C4F70 - - thumb_func_start sub_80C4FBC -sub_80C4FBC: @ 80C4FBC - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080C501C @ =gUnknown_02038694 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080C5020 @ =gPlayerParty - adds r0, r4 - movs r1, 0x46 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C5024 @ =gUnknown_02038690 - ldr r1, _080C5028 @ =gUnknown_02038695 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C502C @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C5038 - ldr r1, _080C5030 @ =gUnknown_02038678 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C5034 @ =0x0000031f - cmp r1, r0 - ble _080C5038 - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x46 - mov r2, sp - bl SetMonData - movs r0, 0x1 - b _080C503A - .align 2, 0 -_080C501C: .4byte gUnknown_02038694 -_080C5020: .4byte gPlayerParty -_080C5024: .4byte gUnknown_02038690 -_080C5028: .4byte gUnknown_02038695 -_080C502C: .4byte gUnknown_0203869E -_080C5030: .4byte gUnknown_02038678 -_080C5034: .4byte 0x0000031f -_080C5038: - movs r0, 0 -_080C503A: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C4FBC - - thumb_func_start sub_80C5044 -sub_80C5044: @ 80C5044 - ldr r0, _080C504C @ =gUnknown_0203856C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080C504C: .4byte gUnknown_0203856C - thumb_func_end sub_80C5044 - - thumb_func_start sub_80C5050 -sub_80C5050: @ 80C5050 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r4, _080C513C @ =sub_80C5190 - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080C512A - movs r0, 0xA - mov r10, r0 - movs r7, 0x3 - movs r1, 0x3 - movs r2, 0x13 - movs r3, 0xD - bl MenuDrawTextWindow - ldr r2, _080C5140 @ =gUnknown_02038570 - ldr r0, _080C5144 @ =gUnknown_0202E8D0 - ldrh r1, [r0] - lsls r1, 6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r1, r0 - ldr r0, [r0] - mov r8, r0 - adds r2, 0x3C - adds r1, r2 - ldr r1, [r1] - mov r9, r1 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C5148 @ =gTasks - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - adds r5, r1 - movs r0, 0 - strh r0, [r5, 0x8] - strh r6, [r5, 0xA] - lsls r0, r6, 3 - ldr r1, _080C514C @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _080C5150 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r4, _080C5154 @ =gUnknown_081FAF4C - ldr r3, [r4] - ldr r4, [r4, 0x4] - str r4, [sp] - str r6, [sp, 0x4] - mov r4, r8 - str r4, [sp, 0x8] - bl sub_800D334 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080C5158 @ =gUnknown_02024E8C - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x2] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - mov r1, r10 - strh r1, [r5, 0xE] - strh r7, [r5, 0x10] - ldr r3, _080C515C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _080C5160 @ =SpriteCallbackDummy - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] -_080C512A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C513C: .4byte sub_80C5190 -_080C5140: .4byte gUnknown_02038570 -_080C5144: .4byte gUnknown_0202E8D0 -_080C5148: .4byte gTasks -_080C514C: .4byte gMonFrontPicTable -_080C5150: .4byte gMonFrontPicCoords -_080C5154: .4byte gUnknown_081FAF4C -_080C5158: .4byte gUnknown_02024E8C -_080C515C: .4byte gSprites -_080C5160: .4byte SpriteCallbackDummy - thumb_func_end sub_80C5050 - - thumb_func_start sub_80C5164 -sub_80C5164: @ 80C5164 - push {lr} - ldr r0, _080C5188 @ =sub_80C5190 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080C5184 - ldr r0, _080C518C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5184: - pop {r0} - bx r0 - .align 2, 0 -_080C5188: .4byte sub_80C5190 -_080C518C: .4byte gTasks - thumb_func_end sub_80C5164 - - thumb_func_start sub_80C5190 -sub_80C5190: @ 80C5190 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C51B4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C5222 - cmp r0, 0x1 - bgt _080C51B8 - cmp r0, 0 - beq _080C51F8 - b _080C5222 - .align 2, 0 -_080C51B4: .4byte gTasks -_080C51B8: - cmp r0, 0x2 - beq _080C51C2 - cmp r0, 0x3 - beq _080C5204 - b _080C5222 -_080C51C2: - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C5200 @ =gSprites - adds r5, r0, r1 - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - ldrb r0, [r5, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _080C51F2 - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080C51F2: - adds r0, r5, 0 - bl DestroySprite -_080C51F8: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C5222 - .align 2, 0 -_080C5200: .4byte gSprites -_080C5204: - ldrb r2, [r4, 0xE] - adds r0, r2, 0 - ldrb r3, [r4, 0x10] - adds r1, r3, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask -_080C5222: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C5190 - - thumb_func_start sub_80C5228 -sub_80C5228: @ 80C5228 - push {r4,lr} - ldr r0, _080C5244 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C524C - ldr r4, _080C5248 @ =gScriptResult - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _080C5252 - .align 2, 0 -_080C5244: .4byte gUnknown_0203869A -_080C5248: .4byte gScriptResult -_080C524C: - ldr r1, _080C5258 @ =gScriptResult - movs r0, 0x4 - strh r0, [r1] -_080C5252: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5258: .4byte gScriptResult - thumb_func_end sub_80C5228 - - thumb_func_start sub_80C525C -sub_80C525C: @ 80C525C - push {r4,lr} - ldr r0, _080C5280 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C5294 - ldr r2, _080C5284 @ =gUnknown_03005D28 - ldr r1, [r2] - ldr r0, _080C5288 @ =0x41c64e6d - muls r0, r1 - ldr r1, _080C528C @ =0x00006073 - adds r0, r1 - str r0, [r2] - lsrs r0, 16 - ldr r4, _080C5290 @ =gScriptResult - b _080C529E - .align 2, 0 -_080C5280: .4byte gUnknown_0203869A -_080C5284: .4byte gUnknown_03005D28 -_080C5288: .4byte 0x41c64e6d -_080C528C: .4byte 0x00006073 -_080C5290: .4byte gScriptResult -_080C5294: - ldr r4, _080C52AC @ =gScriptResult - bl Random - lsls r0, 16 - lsrs r0, 16 -_080C529E: - ldrh r1, [r4] - bl __umodsi3 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C52AC: .4byte gScriptResult - thumb_func_end sub_80C525C - - thumb_func_start sp000_heal_pokemon -sp000_heal_pokemon: @ 80C52B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - ldr r0, _080C536C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r8, r0 - bcs _080C535C - ldr r1, _080C5370 @ =gPlayerParty - mov r10, r1 - mov r6, sp -_080C52CE: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - lsls r1, r0, 16 - strb r0, [r6] - lsrs r1, 24 - strb r1, [r6, 0x1] - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - movs r1, 0x1 - add r1, r8 - mov r9, r1 -_080C5304: - adds r1, r5, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r7, 0 - adds r2, r5, 0 - bl CalculatePPWithBonus - strb r0, [r6] - adds r1, r5, 0 - adds r1, 0x11 - adds r0, r4, 0 - mov r2, sp - bl SetMonData - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080C5304 - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - strb r0, [r6, 0x2] - strb r0, [r6, 0x3] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - add r0, r10 - movs r1, 0x37 - mov r2, sp - bl SetMonData - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080C536C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r8, r0 - bcc _080C52CE -_080C535C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C536C: .4byte gPlayerPartyCount -_080C5370: .4byte gPlayerParty - thumb_func_end sp000_heal_pokemon - - thumb_func_start sub_80C5374 -sub_80C5374: @ 80C5374 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x78 - adds r5, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r0, r4, 16 - mov r8, r0 - add r6, sp, 0x14 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r3, 0 - movs r3, 0x20 - bl CreateMon - add r0, sp, 0x10 - mov r1, r8 - strb r1, [r0] - lsrs r4, 24 - strb r4, [r0, 0x1] - adds r0, r6, 0 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData - adds r0, r6, 0 - bl GiveMonToPlayer - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x1 - bgt _080C53E8 - cmp r4, 0 - blt _080C53E8 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8090D90 -_080C53E8: - adds r0, r4, 0 - add sp, 0x78 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C5374 - - thumb_func_start sub_80C53F8 -sub_80C53F8: @ 80C53F8 - push {lr} - sub sp, 0x68 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - movs r2, 0x1 - bl sub_8042044 - add r2, sp, 0x64 - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - mov r0, sp - bl GiveMonToPlayer - lsls r0, 24 - lsrs r0, 24 - add sp, 0x68 - pop {r1} - bx r1 - thumb_func_end sub_80C53F8 - - thumb_func_start sub_80C5428 -sub_80C5428: @ 80C5428 - push {lr} - bl sub_803DAA0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - beq _080C5444 - cmp r1, 0x1 - bgt _080C5440 - cmp r1, 0 - beq _080C5444 - b _080C5448 -_080C5440: - cmp r1, 0x2 - bne _080C5448 -_080C5444: - ldr r0, _080C544C @ =gScriptResult - strh r1, [r0] -_080C5448: - pop {r0} - bx r0 - .align 2, 0 -_080C544C: .4byte gScriptResult - thumb_func_end sub_80C5428 - - thumb_func_start sub_80C5450 -sub_80C5450: @ 80C5450 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0 - movs r7, 0xCE - lsls r7, 1 -_080C545C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C548C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080C5490 - cmp r0, r7 - beq _080C5490 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - cmp r0, r6 - bne _080C5490 - movs r0, 0x1 - b _080C5498 - .align 2, 0 -_080C548C: .4byte gPlayerParty -_080C5490: - adds r5, 0x1 - cmp r5, 0x5 - ble _080C545C - movs r0, 0 -_080C5498: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C5450 - - thumb_func_start sub_80C54A0 -sub_80C54A0: @ 80C54A0 - push {r4,lr} - movs r0, 0xAF - bl sub_80C5450 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x1 - bne _080C54C2 - movs r0, 0xAF - bl ItemIdToBerryType - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C54CC @ =gStringVar1 - bl GetBerryNameByBerryType -_080C54C2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C54CC: .4byte gStringVar1 - thumb_func_end sub_80C54A0 - - thumb_func_start sub_80C54D0 -sub_80C54D0: @ 80C54D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r7, r2, 16 - lsrs r6, r7, 16 - bl ZeroEnemyPartyMons - ldr r0, _080C552C @ =gEnemyParty - mov r8, r0 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x20 - bl CreateMon - cmp r6, 0 - beq _080C551E - add r0, sp, 0x10 - strb r6, [r0] - adds r1, r0, 0 - lsrs r0, r7, 24 - strb r0, [r1, 0x1] - mov r0, r8 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData -_080C551E: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C552C: .4byte gEnemyParty - thumb_func_end sub_80C54D0 - - thumb_func_start sub_80C5530 -sub_80C5530: @ 80C5530 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r2, 24 - cmp r3, 0x6 - bls _080C554C - ldr r0, _080C5560 @ =gPlayerPartyCount - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C554C: - movs r0, 0x64 - muls r0, r3 - ldr r1, _080C5564 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl SetMonMoveSlot - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5560: .4byte gPlayerPartyCount -_080C5564: .4byte gPlayerParty - thumb_func_end sub_80C5530 - - thumb_func_start sub_80C5568 -sub_80C5568: @ 80C5568 - push {lr} - ldr r1, _080C5578 @ =gMain - ldr r0, _080C557C @ =sub_80C5580 - str r0, [r1, 0x8] - bl sub_8121E10 - pop {r0} - bx r0 - .align 2, 0 -_080C5578: .4byte gMain -_080C557C: .4byte sub_80C5580 - thumb_func_end sub_80C5568 - - thumb_func_start sub_80C5580 -sub_80C5580: @ 80C5580 - push {lr} - ldr r0, _080C5590 @ =gUnknown_02039270 - ldrb r1, [r0] - cmp r1, 0 - bne _080C5598 - ldr r0, _080C5594 @ =gScriptResult - strh r1, [r0] - b _080C559E - .align 2, 0 -_080C5590: .4byte gUnknown_02039270 -_080C5594: .4byte gScriptResult -_080C5598: - ldr r1, _080C55A8 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080C559E: - ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C55A8: .4byte gScriptResult -_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C5580 - - thumb_func_start sub_80C55B0 -sub_80C55B0: @ 80C55B0 - push {lr} - ldr r1, _080C55C0 @ =gMain - ldr r0, _080C55C4 @ =sub_80C55C8 - str r0, [r1, 0x8] - bl sub_8121E34 - pop {r0} - bx r0 - .align 2, 0 -_080C55C0: .4byte gMain -_080C55C4: .4byte sub_80C55C8 - thumb_func_end sub_80C55B0 - - thumb_func_start sub_80C55C8 -sub_80C55C8: @ 80C55C8 - push {r4,lr} - ldr r0, _080C55DC @ =gUnknown_02039270 - ldrb r4, [r0] - cmp r4, 0 - bne _080C55E4 - bl copy_player_party_from_sav1 - ldr r0, _080C55E0 @ =gScriptResult - strh r4, [r0] - b _080C55EE - .align 2, 0 -_080C55DC: .4byte gUnknown_02039270 -_080C55E0: .4byte gScriptResult -_080C55E4: - bl sub_80C5604 - ldr r1, _080C55FC @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080C55EE: - ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C55FC: .4byte gScriptResult -_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C55C8 - - thumb_func_start sub_80C5604 -sub_80C5604: @ 80C5604 - push {r4-r7,lr} - sub sp, 0x134 - add r0, sp, 0x12C - movs r1, 0 - str r1, [r0] - ldr r2, _080C5674 @ =0x0500004b - mov r1, sp - bl CpuSet - movs r5, 0 - movs r7, 0x64 - ldr r6, _080C5678 @ =gPlayerParty - mov r4, sp -_080C561E: - ldr r0, _080C567C @ =gUnknown_02039270 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080C5638 - subs r0, 0x1 - adds r1, r0, 0 - muls r1, r7 - adds r1, r6 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy -_080C5638: - adds r4, 0x64 - adds r5, 0x1 - cmp r5, 0x2 - ble _080C561E - add r0, sp, 0x130 - movs r1, 0 - str r1, [r0] - ldr r4, _080C5678 @ =gPlayerParty - ldr r2, _080C5680 @ =0x05000096 - adds r1, r4, 0 - bl CpuSet - mov r5, sp - add r6, sp, 0xC8 -_080C5654: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r5, 0x64 - adds r4, 0x64 - cmp r5, r6 - ble _080C5654 - bl CalculatePlayerPartyCount - add sp, 0x134 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5674: .4byte 0x0500004b -_080C5678: .4byte gPlayerParty -_080C567C: .4byte gUnknown_02039270 -_080C5680: .4byte 0x05000096 - thumb_func_end sub_80C5604 - - thumb_func_start sub_80C5684 -sub_80C5684: @ 80C5684 - push {lr} - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080C569C - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _080C56A0 -_080C569C: - movs r0, 0 - b _080C56A2 -_080C56A0: - movs r0, 0x1 -_080C56A2: - pop {r1} - bx r1 - thumb_func_end sub_80C5684 - - thumb_func_start sub_80C56A8 -sub_80C56A8: @ 80C56A8 - push {r4,r5,lr} - ldr r4, _080C56C8 @ =gPlayerParty - movs r5, 0 -_080C56AE: - adds r0, r4, 0 - bl sub_80C5684 - cmp r0, 0 - beq _080C56CC - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080C56CC - movs r0, 0 - b _080C56D6 - .align 2, 0 -_080C56C8: .4byte gPlayerParty -_080C56CC: - adds r5, 0x1 - adds r4, 0x64 - cmp r5, 0x5 - ble _080C56AE - movs r0, 0x1 -_080C56D6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C56A8 - - thumb_func_start sub_80C56DC -sub_80C56DC: @ 80C56DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080C5720 @ =gPlayerParty - adds r4, r0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x7 - bl AdjustFriendship - adds r0, r4, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - ldr r5, _080C5724 @ =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r5, 0 - bl StringGetEnd10 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5720: .4byte gPlayerParty -_080C5724: .4byte gStringVar1 - thumb_func_end sub_80C56DC - - thumb_func_start sub_80C5728 -sub_80C5728: @ 80C5728 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _080C5764 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80C5684 - cmp r0, 0 - beq _080C5768 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080C5768 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C5768 - movs r0, 0x1 - b _080C576A - .align 2, 0 -_080C5764: .4byte gPlayerParty -_080C5768: - movs r0, 0 -_080C576A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5728 - - thumb_func_start sub_80C5770 -sub_80C5770: @ 80C5770 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C5794 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C57CA - cmp r0, 0x1 - bgt _080C5798 - cmp r0, 0 - beq _080C579E - b _080C581A - .align 2, 0 -_080C5794: .4byte gTasks + 0x8 -_080C5798: - cmp r0, 0x2 - beq _080C57DC - b _080C581A -_080C579E: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bgt _080C57C4 -_080C57A8: - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_80C5728 - cmp r0, 0 - bne _080C57F4 - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - adds r1, r0, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080C57A8 -_080C57C4: - movs r0, 0x2 - strh r0, [r4] - b _080C581A -_080C57CA: - bl IsFieldMessageBoxHidden - lsls r0, 24 - cmp r0, 0 - beq _080C581A - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - b _080C581A -_080C57DC: - bl sub_80C56A8 - adds r1, r0, 0 - cmp r1, 0 - beq _080C580C - ldr r1, _080C57F0 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - b _080C5810 - .align 2, 0 -_080C57F0: .4byte gScriptResult -_080C57F4: - ldrb r0, [r4, 0x2] - bl sub_80C56DC - ldr r0, _080C5808 @ =UnknownString_81A1132 - bl ShowFieldMessage - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080C581A - .align 2, 0 -_080C5808: .4byte UnknownString_81A1132 -_080C580C: - ldr r0, _080C5820 @ =gScriptResult - strh r1, [r0] -_080C5810: - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask -_080C581A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5820: .4byte gScriptResult - thumb_func_end sub_80C5770 - - thumb_func_start sub_80C5824 -sub_80C5824: @ 80C5824 - push {lr} - ldr r0, _080C5838 @ =sub_80C5770 - movs r1, 0x50 - bl CreateTask - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080C5838: .4byte sub_80C5770 - thumb_func_end sub_80C5824 - - thumb_func_start overworld_poison -overworld_poison: @ 80C583C - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _080C58A8 @ =gPlayerParty - movs r7, 0 - movs r6, 0 - movs r5, 0x5 -_080C5848: - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _080C588C - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C588C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - str r0, [sp] - cmp r0, 0 - beq _080C587E - subs r0, 0x1 - str r0, [sp] - cmp r0, 0 - bne _080C5880 -_080C587E: - adds r6, 0x1 -_080C5880: - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r7, 0x1 -_080C588C: - adds r4, 0x64 - subs r5, 0x1 - cmp r5, 0 - bge _080C5848 - cmp r6, 0 - bne _080C589C - cmp r7, 0 - beq _080C58A0 -_080C589C: - bl overworld_posion_effect -_080C58A0: - cmp r6, 0 - beq _080C58AC - movs r0, 0x2 - b _080C58B6 - .align 2, 0 -_080C58A8: .4byte gPlayerParty -_080C58AC: - cmp r7, 0 - bne _080C58B4 - movs r0, 0 - b _080C58B6 -_080C58B4: - movs r0, 0x1 -_080C58B6: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end overworld_poison - - thumb_func_start sub_80C58C0 -sub_80C58C0: @ 80C58C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r1, 0 - bl GetMonData - lsls r0, 16 - str r0, [sp, 0x4] - lsrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x27 - bl GetMonData - adds r7, r0, 0 - movs r6, 0xF - ands r7, r6 - adds r0, r5, 0 - movs r1, 0x28 - bl GetMonData - mov r8, r0 - mov r1, r8 - ands r1, r6 - mov r8, r1 - adds r0, r5, 0 - movs r1, 0x29 - bl GetMonData - mov r9, r0 - mov r3, r9 - ands r3, r6 - mov r9, r3 - adds r0, r5, 0 - movs r1, 0x2A - bl GetMonData - mov r10, r0 - ands r0, r6 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0x2B - bl GetMonData - adds r4, r0, 0 - ands r4, r6 - adds r0, r5, 0 - movs r1, 0x2C - bl GetMonData - adds r2, r0, 0 - ands r2, r6 - mov r1, r8 - mov r3, r9 - eors r1, r3 - mov r8, r1 - mov r0, r8 - muls r0, r7 - movs r1, 0xFF - ldr r3, [sp] - ands r3, r1 - eors r0, r3 - eors r4, r2 - mov r1, r10 - muls r1, r4 - ldr r3, [sp, 0x4] - lsrs r2, r3, 24 - eors r1, r2 - lsls r0, 8 - adds r0, r1 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C58C0 - - thumb_func_start sub_80C5964 -sub_80C5964: @ 80C5964 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x1 - ldr r3, _080C5980 @ =gUnknown_083D180C -_080C596E: - lsls r0, r1, 3 - adds r0, r3 - ldrh r0, [r0, 0x4] - cmp r2, r0 - bcs _080C5984 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _080C5990 - .align 2, 0 -_080C5980: .4byte gUnknown_083D180C -_080C5984: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xE - bls _080C596E - adds r0, r1, 0 -_080C5990: - pop {r1} - bx r1 - thumb_func_end sub_80C5964 - - thumb_func_start sub_80C5994 -sub_80C5994: @ 80C5994 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r6, 16 - lsrs r6, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D54 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r6, 0 - bl sub_80C5964 - lsls r0, 24 - ldr r1, _080C5A04 @ =gUnknown_083D180C - lsrs r0, 21 - adds r0, r1 - ldrh r1, [r0] - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - ldrb r2, [r0, 0x2] - movs r3, 0 - ldrh r4, [r0, 0x4] - movs r5, 0 - adds r0, r6, 0 - movs r1, 0 - subs r0, r4 - sbcs r1, r5 - bl __udivdi3 - ldr r2, [sp] - ldr r3, [sp, 0x4] - adds r2, r0 - adcs r3, r1 - str r2, [sp] - str r3, [sp, 0x4] - adds r0, r7, 0 - movs r1, 0 - bl __muldi3 - movs r2, 0xA - movs r3, 0 - bl __udivdi3 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C5A04: .4byte gUnknown_083D180C - thumb_func_end sub_80C5994 - - thumb_func_start sub_80C5A08 -sub_80C5A08: @ 80C5A08 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - ldr r1, _080C5A78 @ =gUnknown_083D188C - mov r0, sp - movs r2, 0x2 - bl memcpy - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 1 - adds r0, r4, 0 - bl __floatsidf - cmp r4, 0 - bge _080C5A32 - ldr r2, _080C5A7C @ =0x41f00000 - ldr r3, _080C5A80 @ =0x00000000 - bl __adddf3 -_080C5A32: - ldr r2, _080C5A84 @ =0x40396666 - ldr r3, _080C5A88 @ =0x66666666 - bl __divdf3 - bl __fixunsdfsi - adds r5, r0, 0 - movs r1, 0xA - bl __udivsi3 - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x8 - bl ConvertIntToDecimalStringN - adds r6, r0, 0 - mov r1, sp - bl StringAppend - adds r6, r0, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __umodsi3 - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C5A78: .4byte gUnknown_083D188C -_080C5A7C: .4byte 0x41f00000 -_080C5A80: .4byte 0x00000000 -_080C5A84: .4byte 0x40396666 -_080C5A88: .4byte 0x66666666 - thumb_func_end sub_80C5A08 - - thumb_func_start sub_80C5A8C -sub_80C5A8C: @ 80C5A8C - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080C5AA4 @ =gScriptResult - ldrh r0, [r1] - cmp r0, 0xFF - bne _080C5AA8 - movs r0, 0 - b _080C5B12 - .align 2, 0 -_080C5AA4: .4byte gScriptResult -_080C5AA8: - ldrh r1, [r1] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080C5AD0 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _080C5ACA - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - cmp r0, r6 - beq _080C5AD4 -_080C5ACA: - movs r0, 0x1 - b _080C5B12 - .align 2, 0 -_080C5AD0: .4byte gPlayerParty -_080C5AD4: - mov r4, sp - adds r0, r5, 0 - bl sub_80C58C0 - strh r0, [r4] - mov r0, sp - ldrh r1, [r0] - adds r0, r6, 0 - bl sub_80C5994 - adds r5, r0, 0 - ldrh r1, [r7] - adds r0, r6, 0 - bl sub_80C5994 - adds r4, r0, 0 - ldr r0, _080C5B0C @ =gStringVar2 - adds r1, r5, 0 - bl sub_80C5A08 - cmp r5, r4 - bls _080C5B10 - mov r0, sp - ldrh r0, [r0] - strh r0, [r7] - movs r0, 0x3 - b _080C5B12 - .align 2, 0 -_080C5B0C: .4byte gStringVar2 -_080C5B10: - movs r0, 0x2 -_080C5B12: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C5A8C - - thumb_func_start sub_80C5B1C -sub_80C5B1C: @ 80C5B1C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r1, [r5] - adds r0, r4, 0 - bl sub_80C5994 - adds r1, r0, 0 - ldr r0, _080C5B58 @ =gStringVar3 - bl sub_80C5A08 - ldr r0, _080C5B5C @ =gStringVar1 - movs r1, 0xB - muls r1, r4 - ldr r2, _080C5B60 @ =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r1, [r5] - movs r0, 0x81 - lsls r0, 8 - cmp r1, r0 - bne _080C5B6C - ldr r0, _080C5B64 @ =gStringVar2 - ldr r1, _080C5B68 @ =gOtherText_Marco - bl StringCopy - b _080C5B74 - .align 2, 0 -_080C5B58: .4byte gStringVar3 -_080C5B5C: .4byte gStringVar1 -_080C5B60: .4byte gSpeciesNames -_080C5B64: .4byte gStringVar2 -_080C5B68: .4byte gOtherText_Marco -_080C5B6C: - ldr r0, _080C5B7C @ =gStringVar2 - ldr r1, _080C5B80 @ =gSaveBlock2 - bl StringCopy -_080C5B74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C5B7C: .4byte gStringVar2 -_080C5B80: .4byte gSaveBlock2 - thumb_func_end sub_80C5B1C - - thumb_func_start sub_80C5B84 -sub_80C5B84: @ 80C5B84 - push {lr} - ldr r0, _080C5B94 @ =0x00004047 - movs r1, 0x81 - lsls r1, 8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080C5B94: .4byte 0x00004047 - thumb_func_end sub_80C5B84 - - thumb_func_start sub_80C5B98 -sub_80C5B98: @ 80C5B98 - push {lr} - ldr r0, _080C5BB0 @ =0x00004047 - bl GetVarPointer - adds r1, r0, 0 - movs r0, 0x99 - lsls r0, 1 - bl sub_80C5B1C - pop {r0} - bx r0 - .align 2, 0 -_080C5BB0: .4byte 0x00004047 - thumb_func_end sub_80C5B98 - - thumb_func_start sub_80C5BB4 -sub_80C5BB4: @ 80C5BB4 - push {r4,lr} - ldr r0, _080C5BD4 @ =0x00004047 - bl GetVarPointer - adds r1, r0, 0 - ldr r4, _080C5BD8 @ =gScriptResult - movs r0, 0x99 - lsls r0, 1 - bl sub_80C5A8C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5BD4: .4byte 0x00004047 -_080C5BD8: .4byte gScriptResult - thumb_func_end sub_80C5BB4 - - thumb_func_start sub_80C5BDC -sub_80C5BDC: @ 80C5BDC - push {lr} - ldr r0, _080C5BEC @ =0x0000404f - movs r1, 0x81 - lsls r1, 8 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_080C5BEC: .4byte 0x0000404f - thumb_func_end sub_80C5BDC - - thumb_func_start sub_80C5BF0 -sub_80C5BF0: @ 80C5BF0 - push {lr} - ldr r0, _080C5C04 @ =0x0000404f - bl GetVarPointer - adds r1, r0, 0 - ldr r0, _080C5C08 @ =0x00000143 - bl sub_80C5B1C - pop {r0} - bx r0 - .align 2, 0 -_080C5C04: .4byte 0x0000404f -_080C5C08: .4byte 0x00000143 - thumb_func_end sub_80C5BF0 - - thumb_func_start sub_80C5C0C -sub_80C5C0C: @ 80C5C0C - push {r4,lr} - ldr r0, _080C5C2C @ =0x0000404f - bl GetVarPointer - adds r1, r0, 0 - ldr r4, _080C5C30 @ =gScriptResult - ldr r0, _080C5C34 @ =0x00000143 - bl sub_80C5A8C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5C2C: .4byte 0x0000404f -_080C5C30: .4byte gScriptResult -_080C5C34: .4byte 0x00000143 - thumb_func_end sub_80C5C0C - - thumb_func_start sub_80C5C38 -sub_80C5C38: @ 80C5C38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r7, 0 - add r4, sp, 0x8 - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080C5CC0 @ =gUnknown_083D188E - mov r0, sp - movs r2, 0x7 - bl memcpy - mov r8, r4 - cmp r6, 0xA - bhi _080C5CB2 - cmp r5, 0x40 - bhi _080C5CB2 - ldr r0, _080C5CC4 @ =gSaveBlock1 - ldr r1, _080C5CC8 @ =0x00003110 - adds r0, r1 - adds r0, r6, r0 - strb r5, [r0] - movs r5, 0 -_080C5C70: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C5CCC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C5CA2 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _080C5CA2 - mov r1, sp - adds r0, r1, r6 - ldrb r1, [r0] - adds r0, r4, 0 - mov r2, r8 - bl SetMonData - movs r7, 0x1 -_080C5CA2: - adds r5, 0x1 - cmp r5, 0x5 - ble _080C5C70 - cmp r7, 0 - beq _080C5CB2 - ldr r0, _080C5CD0 @ =0x0000083b - bl FlagSet -_080C5CB2: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5CC0: .4byte gUnknown_083D188E -_080C5CC4: .4byte gSaveBlock1 -_080C5CC8: .4byte 0x00003110 -_080C5CCC: .4byte gPlayerParty -_080C5CD0: .4byte 0x0000083b - thumb_func_end sub_80C5C38 - - thumb_func_start sub_80C5CD4 -sub_80C5CD4: @ 80C5CD4 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5D64 @ =gUnknown_083D1898 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5D68 @ =gUnknown_083D18A0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5D70 @ =0xffff0000 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x1 - strh r0, [r7, 0xC] - strh r6, [r7, 0xA] - strh r6, [r7, 0x8] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5D4E - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5D4E: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5D58 - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5D58: - ldr r0, _080C5D74 @ =gUnknown_020387EC - str r7, [r0] - movs r4, 0 - ldr r5, _080C5D78 @ =gSprites - b _080C5D94 - .align 2, 0 -_080C5D64: .4byte gUnknown_083D1898 -_080C5D68: .4byte gUnknown_083D18A0 -_080C5D6C: .4byte gSpriteTemplate_83D18A8 -_080C5D70: .4byte 0xffff0000 -_080C5D74: .4byte gUnknown_020387EC -_080C5D78: .4byte gSprites -_080C5D7C: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r7, 0x4] - cmp r4, 0x3 - bhi _080C5D8C - negs r1, r1 -_080C5D8C: - strh r1, [r0, 0x2E] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080C5D94: - cmp r4, 0x7 - bhi _080C5DB2 - lsls r1, r4, 5 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080C5D7C -_080C5DB2: - ldr r1, _080C5DC8 @ =REG_BLDCNT - movs r0, 0xBF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5DC8: .4byte REG_BLDCNT - thumb_func_end sub_80C5CD4 - - thumb_func_start sub_80C5DCC -sub_80C5DCC: @ 80C5DCC - push {r4,lr} - ldr r4, _080C5E10 @ =gUnknown_020387EC - ldr r1, [r4] - ldrh r0, [r1, 0x8] - cmp r0, 0 - bne _080C5DF0 - ldr r0, [r1, 0x10] - ldr r2, _080C5E14 @ =0x0000ffff - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5E18 @ =sub_80C603C - bl sub_80C61B0 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5DF0: - ldr r1, [r4] - ldrh r0, [r1, 0xA] - cmp r0, 0x7 - bls _080C5E0A - ldrh r0, [r1, 0x6] - ldrh r2, [r1, 0xC] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - bgt _080C5E1C -_080C5E0A: - movs r0, 0 - b _080C5E2E - .align 2, 0 -_080C5E10: .4byte gUnknown_020387EC -_080C5E14: .4byte 0x0000ffff -_080C5E18: .4byte sub_80C603C -_080C5E1C: - movs r0, 0x50 - strh r0, [r1, 0xC] - ldr r0, _080C5E34 @ =REG_BLDCNT - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - bl ClearGpuRegBits - movs r0, 0x1 -_080C5E2E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C5E34: .4byte REG_BLDCNT - thumb_func_end sub_80C5DCC - - thumb_func_start sub_80C5E38 -sub_80C5E38: @ 80C5E38 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5EC8 @ =gUnknown_083D1898 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5ECC @ =gUnknown_083D18A0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5ED4 @ =0xffff0000 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x50 - strh r0, [r7, 0xC] - strh r6, [r7, 0x8] - strh r6, [r7, 0xA] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5EB2 - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5EB2: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5EBC - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5EBC: - ldr r0, _080C5ED8 @ =gUnknown_020387EC - str r7, [r0] - movs r5, 0 - ldr r6, _080C5EDC @ =gSprites - b _080C5F4A - .align 2, 0 -_080C5EC8: .4byte gUnknown_083D1898 -_080C5ECC: .4byte gUnknown_083D18A0 -_080C5ED0: .4byte gSpriteTemplate_83D18C0 -_080C5ED4: .4byte 0xffff0000 -_080C5ED8: .4byte gUnknown_020387EC -_080C5EDC: .4byte gSprites -_080C5EE0: - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - strh r0, [r1, 0x2E] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, _080C5EF4 @ =gSprites - b _080C5F2A - .align 2, 0 -_080C5EF4: .4byte gSprites -_080C5EF8: - lsls r1, r5, 21 - movs r0, 0x80 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080C5F6E - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - negs r0, r0 - strh r0, [r1, 0x2E] - ldr r0, _080C5F88 @ =0x0000ffff - strh r0, [r1, 0x30] - ldr r1, _080C5F8C @ =gSprites - lsls r4, r5, 5 -_080C5F2A: - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - movs r2, 0 - strh r1, [r0, 0x32] - strh r2, [r0, 0x36] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C5F4A: - cmp r5, 0x7 - bhi _080C5F6E - cmp r5, 0x3 - bhi _080C5EF8 - lsls r4, r5, 5 - adds r1, r4, 0 - subs r1, 0x70 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _080C5EE0 -_080C5F6E: - ldr r1, _080C5F90 @ =REG_BLDCNT - movs r0, 0xFF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r0, _080C5F94 @ =sub_80C6078 - bl sub_80C61B0 - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5F88: .4byte 0x0000ffff -_080C5F8C: .4byte gSprites -_080C5F90: .4byte REG_BLDCNT -_080C5F94: .4byte sub_80C6078 - thumb_func_end sub_80C5E38 - - thumb_func_start sub_80C5F98 -sub_80C5F98: @ 80C5F98 - push {r4,lr} - ldr r4, _080C5FB0 @ =gUnknown_020387EC - ldr r2, [r4] - ldrh r0, [r2, 0x8] - cmp r0, 0x1 - beq _080C5FEC - cmp r0, 0x1 - bgt _080C5FB4 - cmp r0, 0 - beq _080C5FBA - b _080C602C - .align 2, 0 -_080C5FB0: .4byte gUnknown_020387EC -_080C5FB4: - cmp r0, 0x2 - beq _080C6008 - b _080C602C -_080C5FBA: - ldrh r0, [r2, 0xC] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _080C6034 - ldr r0, [r2, 0x10] - ldr r2, _080C5FE4 @ =0x0000ffff - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5FE8 @ =sub_80C603C - bl SetHBlankCallback - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xC] - b _080C6000 - .align 2, 0 -_080C5FE4: .4byte 0x0000ffff -_080C5FE8: .4byte sub_80C603C -_080C5FEC: - ldrh r0, [r2, 0xA] - cmp r0, 0x8 - bne _080C6034 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, [r4] -_080C6000: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C6034 -_080C6008: - ldr r0, _080C6030 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r2] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - bl ClearGpuRegBits - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C602C: - movs r0, 0x1 - b _080C6036 - .align 2, 0 -_080C6030: .4byte REG_BLDCNT -_080C6034: - movs r0, 0 -_080C6036: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5F98 - - thumb_func_start sub_80C603C -sub_80C603C: @ 80C603C - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C6060 @ =REG_VCOUNT - ldrh r1, [r0] - movs r3, 0xFF - adds r0, r3, 0 - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0x50 - bne _080C6068 - ldr r1, _080C6064 @ =REG_BLDCNT - movs r0, 0x8F - strh r0, [r1] - b _080C606C - .align 2, 0 -_080C6060: .4byte REG_VCOUNT -_080C6064: .4byte REG_BLDCNT -_080C6068: - ldr r0, _080C6074 @ =REG_BLDCNT - strh r3, [r0] -_080C606C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C6074: .4byte REG_BLDCNT - thumb_func_end sub_80C603C - - thumb_func_start sub_80C6078 -sub_80C6078: @ 80C6078 - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C60B0 @ =REG_VCOUNT - ldrh r1, [r0] - movs r0, 0xFF - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080C60B4 @ =gUnknown_020387EC - ldr r0, [r0] - movs r3, 0xC - ldrsh r2, [r0, r3] - movs r0, 0x50 - subs r0, r2 - cmp r1, r0 - ble _080C60BC - mov r0, sp - ldrh r1, [r0] - adds r0, r2, 0 - adds r0, 0x50 - cmp r1, r0 - bge _080C60BC - ldr r1, _080C60B8 @ =REG_BLDY - movs r0, 0 - b _080C60C0 - .align 2, 0 -_080C60B0: .4byte REG_VCOUNT -_080C60B4: .4byte gUnknown_020387EC -_080C60B8: .4byte REG_BLDY -_080C60BC: - ldr r1, _080C60C8 @ =REG_BLDY - movs r0, 0x10 -_080C60C0: - strh r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C60C8: .4byte REG_BLDY - thumb_func_end sub_80C6078 - - thumb_func_start sub_80C60CC -sub_80C60CC: @ 80C60CC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bls _080C611C - adds r0, r2, 0 - bl DestroySprite - ldr r4, _080C6124 @ =gUnknown_020387EC - ldr r1, [r4] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _080C611C - ldrh r0, [r1] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldr r0, [r0, 0x10] - ldr r2, _080C6128 @ =0x0000ffff - movs r1, 0 - bl BlendPalettes - ldr r0, _080C612C @ =sub_80C6078 - bl SetHBlankCallback -_080C611C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6124: .4byte gUnknown_020387EC -_080C6128: .4byte 0x0000ffff -_080C612C: .4byte sub_80C6078 - thumb_func_end sub_80C60CC - - thumb_func_start sub_80C6130 -sub_80C6130: @ 80C6130 - push {r4,r5,lr} - adds r2, r0, 0 - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080C61AA - ldr r1, _080C6184 @ =gUnknown_020387EC - ldr r0, [r1] - movs r3, 0xC - ldrsh r4, [r0, r3] - adds r5, r1, 0 - cmp r4, 0x1 - bne _080C61AA - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0xF - lsls r0, 16 - movs r1, 0x87 - lsls r1, 17 - cmp r0, r1 - bhi _080C616C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080C616C: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080C6188 - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _080C6196 - b _080C6194 - .align 2, 0 -_080C6184: .4byte gUnknown_020387EC -_080C6188: - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - bgt _080C6196 -_080C6194: - strh r4, [r2, 0x36] -_080C6196: - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080C61AA - ldr r0, [r5] - ldrh r1, [r0, 0xA] - adds r1, 0x1 - strh r1, [r0, 0xA] - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] -_080C61AA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6130 - - thumb_func_start sub_80C61B0 -sub_80C61B0: @ 80C61B0 - push {r4-r6,lr} - ldr r2, _080C61F0 @ =INTR_CHECK - ldrh r1, [r2] - movs r5, 0x2 - orrs r1, r5 - strh r1, [r2] - ldr r3, _080C61F4 @ =REG_DISPSTAT - ldrh r1, [r3] - movs r2, 0x10 - orrs r1, r2 - strh r1, [r3] - ldr r4, _080C61F8 @ =0x04000208 - ldrh r2, [r4] - movs r6, 0 - strh r6, [r4] - ldr r3, _080C61FC @ =0x04000200 - ldrh r1, [r3] - orrs r1, r5 - strh r1, [r3] - strh r2, [r4] - ldr r2, _080C6200 @ =gMain - ldrh r1, [r2, 0x1C] - orrs r1, r5 - ldrh r3, [r2, 0x1C] - orrs r1, r6 - strh r1, [r2, 0x1C] - bl SetHBlankCallback - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C61F0: .4byte INTR_CHECK -_080C61F4: .4byte REG_DISPSTAT -_080C61F8: .4byte 0x04000208 -_080C61FC: .4byte 0x04000200 -_080C6200: .4byte gMain - thumb_func_end sub_80C61B0 - - thumb_func_start ClearGpuRegBits -ClearGpuRegBits: @ 80C6204 - push {r4,r5,lr} - ldr r3, _080C6248 @ =INTR_CHECK - ldrh r1, [r3] - ldr r2, _080C624C @ =0x0000fffd - adds r0, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r3, _080C6250 @ =REG_DISPSTAT - ldrh r1, [r3] - ldr r0, _080C6254 @ =0x0000ffef - ands r0, r1 - strh r0, [r3] - ldr r4, _080C6258 @ =0x04000208 - ldrh r3, [r4] - movs r0, 0 - strh r0, [r4] - ldr r5, _080C625C @ =0x04000200 - ldrh r1, [r5] - adds r0, r2, 0 - ands r0, r1 - strh r0, [r5] - strh r3, [r4] - ldr r0, _080C6260 @ =gMain - ldrh r1, [r0, 0x1C] - ands r2, r1 - ldrh r1, [r0, 0x1C] - strh r2, [r0, 0x1C] - movs r0, 0 - bl SetHBlankCallback - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6248: .4byte INTR_CHECK -_080C624C: .4byte 0x0000fffd -_080C6250: .4byte REG_DISPSTAT -_080C6254: .4byte 0x0000ffef -_080C6258: .4byte 0x04000208 -_080C625C: .4byte 0x04000200 -_080C6260: .4byte gMain - thumb_func_end ClearGpuRegBits - - thumb_func_start sub_80C6264 -sub_80C6264: @ 80C6264 - push {lr} - ldr r0, _080C6278 @ =gUnknown_0203923C - ldr r1, _080C627C @ =gMapHeader - ldr r1, [r1, 0x4] - bl sub_80BBFD8 - bl sub_80BB5E4 - pop {r0} - bx r0 - .align 2, 0 -_080C6278: .4byte gUnknown_0203923C -_080C627C: .4byte gMapHeader - thumb_func_end sub_80C6264 - - thumb_func_start sub_80C6280 -sub_80C6280: @ 80C6280 - push {lr} - ldr r1, _080C6294 @ =gUnknown_0202FF84 - ldr r0, [r1, 0x4] - cmp r0, 0x2 - beq _080C62AA - cmp r0, 0x2 - bgt _080C6298 - cmp r0, 0x1 - beq _080C62A2 - b _080C62BE - .align 2, 0 -_080C6294: .4byte gUnknown_0202FF84 -_080C6298: - cmp r0, 0x3 - beq _080C62AE - cmp r0, 0x4 - beq _080C62B8 - b _080C62BE -_080C62A2: - movs r0, 0x8 - str r0, [r1, 0x14] - movs r0, 0x28 - b _080C62BC -_080C62AA: - movs r0, 0x8 - b _080C62BA -_080C62AE: - movs r0, 0x8 - negs r0, r0 - str r0, [r1, 0x14] - movs r0, 0x18 - b _080C62BC -_080C62B8: - movs r0, 0x18 -_080C62BA: - str r0, [r1, 0x14] -_080C62BC: - str r0, [r1, 0x18] -_080C62BE: - pop {r0} - bx r0 - thumb_func_end sub_80C6280 - - thumb_func_start SetUpFieldMove_SecretPower -SetUpFieldMove_SecretPower: @ 80C62C4 - push {r4,lr} - bl sub_80BB63C - ldr r0, _080C6318 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080C636E - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080C636E - ldr r4, _080C631C @ =gUnknown_0203923C - adds r1, r4, 0x2 - adds r0, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80571EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6330 - bl sub_80C6264 - ldr r1, _080C6320 @ =gUnknown_0300485C - ldr r0, _080C6324 @ =sub_808AB90 - str r0, [r1] - ldr r1, _080C6328 @ =gUnknown_03005CE4 - ldr r0, _080C632C @ =sub_80C639C - b _080C6380 - .align 2, 0 -_080C6318: .4byte gScriptResult -_080C631C: .4byte gUnknown_0203923C -_080C6320: .4byte gUnknown_0300485C -_080C6324: .4byte sub_808AB90 -_080C6328: .4byte gUnknown_03005CE4 -_080C632C: .4byte sub_80C639C -_080C6330: - adds r0, r4, 0 - bl sub_805720C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6360 - bl sub_80C6264 - ldr r1, _080C6350 @ =gUnknown_0300485C - ldr r0, _080C6354 @ =sub_808AB90 - str r0, [r1] - ldr r1, _080C6358 @ =gUnknown_03005CE4 - ldr r0, _080C635C @ =sub_80C64A8 - b _080C6380 - .align 2, 0 -_080C6350: .4byte gUnknown_0300485C -_080C6354: .4byte sub_808AB90 -_080C6358: .4byte gUnknown_03005CE4 -_080C635C: .4byte sub_80C64A8 -_080C6360: - adds r0, r4, 0 - bl is_tile_x98 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C6372 -_080C636E: - movs r0, 0 - b _080C6384 -_080C6372: - bl sub_80C6264 - ldr r1, _080C638C @ =gUnknown_0300485C - ldr r0, _080C6390 @ =sub_808AB90 - str r0, [r1] - ldr r1, _080C6394 @ =gUnknown_03005CE4 - ldr r0, _080C6398 @ =sub_80C660C -_080C6380: - str r0, [r1] - movs r0, 0x1 -_080C6384: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C638C: .4byte gUnknown_0300485C -_080C6390: .4byte sub_808AB90 -_080C6394: .4byte gUnknown_03005CE4 -_080C6398: .4byte sub_80C660C - thumb_func_end SetUpFieldMove_SecretPower - - thumb_func_start sub_80C639C -sub_80C639C: @ 80C639C - push {lr} - ldr r1, _080C63B0 @ =gUnknown_0202FF84 - ldr r0, _080C63B4 @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C63B8 @ =gUnknown_081A2CE6 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C63B0: .4byte gUnknown_0202FF84 -_080C63B4: .4byte gUnknown_03005CE0 -_080C63B8: .4byte gUnknown_081A2CE6 - thumb_func_end sub_80C639C - - thumb_func_start FldEff_UseSecretPowerCave -FldEff_UseSecretPowerCave: @ 80C63BC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C63E0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C63E4 @ =sub_80C63E8 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C63E0: .4byte gTasks -_080C63E4: .4byte sub_80C63E8 - thumb_func_end FldEff_UseSecretPowerCave - - thumb_func_start sub_80C63E8 -sub_80C63E8: @ 80C63E8 - push {lr} - movs r0, 0xB - bl FieldEffectActiveListRemove - movs r0, 0x37 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C63E8 - - thumb_func_start FldEff_SecretPowerCave -FldEff_SecretPowerCave: @ 80C63FC - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C643C @ =gSpriteTemplate_83D2614 - ldr r3, _080C6440 @ =gSprites - ldr r1, _080C6444 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6448 @ =gUnknown_0202FF84 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C643C: .4byte gSpriteTemplate_83D2614 -_080C6440: .4byte gSprites -_080C6444: .4byte gPlayerAvatar -_080C6448: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_SecretPowerCave - - thumb_func_start sub_80C644C -sub_80C644C: @ 80C644C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x83 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C6464 @ =sub_80C6468 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6464: .4byte sub_80C6468 - thumb_func_end sub_80C644C - - thumb_func_start sub_80C6468 -sub_80C6468: @ 80C6468 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C6488 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6490 - bl sub_80BB800 - b _080C6490 -_080C6488: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6494 @ =sub_80C6498 - str r0, [r1, 0x1C] -_080C6490: - pop {r0} - bx r0 - .align 2, 0 -_080C6494: .4byte sub_80C6498 - thumb_func_end sub_80C6468 - - thumb_func_start sub_80C6498 -sub_80C6498: @ 80C6498 - push {lr} - movs r1, 0x37 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6498 - - thumb_func_start sub_80C64A8 -sub_80C64A8: @ 80C64A8 - push {lr} - ldr r1, _080C64BC @ =gUnknown_0202FF84 - ldr r0, _080C64C0 @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C64C4 @ =gUnknown_081A2D3E - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C64BC: .4byte gUnknown_0202FF84 -_080C64C0: .4byte gUnknown_03005CE0 -_080C64C4: .4byte gUnknown_081A2D3E - thumb_func_end sub_80C64A8 - - thumb_func_start FldEff_UseSecretPowerTree -FldEff_UseSecretPowerTree: @ 80C64C8 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C64EC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C64F0 @ =sub_80C64F4 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C64EC: .4byte gTasks -_080C64F0: .4byte sub_80C64F4 - thumb_func_end FldEff_UseSecretPowerTree - - thumb_func_start sub_80C64F4 -sub_80C64F4: @ 80C64F4 - push {lr} - movs r0, 0x1A - bl FieldEffectActiveListRemove - movs r0, 0x38 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C64F4 - - thumb_func_start FldEff_SecretPowerTree -FldEff_SecretPowerTree: @ 80C6508 - push {r4,lr} - ldr r1, _080C6580 @ =gUnknown_0203923C - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - adds r2, r0, 0 - ldr r1, _080C6584 @ =0x00000fff - adds r0, r1, 0 - ands r2, r0 - cmp r2, 0x96 - bne _080C652A - ldr r1, _080C6588 @ =gUnknown_0202FF84 - movs r0, 0 - str r0, [r1, 0x1C] -_080C652A: - cmp r2, 0x9C - bne _080C6534 - ldr r1, _080C6588 @ =gUnknown_0202FF84 - movs r0, 0x2 - str r0, [r1, 0x1C] -_080C6534: - bl sub_80C6280 - ldr r0, _080C658C @ =gSpriteTemplate_83D262C - ldr r3, _080C6590 @ =gSprites - ldr r1, _080C6594 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6588 @ =gUnknown_0202FF84 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - ldr r0, [r4, 0x1C] - cmp r0, 0x1 - beq _080C6572 - cmp r0, 0x3 - bne _080C6576 -_080C6572: - bl sub_80BB800 -_080C6576: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6580: .4byte gUnknown_0203923C -_080C6584: .4byte 0x00000fff -_080C6588: .4byte gUnknown_0202FF84 -_080C658C: .4byte gSpriteTemplate_83D262C -_080C6590: .4byte gSprites -_080C6594: .4byte gPlayerAvatar - thumb_func_end FldEff_SecretPowerTree - - thumb_func_start sub_80C6598 -sub_80C6598: @ 80C6598 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x9B - bl PlaySE - ldr r0, _080C65BC @ =gUnknown_0202FF84 - ldr r1, [r0, 0x1C] - adds r2, r4, 0 - adds r2, 0x2A - movs r0, 0 - strb r1, [r2] - strh r0, [r4, 0x2E] - ldr r0, _080C65C0 @ =sub_80C65C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65BC: .4byte gUnknown_0202FF84 -_080C65C0: .4byte sub_80C65C4 - thumb_func_end sub_80C6598 - - thumb_func_start sub_80C65C4 -sub_80C65C4: @ 80C65C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _080C65EE - ldr r0, _080C65F4 @ =gUnknown_0202FF84 - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080C65E2 - cmp r0, 0x2 - bne _080C65E6 -_080C65E2: - bl sub_80BB800 -_080C65E6: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C65F8 @ =sub_80C65FC - str r0, [r4, 0x1C] -_080C65EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65F4: .4byte gUnknown_0202FF84 -_080C65F8: .4byte sub_80C65FC - thumb_func_end sub_80C65C4 - - thumb_func_start sub_80C65FC -sub_80C65FC: @ 80C65FC - push {lr} - movs r1, 0x38 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C65FC - - thumb_func_start sub_80C660C -sub_80C660C: @ 80C660C - push {lr} - ldr r1, _080C6620 @ =gUnknown_0202FF84 - ldr r0, _080C6624 @ =gUnknown_03005CE0 - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C6628 @ =gUnknown_081A2D96 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C6620: .4byte gUnknown_0202FF84 -_080C6624: .4byte gUnknown_03005CE0 -_080C6628: .4byte gUnknown_081A2D96 - thumb_func_end sub_80C660C - - thumb_func_start FldEff_UseSecretPowerShrub -FldEff_UseSecretPowerShrub: @ 80C662C - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6650 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C6654 @ =sub_80C6658 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C6650: .4byte gTasks -_080C6654: .4byte sub_80C6658 - thumb_func_end FldEff_UseSecretPowerShrub - - thumb_func_start sub_80C6658 -sub_80C6658: @ 80C6658 - push {lr} - movs r0, 0x1B - bl FieldEffectActiveListRemove - movs r0, 0x39 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C6658 - - thumb_func_start FldEff_SecretPowerShrub -FldEff_SecretPowerShrub: @ 80C666C - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C66AC @ =gSpriteTemplate_83D2644 - ldr r3, _080C66B0 @ =gSprites - ldr r1, _080C66B4 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C66B8 @ =gUnknown_0202FF84 - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C66AC: .4byte gSpriteTemplate_83D2644 -_080C66B0: .4byte gSprites -_080C66B4: .4byte gPlayerAvatar -_080C66B8: .4byte gUnknown_0202FF84 - thumb_func_end FldEff_SecretPowerShrub - - thumb_func_start sub_80C66BC -sub_80C66BC: @ 80C66BC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA9 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C66D4 @ =sub_80C66D8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C66D4: .4byte sub_80C66D8 - thumb_func_end sub_80C66BC - - thumb_func_start sub_80C66D8 -sub_80C66D8: @ 80C66D8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C66F8 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6700 - bl sub_80BB800 - b _080C6700 -_080C66F8: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6704 @ =sub_80C6708 - str r0, [r1, 0x1C] -_080C6700: - pop {r0} - bx r0 - .align 2, 0 -_080C6704: .4byte sub_80C6708 - thumb_func_end sub_80C66D8 - - thumb_func_start sub_80C6708 -sub_80C6708: @ 80C6708 - push {lr} - movs r1, 0x39 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6708 - - thumb_func_start FldEff_PCTurnOn -FldEff_PCTurnOn: @ 80C6718 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _080C6758 @ =sub_80C6760 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C675C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, sp - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - ldrh r0, [r4] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6758: .4byte sub_80C6760 -_080C675C: .4byte gTasks - thumb_func_end FldEff_PCTurnOn - - thumb_func_start sub_80C6760 -sub_80C6760: @ 80C6760 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C6788 @ =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - subs r0, 0x4 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bhi _080C682E - lsls r0, 2 - ldr r1, _080C678C @ =_080C6790 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6788: .4byte gTasks + 0x8 -_080C678C: .4byte _080C6790 - .align 2, 0 -_080C6790: - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C6800 -_080C67D4: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - b _080C67EE -_080C67E2: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x88 - lsls r2, 2 -_080C67EE: - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - b _080C682E -_080C6800: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - movs r0, 0x3D - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080C6834 -_080C682E: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] -_080C6834: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6760 - - thumb_func_start sub_80C683C -sub_80C683C: @ 80C683C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r0, 0x3 - bl PlaySE - ldr r0, _080C6874 @ =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080C6878 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r2, 0xE2 - lsls r2, 4 - bl MapGridSetMetatileIdAt - b _080C6888 - .align 2, 0 -_080C6874: .4byte 0x00004054 -_080C6878: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, _080C68A0 @ =0x00000e21 - bl MapGridSetMetatileIdAt -_080C6888: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C68A0: .4byte 0x00000e21 - thumb_func_end sub_80C683C - - thumb_func_start sub_80C68A4 -sub_80C68A4: @ 80C68A4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080C68E4 @ =sub_80C68EC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C68E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - strh r6, [r1, 0xC] - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C68E4: .4byte sub_80C68EC -_080C68E8: .4byte gTasks - thumb_func_end sub_80C68A4 - - thumb_func_start sub_80C68EC -sub_80C68EC: @ 80C68EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C690C @ =gTasks + 0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0x6 - bne _080C6910 - movs r0, 0 - b _080C6912 - .align 2, 0 -_080C690C: .4byte gTasks + 0x8 -_080C6910: - adds r0, r1, 0x1 -_080C6912: - strh r0, [r4, 0x6] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080C6964 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - bne _080C692C - movs r2, 0 - ldrsh r0, [r4, r2] - bl sub_80C696C -_080C692C: - movs r3, 0x2 - ldrsh r0, [r4, r3] - movs r2, 0x4 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x8] - ldrh r3, [r4] - adds r2, r3 - lsls r2, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldrh r1, [r4, 0x8] - movs r3, 0x8 - ldrsh r0, [r4, r3] - cmp r0, 0x3 - bne _080C6960 - adds r0, r5, 0 - bl DestroyTask - b _080C6964 -_080C6960: - adds r0, r1, 0x1 - strh r0, [r4, 0x8] -_080C6964: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C68EC - - thumb_func_start sub_80C696C -sub_80C696C: @ 80C696C - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 2 - cmp r1, r0 - beq _080C6998 - cmp r1, r0 - bgt _080C6988 - movs r0, 0x8A - lsls r0, 2 - cmp r1, r0 - beq _080C69B0 - b _080C69B6 -_080C6988: - movs r0, 0xCF - lsls r0, 2 - cmp r1, r0 - beq _080C69A0 - adds r0, 0x4 - cmp r1, r0 - beq _080C69A8 - b _080C69B6 -_080C6998: - movs r0, 0x4A - bl PlaySE - b _080C69B6 -_080C69A0: - movs r0, 0x4B - bl PlaySE - b _080C69B6 -_080C69A8: - movs r0, 0x4C - bl PlaySE - b _080C69B6 -_080C69B0: - movs r0, 0x4E - bl PlaySE -_080C69B6: - pop {r0} - bx r0 - thumb_func_end sub_80C696C - - thumb_func_start FldEff_Nop47 -FldEff_Nop47: @ 80C69BC - movs r0, 0 - bx lr - thumb_func_end FldEff_Nop47 - - thumb_func_start FldEff_Nop48 -FldEff_Nop48: @ 80C69C0 - movs r0, 0 - bx lr - thumb_func_end FldEff_Nop48 - - thumb_func_start sub_80C69C4 -sub_80C69C4: @ 80C69C4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x4D - bl PlaySE - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - ldr r2, _080C6A0C @ =0x00000276 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridSetMetatileIdAt - subs r6, r4, 0x1 - ldr r2, _080C6A10 @ =0x0000026e - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - adds r0, r5, 0 - adds r1, r6, 0 - bl CurrentMapDrawMetatileAt - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C6A0C: .4byte 0x00000276 -_080C6A10: .4byte 0x0000026e - thumb_func_end sub_80C69C4 - - thumb_func_start sub_80C6A14 -sub_80C6A14: @ 80C6A14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6A44 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0x7 - bne _080C6A48 - movs r2, 0xA - ldrsh r0, [r1, r2] - movs r3, 0xC - ldrsh r1, [r1, r3] - bl sub_80C69C4 - adds r0, r4, 0 - bl DestroyTask - b _080C6A4C - .align 2, 0 -_080C6A44: .4byte gTasks -_080C6A48: - adds r0, r2, 0x1 - strh r0, [r1, 0x8] -_080C6A4C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6A14 - - thumb_func_start sub_80C6A54 -sub_80C6A54: @ 80C6A54 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - adds r7, r5, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6A7C - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r4, 16 - asrs r1, 16 - bl sub_80C69C4 - b _080C6A9E -_080C6A7C: - cmp r0, 0x2 - bne _080C6A9E - ldr r0, _080C6AA4 @ =sub_80C6A14 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6AA8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r7, [r1, 0xA] - strh r6, [r1, 0xC] -_080C6A9E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6AA4: .4byte sub_80C6A14 -_080C6AA8: .4byte gTasks - thumb_func_end sub_80C6A54 - - thumb_func_start sub_80C6AAC -sub_80C6AAC: @ 80C6AAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6AE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x7 - beq _080C6AC8 - b _080C6C26 -_080C6AC8: - ldr r2, _080C6AE8 @ =0xfffffd88 - adds r0, r2, 0 - ldrh r1, [r1, 0x8] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - bls _080C6ADA - b _080C6C1E -_080C6ADA: - lsls r0, 2 - ldr r1, _080C6AEC @ =_080C6AF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6AE4: .4byte gTasks -_080C6AE8: .4byte 0xfffffd88 -_080C6AEC: .4byte _080C6AF0 - .align 2, 0 -_080C6AF0: - .4byte _080C6BE0 - .4byte _080C6BE8 - .4byte _080C6BF0 - .4byte _080C6BF8 - .4byte _080C6C00 - .4byte _080C6C08 - .4byte _080C6C10 - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C18 -_080C6BE0: - movs r0, 0x3E - bl PlaySE - b _080C6C1E -_080C6BE8: - movs r0, 0x3F - bl PlaySE - b _080C6C1E -_080C6BF0: - movs r0, 0x40 - bl PlaySE - b _080C6C1E -_080C6BF8: - movs r0, 0x41 - bl PlaySE - b _080C6C1E -_080C6C00: - movs r0, 0x42 - bl PlaySE - b _080C6C1E -_080C6C08: - movs r0, 0x43 - bl PlaySE - b _080C6C1E -_080C6C10: - movs r0, 0x44 - bl PlaySE - b _080C6C1E -_080C6C18: - movs r0, 0x45 - bl PlaySE -_080C6C1E: - adds r0, r4, 0 - bl DestroyTask - b _080C6C2A -_080C6C26: - adds r0, r2, 0x1 - strh r0, [r1, 0xA] -_080C6C2A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6AAC - - thumb_func_start sub_80C6C30 -sub_80C6C30: @ 80C6C30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080C6C5C @ =sub_80C6AAC - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6C60 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r0, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6C5C: .4byte sub_80C6AAC -_080C6C60: .4byte gTasks - thumb_func_end sub_80C6C30 - - thumb_func_start sub_80C6C64 -sub_80C6C64: @ 80C6C64 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080C6C7C - movs r0, 0xC3 - bl PlaySE -_080C6C7C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1F - ble _080C6C8A - adds r0, r4, 0 - bl DestroySprite -_080C6C8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6C64 - - thumb_func_start sub_80C6C90 -sub_80C6C90: @ 80C6C90 - push {r4,lr} - sub sp, 0x4 - ldr r3, _080C6D28 @ =gMapObjects - ldr r2, _080C6D2C @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x10] - mov r0, sp - strh r1, [r0] - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x4 - bl sub_8060470 - ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x58] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080C6D1E - ldr r3, _080C6D34 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r3 - movs r0, 0x3E - adds r0, r4 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0xF - ands r0, r1 - movs r1, 0x50 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080C6D38 @ =sub_80C6C64 - str r0, [r2] - movs r0, 0 - strh r0, [r4, 0x2E] -_080C6D1E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6D28: .4byte gMapObjects -_080C6D2C: .4byte gPlayerAvatar -_080C6D30: .4byte gFieldEffectObjectTemplatePointers -_080C6D34: .4byte gSprites -_080C6D38: .4byte sub_80C6C64 - thumb_func_end sub_80C6C90 - - thumb_func_start FldEff_SandPillar -FldEff_SandPillar: @ 80C6D3C - push {r4,lr} - sub sp, 0x4 - bl ScriptContext2_Enable - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, _080C6D78 @ =gUnknown_0202FF84 - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - str r0, [r1, 0x14] - movs r3, 0 - ldrsh r0, [r4, r3] - str r0, [r1, 0x18] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080C6DBC - cmp r0, 0x2 - bgt _080C6D7C - cmp r0, 0x1 - beq _080C6D86 - b _080C6E4C - .align 2, 0 -_080C6D78: .4byte gUnknown_0202FF84 -_080C6D7C: - cmp r0, 0x3 - beq _080C6DEC - cmp r0, 0x4 - beq _080C6E24 - b _080C6E4C -_080C6D86: - ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6DB4 @ =gSprites - ldr r1, _080C6DB8 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x20 - movs r3, 0 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6DB0: .4byte gSpriteTemplate_83D26A0 -_080C6DB4: .4byte gSprites -_080C6DB8: .4byte gPlayerAvatar -_080C6DBC: - ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6DE4 @ =gSprites - ldr r1, _080C6DE8 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - b _080C6E0C - .align 2, 0 -_080C6DE0: .4byte gSpriteTemplate_83D26A0 -_080C6DE4: .4byte gSprites -_080C6DE8: .4byte gPlayerAvatar -_080C6DEC: - ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6E18 @ =gSprites - ldr r1, _080C6E1C @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - ldr r3, _080C6E20 @ =0xfff80000 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 -_080C6E0C: - movs r3, 0x94 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6E14: .4byte gSpriteTemplate_83D26A0 -_080C6E18: .4byte gSprites -_080C6E1C: .4byte gPlayerAvatar -_080C6E20: .4byte 0xfff80000 -_080C6E24: - ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6E5C @ =gSprites - ldr r1, _080C6E60 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0xC0 - lsls r3, 13 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 - movs r3, 0x94 - bl CreateSprite -_080C6E4C: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6E58: .4byte gSpriteTemplate_83D26A0 -_080C6E5C: .4byte gSprites -_080C6E60: .4byte gPlayerAvatar - thumb_func_end FldEff_SandPillar - - thumb_func_start door_restore_tilemap -door_restore_tilemap: @ 80C6E64 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x83 - bl PlaySE - ldr r4, _080C6E90 @ =gUnknown_0202FF84 - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl MapGridGetMetatileIdAt - ldr r1, _080C6E94 @ =0x00000286 - cmp r0, r1 - bne _080C6E9C - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - ldr r2, _080C6E98 @ =0x00000e02 - bl MapGridSetMetatileIdAt - b _080C6EAA - .align 2, 0 -_080C6E90: .4byte gUnknown_0202FF84 -_080C6E94: .4byte 0x00000286 -_080C6E98: .4byte 0x00000e02 -_080C6E9C: - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - movs r2, 0xA1 - lsls r2, 2 - bl MapGridSetMetatileIdAt -_080C6EAA: - ldr r4, _080C6ED8 @ =gUnknown_0202FF84 - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6EDC @ =0x0000020a - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl CurrentMapDrawMetatileAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6EE0 @ =sub_80C6EE4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6ED8: .4byte gUnknown_0202FF84 -_080C6EDC: .4byte 0x0000020a -_080C6EE0: .4byte sub_80C6EE4 - thumb_func_end door_restore_tilemap - - thumb_func_start sub_80C6EE4 -sub_80C6EE4: @ 80C6EE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x11 - bgt _080C6EF8 - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080C6F14 -_080C6EF8: - ldr r4, _080C6F1C @ =gUnknown_0202FF84 - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6F20 @ =0x00000e8c - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6F24 @ =sub_80C6F28 - str r0, [r5, 0x1C] -_080C6F14: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6F1C: .4byte gUnknown_0202FF84 -_080C6F20: .4byte 0x00000e8c -_080C6F24: .4byte sub_80C6F28 - thumb_func_end sub_80C6EE4 - - thumb_func_start sub_80C6F28 -sub_80C6F28: @ 80C6F28 - push {lr} - movs r1, 0x34 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6F28 - - thumb_func_start sub_80C6F38 -sub_80C6F38: @ 80C6F38 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, _080C6F70 @ =0x000002f5 - cmp r1, r0 - beq _080C6FE8 - cmp r1, r0 - bgt _080C6F74 - subs r0, 0x17 - cmp r1, r0 - beq _080C6FB0 - adds r0, 0x16 - cmp r1, r0 - beq _080C6FDC - b _080C6FFA - .align 2, 0 -_080C6F70: .4byte 0x000002f5 -_080C6F74: - ldr r0, _080C6F9C @ =0x000002f6 - cmp r1, r0 - beq _080C6FF4 - adds r0, 0x40 - cmp r1, r0 - bne _080C6FFA - ldr r0, _080C6FA0 @ =gStringVar1 - movs r1, 0x64 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FA4 @ =gStringVar2 - ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank - bl StringCopy - ldr r1, _080C6FAC @ =gScriptResult - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6F9C: .4byte 0x000002f6 -_080C6FA0: .4byte gStringVar1 -_080C6FA4: .4byte gStringVar2 -_080C6FA8: .4byte gSecretBaseText_GoldRank -_080C6FAC: .4byte gScriptResult -_080C6FB0: - ldr r0, _080C6FCC @ =gStringVar1 - movs r1, 0x32 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FD0 @ =gStringVar2 - ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank - bl StringCopy - ldr r1, _080C6FD8 @ =gScriptResult - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6FCC: .4byte gStringVar1 -_080C6FD0: .4byte gStringVar2 -_080C6FD4: .4byte gSecretBaseText_SilverRank -_080C6FD8: .4byte gScriptResult -_080C6FDC: - ldr r1, _080C6FE4 @ =gScriptResult - movs r0, 0x1 - b _080C6FF8 - .align 2, 0 -_080C6FE4: .4byte gScriptResult -_080C6FE8: - ldr r1, _080C6FF0 @ =gScriptResult - movs r0, 0x2 - b _080C6FF8 - .align 2, 0 -_080C6FF0: .4byte gScriptResult -_080C6FF4: - ldr r1, _080C7004 @ =gScriptResult - movs r0, 0x3 -_080C6FF8: - strh r0, [r1] -_080C6FFA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7004: .4byte gScriptResult - thumb_func_end sub_80C6F38 - - thumb_func_start task50_overworld_posion_effect -task50_overworld_posion_effect: @ 80C7008 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080C702C @ =gTasks + 0x8 - adds r1, r0, r1 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C7046 - cmp r0, 0x1 - bgt _080C7030 - cmp r0, 0 - beq _080C7036 - b _080C7062 - .align 2, 0 -_080C702C: .4byte gTasks + 0x8 -_080C7030: - cmp r0, 0x2 - beq _080C705A - b _080C7062 -_080C7036: - ldrh r0, [r1, 0x2] - adds r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080C7062 - b _080C7052 -_080C7046: - ldrh r0, [r1, 0x2] - subs r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080C7062 -_080C7052: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080C7062 -_080C705A: - adds r0, r2, 0 - bl DestroyTask - b _080C706C -_080C7062: - ldr r2, _080C7070 @ =REG_MOSAIC - ldrh r1, [r1, 0x2] - lsls r0, r1, 4 - orrs r0, r1 - strh r0, [r2] -_080C706C: - pop {r0} - bx r0 - .align 2, 0 -_080C7070: .4byte REG_MOSAIC - thumb_func_end task50_overworld_posion_effect - - thumb_func_start overworld_posion_effect -overworld_posion_effect: @ 80C7074 - push {lr} - movs r0, 0x4F - bl PlaySE - ldr r0, _080C7088 @ =task50_overworld_posion_effect - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C7088: .4byte task50_overworld_posion_effect - thumb_func_end overworld_posion_effect - - thumb_func_start c3_80A0DD8_is_running -c3_80A0DD8_is_running: @ 80C708C - push {lr} - ldr r0, _080C709C @ =task50_overworld_posion_effect - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C709C: .4byte task50_overworld_posion_effect - thumb_func_end c3_80A0DD8_is_running - - thumb_func_start sub_80C70A0 -sub_80C70A0: @ 80C70A0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C70B4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C70B8 @ =sub_80C70BC - str r0, [r1] - bx lr - .align 2, 0 -_080C70B4: .4byte gTasks -_080C70B8: .4byte sub_80C70BC - thumb_func_end sub_80C70A0 - - thumb_func_start sub_80C70BC -sub_80C70BC: @ 80C70BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C7120 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7124 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080C70E8 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C711A -_080C70E8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_8059D08 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r1, _080C7128 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C712C @ =sub_80C7130 - str r1, [r0] -_080C711A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7120: .4byte gPlayerAvatar -_080C7124: .4byte gMapObjects -_080C7128: .4byte gTasks -_080C712C: .4byte sub_80C7130 - thumb_func_end sub_80C70BC - - thumb_func_start sub_80C7130 -sub_80C7130: @ 80C7130 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C7184 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7188 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C7194 - ldr r1, _080C718C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080C7190 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - b _080C7194 - .align 2, 0 -_080C7184: .4byte gPlayerAvatar -_080C7188: .4byte gMapObjects -_080C718C: .4byte gTasks -_080C7190: - ldr r0, _080C719C @ =sub_80C71A0 - str r0, [r2] -_080C7194: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C719C: .4byte sub_80C71A0 - thumb_func_end sub_80C7130 - - thumb_func_start sub_80C71A0 -sub_80C71A0: @ 80C71A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80597D0 - lsls r0, 24 - lsrs r0, 24 - bl SetPlayerAvatarTransitionFlags - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C71A0 - - thumb_func_start sub_80C71C4 -sub_80C71C4: @ 80C71C4 - push {lr} - ldr r0, _080C71D4 @ =sub_80C70A0 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C71D4: .4byte sub_80C70A0 - thumb_func_end sub_80C71C4 - - thumb_func_start sub_80C71D8 -sub_80C71D8: @ 80C71D8 - push {r4,r5,lr} - ldr r0, _080C722C @ =gUnknown_083D2878 - bl LoadSpritePalette - ldr r0, _080C7230 @ =gSpriteTemplate_83D2894 - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080C7238 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, _080C7234 @ =gSprites - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r0, 0x10 - movs r1, 0xD - bl sub_8060388 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, 0x2 - strh r0, [r4, 0x22] - adds r0, r5, 0 - b _080C723A - .align 2, 0 -_080C722C: .4byte gUnknown_083D2878 -_080C7230: .4byte gSpriteTemplate_83D2894 -_080C7234: .4byte gSprites -_080C7238: - movs r0, 0x40 -_080C723A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C71D8 - - thumb_func_start sub_80C7240 -sub_80C7240: @ 80C7240 - push {r4-r7,lr} - ldr r4, _080C7274 @ =gSprites - adds r7, r4, 0 - movs r6, 0 - movs r5, 0x3F -_080C724A: - adds r0, r7, 0 - adds r0, 0x14 - adds r0, r6, r0 - ldr r1, [r0] - ldr r0, _080C7278 @ =gSpriteTemplate_83D2894 - cmp r1, r0 - bne _080C7264 - adds r0, r4, 0 - bl FreeSpritePalette - adds r0, r4, 0 - bl DestroySprite -_080C7264: - adds r4, 0x44 - adds r6, 0x44 - subs r5, 0x1 - cmp r5, 0 - bge _080C724A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7274: .4byte gSprites -_080C7278: .4byte gSpriteTemplate_83D2894 - thumb_func_end sub_80C7240 - - thumb_func_start sub_80C727C -sub_80C727C: @ 80C727C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x78 - bl __modsi3 - cmp r0, 0 - bne _080C7290 - movs r0, 0x1 - negs r0, r0 - b _080C72A2 -_080C7290: - adds r0, r4, 0 - movs r1, 0xA - bl __modsi3 - cmp r0, 0x4 - ble _080C72A0 - movs r0, 0 - b _080C72A2 -_080C72A0: - movs r0, 0x1 -_080C72A2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C727C - - thumb_func_start sub_80C72A8 -sub_80C72A8: @ 80C72A8 - push {lr} - adds r0, 0x78 - movs r1, 0xB4 - bl __modsi3 - cmp r0, 0 - beq _080C72BA - movs r0, 0 - b _080C72BE -_080C72BA: - movs r0, 0x1 - negs r0, r0 -_080C72BE: - pop {r1} - bx r1 - thumb_func_end sub_80C72A8 - - thumb_func_start sub_80C72C4 -sub_80C72C4: @ 80C72C4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080C7364 @ =gTasks + 0x8 - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - adds r0, 0x1E - bl sub_80C72A8 - ldr r4, _080C7368 @ =gSaveBlock1 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - lsls r0, 18 - movs r3, 0xC0 - lsls r3, 10 - orrs r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_805BD90 - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80C72A8 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - lsls r0, 17 - ldr r3, _080C736C @ =0xfffd0000 - adds r0, r3 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_805BD90 - movs r1, 0 - ldrsh r0, [r5, r1] - bl sub_80C72A8 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r4, 0 - movs r3, 0x3 - negs r3, r3 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_805BD90 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - lsls r0, 16 - ldr r1, _080C7370 @ =0x75300000 - cmp r0, r1 - bne _080C7346 - strh r4, [r5] -_080C7346: - movs r3, 0 - ldrsh r0, [r5, r3] - bl sub_80C727C - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl SetCameraPanning - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7364: .4byte gTasks + 0x8 -_080C7368: .4byte gSaveBlock1 -_080C736C: .4byte 0xfffd0000 -_080C7370: .4byte 0x75300000 - thumb_func_end sub_80C72C4 - - thumb_func_start sub_80C7374 -sub_80C7374: @ 80C7374 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r3, r0, 3 - ldr r4, _080C73B4 @ =gTasks + 0x8 - adds r7, r3, r4 - ldrh r1, [r7] - adds r1, 0x1 - strh r1, [r7] - ldrh r0, [r7, 0x4] - adds r0, 0x1 - strh r0, [r7, 0x4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x5 - ble _080C73A4 - movs r0, 0 - strh r0, [r7] - ldrh r0, [r7, 0x2] - adds r0, 0x1 - strh r0, [r7, 0x2] -_080C73A4: - ldrh r0, [r7, 0x2] - cmp r0, 0x13 - bne _080C73B8 - adds r0, r2, 0 - bl DestroyTask - b _080C746A - .align 2, 0 -_080C73B4: .4byte gTasks + 0x8 -_080C73B8: - ldr r2, _080C7474 @ =gUnknown_083D294C - movs r1, 0x2 - ldrsh r0, [r7, r1] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _080C73D4 - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, _080C7478 @ =sub_80C7484 - str r1, [r0] -_080C73D4: - movs r4, 0x2 - ldrsh r0, [r7, r4] - adds r0, r2 - movs r5, 0 - ldrsb r5, [r0, r5] - lsls r5, 16 - lsrs r5, 16 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C727C - adds r1, r0, 0 - lsls r5, 16 - asrs r5, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl SetCameraPanning - movs r4, 0x4 - ldrsh r0, [r7, r4] - adds r0, 0x1E - bl sub_80C72A8 - ldr r6, _080C747C @ =gSaveBlock1 - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - movs r3, 0x3 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - movs r4, 0xC0 - lsls r4, 10 - orrs r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x1 - bl sub_805BD90 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C72A8 - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - negs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 17 - ldr r4, _080C7480 @ =0xfffd0000 - adds r0, r4 - asrs r0, 16 - str r0, [sp] - movs r0, 0x2 - bl sub_805BD90 - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl sub_80C72A8 - ldrb r1, [r6, 0x5] - ldrb r2, [r6, 0x4] - movs r4, 0x3 - negs r4, r4 - adds r3, r4, 0 - subs r3, r5 - lsls r3, 16 - asrs r3, 16 - lsls r0, 18 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - bl sub_805BD90 -_080C746A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7474: .4byte gUnknown_083D294C -_080C7478: .4byte sub_80C7484 -_080C747C: .4byte gSaveBlock1 -_080C7480: .4byte 0xfffd0000 - thumb_func_end sub_80C7374 - - thumb_func_start sub_80C7484 -sub_80C7484: @ 80C7484 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080C74C4 @ =gTasks + 0x8 - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080C74B4 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x1 - strh r0, [r2, 0x2] -_080C74B4: - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bne _080C74C8 - adds r0, r3, 0 - bl DestroyTask - b _080C7516 - .align 2, 0 -_080C74C4: .4byte gTasks + 0x8 -_080C74C8: - ldr r1, _080C7524 @ =gUnknown_083D294C - movs r3, 0x2 - ldrsh r0, [r2, r3] - adds r0, r1 - movs r1, 0 - mov r8, r1 - movs r6, 0 - ldrsb r6, [r0, r6] - adds r0, r6, 0 - bl SetCameraPanning - ldr r5, _080C7528 @ =gSaveBlock1 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - movs r3, 0x3 - subs r3, r6 - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - bl sub_805BD90 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - negs r3, r6 - mov r4, r8 - subs r4, 0x3 - str r4, [sp] - movs r0, 0x2 - bl sub_805BD90 - ldrb r1, [r5, 0x5] - ldrb r2, [r5, 0x4] - subs r4, r6 - mov r3, r8 - str r3, [sp] - movs r0, 0x3 - adds r3, r4, 0 - bl sub_805BD90 -_080C7516: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7524: .4byte gUnknown_083D294C -_080C7528: .4byte gSaveBlock1 - thumb_func_end sub_80C7484 - - thumb_func_start sub_80C752C -sub_80C752C: @ 80C752C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C7550 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080C7546 - b _080C7698 -_080C7546: - lsls r0, 2 - ldr r1, _080C7554 @ =_080C7558 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C7550: .4byte gTasks + 0x8 -_080C7554: .4byte _080C7558 - .align 2, 0 -_080C7558: - .4byte _080C7570 - .4byte _080C75A8 - .4byte _080C75C4 - .4byte _080C7610 - .4byte _080C7634 - .4byte _080C7652 -_080C7570: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - beq _080C7580 - b _080C7698 -_080C7580: - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0 - strh r0, [r4, 0x2] - ldr r0, _080C75A4 @ =sub_80C72C4 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x4] - movs r0, 0x1 - strh r0, [r4] - movs r0, 0x31 - bl PlaySE - b _080C7698 - .align 2, 0 -_080C75A4: .4byte sub_80C72C4 -_080C75A8: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x96 - bne _080C7698 - bl pal_fill_black - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080C7698 -_080C75C4: - ldrh r0, [r4, 0x2] - adds r3, r0, 0x1 - strh r3, [r4, 0x2] - ldr r0, _080C7608 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080C7698 - lsls r1, r3, 16 - movs r0, 0x96 - lsls r0, 17 - cmp r1, r0 - ble _080C7698 - strh r2, [r4, 0x2] - ldrb r0, [r4, 0x4] - bl DestroyTask - ldr r0, _080C760C @ =sub_80C7374 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x6] - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x32 - bl PlaySE - b _080C7698 - .align 2, 0 -_080C7608: .4byte gPaletteFade -_080C760C: .4byte sub_80C7374 -_080C7610: - ldr r2, _080C7630 @ =gTasks - movs r0, 0x6 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - cmp r5, 0 - bne _080C7698 - bl InstallCameraPanAheadCallback - strh r5, [r4, 0x2] - movs r0, 0x4 - strh r0, [r4] - b _080C7698 - .align 2, 0 -_080C7630: .4byte gTasks -_080C7634: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - bne _080C7698 - movs r0, 0x33 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x5 - strh r0, [r4] - b _080C7698 -_080C7652: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bne _080C7698 - movs r2, 0x82 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0x84 - lsls r2, 2 - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - movs r2, 0x86 - lsls r2, 2 - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x34 - bl PlaySE - adds r0, r5, 0 - bl DestroyTask - bl ScriptContext2_Disable -_080C7698: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C752C - - thumb_func_start sub_80C76A0 -sub_80C76A0: @ 80C76A0 - push {lr} - sub sp, 0x4 - ldr r2, _080C76E8 @ =0x0000020d - movs r0, 0xB - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _080C76EC @ =0x00000215 - movs r0, 0xB - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _080C76F0 @ =0x0000021d - movs r0, 0xB - movs r1, 0xA - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - bl ScriptContext2_Enable - movs r0, 0 - str r0, [sp] - ldr r1, _080C76F4 @ =gPlttBufferFaded - ldr r2, _080C76F8 @ =0x01000100 - mov r0, sp - bl CpuFastSet - ldr r0, _080C76FC @ =sub_80C752C - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C76E8: .4byte 0x0000020d -_080C76EC: .4byte 0x00000215 -_080C76F0: .4byte 0x0000021d -_080C76F4: .4byte gPlttBufferFaded -_080C76F8: .4byte 0x01000100 -_080C76FC: .4byte sub_80C752C - thumb_func_end sub_80C76A0 - - thumb_func_start sub_80C7700 -sub_80C7700: @ 80C7700 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _080C774C @ =sub_80C752C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080C7744 - ldr r4, _080C7750 @ =gSaveBlock1 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - movs r3, 0x3 - bl sub_805BD90 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - movs r5, 0x3 - negs r5, r5 - str r5, [sp] - movs r0, 0x2 - movs r3, 0 - bl sub_805BD90 - ldrb r1, [r4, 0x5] - ldrb r2, [r4, 0x4] - str r6, [sp] - movs r0, 0x3 - adds r3, r5, 0 - bl sub_805BD90 -_080C7744: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C774C: .4byte sub_80C752C -_080C7750: .4byte gSaveBlock1 - thumb_func_end sub_80C7700 - - thumb_func_start sub_80C7754 -sub_80C7754: @ 80C7754 - push {r4-r6,lr} - sub sp, 0xC - mov r4, sp - adds r4, 0x5 - mov r5, sp - adds r5, 0x6 - add r6, sp, 0x8 - add r0, sp, 0x4 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_810D9EC - lsls r0, 24 - cmp r0, 0 - bne _080C7796 - add r0, sp, 0x4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r4, r1] - movs r2, 0x1 - negs r2, r2 - movs r3, 0 - ldrsb r3, [r5, r3] - movs r4, 0 - ldrsb r4, [r6, r4] - str r4, [sp] - bl warp1_set - movs r0, 0x1 - b _080C7798 -_080C7796: - movs r0, 0 -_080C7798: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C7754 - - thumb_func_start sub_80C77A0 -sub_80C77A0: @ 80C77A0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C77CC @ =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, _080C77D0 @ =0x000040b4 - bl GetVarPointer - adds r6, r0, 0 - ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4 - movs r0, 0 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080C77FC - cmp r2, 0x1 - bgt _080C77D8 - cmp r2, 0 - beq _080C77E2 - b _080C7896 - .align 2, 0 -_080C77CC: .4byte gTasks + 0x8 -_080C77D0: .4byte 0x000040b4 -_080C77D4: .4byte gSaveBlock1 + 0x4 -_080C77D8: - cmp r2, 0x2 - beq _080C783E - cmp r2, 0x3 - beq _080C7878 - b _080C7896 -_080C77E2: - ldr r0, _080C77F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C7896 - strh r2, [r4, 0x2] - movs r0, 0x2 - strh r0, [r4] - b _080C7896 - .align 2, 0 -_080C77F8: .4byte gPaletteFade -_080C77FC: - ldr r0, _080C7830 @ =gMain - ldrh r1, [r0, 0x2E] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080C780A - strh r2, [r4, 0x2] -_080C780A: - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - movs r0, 0xFF - bl sub_80A212C - lsls r0, 24 - cmp r0, 0 - beq _080C7896 - movs r0, 0x1 - bl sub_810D9B0 - cmp r0, 0x1 - bne _080C783A - ldrh r0, [r6] - cmp r0, 0x2 - bne _080C7834 - movs r0, 0x9 - b _080C7836 - .align 2, 0 -_080C7830: .4byte gMain -_080C7834: - movs r0, 0xA -_080C7836: - strh r0, [r6] - b _080C7846 -_080C783A: - movs r0, 0x2 - strh r0, [r4] -_080C783E: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C784C -_080C7846: - movs r0, 0x3 - strh r0, [r4] - b _080C7896 -_080C784C: - ldrh r0, [r6] - cmp r0, 0x2 - bne _080C7860 - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - ldr r3, _080C785C @ =gUnknown_083D295F - b _080C7866 - .align 2, 0 -_080C785C: .4byte gUnknown_083D295F -_080C7860: - ldrb r1, [r7, 0x1] - ldrb r2, [r7] - ldr r3, _080C7874 @ =gUnknown_083D2961 -_080C7866: - movs r0, 0xFF - bl exec_movement - movs r0, 0x1 - strh r0, [r4] - b _080C7896 - .align 2, 0 -_080C7874: .4byte gUnknown_083D2961 -_080C7878: - ldr r0, _080C789C @ =0x00004001 - bl FlagReset - movs r0, 0x80 - lsls r0, 7 - bl FlagReset - movs r0, 0 - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - bl sp13E_warp_to_last_warp - adds r0, r5, 0 - bl DestroyTask -_080C7896: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C789C: .4byte 0x00004001 - thumb_func_end sub_80C77A0 - - thumb_func_start sub_80C78A0 -sub_80C78A0: @ 80C78A0 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080C78F4 @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0x8C - movs r2, 0x70 - movs r3, 0x50 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C78F8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080C78FC @ =0x000040b4 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _080C7900 - movs r0, 0x4 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - b _080C7912 - .align 2, 0 -_080C78F4: .4byte SpriteCallbackDummy -_080C78F8: .4byte gSprites -_080C78FC: .4byte 0x000040b4 -_080C7900: - movs r0, 0x3 - bl FieldObjectDirectionToImageAnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_080C7912: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C78A0 - - thumb_func_start sub_80C791C -sub_80C791C: @ 80C791C - push {lr} - bl sub_80C78A0 - ldr r2, _080C794C @ =gMapObjects - ldr r0, _080C7950 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl pal_fill_black - ldr r0, _080C7954 @ =sub_80C77A0 - movs r1, 0x50 - bl CreateTask - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_080C794C: .4byte gMapObjects -_080C7950: .4byte gPlayerAvatar -_080C7954: .4byte sub_80C77A0 - thumb_func_end sub_80C791C - - thumb_func_start sub_80C7958 -sub_80C7958: @ 80C7958 - push {lr} - ldr r0, _080C7990 @ =0x0000082d - bl FlagSet - ldr r0, _080C7994 @ =0x00004001 - bl FlagSet - movs r0, 0x80 - lsls r0, 7 - bl FlagSet - ldr r0, _080C7998 @ =gSaveBlock1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - movs r2, 0x5 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0 - bl saved_warp2_set - bl sub_80C7754 - bl sub_8080F9C - pop {r0} - bx r0 - .align 2, 0 -_080C7990: .4byte 0x0000082d -_080C7994: .4byte 0x00004001 -_080C7998: .4byte gSaveBlock1 - thumb_func_end sub_80C7958 - - thumb_func_start GetCurrentMapRotatingGatePuzzleType -GetCurrentMapRotatingGatePuzzleType: @ 80C799C - push {lr} - ldr r0, _080C79B0 @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - movs r0, 0x86 - lsls r0, 1 - cmp r1, r0 - bne _080C79B4 - movs r0, 0x1 - b _080C79C6 - .align 2, 0 -_080C79B0: .4byte gSaveBlock1 -_080C79B4: - ldr r0, _080C79C0 @ =0x0000081d - cmp r1, r0 - beq _080C79C4 - movs r0, 0 - b _080C79C6 - .align 2, 0 -_080C79C0: .4byte 0x0000081d -_080C79C4: - movs r0, 0x2 -_080C79C6: - pop {r1} - bx r1 - thumb_func_end GetCurrentMapRotatingGatePuzzleType - - thumb_func_start sub_80C79CC -sub_80C79CC: @ 80C79CC - push {r4-r6,lr} - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r5, r0, 0 - movs r3, 0 - ldr r4, _080C7A00 @ =gUnknown_02038804 - ldrb r0, [r4] - cmp r3, r0 - bge _080C79F8 - ldr r6, _080C7A04 @ =gUnknown_02038800 -_080C79E4: - adds r2, r5, r3 - ldr r1, [r6] - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0, 0x5] - strb r0, [r2] - adds r3, 0x1 - ldrb r0, [r4] - cmp r3, r0 - blt _080C79E4 -_080C79F8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7A00: .4byte gUnknown_02038804 -_080C7A04: .4byte gUnknown_02038800 - thumb_func_end sub_80C79CC - - thumb_func_start sub_80C7A08 -sub_80C7A08: @ 80C7A08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r0, r4 - ldrb r0, [r0] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C7A08 - - thumb_func_start sub_80C7A24 -sub_80C7A24: @ 80C7A24 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x80 - lsls r0, 7 - bl GetVarPointer - adds r0, r4 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C7A24 - - thumb_func_start sub_80C7A44 -sub_80C7A44: @ 80C7A44 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80C7A08 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r4, 0x1 - bne _080C7A68 - cmp r1, 0 - beq _080C7A64 - subs r0, r1, 0x1 - lsls r0, 24 - b _080C7A72 -_080C7A64: - movs r1, 0x3 - b _080C7A74 -_080C7A68: - adds r1, 0x1 - lsls r1, 24 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r1 -_080C7A72: - lsrs r1, r0, 24 -_080C7A74: - adds r0, r5, 0 - bl sub_80C7A24 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C7A44 - - thumb_func_start sub_80C7A80 -sub_80C7A80: @ 80C7A80 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0x1 - beq _080C7A94 - cmp r0, 0x1 - ble _080C7AC8 - cmp r0, 0x2 - beq _080C7AAC - b _080C7AC8 -_080C7A94: - ldr r1, _080C7AA0 @ =gUnknown_02038800 - ldr r0, _080C7AA4 @ =gUnknown_083D2964 - str r0, [r1] - ldr r1, _080C7AA8 @ =gUnknown_02038804 - movs r0, 0x7 - b _080C7AB6 - .align 2, 0 -_080C7AA0: .4byte gUnknown_02038800 -_080C7AA4: .4byte gUnknown_083D2964 -_080C7AA8: .4byte gUnknown_02038804 -_080C7AAC: - ldr r1, _080C7ACC @ =gUnknown_02038800 - ldr r0, _080C7AD0 @ =gUnknown_083D299C - str r0, [r1] - ldr r1, _080C7AD4 @ =gUnknown_02038804 - movs r0, 0xE -_080C7AB6: - strb r0, [r1] - movs r1, 0 - ldr r3, _080C7AD8 @ =gUnknown_020387F0 - movs r2, 0x40 -_080C7ABE: - adds r0, r1, r3 - strb r2, [r0] - adds r1, 0x1 - cmp r1, 0xD - bls _080C7ABE -_080C7AC8: - pop {r0} - bx r0 - .align 2, 0 -_080C7ACC: .4byte gUnknown_02038800 -_080C7AD0: .4byte gUnknown_083D299C -_080C7AD4: .4byte gUnknown_02038804 -_080C7AD8: .4byte gUnknown_020387F0 - thumb_func_end sub_80C7A80 - - thumb_func_start sub_80C7ADC -sub_80C7ADC: @ 80C7ADC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - ldr r2, _080C7B9C @ =gSaveBlock1 - ldrh r1, [r2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r3, r0, 16 - adds r1, 0x11 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldrh r1, [r2, 0x2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r2, r0, 16 - adds r1, 0xE - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - movs r5, 0 - ldr r0, _080C7BA0 @ =gUnknown_02038804 - ldrb r0, [r0] - cmp r5, r0 - bcs _080C7B8C - lsls r0, r2, 16 - asrs r7, r0, 16 - lsls r0, r3, 16 - asrs r6, r0, 16 -_080C7B28: - ldr r0, _080C7BA4 @ =gUnknown_02038800 - ldr r0, [r0] - lsls r1, r5, 3 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r1, r0, 16 - cmp r7, r1 - bgt _080C7B7E - mov r3, r8 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - blt _080C7B7E - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r6, r1 - bgt _080C7B7E - mov r2, r9 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r1 - blt _080C7B7E - ldr r0, _080C7BA8 @ =gUnknown_020387F0 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x40 - bne _080C7B7E - ldr r3, [sp] - lsls r1, r3, 16 - mov r0, r10 - lsls r2, r0, 16 - adds r0, r5, 0 - asrs r1, 16 - asrs r2, 16 - bl sub_80C7BAC - strb r0, [r4] -_080C7B7E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C7BA0 @ =gUnknown_02038804 - ldrb r0, [r0] - cmp r5, r0 - bcc _080C7B28 -_080C7B8C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7B9C: .4byte gSaveBlock1 -_080C7BA0: .4byte gUnknown_02038804 -_080C7BA4: .4byte gUnknown_02038800 -_080C7BA8: .4byte gUnknown_020387F0 - thumb_func_end sub_80C7ADC - - thumb_func_start sub_80C7BAC -sub_80C7BAC: @ 80C7BAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - ldr r0, _080C7BDC @ =gUnknown_02038800 - lsls r1, r6, 3 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080C7BD4 - cmp r0, 0x4 - bne _080C7BE4 -_080C7BD4: - mov r1, sp - ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4 - b _080C7BE8 - .align 2, 0 -_080C7BDC: .4byte gUnknown_02038800 -_080C7BE0: .4byte gSpriteTemplate_83D60A4 -_080C7BE4: - mov r1, sp - ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C -_080C7BE8: - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r2, sp - ldrb r0, [r4, 0x4] - movs r3, 0x98 - lsls r3, 5 - adds r1, r3, 0 - adds r0, r1 - strh r0, [r2] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x94 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080C7C84 - ldrh r0, [r4] - adds r0, 0x7 - ldrh r1, [r4, 0x2] - adds r1, 0x7 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r2, _080C7C80 @ =gSprites - adds r4, r2 - strh r6, [r4, 0x2E] - movs r2, 0x3E - adds r2, r4 - mov r12, r2 - ldrb r2, [r2] - movs r3, 0x2 - orrs r2, r3 - mov r3, r12 - strb r2, [r3] - lsls r0, 16 - asrs r0, 16 - lsls r2, r7, 16 - asrs r2, 16 - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - mov r3, r8 - lsls r2, r3, 16 - asrs r2, 16 - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - bl sub_8060388 - adds r0, r4, 0 - bl sub_80C7D14 - adds r0, r6, 0 - bl sub_80C7A08 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - b _080C7C86 - .align 2, 0 -_080C7C7C: .4byte gSpriteTemplate_83D608C -_080C7C80: .4byte gSprites -_080C7C84: - movs r0, 0x40 -_080C7C86: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C7BAC - - thumb_func_start sub_80C7C94 -sub_80C7C94: @ 80C7C94 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x30] - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r6, 0 - bl sub_80C7D14 - cmp r5, 0x1 - bne _080C7CDA - adds r0, r4, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80E6034 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080C7CCA - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_080C7CCA: - movs r0, 0x30 - bl PlaySE - adds r0, r6, 0 - adds r1, r4, 0 - bl StartSpriteAffineAnim - b _080C7D08 -_080C7CDA: - cmp r5, 0x2 - bne _080C7D08 - adds r0, r7, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80E6034 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080C7CFA - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_080C7CFA: - movs r0, 0x30 - bl PlaySE - adds r0, r6, 0 - adds r1, r4, 0 - bl StartSpriteAffineAnim -_080C7D08: - movs r0, 0 - strh r0, [r6, 0x30] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C7C94 - - thumb_func_start sub_80C7D14 -sub_80C7D14: @ 80C7D14 - push {r4-r6,lr} - mov r12, r0 - mov r4, r12 - adds r4, 0x3E - ldrb r0, [r4] - movs r5, 0x5 - negs r5, r5 - ands r5, r0 - strb r5, [r4] - mov r0, r12 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - adds r0, 0x28 - movs r2, 0 - ldrsb r2, [r0, r2] - ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX - adds r2, r1 - ldrh r0, [r0] - adds r2, r0 - lsls r2, 16 - mov r3, r12 - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - mov r0, r12 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r3, _080C7DAC @ =gSpriteCoordOffsetY - adds r0, r1 - ldrh r3, [r3] - adds r0, r3 - lsls r0, 16 - movs r3, 0x80 - lsls r3, 15 - adds r1, r2, r3 - lsrs r1, 16 - lsrs r6, r0, 16 - adds r0, r3 - lsrs r3, r0, 16 - asrs r2, 16 - cmp r2, 0xFF - bgt _080C7D7A - lsls r0, r1, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080C7D82 -_080C7D7A: - movs r1, 0x4 - adds r0, r5, 0 - orrs r0, r1 - strb r0, [r4] -_080C7D82: - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0xAF - bgt _080C7D96 - lsls r0, r3, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _080C7DA2 -_080C7D96: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080C7DA2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C7DA8: .4byte gSpriteCoordOffsetX -_080C7DAC: .4byte gSpriteCoordOffsetY - thumb_func_end sub_80C7D14 - - thumb_func_start LoadRotatingGatePics -LoadRotatingGatePics: @ 80C7DB0 - push {lr} - ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable - bl LoadSpriteSheets - pop {r0} - bx r0 - .align 2, 0 -_080C7DBC: .4byte gRotatingGatesGraphicsTable - thumb_func_end LoadRotatingGatePics - - thumb_func_start sub_80C7DC0 -sub_80C7DC0: @ 80C7DC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _080C7DF4 @ =gSaveBlock1 - ldrh r1, [r2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r1, 0x11 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldrh r1, [r2, 0x2] - subs r0, r1, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r1, 0xE - lsls r1, 16 - lsrs r7, r1, 16 - movs r6, 0 - b _080C7E66 - .align 2, 0 -_080C7DF4: .4byte gSaveBlock1 -_080C7DF8: - ldr r0, _080C7E7C @ =gUnknown_02038800 - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _080C7E80 @ =gUnknown_020387F0 - adds r0, r6, r0 - ldrb r0, [r0] - cmp r0, 0x40 - beq _080C7E64 - lsls r0, r2, 16 - mov r2, r10 - lsls r1, r2, 16 - asrs r2, r0, 16 - cmp r0, r1 - blt _080C7E44 - mov r1, r9 - lsls r0, r1, 16 - asrs r0, 16 - cmp r2, r0 - bgt _080C7E44 - lsls r0, r3, 16 - mov r2, r8 - lsls r1, r2, 16 - asrs r2, r0, 16 - cmp r0, r1 - blt _080C7E44 - lsls r0, r7, 16 - asrs r0, 16 - cmp r2, r0 - ble _080C7E64 -_080C7E44: - ldr r0, _080C7E80 @ =gUnknown_020387F0 - adds r5, r6, r0 - ldrb r0, [r5] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C7E84 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - movs r0, 0x40 - strb r0, [r5] -_080C7E64: - adds r6, 0x1 -_080C7E66: - ldr r0, _080C7E88 @ =gUnknown_02038804 - ldrb r0, [r0] - cmp r6, r0 - blt _080C7DF8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7E7C: .4byte gUnknown_02038800 -_080C7E80: .4byte gUnknown_020387F0 -_080C7E84: .4byte gSprites -_080C7E88: .4byte gUnknown_02038804 - thumb_func_end sub_80C7DC0 - - thumb_func_start sub_80C7E8C -sub_80C7E8C: @ 80C7E8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r1, 0x1 - bne _080C7EAC - ldr r0, _080C7EA8 @ =gUnknown_083D611C - mov r10, r0 - b _080C7EB8 - .align 2, 0 -_080C7EA8: .4byte gUnknown_083D611C -_080C7EAC: - cmp r1, 0x2 - beq _080C7EB4 -_080C7EB0: - movs r0, 0 - b _080C7F48 -_080C7EB4: - ldr r1, _080C7F58 @ =gUnknown_083D60FC - mov r10, r1 -_080C7EB8: - adds r0, r4, 0 - bl sub_80C7A08 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r0, _080C7F5C @ =gUnknown_02038800 - ldr r1, [r0] - lsls r0, r4, 3 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldrh r1, [r0] - adds r1, 0x7 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - movs r3, 0 - lsls r2, 3 - str r2, [sp, 0x4] - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 -_080C7EE8: - movs r6, 0 - ldr r2, [sp] - adds r7, r2, r3 - lsls r0, r3, 1 - adds r5, r7, 0 - ldr r1, [sp, 0x4] - adds r0, r1 - ldr r2, _080C7F60 @ =gUnknown_083D613C - adds r4, r0, r2 -_080C7EFA: - adds r0, r5, 0 - cmp r5, 0 - bge _080C7F02 - adds r0, r7, 0x3 -_080C7F02: - asrs r0, 2 - lsls r0, 2 - subs r0, r5, r0 - lsls r0, 1 - adds r0, r6 - lsls r0, 24 - lsrs r1, r0, 24 - ldrb r0, [r4] - cmp r0, 0 - beq _080C7F38 - lsls r1, 2 - add r1, r10 - movs r0, 0 - ldrsb r0, [r1, r0] - add r0, r9 - ldrb r1, [r1, 0x1] - lsls r1, 24 - asrs r1, 24 - add r1, r8 - str r3, [sp, 0x8] - bl MapGridIsImpassableAt - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x8] - cmp r0, 0x1 - beq _080C7EB0 -_080C7F38: - adds r4, 0x1 - adds r6, 0x1 - cmp r6, 0x1 - ble _080C7EFA - adds r3, 0x1 - cmp r3, 0x3 - ble _080C7EE8 - movs r0, 0x1 -_080C7F48: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C7F58: .4byte gUnknown_083D60FC -_080C7F5C: .4byte gUnknown_02038800 -_080C7F60: .4byte gUnknown_083D613C - thumb_func_end sub_80C7E8C - - thumb_func_start sub_80C7F64 -sub_80C7F64: @ 80C7F64 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r4, 24 - lsrs r5, r4, 24 - lsrs r4, 25 - movs r0, 0x1 - ands r5, r0 - adds r0, r6, 0 - bl sub_80C7A08 - subs r4, r0 - adds r1, r4, 0x4 - adds r0, r1, 0 - cmp r1, 0 - bge _080C7F8A - adds r0, r4, 0x7 -_080C7F8A: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - ldr r1, _080C7FB0 @ =gUnknown_02038800 - ldr r2, [r1] - lsls r1, r6, 3 - adds r1, r2 - ldrb r1, [r1, 0x4] - ldr r2, _080C7FB4 @ =gUnknown_083D613C - lsls r0, 24 - asrs r0, 23 - adds r0, r5 - lsls r1, 3 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080C7FB0: .4byte gUnknown_02038800 -_080C7FB4: .4byte gUnknown_083D613C - thumb_func_end sub_80C7F64 - - thumb_func_start sub_80C7FB8 -sub_80C7FB8: @ 80C7FB8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080C7FE4 @ =gUnknown_020387F0 - adds r2, r3, r0 - ldrb r0, [r2] - cmp r0, 0x40 - beq _080C7FDC - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C7FE8 @ =gSprites - adds r4, r0 - strh r1, [r4, 0x30] - adds r0, r3, 0 - bl sub_80C7A08 - strh r0, [r4, 0x32] -_080C7FDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7FE4: .4byte gUnknown_020387F0 -_080C7FE8: .4byte gSprites - thumb_func_end sub_80C7FB8 - - thumb_func_start sub_80C7FEC -sub_80C7FEC: @ 80C7FEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r0, 0x2 - bne _080C8008 - ldr r3, _080C8004 @ =gUnknown_083D60BC - b _080C802A - .align 2, 0 -_080C8004: .4byte gUnknown_083D60BC -_080C8008: - cmp r0, 0x1 - bne _080C8014 - ldr r3, _080C8010 @ =gUnknown_083D60CC - b _080C802A - .align 2, 0 -_080C8010: .4byte gUnknown_083D60CC -_080C8014: - cmp r0, 0x3 - bne _080C8020 - ldr r3, _080C801C @ =gUnknown_083D60DC - b _080C802A - .align 2, 0 -_080C801C: .4byte gUnknown_083D60DC -_080C8020: - cmp r3, 0x4 - beq _080C8028 - movs r0, 0xFF - b _080C8038 -_080C8028: - ldr r3, _080C803C @ =gUnknown_083D60EC -_080C802A: - lsls r0, r2, 16 - lsls r1, 16 - asrs r1, 16 - asrs r0, 14 - adds r0, r1 - adds r0, r3, r0 - ldrb r0, [r0] -_080C8038: - pop {r1} - bx r1 - .align 2, 0 -_080C803C: .4byte gUnknown_083D60EC - thumb_func_end sub_80C7FEC - - thumb_func_start sub_80C8040 -sub_80C8040: @ 80C8040 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C8052 - bl sub_80C7A80 - bl sub_80C79CC -_080C8052: - pop {r0} - bx r0 - thumb_func_end sub_80C8040 - - thumb_func_start RotatingGatePuzzleCameraUpdate -RotatingGatePuzzleCameraUpdate: @ 80C8058 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C807A - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl sub_80C7ADC - bl sub_80C7DC0 -_080C807A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end RotatingGatePuzzleCameraUpdate - - thumb_func_start sub_80C8080 -sub_80C8080: @ 80C8080 - push {lr} - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - beq _080C809A - bl LoadRotatingGatePics - bl sub_80C7A80 - movs r0, 0 - movs r1, 0 - bl sub_80C7ADC -_080C809A: - pop {r0} - bx r0 - thumb_func_end sub_80C8080 - - thumb_func_start CheckForRotatingGatePuzzleCollision -CheckForRotatingGatePuzzleCollision: @ 80C80A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl GetCurrentMapRotatingGatePuzzleType - cmp r0, 0 - bne _080C80D4 - b _080C8172 -_080C80C2: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7FB8 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7A44 - b _080C8172 -_080C80D4: - movs r6, 0 - ldr r0, _080C8160 @ =gUnknown_02038804 - ldrb r0, [r0] - cmp r6, r0 - bge _080C8172 - lsls r0, r4, 16 - asrs r7, r0, 16 -_080C80E2: - ldr r0, _080C8164 @ =gUnknown_02038800 - ldr r1, [r0] - lsls r0, r6, 3 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x7 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - asrs r4, r1, 16 - subs r0, r4, 0x2 - cmp r0, r7 - bgt _080C8168 - adds r0, r4, 0x1 - cmp r7, r0 - bgt _080C8168 - lsls r0, r2, 16 - asrs r3, r0, 16 - subs r1, r3, 0x2 - mov r2, r8 - lsls r0, r2, 16 - asrs r2, r0, 16 - cmp r1, r2 - bgt _080C8168 - adds r0, r3, 0x1 - cmp r2, r0 - bgt _080C8168 - subs r1, r7, r4 - adds r1, 0x2 - subs r2, r3 - adds r2, 0x2 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - mov r0, r9 - bl sub_80C7FEC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080C8168 - lsrs r5, r0, 4 - movs r1, 0xF - ands r1, r0 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80C7F64 - cmp r0, 0 - beq _080C8168 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80C7E8C - cmp r0, 0 - bne _080C80C2 - movs r0, 0x1 - b _080C8174 - .align 2, 0 -_080C8160: .4byte gUnknown_02038804 -_080C8164: .4byte gUnknown_02038800 -_080C8168: - adds r6, 0x1 - ldr r0, _080C8180 @ =gUnknown_02038804 - ldrb r0, [r0] - cmp r6, r0 - blt _080C80E2 -_080C8172: - movs r0, 0 -_080C8174: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080C8180: .4byte gUnknown_02038804 - thumb_func_end CheckForRotatingGatePuzzleCollision - - thumb_func_start GetSafariZoneFlag -GetSafariZoneFlag: @ 80C8184 - push {lr} - ldr r0, _080C8194 @ =0x0000082c - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C8194: .4byte 0x0000082c - thumb_func_end GetSafariZoneFlag - - thumb_func_start SetSafariZoneFlag -SetSafariZoneFlag: @ 80C8198 - push {lr} - ldr r0, _080C81A4 @ =0x0000082c - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_080C81A4: .4byte 0x0000082c - thumb_func_end SetSafariZoneFlag - - thumb_func_start ResetSafariZoneFlag -ResetSafariZoneFlag: @ 80C81A8 - push {lr} - ldr r0, _080C81B4 @ =0x0000082c - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_080C81B4: .4byte 0x0000082c - thumb_func_end ResetSafariZoneFlag - - thumb_func_start sub_80C81B8 -sub_80C81B8: @ 80C81B8 - push {lr} - movs r0, 0x11 - bl sav12_xor_increment - bl SetSafariZoneFlag - bl sub_80C82D8 - ldr r1, _080C81DC @ =gUnknown_02038808 - movs r0, 0x1E - strb r0, [r1] - ldr r1, _080C81E0 @ =gUnknown_0203880A - movs r2, 0xFA - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C81DC: .4byte gUnknown_02038808 -_080C81E0: .4byte gUnknown_0203880A - thumb_func_end sub_80C81B8 - - thumb_func_start sub_80C81E4 -sub_80C81E4: @ 80C81E4 - push {lr} - bl ResetSafariZoneFlag - bl sub_80C82D8 - ldr r1, _080C8200 @ =gUnknown_02038808 - movs r0, 0 - strb r0, [r1] - ldr r1, _080C8204 @ =gUnknown_0203880A - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C8200: .4byte gUnknown_02038808 -_080C8204: .4byte gUnknown_0203880A - thumb_func_end sub_80C81E4 - - thumb_func_start safari_step -safari_step: @ 80C8208 - push {lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _080C8224 - bl sub_80C8508 - ldr r1, _080C8228 @ =gUnknown_0203880A - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _080C822C -_080C8224: - movs r0, 0 - b _080C8234 - .align 2, 0 -_080C8228: .4byte gUnknown_0203880A -_080C822C: - ldr r0, _080C8238 @ =gUnknown_081C3448 - bl ScriptContext1_SetupScript - movs r0, 0x1 -_080C8234: - pop {r1} - bx r1 - .align 2, 0 -_080C8238: .4byte gUnknown_081C3448 - thumb_func_end safari_step - - thumb_func_start sub_80C823C -sub_80C823C: @ 80C823C - push {lr} - ldr r0, _080C8248 @ =gUnknown_081C342D - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C8248: .4byte gUnknown_081C342D - thumb_func_end sub_80C823C - - thumb_func_start sub_80C824C -sub_80C824C: @ 80C824C - push {lr} - ldr r0, _080C8260 @ =gUnknown_02038808 - ldrb r0, [r0] - cmp r0, 0 - beq _080C8268 - ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - b _080C82B0 - .align 2, 0 -_080C8260: .4byte gUnknown_02038808 -_080C8264: .4byte c2_exit_to_overworld_2_switch -_080C8268: - ldr r0, _080C8288 @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080C829C - ldr r0, _080C828C @ =gUnknown_081C340A - bl ScriptContext2_RunNewScript - bl warp_in - ldr r1, _080C8290 @ =gUnknown_0300485C - ldr r0, _080C8294 @ =sub_8080E44 - str r0, [r1] - ldr r0, _080C8298 @ =CB2_LoadMap - bl SetMainCallback2 - b _080C82B0 - .align 2, 0 -_080C8288: .4byte gUnknown_02024D26 -_080C828C: .4byte gUnknown_081C340A -_080C8290: .4byte gUnknown_0300485C -_080C8294: .4byte sub_8080E44 -_080C8298: .4byte CB2_LoadMap -_080C829C: - cmp r0, 0x7 - bne _080C82B0 - ldr r0, _080C82B4 @ =gUnknown_081C3459 - bl ScriptContext1_SetupScript - bl ScriptContext1_Stop - ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_080C82B0: - pop {r0} - bx r0 - .align 2, 0 -_080C82B4: .4byte gUnknown_081C3459 -_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C824C - - thumb_func_start sub_80C82BC -sub_80C82BC: @ 80C82BC - push {lr} - lsls r0, 24 - lsrs r0, 20 - ldr r1, _080C82D4 @ =gUnknown_0203880C - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080C82D4: .4byte gUnknown_0203880C - thumb_func_end sub_80C82BC - - thumb_func_start sub_80C82D8 -sub_80C82D8: @ 80C82D8 - push {lr} - ldr r0, _080C82E8 @ =gUnknown_0203880C - movs r1, 0 - movs r2, 0xA0 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080C82E8: .4byte gUnknown_0203880C - thumb_func_end sub_80C82D8 - - thumb_func_start sub_80C82EC -sub_80C82EC: @ 80C82EC - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r3, 0 - adds r5, r4, 0 - ldr r4, _080C8344 @ =gSaveBlock1 -_080C8302: - ldr r1, _080C8348 @ =gUnknown_0203880C - lsls r0, r3, 4 - adds r2, r0, r1 - movs r1, 0x5 - ldrsb r1, [r4, r1] - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _080C8358 - mov r0, sp - movs r6, 0 - ldrsh r1, [r2, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - bne _080C8358 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r6, 0 - ldrsh r0, [r5, r6] - cmp r1, r0 - bne _080C8358 - ldr r0, _080C834C @ =gScriptResult - strh r3, [r0] - ldr r1, _080C8350 @ =gUnknown_083F7EB8 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, _080C8354 @ =gStringVar1 - bl StringCopy - b _080C836A - .align 2, 0 -_080C8344: .4byte gSaveBlock1 -_080C8348: .4byte gUnknown_0203880C -_080C834C: .4byte gScriptResult -_080C8350: .4byte gUnknown_083F7EB8 -_080C8354: .4byte gStringVar1 -_080C8358: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bls _080C8302 - ldr r1, _080C8374 @ =gScriptResult - ldr r2, _080C8378 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] -_080C836A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8374: .4byte gScriptResult -_080C8378: .4byte 0x0000ffff - thumb_func_end sub_80C82EC - - thumb_func_start sub_80C837C -sub_80C837C: @ 80C837C - push {r4-r7,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - movs r5, 0 - adds r6, r4, 0 - ldr r0, _080C83E8 @ =gSaveBlock1 - movs r7, 0x5 - ldrsb r7, [r0, r7] - mov r4, sp - ldr r0, _080C83EC @ =gUnknown_0203880C - mov r12, r0 -_080C839C: - lsls r0, r5, 4 - mov r1, r12 - adds r2, r0, r1 - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r7, r0 - bne _080C83F4 - ldrh r0, [r4] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4] - adds r3, r6, 0 - ldrh r0, [r3] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r3] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080C83C8 - negs r0, r0 - strh r0, [r4] -_080C83C8: - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080C83D4 - negs r0, r0 - strh r0, [r3] -_080C83D4: - movs r2, 0 - ldrsh r0, [r4, r2] - movs r2, 0 - ldrsh r1, [r6, r2] - adds r0, r1 - cmp r0, 0x5 - bgt _080C83F4 - ldr r0, _080C83F0 @ =gScriptResult - strh r5, [r0] - b _080C8406 - .align 2, 0 -_080C83E8: .4byte gSaveBlock1 -_080C83EC: .4byte gUnknown_0203880C -_080C83F0: .4byte gScriptResult -_080C83F4: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080C839C - ldr r1, _080C8410 @ =gScriptResult - ldr r2, _080C8414 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] -_080C8406: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8410: .4byte gScriptResult -_080C8414: .4byte 0x0000ffff - thumb_func_end sub_80C837C - - thumb_func_start unref_sub_80C8418 -unref_sub_80C8418: @ 80C8418 - push {lr} - bl sub_80C82EC - ldr r2, _080C8434 @ =gScriptResult - ldrh r1, [r2] - ldr r0, _080C8438 @ =0x0000ffff - cmp r1, r0 - beq _080C8440 - adds r0, r1, 0 - lsls r0, 4 - ldr r1, _080C843C @ =gUnknown_02038814 - adds r0, r1 - b _080C8442 - .align 2, 0 -_080C8434: .4byte gScriptResult -_080C8438: .4byte 0x0000ffff -_080C843C: .4byte gUnknown_02038814 -_080C8440: - movs r0, 0 -_080C8442: - pop {r1} - bx r1 - thumb_func_end unref_sub_80C8418 - - thumb_func_start sub_80C8448 -sub_80C8448: @ 80C8448 - push {lr} - bl sub_80C837C - ldr r2, _080C8464 @ =gScriptResult - ldrh r1, [r2] - ldr r0, _080C8468 @ =0x0000ffff - cmp r1, r0 - beq _080C8470 - adds r0, r1, 0 - lsls r0, 4 - ldr r1, _080C846C @ =gUnknown_02038814 - adds r0, r1 - b _080C8472 - .align 2, 0 -_080C8464: .4byte gScriptResult -_080C8468: .4byte 0x0000ffff -_080C846C: .4byte gUnknown_02038814 -_080C8470: - movs r0, 0 -_080C8472: - pop {r1} - bx r1 - thumb_func_end sub_80C8448 - - thumb_func_start sub_80C8478 -sub_80C8478: @ 80C8478 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - movs r2, 0 - ldr r3, _080C84E8 @ =gUnknown_0203880C - mov r6, sp - adds r6, 0x2 - ldr r7, _080C84EC @ =gSaveBlock1 - movs r1, 0x8 - adds r1, r3 - mov r9, r1 - movs r4, 0xFF - lsls r4, 3 - adds r1, r7, r4 - lsrs r0, 21 - adds r0, r1 - mov r8, r0 -_080C84A0: - lsls r5, r2, 4 - adds r4, r5, r3 - movs r0, 0x4 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _080C84F0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C84F0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C84F0 - mov r0, sp - adds r1, r6, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldrb r0, [r7, 0x5] - strb r0, [r4, 0x4] - mov r3, r9 - adds r2, r5, r3 - mov r3, r8 - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0x64 - strb r0, [r4, 0x5] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r6] - strh r0, [r4, 0x2] - b _080C84FA - .align 2, 0 -_080C84E8: .4byte gUnknown_0203880C -_080C84EC: .4byte gSaveBlock1 -_080C84F0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x9 - bls _080C84A0 -_080C84FA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C8478 - - thumb_func_start sub_80C8508 -sub_80C8508: @ 80C8508 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080C8538 @ =gUnknown_0203880C -_080C850E: - lsls r0, r4, 4 - adds r1, r0, r5 - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _080C8528 - subs r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - cmp r0, 0 - bne _080C8528 - adds r0, r4, 0 - bl sub_80C82BC -_080C8528: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080C850E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C8538: .4byte gUnknown_0203880C - thumb_func_end sub_80C8508 - - thumb_func_start unref_sub_80C853C -unref_sub_80C853C: @ 80C853C - push {lr} - bl sub_80C82EC - ldr r3, _080C8564 @ =gScriptResult - ldrh r1, [r3] - ldr r0, _080C8568 @ =0x0000ffff - cmp r1, r0 - beq _080C8574 - ldr r0, _080C856C @ =gStringVar2 - ldr r2, _080C8570 @ =gUnknown_0203880C - lsls r1, 4 - adds r1, r2 - ldrb r1, [r1, 0x5] - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - b _080C8576 - .align 2, 0 -_080C8564: .4byte gScriptResult -_080C8568: .4byte 0x0000ffff -_080C856C: .4byte gStringVar2 -_080C8570: .4byte gUnknown_0203880C -_080C8574: - movs r0, 0 -_080C8576: - pop {r1} - bx r1 - thumb_func_end unref_sub_80C853C - - thumb_func_start sub_80C857C -sub_80C857C: @ 80C857C - push {r4,r5,lr} - adds r2, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - ldr r5, _080C85A8 @ =0x0201e000 - adds r0, r5, 0 - adds r1, r2, 0 - adds r2, r4, 0 - bl memcpy - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl SendBlock - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C85A8: .4byte 0x0201e000 - thumb_func_end sub_80C857C - - thumb_func_start sub_80C85AC -sub_80C85AC: @ 80C85AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r4, r1, 24 - bl GetBlockRecievedStatus - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080C85D0 - adds r0, r4, 0 - bl ResetBlockReceivedFlag - movs r0, 0x1 - b _080C85D2 -_080C85D0: - movs r0, 0 -_080C85D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85AC - - thumb_func_start sub_80C85D8 -sub_80C85D8: @ 80C85D8 - push {r4,lr} - movs r4, 0 -_080C85DC: - bl GetBlockRecievedStatus - lsls r0, 24 - lsrs r0, 24 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C85F2 - movs r0, 0 - b _080C85FE -_080C85F2: - adds r4, 0x1 - cmp r4, 0x3 - ble _080C85DC - bl ResetBlockReceivedFlags - movs r0, 0x1 -_080C85FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85D8 - - thumb_func_start sub_80C8604 -sub_80C8604: @ 80C8604 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r5, _080C8638 @ =gTasks - ldr r6, _080C863C @ =sub_80C8644 - ldr r4, _080C8640 @ =gBlockRecvBuffer - movs r3, 0xFF -_080C8614: - lsls r0, r1, 8 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C8614 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x8] - str r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8638: .4byte gTasks -_080C863C: .4byte sub_80C8644 -_080C8640: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8604 - - thumb_func_start sub_80C8644 -sub_80C8644: @ 80C8644 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C8658 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C865C @ =sub_80C8660 - str r0, [r1] - bx lr - .align 2, 0 -_080C8658: .4byte gTasks -_080C865C: .4byte sub_80C8660 - thumb_func_end sub_80C8644 - - thumb_func_start sub_80C8660 -sub_80C8660: @ 80C8660 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080C868E - bl GetMultiplayerId - ldr r1, _080C8698 @ =gUnknown_02038695 - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C868E - ldr r1, _080C869C @ =gUnknown_0203869A - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C868E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8694: .4byte gReceivedRemoteLinkPlayers -_080C8698: .4byte gUnknown_02038695 -_080C869C: .4byte gUnknown_0203869A - thumb_func_end sub_80C8660 - - thumb_func_start sub_80C86A0 -sub_80C86A0: @ 80C86A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x2 - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C86B6 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C86B6 - movs r0, 0x2 - b _080C872C -_080C86B6: - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080C872A - ldrb r0, [r4] - cmp r0, 0xFF - beq _080C872A -_080C86CA: - ldrb r1, [r4] - adds r0, r1, 0 - adds r0, 0x45 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - bls _080C871E - adds r0, r1, 0 - adds r0, 0x5F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080C871E - adds r0, r1, 0 - cmp r0, 0 - beq _080C871E - cmp r0, 0xAD - beq _080C871E - cmp r0, 0xB8 - beq _080C871E - cmp r0, 0xAB - beq _080C871E - cmp r0, 0xAC - beq _080C871E - cmp r0, 0xB5 - beq _080C871E - cmp r0, 0xB6 - beq _080C871E - cmp r0, 0xBA - beq _080C871E - cmp r0, 0xAE - beq _080C871E - cmp r0, 0xB0 - beq _080C871E - cmp r0, 0xB1 - beq _080C871E - cmp r0, 0xB2 - beq _080C871E - cmp r0, 0xB3 - beq _080C871E - cmp r0, 0xB1 - bne _080C8728 -_080C871E: - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080C86CA - b _080C872A -_080C8728: - movs r5, 0x1 -_080C872A: - adds r0, r5, 0 -_080C872C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C86A0 - - thumb_func_start sub_80C8734 -sub_80C8734: @ 80C8734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080C8768 @ =gTasks - lsls r5, r0, 2 - adds r0, r5, r0 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C876C - cmp r0, 0x1 - beq _080C87D0 - movs r0, 0 - strh r0, [r4, 0x8] - mov r0, r9 - bl SwitchTaskToFollowupFunc - b _080C8896 - .align 2, 0 -_080C8768: .4byte gTasks -_080C876C: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C87A8 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8782 - b _080C8896 -_080C8782: - ldr r0, _080C879C @ =gBlockSendBuffer - ldr r1, _080C87A0 @ =gUnknown_02038695 - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87A4 @ =gUnknown_02038570 - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0x2 - bl sub_8007E9C - b _080C87BA - .align 2, 0 -_080C879C: .4byte gBlockSendBuffer -_080C87A0: .4byte gUnknown_02038695 -_080C87A4: .4byte gUnknown_02038570 -_080C87A8: - ldr r0, _080C87C4 @ =gBlockSendBuffer - ldr r1, _080C87C8 @ =gUnknown_02038695 - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87CC @ =gUnknown_02038570 - adds r1, r2 - movs r2, 0x40 - bl memcpy -_080C87BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8896 - .align 2, 0 -_080C87C4: .4byte gBlockSendBuffer -_080C87C8: .4byte gUnknown_02038695 -_080C87CC: .4byte gUnknown_02038570 -_080C87D0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8896 - movs r7, 0 - str r5, [sp] - ldr r0, _080C8818 @ =gUnknown_02038570 - ldr r6, _080C881C @ =gLinkPlayers - movs r5, 0 - mov r10, r0 - movs r2, 0xFF - mov r8, r2 -_080C87EA: - lsls r1, r7, 8 - ldr r0, _080C8820 @ =gBlockRecvBuffer - adds r1, r0 - mov r0, r10 - movs r2, 0x40 - bl memcpy - ldr r0, _080C8824 @ =gUnknown_02038572 - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8828 - adds r0, r4, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - b _080C883E - .align 2, 0 -_080C8818: .4byte gUnknown_02038570 -_080C881C: .4byte gLinkPlayers -_080C8820: .4byte gBlockRecvBuffer -_080C8824: .4byte gUnknown_02038572 -_080C8828: - ldrb r0, [r4, 0xA] - cmp r0, 0xFC - bne _080C8838 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _080C883E -_080C8838: - strb r0, [r4, 0x5] - mov r1, r8 - strb r1, [r4, 0xA] -_080C883E: - ldr r0, _080C886C @ =gUnknown_0203857D - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8870 - mov r2, r8 - strb r2, [r4, 0x7] - ldrb r0, [r4, 0x4] - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x3] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x2] - strb r0, [r4, 0x4] - ldrb r0, [r4, 0x1] - strb r0, [r4, 0x3] - ldrb r0, [r4] - strb r0, [r4, 0x2] - movs r0, 0x15 - strb r0, [r4, 0x1] - movs r0, 0xFC - strb r0, [r4] - b _080C8878 - .align 2, 0 -_080C886C: .4byte gUnknown_0203857D -_080C8870: - ldrb r0, [r4, 0x7] - strb r0, [r4, 0x5] - mov r0, r8 - strb r0, [r4, 0x7] -_080C8878: - adds r6, 0x1C - adds r5, 0x40 - movs r1, 0x40 - add r10, r1 - adds r7, 0x1 - cmp r7, 0x3 - ble _080C87EA - ldr r0, _080C88A8 @ =gTasks - ldr r1, [sp] - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8896: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C88A8: .4byte gTasks - thumb_func_end sub_80C8734 - - thumb_func_start sub_80C88AC -sub_80C88AC: @ 80C88AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C88D4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080C88D8 - cmp r0, 0x1 - beq _080C88FC - movs r0, 0 - strh r0, [r5, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8924 - .align 2, 0 -_080C88D4: .4byte gTasks -_080C88D8: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C891E - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C88F8 @ =gRngValue - movs r1, 0x4 - bl sub_80C857C - b _080C891E - .align 2, 0 -_080C88F8: .4byte gRngValue -_080C88FC: - movs r0, 0 - bl sub_80C85AC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C892C @ =gRngValue - ldr r4, _080C8930 @ =gBlockRecvBuffer - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _080C8934 @ =gUnknown_03005D28 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy -_080C891E: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080C8924: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C892C: .4byte gRngValue -_080C8930: .4byte gBlockRecvBuffer -_080C8934: .4byte gUnknown_03005D28 - thumb_func_end sub_80C88AC - - thumb_func_start sub_80C8938 -sub_80C8938: @ 80C8938 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8968 @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C896C - cmp r0, 0x1 - beq _080C8998 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C89CE - .align 2, 0 -_080C8968: .4byte gTasks -_080C896C: - ldr r1, _080C8994 @ =gBlockSendBuffer - ldrh r0, [r4, 0x1A] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C898C - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r0, 0x2 - bl sub_8007E9C -_080C898C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C89CE - .align 2, 0 -_080C8994: .4byte gBlockSendBuffer -_080C8998: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r3, 0 - mov r12, r8 - adds r1, r6, 0 - ldr r4, _080C89D8 @ =gBlockRecvBuffer - mov r0, r12 - adds r0, 0xA - adds r2, r7, r0 - movs r6, 0x80 - lsls r6, 1 -_080C89B4: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r6 - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080C89B4 - adds r1, r5 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C89CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C89D8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8938 - - thumb_func_start sub_80C89DC -sub_80C89DC: @ 80C89DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8A04 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A08 - cmp r0, 0x1 - beq _080C8A20 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8A30 - .align 2, 0 -_080C8A04: .4byte gTasks -_080C8A08: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 - ldr r0, _080C8A1C @ =gUnknown_02038695 - movs r1, 0x1 - bl sub_80C857C - b _080C8A2A - .align 2, 0 -_080C8A1C: .4byte gUnknown_02038695 -_080C8A20: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 -_080C8A2A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C89DC - - thumb_func_start sub_80C8A38 -sub_80C8A38: @ 80C8A38 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, _080C8A60 @ =gTasks - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r7 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A64 - cmp r0, 0x1 - beq _080C8A94 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8AC2 - .align 2, 0 -_080C8A60: .4byte gTasks -_080C8A64: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r0, _080C8A8C @ =gUnknown_02038695 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080C8A90 @ =0x02019266 - adds r0, r1 - movs r1, 0x2 - bl sub_80C857C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8AC2 - .align 2, 0 -_080C8A8C: .4byte gUnknown_02038695 -_080C8A90: .4byte 0x02019266 -_080C8A94: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r1, _080C8AC8 @ =gBlockRecvBuffer - ldr r3, _080C8ACC @ =0x02019266 - movs r4, 0x80 - lsls r4, 1 - movs r2, 0x3 -_080C8AA8: - ldrh r0, [r1] - strh r0, [r3] - adds r1, r4 - adds r3, 0x1C - subs r2, 0x1 - cmp r2, 0 - bge _080C8AA8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8AC2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8AC8: .4byte gBlockRecvBuffer -_080C8ACC: .4byte 0x02019266 - thumb_func_end sub_80C8A38 - - thumb_func_start sub_80C8AD0 -sub_80C8AD0: @ 80C8AD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8AF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8AEC - b _080C8C70 -_080C8AEC: - lsls r0, 2 - ldr r1, _080C8AFC @ =_080C8B00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8AF8: .4byte gTasks -_080C8AFC: .4byte _080C8B00 - .align 2, 0 -_080C8B00: - .4byte _080C8B30 - .4byte _080C8B4C - .4byte _080C8B74 - .4byte _080C8B98 - .4byte _080C8BB0 - .4byte _080C8B74 - .4byte _080C8BD8 - .4byte _080C8BF0 - .4byte _080C8B74 - .4byte _080C8C18 - .4byte _080C8C30 - .4byte _080C8B74 -_080C8B30: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8B3C - b _080C8C7A -_080C8B3C: - ldr r0, _080C8B48 @ =gUnknown_02038678 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8B48: .4byte gUnknown_02038678 -_080C8B4C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8B58 - b _080C8C7A -_080C8B58: - ldr r0, _080C8B68 @ =gUnknown_02038678 - ldr r1, _080C8B6C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8B70 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8B68: .4byte gUnknown_02038678 -_080C8B6C: .4byte gUnknown_0203869B -_080C8B70: .4byte gBlockRecvBuffer -_080C8B74: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bgt _080C8B8C - b _080C8C7A -_080C8B8C: - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8C7A -_080C8B98: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BAC @ =gUnknown_02038680 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BAC: .4byte gUnknown_02038680 -_080C8BB0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BCC @ =gUnknown_02038680 - ldr r1, _080C8BD0 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8BD4 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8BCC: .4byte gUnknown_02038680 -_080C8BD0: .4byte gUnknown_0203869B -_080C8BD4: .4byte gBlockRecvBuffer -_080C8BD8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BEC @ =gUnknown_02038688 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BEC: .4byte gUnknown_02038688 -_080C8BF0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C0C @ =gUnknown_02038688 - ldr r1, _080C8C10 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C14 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8C0C: .4byte gUnknown_02038688 -_080C8C10: .4byte gUnknown_0203869B -_080C8C14: .4byte gBlockRecvBuffer -_080C8C18: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C2C @ =gUnknown_02038690 - movs r1, 0x4 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8C2C: .4byte gUnknown_02038690 -_080C8C30: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C60 @ =gUnknown_02038690 - ldr r1, _080C8C64 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C68 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8C48: - bl memcpy -_080C8C4C: - ldr r1, _080C8C6C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8C7A - .align 2, 0 -_080C8C60: .4byte gUnknown_02038690 -_080C8C64: .4byte gUnknown_0203869B -_080C8C68: .4byte gBlockRecvBuffer -_080C8C6C: .4byte gTasks -_080C8C70: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8AD0 - - thumb_func_start sub_80C8C80 -sub_80C8C80: @ 80C8C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8CA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8C9C - b _080C8E0C -_080C8C9C: - lsls r0, 2 - ldr r1, _080C8CAC @ =_080C8CB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8CA8: .4byte gTasks -_080C8CAC: .4byte _080C8CB0 - .align 2, 0 -_080C8CB0: - .4byte _080C8CE0 - .4byte _080C8CFC - .4byte _080C8D24 - .4byte _080C8D46 - .4byte _080C8D60 - .4byte _080C8D24 - .4byte _080C8D88 - .4byte _080C8DA0 - .4byte _080C8D24 - .4byte _080C8DB4 - .4byte _080C8DCC - .4byte _080C8D24 -_080C8CE0: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8CEC - b _080C8E16 -_080C8CEC: - ldr r0, _080C8CF8 @ =0x02019260 - movs r1, 0x70 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8CF8: .4byte 0x02019260 -_080C8CFC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8D08 - b _080C8E16 -_080C8D08: - ldr r0, _080C8D18 @ =0x02019260 - ldr r1, _080C8D1C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D20 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x70 - b _080C8DE4 - .align 2, 0 -_080C8D18: .4byte 0x02019260 -_080C8D1C: .4byte gUnknown_0203869B -_080C8D20: .4byte gBlockRecvBuffer -_080C8D24: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080C8E16 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8E16 -_080C8D46: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D5C @ =0x020192d0 - movs r1, 0x14 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D5C: .4byte 0x020192d0 -_080C8D60: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D7C @ =0x020192d0 - ldr r1, _080C8D80 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D84 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x14 - b _080C8DE4 - .align 2, 0 -_080C8D7C: .4byte 0x020192d0 -_080C8D80: .4byte gUnknown_0203869B -_080C8D84: .4byte gBlockRecvBuffer -_080C8D88: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D9C @ =0x02019328 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D9C: .4byte 0x02019328 -_080C8DA0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DB0 @ =0x02019328 - b _080C8DD8 - .align 2, 0 -_080C8DB0: .4byte 0x02019328 -_080C8DB4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DC8 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8DC8: .4byte gUnknown_02038696 -_080C8DCC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DFC @ =gUnknown_02038696 -_080C8DD8: - ldr r1, _080C8E00 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8E04 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8DE4: - bl memcpy -_080C8DE8: - ldr r1, _080C8E08 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8E16 - .align 2, 0 -_080C8DFC: .4byte gUnknown_02038696 -_080C8E00: .4byte gUnknown_0203869B -_080C8E04: .4byte gBlockRecvBuffer -_080C8E08: .4byte gTasks -_080C8E0C: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8E16: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8C80 - - thumb_func_start sub_80C8E1C -sub_80C8E1C: @ 80C8E1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8E4C @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8E50 - cmp r0, 0x1 - beq _080C8E7C - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8EAE - .align 2, 0 -_080C8E4C: .4byte gTasks -_080C8E50: - ldr r1, _080C8E78 @ =gBlockSendBuffer - movs r0, 0x64 - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C8E70 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - movs r0, 0x2 - bl sub_8007E9C -_080C8E70: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8EAE - .align 2, 0 -_080C8E78: .4byte gBlockSendBuffer -_080C8E7C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - ldr r1, _080C8EB8 @ =gBlockRecvBuffer - mov r0, r8 - adds r0, 0x12 - adds r2, r7, r0 - movs r4, 0x80 - lsls r4, 1 - movs r3, 0x3 -_080C8E94: - ldrh r0, [r1] - strh r0, [r2] - adds r1, r4 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C8E94 - adds r1, r6, r5 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8EB8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8E1C - - thumb_func_start sub_80C8EBC -sub_80C8EBC: @ 80C8EBC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8EE4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8EE8 - cmp r0, 0x1 - beq _080C8F00 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F22 - .align 2, 0 -_080C8EE4: .4byte gTasks -_080C8EE8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8EFC @ =gUnknown_02038670 - movs r1, 0x8 - bl sub_80C857C - b _080C8F1C - .align 2, 0 -_080C8EFC: .4byte gUnknown_02038670 -_080C8F00: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8F28 @ =gUnknown_02038670 - ldr r1, _080C8F2C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8F30 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - bl memcpy -_080C8F1C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F28: .4byte gUnknown_02038670 -_080C8F2C: .4byte gUnknown_0203869B -_080C8F30: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8EBC - - thumb_func_start sub_80C8F34 -sub_80C8F34: @ 80C8F34 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8F5C @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8F60 - cmp r0, 0x1 - beq _080C8F78 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F9A - .align 2, 0 -_080C8F5C: .4byte gTasks -_080C8F60: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8F74 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8F94 - .align 2, 0 -_080C8F74: .4byte gUnknown_02038696 -_080C8F78: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8FA0 @ =gUnknown_02038696 - ldr r1, _080C8FA4 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8FA8 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 - bl memcpy -_080C8F94: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8FA0: .4byte gUnknown_02038696 -_080C8FA4: .4byte gUnknown_0203869B -_080C8FA8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8F34 - - thumb_func_start sub_80C8FAC -sub_80C8FAC: @ 80C8FAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8FD0 @ =word_203855E - ldrh r0, [r1] - cmp r0, 0xAF - bne _080C8FD8 - ldr r1, _080C8FD4 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x26] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080C8FE6 - .align 2, 0 -_080C8FD0: .4byte word_203855E -_080C8FD4: .4byte gTasks -_080C8FD8: - ldrh r0, [r1] - bl itemid_get_type - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r2, r4, 2 -_080C8FE6: - ldr r0, _080C9008 @ =gTasks - adds r1, r2, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080C900C @ =gUnknown_083D61E4 - lsls r0, r3, 2 - adds r0, r2 - ldr r2, [r0] - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080C9010 @ =sub_80A5B00 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9008: .4byte gTasks -_080C900C: .4byte gUnknown_083D61E4 -_080C9010: .4byte sub_80A5B00 - thumb_func_end sub_80C8FAC - - thumb_func_start unknown_ItemMenu_Confirm -unknown_ItemMenu_Confirm: @ 80C9014 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end unknown_ItemMenu_Confirm - - thumb_func_start sub_80C9038 -sub_80C9038: @ 80C9038 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80C8FAC - movs r0, 0x1 - movs r1, 0 - bl fade_screen - pop {r0} - bx r0 - thumb_func_end sub_80C9038 - - thumb_func_start SetUpItemUseOnFieldCallback -SetUpItemUseOnFieldCallback: @ 80C9050 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C9078 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080C9084 - ldr r1, _080C907C @ =gUnknown_0300485C - ldr r0, _080C9080 @ =sub_80A5CC4 - str r0, [r1] - adds r0, r2, 0 - bl unknown_ItemMenu_Confirm - b _080C908E - .align 2, 0 -_080C9078: .4byte gTasks -_080C907C: .4byte gUnknown_0300485C -_080C9080: .4byte sub_80A5CC4 -_080C9084: - ldr r0, _080C9094 @ =gUnknown_03005D00 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 -_080C908E: - pop {r0} - bx r0 - .align 2, 0 -_080C9094: .4byte gUnknown_03005D00 - thumb_func_end SetUpItemUseOnFieldCallback - - thumb_func_start sub_80C9098 -sub_80C9098: @ 80C9098 - push {r4-r6,lr} - adds r4, r1, 0 - adds r1, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080C90CC @ =gStringVar4 - adds r0, r5, 0 - bl StringExpandPlaceholders - cmp r4, 0 - bne _080C90D4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r2, _080C90D0 @ =sub_80A5C48 - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C90E0 - .align 2, 0 -_080C90CC: .4byte gStringVar4 -_080C90D0: .4byte sub_80A5C48 -_080C90D4: - ldr r2, _080C90E8 @ =sub_80A5C9C - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C90E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C90E8: .4byte sub_80A5C9C - thumb_func_end sub_80C9098 - - thumb_func_start DisplayDadsAdviceCannotUseItemMessage -DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9100 @ =gOtherText_DadsAdvice - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9100: .4byte gOtherText_DadsAdvice - thumb_func_end DisplayDadsAdviceCannotUseItemMessage - - thumb_func_start sub_80C9104 -sub_80C9104: @ 80C9104 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080C9118 @ =gOtherText_CantGetOffBike - bl sub_80C9098 - pop {r0} - bx r0 - .align 2, 0 -_080C9118: .4byte gOtherText_CantGetOffBike - thumb_func_end sub_80C9104 - - thumb_func_start CheckIfItemIsTMHMOrEvolutionStone -CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl itemid_get_overworld_function - ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM - cmp r0, r1 - bne _080C9138 - movs r0, 0x1 - b _080C914E - .align 2, 0 -_080C9134: .4byte ItemUseOutOfBattle_TMHM -_080C9138: - adds r0, r4, 0 - bl itemid_get_overworld_function - ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone - cmp r0, r1 - beq _080C914C - movs r0, 0 - b _080C914E - .align 2, 0 -_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone -_080C914C: - movs r0, 0x2 -_080C914E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckIfItemIsTMHMOrEvolutionStone - - thumb_func_start sub_80C9154 -sub_80C9154: @ 80C9154 - push {r4,lr} - sub sp, 0x24 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9188 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080C9180 - mov r1, sp - ldr r0, _080C918C @ =word_203855E - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, _080C9190 @ =sub_80A5D04 - mov r0, sp - movs r2, 0 - bl sub_80F890C - adds r0, r4, 0 - bl DestroyTask -_080C9180: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9188: .4byte gPaletteFade -_080C918C: .4byte word_203855E -_080C9190: .4byte sub_80A5D04 - thumb_func_end sub_80C9154 - - thumb_func_start ItemUseOutOfBattle_Mail -ItemUseOutOfBattle_Mail: @ 80C9194 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080C91C4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C91C8 @ =sub_80C9154 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C91C4: .4byte gTasks -_080C91C8: .4byte sub_80C9154 - thumb_func_end ItemUseOutOfBattle_Mail - - thumb_func_start ItemUseOutOfBattle_Bike -ItemUseOutOfBattle_Bike: @ 80C91CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C924C @ =0x0000082b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9238 - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9254 -_080C9238: - ldr r0, _080C9250 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl sub_80C9104 - b _080C928E - .align 2, 0 -_080C924C: .4byte 0x0000082b -_080C9250: .4byte gTasks -_080C9254: - bl sub_8053C44 - cmp r0, 0x1 - bne _080C927C - bl sub_80E5EF4 - lsls r0, 24 - cmp r0, 0 - bne _080C927C - ldr r1, _080C9274 @ =gUnknown_03005D00 - ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike - str r0, [r1] - adds r0, r5, 0 - bl SetUpItemUseOnFieldCallback - b _080C928E - .align 2, 0 -_080C9274: .4byte gUnknown_03005D00 -_080C9278: .4byte ItemUseOnFieldCB_Bike -_080C927C: - ldr r0, _080C9298 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r5, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C928E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9298: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Bike - - thumb_func_start ItemUseOnFieldCB_Bike -ItemUseOnFieldCB_Bike: @ 80C929C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080C92E0 @ =word_203855E - ldrh r0, [r4] - bl itemid_get_x28 - lsls r0, 24 - cmp r0, 0 - bne _080C92B6 - movs r0, 0x2 - bl GetOnOffBike -_080C92B6: - ldrh r0, [r4] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C92CA - movs r0, 0x4 - bl GetOnOffBike -_080C92CA: - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C92E0: .4byte word_203855E - thumb_func_end ItemUseOnFieldCB_Bike - - thumb_func_start CanFish -CanFish: @ 80C92E4 - push {r4-r6,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x10 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C936C - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080C933C - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - cmp r0, 0 - beq _080C936C -_080C9338: - movs r0, 0x1 - b _080C936E -_080C933C: - adds r0, r5, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - beq _080C935C - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridIsImpassableAt - lsls r0, 24 - cmp r0, 0 - beq _080C9338 -_080C935C: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_8057434 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9338 -_080C936C: - movs r0, 0 -_080C936E: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CanFish - - thumb_func_start ItemUseOutOfBattle_Rod -ItemUseOutOfBattle_Rod: @ 80C9378 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl CanFish - cmp r0, 0x1 - bne _080C939C - ldr r1, _080C9394 @ =gUnknown_03005D00 - ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080C93AE - .align 2, 0 -_080C9394: .4byte gUnknown_03005D00 -_080C9398: .4byte ItemUseOnFieldCB_Rod -_080C939C: - ldr r0, _080C93B4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C93AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93B4: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_Rod - - thumb_func_start ItemUseOnFieldCB_Rod -ItemUseOnFieldCB_Rod: @ 80C93B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C93DC @ =word_203855E - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 24 - bl StartFishing - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C93DC: .4byte word_203855E - thumb_func_end ItemUseOnFieldCB_Rod - - thumb_func_start ItemUseOutOfBattle_Itemfinder -ItemUseOutOfBattle_Itemfinder: @ 80C93E0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x27 - bl sav12_xor_increment - ldr r1, _080C9400 @ =gUnknown_03005D00 - ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9400: .4byte gUnknown_03005D00 -_080C9404: .4byte ItemUseOnFieldCB_Itemfinder - thumb_func_end ItemUseOutOfBattle_Itemfinder - - thumb_func_start ItemUseOnFieldCB_Itemfinder -ItemUseOnFieldCB_Itemfinder: @ 80C9408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C9430 @ =gMapHeader - ldr r0, [r0, 0x4] - adds r1, r4, 0 - bl ItemfinderCheckForHiddenItems - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C943C - ldr r0, _080C9434 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C9438 @ =sub_80C9458 - str r0, [r1] - b _080C9448 - .align 2, 0 -_080C9430: .4byte gMapHeader -_080C9434: .4byte gTasks -_080C9438: .4byte sub_80C9458 -_080C943C: - ldr r1, _080C9450 @ =gOtherText_NoResponse - ldr r2, _080C9454 @ =sub_80C9520 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9448: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9450: .4byte gOtherText_NoResponse -_080C9454: .4byte sub_80C9520 - thumb_func_end ItemUseOnFieldCB_Itemfinder - - thumb_func_start sub_80C9458 -sub_80C9458: @ 80C9458 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - ldr r0, _080C94AC @ =gTasks + 0x8 - mov r8, r0 - adds r4, r7, r0 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C950C - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - bne _080C9500 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_80C9908 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080C94B8 - ldr r1, _080C94B0 @ =gUnknown_083D61F0 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80C997C - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _080C94B4 @ =sub_80C99EC - str r1, [r0] - b _080C9516 - .align 2, 0 -_080C94AC: .4byte gTasks + 0x8 -_080C94B0: .4byte gUnknown_083D61F0 -_080C94B4: .4byte sub_80C99EC -_080C94B8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - adds r3, r6, 0 - ldr r7, _080C94F4 @ =gUnknown_083D61F0 - movs r6, 0x3 -_080C94C8: - adds r0, r1, r7 - adds r1, 0x1 - ldrb r0, [r0] - cmp r2, r0 - bne _080C94D8 - adds r0, r1, 0 - ands r0, r6 - strh r0, [r4, 0xA] -_080C94D8: - lsls r0, r1, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C94C8 - ldr r1, _080C94F8 @ =gTasks - adds r0, r3, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C94FC @ =sub_80C9A38 - str r1, [r0] - movs r0, 0 - strh r0, [r4, 0x6] - strh r0, [r4, 0x4] - b _080C9516 - .align 2, 0 -_080C94F4: .4byte gUnknown_083D61F0 -_080C94F8: .4byte gTasks -_080C94FC: .4byte sub_80C9A38 -_080C9500: - movs r0, 0x48 - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C950C: - ldrh r0, [r4, 0x6] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r4, 0x6] -_080C9516: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C9458 - - thumb_func_start sub_80C9520 -sub_80C9520: @ 80C9520 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_8064E2C - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C9520 - - thumb_func_start ItemfinderCheckForHiddenItems -ItemfinderCheckForHiddenItems: @ 80C9548 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - ldr r1, _080C9618 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r3, 0 - mov r9, r4 - ldrb r0, [r5, 0x3] - cmp r3, r0 - bge _080C95FC - subs r1, 0x5 - mov r8, r1 -_080C9580: - lsls r3, 16 - asrs r1, r3, 16 - ldr r2, [r5, 0x10] - lsls r0, r1, 1 - adds r0, r1 - lsls r4, r0, 2 - adds r1, r4, r2 - ldrb r0, [r1, 0x5] - adds r7, r3, 0 - cmp r0, 0x7 - bne _080C95EC - movs r2, 0x96 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1, 0xA] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080C95EC - ldr r1, [r5, 0x10] - adds r1, r4, r1 - ldrh r2, [r1] - adds r2, 0x7 - mov r0, sp - ldrh r0, [r0] - subs r2, r0 - ldrh r0, [r1, 0x2] - adds r0, 0x7 - mov r3, r9 - ldrh r1, [r3] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r2, r3 - lsrs r2, 16 - cmp r2, 0xE - bhi _080C95EC - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, r8 - blt _080C95EC - cmp r2, 0x5 - bgt _080C95EC - adds r0, r6, 0 - bl sub_80C9838 -_080C95EC: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r3, r0, 16 - asrs r0, 16 - ldrb r2, [r5, 0x3] - cmp r0, r2 - blt _080C9580 -_080C95FC: - adds r0, r6, 0 - bl sub_80C9720 - ldr r0, _080C9618 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C961C - movs r0, 0 - b _080C961E - .align 2, 0 -_080C9618: .4byte gTasks -_080C961C: - movs r0, 0x1 -_080C961E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ItemfinderCheckForHiddenItems - - thumb_func_start sub_80C962C -sub_80C962C: @ 80C962C - push {r4-r6,lr} - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - ldrb r2, [r0, 0x3] - ldr r5, [r0, 0x10] - movs r1, 0 - cmp r1, r2 - bge _080C9680 - lsls r0, r3, 16 - asrs r6, r0, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - adds r3, r5, 0 -_080C964A: - ldrb r0, [r3, 0x5] - cmp r0, 0x7 - bne _080C9678 - ldrh r0, [r3] - cmp r6, r0 - bne _080C9678 - ldrh r0, [r3, 0x2] - cmp r4, r0 - bne _080C9678 - movs r1, 0x96 - lsls r1, 2 - adds r0, r1, 0 - ldrh r3, [r3, 0xA] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080C9680 - movs r0, 0x1 - b _080C9682 -_080C9678: - adds r3, 0xC - adds r1, 0x1 - cmp r1, r2 - blt _080C964A -_080C9680: - movs r0, 0 -_080C9682: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C962C - - thumb_func_start sub_80C9688 -sub_80C9688: @ 80C9688 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl mapconnection_get_mapheader - adds r3, r0, 0 - ldrb r0, [r4] - cmp r0, 0x2 - beq _080C96B0 - cmp r0, 0x2 - bgt _080C96A6 - cmp r0, 0x1 - beq _080C96C4 - b _080C9704 -_080C96A6: - cmp r0, 0x3 - beq _080C96DC - cmp r0, 0x4 - beq _080C96E6 - b _080C9704 -_080C96B0: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r3] - ldr r0, [r0, 0x4] - subs r0, 0x7 - adds r0, r6 - b _080C96FA -_080C96C4: - ldr r0, [r4, 0x4] - adds r0, 0x7 - subs r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080C96D8 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x4] - b _080C96F6 - .align 2, 0 -_080C96D8: .4byte gMapHeader -_080C96DC: - ldr r0, [r3] - ldr r0, [r0] - subs r0, 0x7 - adds r0, r5 - b _080C96F0 -_080C96E6: - ldr r0, _080C9700 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x7 - subs r0, r5, r0 -_080C96F0: - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, [r4, 0x4] -_080C96F6: - adds r0, 0x7 - subs r0, r6, r0 -_080C96FA: - lsls r0, 16 - lsrs r2, r0, 16 - b _080C9708 - .align 2, 0 -_080C9700: .4byte gMapHeader -_080C9704: - movs r0, 0 - b _080C971A -_080C9708: - ldr r0, [r3, 0x4] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - bl sub_80C962C - lsls r0, 24 - lsrs r0, 24 -_080C971A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C9688 - - thumb_func_start sub_80C9720 -sub_80C9720: @ 80C9720 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _080C9834 @ =gMapHeader - ldr r1, [r0] - ldr r0, [r1] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldr r0, [r1, 0x4] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - adds r1, 0x7 - cmp r0, r1 - bgt _080C9824 -_080C976E: - mov r5, sp - ldrh r0, [r5, 0x2] - subs r0, 0x5 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - movs r6, 0x2 - ldrsh r0, [r5, r6] - adds r0, 0x5 - lsls r3, 16 - mov r8, r3 - cmp r1, r0 - bgt _080C980E - movs r0, 0x7 - str r0, [sp, 0x10] - mov r1, r8 - asrs r1, 16 - mov r9, r1 - mov r10, r0 -_080C9796: - ldr r3, [sp, 0x10] - cmp r3, r9 - bgt _080C97B8 - ldr r5, [sp, 0x8] - lsls r0, r5, 16 - asrs r0, 16 - cmp r9, r0 - bge _080C97B8 - asrs r1, r2, 16 - cmp r10, r1 - bgt _080C97B8 - ldr r6, [sp, 0xC] - lsls r0, r6, 16 - asrs r0, 16 - lsls r7, r4, 16 - cmp r1, r0 - blt _080C97F6 -_080C97B8: - mov r0, r8 - asrs r5, r0, 16 - lsls r4, 16 - asrs r6, r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8056BA0 - adds r7, r4, 0 - cmp r0, 0 - beq _080C97F6 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80C9688 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C97F6 - mov r0, sp - ldrh r1, [r0] - subs r1, r5, r1 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, r6, r2 - lsls r2, 16 - asrs r2, 16 - ldr r0, [sp, 0x4] - bl sub_80C9838 -_080C97F6: - movs r1, 0x80 - lsls r1, 9 - adds r0, r7, r1 - lsrs r4, r0, 16 - lsls r2, r4, 16 - asrs r1, r2, 16 - mov r3, sp - movs r5, 0x2 - ldrsh r0, [r3, r5] - adds r0, 0x5 - cmp r1, r0 - ble _080C9796 -_080C980E: - movs r1, 0x80 - lsls r1, 9 - add r1, r8 - lsrs r3, r1, 16 - asrs r1, 16 - mov r0, sp - movs r6, 0 - ldrsh r0, [r0, r6] - adds r0, 0x7 - cmp r1, r0 - ble _080C976E -_080C9824: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C9834: .4byte gMapHeader - thumb_func_end sub_80C9720 - - thumb_func_start sub_80C9838 -sub_80C9838: @ 80C9838 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r12, r2 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080C986C @ =gTasks + 0x8 - adds r3, r1, r0 - movs r1, 0x4 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080C9870 - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] - movs r0, 0x1 - strh r0, [r3, 0x4] - b _080C98FA - .align 2, 0 -_080C986C: .4byte gTasks + 0x8 -_080C9870: - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080C9880 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080C9882 -_080C9880: - ldrh r4, [r3] -_080C9882: - movs r1, 0x2 - ldrsh r0, [r3, r1] - ldrh r1, [r3, 0x2] - mov r9, r1 - cmp r0, 0 - bge _080C9896 - negs r0, r0 - lsls r0, 16 - lsrs r2, r0, 16 - b _080C9898 -_080C9896: - ldrh r2, [r3, 0x2] -_080C9898: - lsls r1, r7, 16 - asrs r0, r1, 16 - cmp r0, 0 - bge _080C98A8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - b _080C98AA -_080C98A8: - lsrs r6, r1, 16 -_080C98AA: - mov r1, r12 - lsls r0, r1, 16 - asrs r1, r0, 16 - mov r8, r0 - cmp r1, 0 - bge _080C98BC - negs r0, r1 - lsls r0, 16 - b _080C98BE -_080C98BC: - mov r0, r8 -_080C98BE: - lsrs r5, r0, 16 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r2, 16 - asrs r2, r1, 16 - adds r4, r0, r2 - lsls r0, r6, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - adds r0, r1 - cmp r4, r0 - ble _080C98E0 - strh r7, [r3] - mov r1, r12 - strh r1, [r3, 0x2] - b _080C98FA -_080C98E0: - cmp r4, r0 - bne _080C98FA - cmp r2, r1 - bgt _080C98F4 - cmp r2, r1 - bne _080C98FA - mov r1, r9 - lsls r0, r1, 16 - cmp r0, r8 - bge _080C98FA -_080C98F4: - strh r7, [r3] - mov r0, r12 - strh r0, [r3, 0x2] -_080C98FA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80C9838 - - thumb_func_start sub_80C9908 -sub_80C9908: @ 80C9908 - push {r4,r5,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bne _080C991A - cmp r1, 0 - beq _080C9974 -_080C991A: - lsls r0, r2, 16 - asrs r2, r0, 16 - adds r5, r0, 0 - cmp r2, 0 - bge _080C992C - negs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - b _080C992E -_080C992C: - lsrs r4, r5, 16 -_080C992E: - lsls r0, r1, 16 - asrs r2, r0, 16 - adds r1, r0, 0 - cmp r2, 0 - bge _080C9940 - negs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - b _080C9942 -_080C9940: - lsrs r3, r1, 16 -_080C9942: - lsls r0, r4, 16 - asrs r2, r0, 16 - lsls r0, r3, 16 - asrs r0, 16 - cmp r2, r0 - ble _080C995A - cmp r5, 0 - bge _080C9956 - movs r0, 0x4 - b _080C9976 -_080C9956: - movs r0, 0x2 - b _080C9976 -_080C995A: - cmp r2, r0 - bge _080C9964 - cmp r1, 0 - blt _080C996C - b _080C9970 -_080C9964: - cmp r2, r0 - bne _080C9974 - cmp r1, 0 - bge _080C9970 -_080C996C: - movs r0, 0x1 - b _080C9976 -_080C9970: - movs r0, 0x3 - b _080C9976 -_080C9974: - movs r0, 0 -_080C9976: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C9908 - - thumb_func_start sub_80C997C -sub_80C997C: @ 80C997C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r4, _080C99E8 @ =gMapObjects - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnim - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl npc_sync_anim_pause_bits - adds r0, r5, 0 - bl PlayerTurnInPlace - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C99E8: .4byte gMapObjects - thumb_func_end sub_80C997C - - thumb_func_start sub_80C99EC -sub_80C99EC: @ 80C99EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9A2C @ =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9A24 - ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding - ldr r2, _080C9A34 @ =sub_80C9520 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9A24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9A2C: .4byte gMapObjects -_080C9A30: .4byte gOtherText_ItemfinderResponding -_080C9A34: .4byte sub_80C9520 - thumb_func_end sub_80C99EC - - thumb_func_start sub_80C9A38 -sub_80C9A38: @ 80C9A38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C9AB4 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9AB8 @ =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9A78 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080C9AAE -_080C9A78: - ldr r1, _080C9ABC @ =gUnknown_083D61F0 - movs r2, 0xA - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - bl sub_80C997C - movs r0, 0x1 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080C9AAE - ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem - ldr r2, _080C9AC4 @ =sub_80C9520 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9AAE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9AB4: .4byte gTasks + 0x8 -_080C9AB8: .4byte gMapObjects -_080C9ABC: .4byte gUnknown_083D61F0 -_080C9AC0: .4byte gOtherText_ItemfinderFoundItem -_080C9AC4: .4byte sub_80C9520 - thumb_func_end sub_80C9A38 - - thumb_func_start ItemUseOutOfBattle_PokeblockCase -ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9AF4 - ldr r0, _080C9AF0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage - b _080C9B2A - .align 2, 0 -_080C9AF0: .4byte gTasks -_080C9AF4: - ldr r0, _080C9B14 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0xC - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080C9B18 - movs r0, 0 - bl sub_810BA7C - adds r0, r4, 0 - bl unknown_ItemMenu_Confirm - b _080C9B2A - .align 2, 0 -_080C9B14: .4byte gTasks -_080C9B18: - ldr r1, _080C9B30 @ =gUnknown_0300485C - ldr r0, _080C9B34 @ =sub_8080E28 - str r0, [r1] - movs r0, 0x1 - bl sub_810BA7C - adds r0, r5, 0 - bl sub_80C9038 -_080C9B2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9B30: .4byte gUnknown_0300485C -_080C9B34: .4byte sub_8080E28 - thumb_func_end ItemUseOutOfBattle_PokeblockCase - - thumb_func_start ItemUseOutOfBattle_CoinCase -ItemUseOutOfBattle_CoinCase: @ 80C9B38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080C9B8C @ =gStringVar1 - bl GetCoins - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r4, _080C9B90 @ =gStringVar4 - ldr r1, _080C9B94 @ =gOtherText_Coins3 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r1, _080C9B98 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080C9BA0 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r2, _080C9B9C @ =sub_80A5C48 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9BAC - .align 2, 0 -_080C9B8C: .4byte gStringVar1 -_080C9B90: .4byte gStringVar4 -_080C9B94: .4byte gOtherText_Coins3 -_080C9B98: .4byte gTasks -_080C9B9C: .4byte sub_80A5C48 -_080C9BA0: - ldr r2, _080C9BB4 @ =sub_80A5C9C - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9BAC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9BB4: .4byte sub_80A5C9C - thumb_func_end ItemUseOutOfBattle_CoinCase - - thumb_func_start sub_80C9BB8 -sub_80C9BB8: @ 80C9BB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C9BD4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C9BD0 - adds r0, r2, 0 - bl sub_80A5C48 -_080C9BD0: - pop {r0} - bx r0 - .align 2, 0 -_080C9BD4: .4byte gMain - thumb_func_end sub_80C9BB8 - - thumb_func_start sub_80C9BD8 -sub_80C9BD8: @ 80C9BD8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080C9BF4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C9BF0 - adds r0, r2, 0 - bl sub_80A5C9C -_080C9BF0: - pop {r0} - bx r0 - .align 2, 0 -_080C9BF4: .4byte gMain - thumb_func_end sub_80C9BD8 - - thumb_func_start unref_sub_80C9BF8 -unref_sub_80C9BF8: @ 80C9BF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080C9C3C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080C9C4C - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r4, _080C9C40 @ =gUnknown_083D61DC - ldr r0, _080C9C44 @ =word_203855E - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - ldr r2, _080C9C48 @ =sub_80C9BB8 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9C68 - .align 2, 0 -_080C9C3C: .4byte gTasks -_080C9C40: .4byte gUnknown_083D61DC -_080C9C44: .4byte word_203855E -_080C9C48: .4byte sub_80C9BB8 -_080C9C4C: - ldr r4, _080C9C70 @ =gUnknown_083D61DC - ldr r0, _080C9C74 @ =word_203855E - ldrh r0, [r0] - bl itemid_get_x28 - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r1, [r0] - ldr r2, _080C9C78 @ =sub_80C9BD8 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080C9C68: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9C70: .4byte gUnknown_083D61DC -_080C9C74: .4byte word_203855E -_080C9C78: .4byte sub_80C9BD8 - thumb_func_end unref_sub_80C9BF8 - - thumb_func_start sub_80C9C7C -sub_80C9C7C: @ 80C9C7C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - bl IsPlayerFacingPlantedBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9CE4 - ldr r1, _080C9CC8 @ =gUnknown_03005D00 - ldr r0, _080C9CCC @ =sub_80C9D00 - str r0, [r1] - ldr r1, _080C9CD0 @ =gUnknown_0300485C - ldr r0, _080C9CD4 @ =sub_80A5CC4 - str r0, [r1] - ldr r1, _080C9CD8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch - lsrs r1, r2, 16 - movs r3, 0 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - ldr r1, _080C9CE0 @ =sub_80A5B00 - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - str r3, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080C9CF4 - .align 2, 0 -_080C9CC8: .4byte gUnknown_03005D00 -_080C9CCC: .4byte sub_80C9D00 -_080C9CD0: .4byte gUnknown_0300485C -_080C9CD4: .4byte sub_80A5CC4 -_080C9CD8: .4byte gTasks -_080C9CDC: .4byte c2_exit_to_overworld_2_switch -_080C9CE0: .4byte sub_80A5B00 -_080C9CE4: - ldr r0, _080C9CFC @ =word_203855E - ldrh r0, [r0] - bl itemid_get_overworld_function - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 -_080C9CF4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9CFC: .4byte word_203855E - thumb_func_end sub_80C9C7C - - thumb_func_start sub_80C9D00 -sub_80C9D00: @ 80C9D00 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080C9D28 @ =word_203855E - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80A9538 - bl ScriptContext2_Enable - ldr r0, _080C9D2C @ =gUnknown_081A1654 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D28: .4byte word_203855E -_080C9D2C: .4byte gUnknown_081A1654 - thumb_func_end sub_80C9D00 - - thumb_func_start ItemUseOutOfBattle_WailmerPail -ItemUseOutOfBattle_WailmerPail: @ 80C9D30 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl WaterBerryTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C9D58 - ldr r1, _080C9D50 @ =gUnknown_03005D00 - ldr r0, _080C9D54 @ =sub_80C9D74 - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080C9D6A - .align 2, 0 -_080C9D50: .4byte gUnknown_03005D00 -_080C9D54: .4byte sub_80C9D74 -_080C9D58: - ldr r0, _080C9D70 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080C9D6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D70: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_WailmerPail - - thumb_func_start sub_80C9D74 -sub_80C9D74: @ 80C9D74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r0, _080C9D94 @ =gUnknown_081A168F - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9D94: .4byte gUnknown_081A168F - thumb_func_end sub_80C9D74 - - thumb_func_start sub_80C9D98 -sub_80C9D98: @ 80C9D98 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9DAC @ =gUnknown_02038561 - movs r1, 0 - strb r1, [r2] - bl unknown_ItemMenu_Confirm - pop {r0} - bx r0 - .align 2, 0 -_080C9DAC: .4byte gUnknown_02038561 - thumb_func_end sub_80C9D98 - - thumb_func_start ItemUseOutOfBattle_Medicine -ItemUseOutOfBattle_Medicine: @ 80C9DB0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9DC4 @ =gUnknown_03004AE4 - ldr r1, _080C9DC8 @ =sub_806FE2C - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9DC4: .4byte gUnknown_03004AE4 -_080C9DC8: .4byte sub_806FE2C - thumb_func_end ItemUseOutOfBattle_Medicine - - thumb_func_start ItemUseOutOfBattle_SacredAsh -ItemUseOutOfBattle_SacredAsh: @ 80C9DCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080C9DDC @ =gUnknown_03005CE0 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - b _080C9DE6 - .align 2, 0 -_080C9DDC: .4byte gUnknown_03005CE0 -_080C9DE0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080C9DE6: - cmp r5, 0x5 - bhi _080C9E10 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C9E28 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080C9DE0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080C9DE0 - ldr r0, _080C9E2C @ =gUnknown_03005CE0 - strb r5, [r0] -_080C9E10: - ldr r1, _080C9E30 @ =gUnknown_03004AE4 - ldr r0, _080C9E34 @ =sub_8070048 - str r0, [r1] - ldr r1, _080C9E38 @ =gUnknown_02038561 - movs r0, 0x4 - strb r0, [r1] - adds r0, r6, 0 - bl unknown_ItemMenu_Confirm - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C9E28: .4byte gPlayerParty -_080C9E2C: .4byte gUnknown_03005CE0 -_080C9E30: .4byte gUnknown_03004AE4 -_080C9E34: .4byte sub_8070048 -_080C9E38: .4byte gUnknown_02038561 - thumb_func_end ItemUseOutOfBattle_SacredAsh - - thumb_func_start ItemUseOutOfBattle_PPRecovery -ItemUseOutOfBattle_PPRecovery: @ 80C9E3C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E50 @ =gUnknown_03004AE4 - ldr r1, _080C9E54 @ =dp05_ether - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E50: .4byte gUnknown_03004AE4 -_080C9E54: .4byte dp05_ether - thumb_func_end ItemUseOutOfBattle_PPRecovery - - thumb_func_start ItemUseOutOfBattle_PPUp -ItemUseOutOfBattle_PPUp: @ 80C9E58 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E6C @ =gUnknown_03004AE4 - ldr r1, _080C9E70 @ =dp05_pp_up - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E6C: .4byte gUnknown_03004AE4 -_080C9E70: .4byte dp05_pp_up - thumb_func_end ItemUseOutOfBattle_PPUp - - thumb_func_start ItemUseOutOfBattle_RareCandy -ItemUseOutOfBattle_RareCandy: @ 80C9E74 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9E88 @ =gUnknown_03004AE4 - ldr r1, _080C9E8C @ =sub_8070680 - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9E88: .4byte gUnknown_03004AE4 -_080C9E8C: .4byte sub_8070680 - thumb_func_end ItemUseOutOfBattle_RareCandy - - thumb_func_start ItemUseOutOfBattle_TMHM -ItemUseOutOfBattle_TMHM: @ 80C9E90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080C9EBC @ =word_203855E - ldrh r1, [r0] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bls _080C9EC8 - ldr r1, _080C9EC0 @ =gOtherText_BootedHM - ldr r2, _080C9EC4 @ =sub_80C9EE4 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080C9ED4 - .align 2, 0 -_080C9EBC: .4byte word_203855E -_080C9EC0: .4byte gOtherText_BootedHM -_080C9EC4: .4byte sub_80C9EE4 -_080C9EC8: - ldr r1, _080C9EDC @ =gOtherText_BootedTM - ldr r2, _080C9EE0 @ =sub_80C9EE4 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080C9ED4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9EDC: .4byte gOtherText_BootedTM -_080C9EE0: .4byte sub_80C9EE4 - thumb_func_end ItemUseOutOfBattle_TMHM - - thumb_func_start sub_80C9EE4 -sub_80C9EE4: @ 80C9EE4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - bl PlaySE - ldr r1, _080C9F08 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C9F0C @ =sub_80C9F10 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9F08: .4byte gTasks -_080C9F0C: .4byte sub_80C9F10 - thumb_func_end sub_80C9EE4 - - thumb_func_start sub_80C9F10 -sub_80C9F10: @ 80C9F10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C9F64 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C9F2A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C9F5C -_080C9F2A: - ldr r4, _080C9F68 @ =gStringVar1 - ldr r0, _080C9F6C @ =word_203855E - ldrh r0, [r0] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _080C9F70 @ =gMoveNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _080C9F74 @ =gStringVar4 - ldr r1, _080C9F78 @ =gOtherText_ContainsMove - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080C9F7C @ =sub_80C9F80 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080C9F5C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C9F64: .4byte gMain -_080C9F68: .4byte gStringVar1 -_080C9F6C: .4byte word_203855E -_080C9F70: .4byte gMoveNames -_080C9F74: .4byte gStringVar4 -_080C9F78: .4byte gOtherText_ContainsMove -_080C9F7C: .4byte sub_80C9F80 - thumb_func_end sub_80C9F10 - - thumb_func_start sub_80C9F80 -sub_80C9F80: @ 80C9F80 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _080C9FB8 @ =gBG1TilemapBuffer - movs r1, 0x4 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x8 - movs r2, 0x8 - movs r3, 0x5 - bl sub_80A3FA0 - ldr r1, _080C9FBC @ =gUnknown_083D61F4 - adds r0, r4, 0 - bl sub_80F914C - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C9FB8: .4byte gBG1TilemapBuffer -_080C9FBC: .4byte gUnknown_083D61F4 - thumb_func_end sub_80C9F80 - - thumb_func_start sub_80C9FC0 -sub_80C9FC0: @ 80C9FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9FD4 @ =gUnknown_03004AE4 - ldr r1, _080C9FD8 @ =sub_806F06C - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080C9FD4: .4byte gUnknown_03004AE4 -_080C9FD8: .4byte sub_806F06C - thumb_func_end sub_80C9FC0 - - thumb_func_start sub_80C9FDC -sub_80C9FDC: @ 80C9FDC - push {r4,lr} - ldr r4, _080CA004 @ =word_203855E - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - bl sub_80A3E0C - ldrh r0, [r4] - ldr r1, _080CA008 @ =gStringVar2 - bl itemid_copy_name - ldr r0, _080CA00C @ =gStringVar4 - ldr r1, _080CA010 @ =gOtherText_UsedItem - bl StringExpandPlaceholders - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA004: .4byte word_203855E -_080CA008: .4byte gStringVar2 -_080CA00C: .4byte gStringVar4 -_080CA010: .4byte gOtherText_UsedItem - thumb_func_end sub_80C9FDC - - thumb_func_start ItemUseOutOfBattle_Repel -ItemUseOutOfBattle_Repel: @ 80CA014 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _080CA050 @ =0x00004021 - adds r0, r5, 0 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080CA060 - ldr r0, _080CA054 @ =word_203855E - ldrh r0, [r0] - bl itemid_get_quality - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl VarSet - bl sub_80C9FDC - ldr r1, _080CA058 @ =gStringVar4 - ldr r2, _080CA05C @ =sub_80A5C48 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA06C - .align 2, 0 -_080CA050: .4byte 0x00004021 -_080CA054: .4byte word_203855E -_080CA058: .4byte gStringVar4 -_080CA05C: .4byte sub_80A5C48 -_080CA060: - ldr r1, _080CA074 @ =gOtherText_RepelLingers - ldr r2, _080CA078 @ =sub_80A5C48 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA06C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA074: .4byte gOtherText_RepelLingers -_080CA078: .4byte sub_80A5C48 - thumb_func_end ItemUseOutOfBattle_Repel - - thumb_func_start sub_80CA07C -sub_80CA07C: @ 80CA07C - push {lr} - bl sub_80A3E0C - ldr r0, _080CA090 @ =word_203855E - ldrh r0, [r0] - ldr r1, _080CA094 @ =gStringVar2 - bl itemid_copy_name - pop {r0} - bx r0 - .align 2, 0 -_080CA090: .4byte word_203855E -_080CA094: .4byte gStringVar2 - thumb_func_end sub_80CA07C - - thumb_func_start sub_80CA098 -sub_80CA098: @ 80CA098 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA0D0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080CA0C8 - movs r0, 0x75 - bl PlaySE - ldr r1, _080CA0D4 @ =gStringVar4 - ldr r2, _080CA0D8 @ =sub_80A5C48 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA0C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA0D0: .4byte gTasks -_080CA0D4: .4byte gStringVar4 -_080CA0D8: .4byte sub_80A5C48 - thumb_func_end sub_80CA098 - - thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute -ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _080CA10C @ =word_203855E - ldrh r0, [r0] - cmp r0, 0x2B - bne _080CA124 - ldr r0, _080CA110 @ =0x0000084d - bl FlagSet - ldr r0, _080CA114 @ =0x0000084e - bl FlagReset - bl sub_80CA07C - ldr r0, _080CA118 @ =gStringVar4 - ldr r1, _080CA11C @ =gOtherText_UsedFlute - bl StringExpandPlaceholders - ldr r1, _080CA120 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - b _080CA146 - .align 2, 0 -_080CA10C: .4byte word_203855E -_080CA110: .4byte 0x0000084d -_080CA114: .4byte 0x0000084e -_080CA118: .4byte gStringVar4 -_080CA11C: .4byte gOtherText_UsedFlute -_080CA120: .4byte gTasks -_080CA124: - cmp r0, 0x2A - bne _080CA152 - ldr r0, _080CA158 @ =0x0000084e - bl FlagSet - ldr r0, _080CA15C @ =0x0000084d - bl FlagReset - bl sub_80CA07C - ldr r0, _080CA160 @ =gStringVar4 - ldr r1, _080CA164 @ =gOtherText_UsedRepel - bl StringExpandPlaceholders - ldr r1, _080CA168 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 -_080CA146: - lsls r0, 3 - adds r0, r1 - ldr r1, _080CA16C @ =sub_80CA098 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x26] -_080CA152: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA158: .4byte 0x0000084e -_080CA15C: .4byte 0x0000084d -_080CA160: .4byte gStringVar4 -_080CA164: .4byte gOtherText_UsedRepel -_080CA168: .4byte gTasks -_080CA16C: .4byte sub_80CA098 - thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute - - thumb_func_start task08_080A1C44 -task08_080A1C44: @ 80CA170 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl player_avatar_init_params_reset - bl sub_80878A8 - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end task08_080A1C44 - - thumb_func_start sub_80CA18C -sub_80CA18C: @ 80CA18C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8053014 - bl sub_80C9FDC - ldr r1, _080CA1BC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - ldr r1, _080CA1C0 @ =gStringVar4 - ldr r2, _080CA1C4 @ =task08_080A1C44 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA1BC: .4byte gTasks -_080CA1C0: .4byte gStringVar4 -_080CA1C4: .4byte task08_080A1C44 - thumb_func_end sub_80CA18C - - thumb_func_start sub_80CA1C8 -sub_80CA1C8: @ 80CA1C8 - push {lr} - ldr r0, _080CA1D8 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x4 - beq _080CA1DC - movs r0, 0 - b _080CA1DE - .align 2, 0 -_080CA1D8: .4byte gMapHeader -_080CA1DC: - movs r0, 0x1 -_080CA1DE: - pop {r1} - bx r1 - thumb_func_end sub_80CA1C8 - - thumb_func_start ItemUseOutOfBattle_EscapeRope -ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80CA1C8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CA20C - ldr r1, _080CA204 @ =gUnknown_03005D00 - ldr r0, _080CA208 @ =sub_80CA18C - str r0, [r1] - adds r0, r4, 0 - bl SetUpItemUseOnFieldCallback - b _080CA21E - .align 2, 0 -_080CA204: .4byte gUnknown_03005D00 -_080CA208: .4byte sub_80CA18C -_080CA20C: - ldr r0, _080CA224 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080CA21E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA224: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EscapeRope - - thumb_func_start ItemUseOutOfBattle_EvolutionStone -ItemUseOutOfBattle_EvolutionStone: @ 80CA228 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA23C @ =gUnknown_03004AE4 - ldr r1, _080CA240 @ =sub_8070DBC - str r1, [r2] - bl sub_80C9D98 - pop {r0} - bx r0 - .align 2, 0 -_080CA23C: .4byte gUnknown_03004AE4 -_080CA240: .4byte sub_8070DBC - thumb_func_end ItemUseOutOfBattle_EvolutionStone - - thumb_func_start ItemUseInBattle_PokeBall -ItemUseInBattle_PokeBall: @ 80CA244 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl PlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - bne _080CA26C - ldr r0, _080CA268 @ =word_203855E - ldrh r0, [r0] - movs r1, 0x1 - bl sub_80A9538 - adds r0, r4, 0 - bl sub_80A7094 - b _080CA284 - .align 2, 0 -_080CA268: .4byte word_203855E -_080CA26C: - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r1, _080CA28C @ =gOtherText_BoxIsFull - ldr r2, _080CA290 @ =sub_80A5C48 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA284: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA28C: .4byte gOtherText_BoxIsFull -_080CA290: .4byte sub_80A5C48 - thumb_func_end ItemUseInBattle_PokeBall - - thumb_func_start sub_80CA294 -sub_80CA294: @ 80CA294 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CA2B8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CA2AE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080CA2B4 -_080CA2AE: - adds r0, r2, 0 - bl sub_80A7094 -_080CA2B4: - pop {r0} - bx r0 - .align 2, 0 -_080CA2B8: .4byte gMain - thumb_func_end sub_80CA294 - - thumb_func_start sub_80CA2BC -sub_80CA2BC: @ 80CA2BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080CA304 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080CA2FC - movs r0, 0x1 - bl PlaySE - ldr r4, _080CA308 @ =word_203855E - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - ldrh r0, [r4] - bl sub_803F378 - adds r1, r0, 0 - ldr r2, _080CA30C @ =sub_80CA294 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA2FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA304: .4byte gTasks -_080CA308: .4byte word_203855E -_080CA30C: .4byte sub_80CA294 - thumb_func_end sub_80CA2BC - - thumb_func_start ItemUseInBattle_StatIncrease -ItemUseInBattle_StatIncrease: @ 80CA310 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080CA35C @ =gUnknown_02024A6A - ldr r0, _080CA360 @ =gUnknown_02024E6C - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r4, [r0] - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - movs r0, 0x64 - muls r0, r4 - ldr r1, _080CA364 @ =gPlayerParty - adds r0, r1 - ldr r1, _080CA368 @ =word_203855E - ldrh r1, [r1] - lsls r4, 24 - lsrs r4, 24 - adds r2, r4, 0 - movs r3, 0 - bl ExecuteTableBasedItemEffect_ - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080CA374 - ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA370 @ =sub_80A5C48 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA384 - .align 2, 0 -_080CA35C: .4byte gUnknown_02024A6A -_080CA360: .4byte gUnknown_02024E6C -_080CA364: .4byte gPlayerParty -_080CA368: .4byte word_203855E -_080CA36C: .4byte gOtherText_WontHaveAnyEffect -_080CA370: .4byte sub_80A5C48 -_080CA374: - ldr r0, _080CA38C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080CA390 @ =sub_80CA2BC - str r0, [r1] - strh r2, [r1, 0x26] -_080CA384: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA38C: .4byte gTasks -_080CA390: .4byte sub_80CA2BC - thumb_func_end ItemUseInBattle_StatIncrease - - thumb_func_start sub_80CA394 -sub_80CA394: @ 80CA394 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA3BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CA3B4 - bl sub_8094E4C - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_080CA3B4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA3BC: .4byte gPaletteFade - thumb_func_end sub_80CA394 - - thumb_func_start sub_80CA3C0 -sub_80CA3C0: @ 80CA3C0 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA3EC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080CA3F0 @ =sub_80CA394 - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080CA3EC: .4byte gTasks -_080CA3F0: .4byte sub_80CA394 - thumb_func_end sub_80CA3C0 - - thumb_func_start ItemUseInBattle_Medicine -ItemUseInBattle_Medicine: @ 80CA3F4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA408 @ =gUnknown_03004AE4 - ldr r1, _080CA40C @ =sub_806FE2C - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA408: .4byte gUnknown_03004AE4 -_080CA40C: .4byte sub_806FE2C - thumb_func_end ItemUseInBattle_Medicine - - thumb_func_start unref_sub_80CA410 -unref_sub_80CA410: @ 80CA410 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA424 @ =gUnknown_03004AE4 - ldr r1, _080CA428 @ =sub_8070048 - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA424: .4byte gUnknown_03004AE4 -_080CA428: .4byte sub_8070048 - thumb_func_end unref_sub_80CA410 - - thumb_func_start ItemUseInBattle_PPRecovery -ItemUseInBattle_PPRecovery: @ 80CA42C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA440 @ =gUnknown_03004AE4 - ldr r1, _080CA444 @ =dp05_ether - str r1, [r2] - bl sub_80CA3C0 - pop {r0} - bx r0 - .align 2, 0 -_080CA440: .4byte gUnknown_03004AE4 -_080CA444: .4byte dp05_ether - thumb_func_end ItemUseInBattle_PPRecovery - - thumb_func_start unref_sub_80CA448 -unref_sub_80CA448: @ 80CA448 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r4, _080CA494 @ =word_203855E - ldrh r1, [r4] - movs r0, 0 - movs r2, 0 - bl ExecuteTableBasedItemEffect__ - lsls r0, 24 - cmp r0, 0 - bne _080CA4AC - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80A9538 - ldr r0, _080CA498 @ =gPlayerParty - ldr r1, _080CA49C @ =gStringVar1 - bl GetMonNickname - ldr r4, _080CA4A0 @ =gStringVar4 - ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080CA4A8 @ =sub_80A7094 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA4B8 - .align 2, 0 -_080CA494: .4byte word_203855E -_080CA498: .4byte gPlayerParty -_080CA49C: .4byte gStringVar1 -_080CA4A0: .4byte gStringVar4 -_080CA4A4: .4byte gOtherText_SnapConfusion -_080CA4A8: .4byte sub_80A7094 -_080CA4AC: - ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect - ldr r2, _080CA4C4 @ =sub_80A5C48 - adds r0, r5, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField -_080CA4B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA4C0: .4byte gOtherText_WontHaveAnyEffect -_080CA4C4: .4byte sub_80A5C48 - thumb_func_end unref_sub_80CA448 - - thumb_func_start ItemUseInBattle_Escape -ItemUseInBattle_Escape: @ 80CA4C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080CA4F8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080CA504 - bl sub_80C9FDC - ldr r1, _080CA4FC @ =gStringVar4 - ldr r2, _080CA500 @ =sub_80A7094 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayItemMessageOnField - b _080CA516 - .align 2, 0 -_080CA4F8: .4byte gUnknown_020239F8 -_080CA4FC: .4byte gStringVar4 -_080CA500: .4byte sub_80A7094 -_080CA504: - ldr r0, _080CA51C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl DisplayDadsAdviceCannotUseItemMessage -_080CA516: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA51C: .4byte gTasks - thumb_func_end ItemUseInBattle_Escape - - thumb_func_start ItemUseOutOfBattle_EnigmaBerry -ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA544 @ =word_203855E - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x14 - bls _080CA53A - b _080CA62C -_080CA53A: - lsls r0, 2 - ldr r1, _080CA548 @ =_080CA54C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CA544: .4byte word_203855E -_080CA548: .4byte _080CA54C - .align 2, 0 -_080CA54C: - .4byte _080CA5D8 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA62C - .4byte _080CA62C - .4byte _080CA5BC - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA5A0 - .4byte _080CA62C - .4byte _080CA5F4 - .4byte _080CA5F4 - .4byte _080CA610 -_080CA5A0: - ldr r0, _080CA5B8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_Medicine - b _080CA640 - .align 2, 0 -_080CA5B8: .4byte gTasks -_080CA5BC: - ldr r0, _080CA5D4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_SacredAsh - b _080CA640 - .align 2, 0 -_080CA5D4: .4byte gTasks -_080CA5D8: - ldr r0, _080CA5F0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_RareCandy - b _080CA640 - .align 2, 0 -_080CA5F0: .4byte gTasks -_080CA5F4: - ldr r0, _080CA60C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPUp - b _080CA640 - .align 2, 0 -_080CA60C: .4byte gTasks -_080CA610: - ldr r0, _080CA628 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_PPRecovery - b _080CA640 - .align 2, 0 -_080CA628: .4byte gTasks -_080CA62C: - ldr r0, _080CA648 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x26] - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080CA640: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA648: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_EnigmaBerry - - thumb_func_start ItemUseInBattle_EnigmaBerry -ItemUseInBattle_EnigmaBerry: @ 80CA64C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA66C @ =word_203855E - ldrh r0, [r0] - bl sub_8070E48 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x15 - bhi _080CA6E4 - lsls r0, 2 - ldr r1, _080CA670 @ =_080CA674 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CA66C: .4byte word_203855E -_080CA670: .4byte _080CA674 - .align 2, 0 -_080CA674: - .4byte _080CA6CC - .4byte _080CA6E4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6D4 - .4byte _080CA6E4 - .4byte _080CA6D4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6E4 - .4byte _080CA6DC -_080CA6CC: - adds r0, r4, 0 - bl ItemUseInBattle_StatIncrease - b _080CA6EA -_080CA6D4: - adds r0, r4, 0 - bl ItemUseInBattle_Medicine - b _080CA6EA -_080CA6DC: - adds r0, r4, 0 - bl ItemUseInBattle_PPRecovery - b _080CA6EA -_080CA6E4: - adds r0, r4, 0 - bl ItemUseOutOfBattle_CannotUse -_080CA6EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ItemUseInBattle_EnigmaBerry - - thumb_func_start ItemUseOutOfBattle_CannotUse -ItemUseOutOfBattle_CannotUse: @ 80CA6F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CA70C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r1, [r1, 0xC] - bl DisplayDadsAdviceCannotUseItemMessage - pop {r0} - bx r0 - .align 2, 0 -_080CA70C: .4byte gTasks - thumb_func_end ItemUseOutOfBattle_CannotUse - - thumb_func_start sub_80CA710 -sub_80CA710: @ 80CA710 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CA744 @ =gUnknown_03004B00 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080CA748 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CA74C - ldrh r0, [r5, 0x8] - negs r0, r0 - b _080CA74E - .align 2, 0 -_080CA744: .4byte gUnknown_03004B00 -_080CA748: .4byte gUnknown_0202F7C8 -_080CA74C: - ldrh r0, [r5, 0x8] -_080CA74E: - strh r0, [r4, 0x34] - ldr r0, _080CA760 @ =gUnknown_03004B00 - ldrh r0, [r0, 0xA] - strh r0, [r4, 0x36] - ldr r0, _080CA764 @ =sub_80CA768 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA760: .4byte gUnknown_03004B00 -_080CA764: .4byte sub_80CA768 - thumb_func_end sub_80CA710 - - thumb_func_start sub_80CA768 -sub_80CA768: @ 80CA768 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CA7A4 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CA7AA -_080CA7A4: - adds r0, r4, 0 - bl move_anim_8072740 -_080CA7AA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CA768 - - thumb_func_start sub_80CA7B0 -sub_80CA7B0: @ 80CA7B0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CA7F0 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080CA7F4 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080CA7F8 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080CA7FC @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA7F0: .4byte gUnknown_03004B00 -_080CA7F4: .4byte gUnknown_0202F7C8 -_080CA7F8: .4byte sub_8078B34 -_080CA7FC: .4byte move_anim_8074EE0 - thumb_func_end sub_80CA7B0 - - thumb_func_start sub_80CA800 -sub_80CA800: @ 80CA800 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080CA848 @ =gUnknown_03004B00 - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r5, _080CA84C @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080CA850 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080CA854 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CA848: .4byte gUnknown_03004B00 -_080CA84C: .4byte gUnknown_0202F7C9 -_080CA850: .4byte sub_8078B34 -_080CA854: .4byte move_anim_8072740 - thumb_func_end sub_80CA800 - - thumb_func_start sub_80CA858 -sub_80CA858: @ 80CA858 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080CA8A8 @ =gUnknown_03004B00 - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080CA8AC @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x38] - ldr r1, _080CA8B0 @ =sub_80CA8B4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA8A8: .4byte gUnknown_03004B00 -_080CA8AC: .4byte gUnknown_0202F7C9 -_080CA8B0: .4byte sub_80CA8B4 - thumb_func_end sub_80CA858 - - thumb_func_start sub_80CA8B4 -sub_80CA8B4: @ 80CA8B4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080CA8CA - adds r0, r4, 0 - bl DestroySprite - b _080CA91E -_080CA8CA: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080CA8E4 - ldr r0, _080CA8E0 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x1 - b _080CA8EE - .align 2, 0 -_080CA8E0: .4byte gUnknown_0202F7C9 -_080CA8E4: - ldr r0, _080CA924 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x6 -_080CA8EE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0xF - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080CA91E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA924: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CA8B4 - - thumb_func_start sub_80CA928 -sub_80CA928: @ 80CA928 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080CA998 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r0, 0x1 - movs r2, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080CA982 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - movs r0, 0x6 - strh r0, [r5, 0x8] - ldr r1, _080CA99C @ =gUnknown_03004B00 - movs r0, 0xF - strh r0, [r1] - strh r2, [r1, 0x2] - movs r0, 0x50 - strh r0, [r1, 0x4] - strh r2, [r1, 0x6] - ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C - ldr r0, _080CA9A4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl CreateSpriteAndAnimate -_080CA982: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0xF - bne _080CA990 - adds r0, r6, 0 - bl move_anim_task_del -_080CA990: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA998: .4byte gTasks -_080CA99C: .4byte gUnknown_03004B00 -_080CA9A0: .4byte gSpriteTemplate_83D631C -_080CA9A4: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CA928 - - thumb_func_start sub_80CA9A8 -sub_80CA9A8: @ 80CA9A8 - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r6, _080CA9EC @ =gUnknown_03004B00 - ldrh r0, [r6, 0x6] - strh r0, [r4, 0x2E] - ldr r5, _080CA9F0 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080CA9F4 @ =sub_80CA9F8 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CA9EC: .4byte gUnknown_03004B00 -_080CA9F0: .4byte gUnknown_0202F7C8 -_080CA9F4: .4byte sub_80CA9F8 - thumb_func_end sub_80CA9A8 - - thumb_func_start sub_80CA9F8 -sub_80CA9F8: @ 80CA9F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CAA0C - adds r0, r4, 0 - bl move_anim_8072740 -_080CAA0C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CA9F8 - - thumb_func_start sub_80CAA14 -sub_80CAA14: @ 80CAA14 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x7 - ands r1, r0 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r4, _080CAA5C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAA60 - ldrh r0, [r5, 0x20] - subs r0, 0x14 - b _080CAA64 - .align 2, 0 -_080CAA5C: .4byte gUnknown_0202F7C8 -_080CAA60: - ldrh r0, [r5, 0x20] - adds r0, 0x14 -_080CAA64: - strh r0, [r5, 0x20] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - adds r0, 0x40 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080CAAC4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078D60 - bl Random - movs r1, 0xFF - ands r1, r0 - strh r1, [r5, 0x38] - adds r0, r5, 0 - adds r0, 0x43 - ldrb r0, [r0] - strh r0, [r5, 0x3A] - ldr r1, _080CAAC8 @ =sub_80CAACC - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAAC4: .4byte gUnknown_0202F7C9 -_080CAAC8: .4byte sub_80CAACC - thumb_func_end sub_80CAA14 - - thumb_func_start sub_80CAACC -sub_80CAACC: @ 80CAACC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - lsls r0, 24 - cmp r0, 0 - beq _080CAAE2 - adds r0, r4, 0 - bl move_anim_8072740 - b _080CAB12 -_080CAAE2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7E - bgt _080CAAFE - ldrh r0, [r4, 0x3A] - b _080CAB02 -_080CAAFE: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 -_080CAB02: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x18 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] -_080CAB12: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAACC - - thumb_func_start sub_80CAB18 -sub_80CAB18: @ 80CAB18 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CAB78 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAB38 - ldr r1, _080CAB7C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080CAB38: - ldr r4, _080CAB7C @ =gUnknown_03004B00 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080CAB80 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080CAB84 @ =sub_80CAB88 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CAB78: .4byte gUnknown_0202F7C8 -_080CAB7C: .4byte gUnknown_03004B00 -_080CAB80: .4byte gUnknown_0202F7C9 -_080CAB84: .4byte sub_80CAB88 - thumb_func_end sub_80CAB18 - - thumb_func_start sub_80CAB88 -sub_80CAB88: @ 80CAB88 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CABB2 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r4, 0x2E] - ldr r0, _080CABB8 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080CABBC @ =sub_80CABC0 - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080CABB2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CABB8: .4byte sub_80782D8 -_080CABBC: .4byte sub_80CABC0 - thumb_func_end sub_80CAB88 - - thumb_func_start sub_80CABC0 -sub_80CABC0: @ 80CABC0 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080CABF0 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080CABF4 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CABF0: .4byte sub_80782D8 -_080CABF4: .4byte move_anim_8072740 - thumb_func_end sub_80CABC0 - - thumb_func_start sub_80CABF8 -sub_80CABF8: @ 80CABF8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r5, _080CAC3C @ =gUnknown_03004B00 - ldrb r1, [r5, 0x8] - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080CAC22 - ldrb r0, [r4, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] -_080CAC22: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldr r1, _080CAC40 @ =sub_80CAC44 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAC3C: .4byte gUnknown_03004B00 -_080CAC40: .4byte sub_80CAC44 - thumb_func_end sub_80CABF8 - - thumb_func_start sub_80CAC44 -sub_80CAC44: @ 80CAC44 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x32] - adds r1, 0x18 - strh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080CAC98 - ldr r0, _080CAC94 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - b _080CACBC - .align 2, 0 -_080CAC94: .4byte gUnknown_0202F7C9 -_080CAC98: - ldr r0, _080CACE8 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - adds r0, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080CACAC - movs r2, 0x3 -_080CACAC: - movs r0, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 -_080CACBC: - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080CACE0 - adds r0, r4, 0 - bl move_anim_8072740 -_080CACE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CACE8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CAC44 - - thumb_func_start sub_80CACEC -sub_80CACEC: @ 80CACEC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CAD06 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080CAD0E -_080CAD06: - adds r0, r4, 0 - bl move_anim_task_del - b _080CAD4A -_080CAD0E: - ldr r0, _080CAD2C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CAD34 - ldr r0, _080CAD30 @ =REG_BG2CNT - ldrb r1, [r0] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0] - b _080CAD44 - .align 2, 0 -_080CAD2C: .4byte gUnknown_0202F7C9 -_080CAD30: .4byte REG_BG2CNT -_080CAD34: - ldr r2, _080CAD50 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CAD44: - adds r0, r4, 0 - bl move_anim_task_del -_080CAD4A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CAD50: .4byte REG_BG1CNT - thumb_func_end sub_80CACEC - - thumb_func_start sub_80CAD54 -sub_80CAD54: @ 80CAD54 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r5, _080CAD9C @ =gUnknown_03004B00 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080CADA0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080CADA4 @ =sub_80CADA8 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAD9C: .4byte gUnknown_03004B00 -_080CADA0: .4byte gUnknown_0202F7C8 -_080CADA4: .4byte sub_80CADA8 - thumb_func_end sub_80CAD54 - - thumb_func_start sub_80CADA8 -sub_80CADA8: @ 80CADA8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CAE14 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x5 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080CADF4 - ldr r0, _080CADF0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - b _080CADFE - .align 2, 0 -_080CADF0: .4byte gUnknown_0202F7C8 -_080CADF4: - ldr r0, _080CAE10 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079E90 - adds r0, 0x1 -_080CADFE: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CAE1A - .align 2, 0 -_080CAE10: .4byte gUnknown_0202F7C8 -_080CAE14: - adds r0, r4, 0 - bl move_anim_8072740 -_080CAE1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CADA8 - - thumb_func_start sub_80CAE20 -sub_80CAE20: @ 80CAE20 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080CAE68 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldr r0, _080CAE6C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x4] - adds r0, r5 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r4, 0x38] - ldr r1, _080CAE70 @ =sub_80CAE74 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAE68: .4byte gUnknown_03004B00 -_080CAE6C: .4byte gUnknown_0202F7C8 -_080CAE70: .4byte sub_80CAE74 - thumb_func_end sub_80CAE20 - - thumb_func_start sub_80CAE74 -sub_80CAE74: @ 80CAE74 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CAECC - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x3B - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bls _080CAEAC - adds r0, r1, 0 - subs r0, 0xBB - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _080CAEC0 -_080CAEAC: - ldrb r2, [r4, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - eors r1, r0 - lsls r1, 1 - subs r0, 0x47 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] -_080CAEC0: - ldrh r0, [r4, 0x38] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CAED2 -_080CAECC: - adds r0, r4, 0 - bl move_anim_8072740 -_080CAED2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAE74 - - thumb_func_start sub_80CAED8 -sub_80CAED8: @ 80CAED8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CAF14 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080CAF18 @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldr r0, _080CAF1C @ =sub_80CAF20 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CAF14: .4byte gUnknown_0202F7C8 -_080CAF18: .4byte gUnknown_03004B00 -_080CAF1C: .4byte sub_80CAF20 - thumb_func_end sub_80CAED8 - - thumb_func_start sub_80CAF20 -sub_80CAF20: @ 80CAF20 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x32] - movs r2, 0x32 - ldrsh r3, [r1, r2] - cmp r3, 0 - bne _080CAF54 - ldrh r0, [r1, 0x30] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _080CAF42 - movs r0, 0x80 - strh r0, [r1, 0x2E] - strh r3, [r1, 0x30] - strh r3, [r1, 0x32] - b _080CAF48 -_080CAF42: - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - strh r2, [r1, 0x32] -_080CAF48: - ldr r0, _080CAF50 @ =sub_80CAF6C - str r0, [r1, 0x1C] - b _080CAF68 - .align 2, 0 -_080CAF50: .4byte sub_80CAF6C -_080CAF54: - subs r0, 0x1 - strh r0, [r1, 0x32] - ldrh r0, [r1, 0x2E] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] -_080CAF68: - pop {r0} - bx r0 - thumb_func_end sub_80CAF20 - - thumb_func_start sub_80CAF6C -sub_80CAF6C: @ 80CAF6C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CAF8C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAF90 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin - negs r0, r0 - b _080CAF9A - .align 2, 0 -_080CAF8C: .4byte gUnknown_0202F7C8 -_080CAF90: - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x19 - bl Sin -_080CAF9A: - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CAFBA - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] -_080CAFBA: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080CAFC8 - adds r0, r4, 0 - bl move_anim_8072740 -_080CAFC8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CAF6C - - thumb_func_start sub_80CAFD0 -sub_80CAFD0: @ 80CAFD0 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080CB024 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CAFF0 - ldr r1, _080CB028 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080CAFF0: - ldr r6, _080CB028 @ =gUnknown_03004B00 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CB030 - ldr r4, _080CB02C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - b _080CB050 - .align 2, 0 -_080CB024: .4byte gUnknown_0202F7C8 -_080CB028: .4byte gUnknown_03004B00 -_080CB02C: .4byte gUnknown_0202F7C9 -_080CB030: - ldr r0, _080CB07C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 -_080CB050: - strh r0, [r5, 0x36] - ldr r0, _080CB080 @ =gUnknown_03004B00 - ldrh r0, [r0, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080CB084 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080CB07C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080CB088 - movs r0, 0x1 - b _080CB08A - .align 2, 0 -_080CB07C: .4byte gUnknown_0202F7C9 -_080CB080: .4byte gUnknown_03004B00 -_080CB084: .4byte gUnknown_0202F7C8 -_080CB088: - movs r0, 0 -_080CB08A: - strh r0, [r5, 0x2E] - ldr r0, _080CB098 @ =sub_80CB09C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB098: .4byte sub_80CB09C - thumb_func_end sub_80CAFD0 - - thumb_func_start sub_80CB09C -sub_80CB09C: @ 80CB09C - push {r4-r7,lr} - adds r6, r0, 0 - movs r7, 0 - ldrh r5, [r6, 0x2E] - ldrh r4, [r6, 0x3C] - movs r0, 0x1 - strh r0, [r6, 0x2E] - adds r0, r6, 0 - bl sub_8078718 - ldrh r0, [r6, 0x3C] - strh r5, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0xC8 - ble _080CB0CE - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x37 - bgt _080CB0CE - ldrh r0, [r6, 0x6] - cmp r0, 0 - bne _080CB0D4 - adds r0, 0x1 - strh r0, [r6, 0x6] -_080CB0CE: - ldrh r0, [r6, 0x6] - cmp r0, 0 - beq _080CB106 -_080CB0D4: - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080CB106 - adds r3, r6, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r6, 0x6] - adds r0, 0x1 - strh r0, [r6, 0x6] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bne _080CB106 - movs r7, 0x1 -_080CB106: - movs r2, 0x20 - ldrsh r0, [r6, r2] - movs r2, 0x24 - ldrsh r1, [r6, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080CB130 - movs r0, 0x22 - ldrsh r1, [r6, r0] - movs r2, 0x26 - ldrsh r0, [r6, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080CB130 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080CB132 -_080CB130: - movs r7, 0x1 -_080CB132: - cmp r7, 0 - beq _080CB13C - adds r0, r6, 0 - bl move_anim_8072740 -_080CB13C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80CB09C - - thumb_func_start sub_80CB144 -sub_80CB144: @ 80CB144 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CB170 - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CB170 - ldr r0, _080CB198 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC -_080CB170: - ldrh r0, [r4, 0x22] - adds r0, 0x20 - strh r0, [r4, 0x22] - ldr r1, _080CB19C @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x36] - ldr r0, _080CB1A0 @ =sub_80CB1A4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB198: .4byte gUnknown_0202F7C9 -_080CB19C: .4byte gUnknown_03004B00 -_080CB1A0: .4byte sub_80CB1A4 - thumb_func_end sub_80CB144 - - thumb_func_start sub_80CB1A4 -sub_80CB1A4: @ 80CB1A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bne _080CB1BA - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - b _080CB1C8 -_080CB1BA: - cmp r0, 0 - ble _080CB1C8 - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - subs r0, r1, 0x2 - strh r0, [r4, 0x30] -_080CB1C8: - ldrh r3, [r4, 0x32] - ldrh r5, [r4, 0x38] - adds r2, r3, r5 - strh r2, [r4, 0x38] - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r5, 0x36 - ldrsh r0, [r4, r5] - cmp r1, r0 - bge _080CB1E0 - adds r0, r2, r3 - strh r0, [r4, 0x38] -_080CB1E0: - ldrh r1, [r4, 0x38] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r5, 0x38 - ldrsh r0, [r4, r5] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080CB220 - ldr r0, _080CB21C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - b _080CB22E - .align 2, 0 -_080CB21C: .4byte gUnknown_0202F7C9 -_080CB220: - ldr r0, _080CB258 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 -_080CB22E: - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080CB252 - adds r0, r4, 0 - bl move_anim_8072740 -_080CB252: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB258: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80CB1A4 - - thumb_func_start sub_80CB25C -sub_80CB25C: @ 80CB25C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8078764 - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r4, _080CB290 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080CB294 @ =sub_80CB298 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB290: .4byte gUnknown_03004B00 -_080CB294: .4byte sub_80CB298 - thumb_func_end sub_80CB25C - - thumb_func_start sub_80CB298 -sub_80CB298: @ 80CB298 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CB2C8 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080CB2CC @ =0x0000ffff - cmp r1, r0 - bne _080CB2C2 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x2E] - ldr r0, _080CB2D0 @ =sub_80CB2D4 - str r0, [r4, 0x1C] -_080CB2C2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB2C8: .4byte gUnknown_03004B00 -_080CB2CC: .4byte 0x0000ffff -_080CB2D0: .4byte sub_80CB2D4 - thumb_func_end sub_80CB298 - - thumb_func_start sub_80CB2D4 -sub_80CB2D4: @ 80CB2D4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CB2EC - ldrh r0, [r4, 0x2E] - adds r0, 0xB - b _080CB2F0 -_080CB2EC: - ldrh r0, [r4, 0x2E] - subs r0, 0xB -_080CB2F0: - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080CB30C - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x32] -_080CB30C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CB33A - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - cmp r0, 0 - ble _080CB334 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAffineAnim - b _080CB33A -_080CB334: - adds r0, r4, 0 - bl move_anim_8072740 -_080CB33A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CB2D4 - - thumb_func_start sub_80CB340 -sub_80CB340: @ 80CB340 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CB36C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080CB370 - adds r0, r4, 0 - bl move_anim_task_del - b _080CB396 - .align 2, 0 -_080CB36C: .4byte gSprites -_080CB370: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8078E70 - ldr r1, _080CB39C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080CB3A0 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r0, 0x8] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xA] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x1E] - ldr r1, _080CB3A4 @ =sub_80CB3A8 - str r1, [r0] -_080CB396: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CB39C: .4byte gTasks -_080CB3A0: .4byte gUnknown_03004B00 -_080CB3A4: .4byte sub_80CB3A8 - thumb_func_end sub_80CB340 - - thumb_func_start sub_80CB3A8 -sub_80CB3A8: @ 80CB3A8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080CB428 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - ldrh r0, [r4, 0x1C] - adds r1, r0 - strh r1, [r4, 0x1C] - ldr r2, _080CB42C @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r2 - lsls r1, 16 - asrs r1, 24 - strh r1, [r5, 0x24] - ldr r0, _080CB430 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CB3F2 - ldrh r0, [r5, 0x24] - negs r0, r0 - strh r0, [r5, 0x24] -_080CB3F2: - ldrh r0, [r4, 0x1E] - adds r0, 0x10 - strh r0, [r4, 0x1E] - movs r0, 0x1E - ldrsh r2, [r4, r0] - adds r0, r6, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r6, 0 - bl sub_8079A64 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080CB420 - strh r0, [r4, 0x8] - ldr r0, _080CB434 @ =sub_80CB438 - str r0, [r4] -_080CB420: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB428: .4byte gTasks -_080CB42C: .4byte gSprites -_080CB430: .4byte gUnknown_0202F7C9 -_080CB434: .4byte sub_80CB438 - thumb_func_end sub_80CB3A8 - - thumb_func_start sub_80CB438 -sub_80CB438: @ 80CB438 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080CB484 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080CB488 @ =0x0000ffff - cmp r1, r0 - bne _080CB494 - ldr r0, _080CB48C @ =gTasks - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 3 - adds r6, r1, r0 - movs r1, 0x8 - ldrsh r5, [r6, r1] - adds r4, r0, 0 - cmp r5, 0 - bne _080CB4A8 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _080CB490 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x24] - strh r5, [r0, 0x26] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _080CB4C2 - .align 2, 0 -_080CB484: .4byte gUnknown_03004B00 -_080CB488: .4byte 0x0000ffff -_080CB48C: .4byte gTasks -_080CB490: .4byte gSprites -_080CB494: - ldr r1, _080CB4C8 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - movs r4, 0x8 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0 - beq _080CB4C2 -_080CB4A8: - adds r1, r2, r3 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080CB4C2 - adds r0, r3, 0 - bl move_anim_task_del -_080CB4C2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB4C8: .4byte gTasks - thumb_func_end sub_80CB438 - - thumb_func_start sub_80CB4CC -sub_80CB4CC: @ 80CB4CC - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CB4DE - cmp r0, 0x1 - beq _080CB538 - b _080CB58A -_080CB4DE: - ldr r6, _080CB530 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CB4F6 - ldr r1, _080CB534 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080CB4F6: - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CB534 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080CB58A - .align 2, 0 -_080CB530: .4byte gUnknown_0202F7C9 -_080CB534: .4byte gUnknown_03004B00 -_080CB538: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CB58A - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldr r4, _080CB590 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080CB594 @ =sub_8078CC0 - str r0, [r5, 0x1C] - ldr r1, _080CB598 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CB58A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB590: .4byte gUnknown_0202F7C8 -_080CB594: .4byte sub_8078CC0 -_080CB598: .4byte move_anim_8072740 - thumb_func_end sub_80CB4CC - - thumb_func_start sub_80CB59C -sub_80CB59C: @ 80CB59C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CB608 - ldr r4, _080CB614 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080CB618 @ =gUnknown_03004B00 - ldrh r0, [r4] - strh r0, [r5, 0x24] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x26] - ldrb r0, [r4, 0x4] - adds r0, 0x1E - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r4, 0x6] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r2, 0x22 - ldrsh r0, [r5, r2] - movs r2, 0x26 - ldrsh r1, [r5, r2] - adds r0, r1 - cmp r0, 0x78 - ble _080CB608 - ldrh r0, [r5, 0x22] - adds r1, r0, 0 - subs r1, 0x78 - ldrh r2, [r5, 0x26] - adds r0, r2 - adds r1, r0 - strh r1, [r5, 0x22] -_080CB608: - ldr r0, _080CB61C @ =sub_80CB710 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB614: .4byte gUnknown_0202F7C8 -_080CB618: .4byte gUnknown_03004B00 -_080CB61C: .4byte sub_80CB710 - thumb_func_end sub_80CB59C - - thumb_func_start sub_80CB620 -sub_80CB620: @ 80CB620 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - mov r9, r0 - ldr r4, _080CB6FC @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _080CB700 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - subs r4, r5 - lsls r4, 16 - lsrs r2, 24 - mov r1, r8 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - lsrs r3, r4, 16 - mov r10, r3 - asrs r4, 16 - ldr r6, _080CB704 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - muls r0, r4 - movs r1, 0x64 - str r2, [sp] - bl __divsi3 - adds r5, r0 - mov r3, r9 - strh r5, [r3, 0x20] - ldr r2, [sp] - lsls r0, r2, 16 - asrs r0, 16 - movs r3, 0 - ldrsh r1, [r6, r3] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - add r8, r0 - mov r1, r8 - mov r0, r9 - strh r1, [r0, 0x22] - ldrh r0, [r6, 0x2] - mov r3, r9 - strh r0, [r3, 0x24] - ldrh r0, [r6, 0x4] - strh r0, [r3, 0x26] - ldrb r0, [r6, 0x6] - adds r0, 0x1E - mov r1, r9 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0x8] - mov r0, r9 - bl StartSpriteAnim - ldrh r0, [r6, 0xA] - mov r1, r9 - strh r0, [r1, 0x32] - ldr r0, _080CB708 @ =sub_80CB710 - str r0, [r1, 0x1C] - ldr r1, _080CB70C @ =gUnknown_03000728 - mov r3, r9 - ldrh r0, [r3, 0x20] - strh r0, [r1] - ldrh r0, [r3, 0x22] - strh r0, [r1, 0x2] - mov r0, r10 - strh r0, [r1, 0x4] - ldr r2, [sp] - strh r2, [r1, 0x6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB6FC: .4byte gUnknown_0202F7C8 -_080CB700: .4byte gUnknown_0202F7C9 -_080CB704: .4byte gUnknown_03004B00 -_080CB708: .4byte sub_80CB710 -_080CB70C: .4byte gUnknown_03000728 - thumb_func_end sub_80CB620 - - thumb_func_start sub_80CB710 -sub_80CB710: @ 80CB710 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - adds r1, 0x1 - strh r1, [r3, 0x2E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x32 - ldrsh r0, [r3, r2] - subs r0, 0xA - cmp r1, r0 - ble _080CB750 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - movs r2, 0x3E - adds r2, r3 - mov r12, r2 - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080CB750: - movs r2, 0x2E - ldrsh r1, [r3, r2] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r1, r0 - ble _080CB762 - adds r0, r3, 0 - bl move_anim_8072740 -_080CB762: - pop {r0} - bx r0 - thumb_func_end sub_80CB710 - - thumb_func_start sub_80CB768 -sub_80CB768: @ 80CB768 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CB7A8 - ldr r5, _080CB7E4 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CB7E8 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x30] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x32] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x34] -_080CB7A8: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - ldrh r1, [r6, 0x30] - muls r0, r1 - strh r0, [r6, 0x24] - movs r2, 0x2E - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0xFF - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080CB7DE - adds r0, r6, 0 - bl move_anim_8072740 -_080CB7DE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB7E4: .4byte gUnknown_0202F7C8 -_080CB7E8: .4byte gUnknown_03004B00 - thumb_func_end sub_80CB768 - - thumb_func_start sub_80CB7EC -sub_80CB7EC: @ 80CB7EC - push {r4,r5,lr} - movs r2, 0x20 - ldrsh r4, [r0, r2] - lsls r4, 8 - movs r3, 0x22 - ldrsh r2, [r0, r3] - orrs r4, r2 - movs r5, 0x3A - ldrsh r2, [r0, r5] - lsls r2, 8 - movs r5, 0x3C - ldrsh r3, [r0, r5] - orrs r2, r3 - lsls r1, 8 - strh r4, [r0, 0x38] - strh r2, [r0, 0x3A] - strh r1, [r0, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CB7EC - - thumb_func_start sub_80CB814 -sub_80CB814: @ 80CB814 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - ldrh r0, [r0, 0x38] - lsrs r1, r0, 8 - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrh r0, [r1, 0x3A] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r1, [r1, 0x3C] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0xFF - ands r3, r1 - cmp r2, 0 - bne _080CB84E - movs r2, 0x20 - negs r2, r2 - b _080CB856 -_080CB84E: - cmp r2, 0xFF - bne _080CB856 - movs r2, 0x88 - lsls r2, 1 -_080CB856: - mov r0, r9 - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - mov r1, r10 - subs r0, r2, r1 - lsls r5, r3, 16 - asrs r5, 16 - muls r0, r5 - lsls r1, r6, 16 - asrs r7, r1, 16 - adds r1, r7, 0 - bl __divsi3 - adds r6, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r5 - adds r1, r7, 0 - bl __divsi3 - add r6, r10 - mov r1, r8 - strh r6, [r1, 0x20] - add r0, r9 - strh r0, [r1, 0x22] - adds r5, 0x1 - lsls r5, 16 - lsrs r3, r5, 16 - asrs r5, 16 - cmp r5, r7 - beq _080CB8A8 - lsls r1, r7, 8 - lsls r0, r3, 16 - asrs r0, 16 - orrs r0, r1 - mov r1, r8 - strh r0, [r1, 0x3C] - movs r0, 0 - b _080CB8AA -_080CB8A8: - movs r0, 0x1 -_080CB8AA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80CB814 - - thumb_func_start sub_80CB8B8 -sub_80CB8B8: @ 80CB8B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080CB8CC - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080CB8CC: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _080CB8E0 - adds r0, r4, 0 - bl move_anim_8072740 -_080CB8E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CB8B8 - - thumb_func_start sub_80CB8E8 -sub_80CB8E8: @ 80CB8E8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CB912 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CB912: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CB942 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080CB948 @ =sub_80CB8B8 - str r0, [r4, 0x1C] -_080CB942: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CB948: .4byte sub_80CB8B8 - thumb_func_end sub_80CB8E8 - - thumb_func_start sub_80CB94C -sub_80CB94C: @ 80CB94C - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r4, _080CB994 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CB998 @ =gUnknown_0202F7C8 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080CB99C - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x1 - b _080CB9AE - .align 2, 0 -_080CB994: .4byte gUnknown_0202F7C9 -_080CB998: .4byte gUnknown_0202F7C8 -_080CB99C: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x3 -_080CB9AE: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CB9C0 @ =sub_80CB8E8 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CB9C0: .4byte sub_80CB8E8 - thumb_func_end sub_80CB94C - - thumb_func_start sub_80CB9C4 -sub_80CB9C4: @ 80CB9C4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CB9EE - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CB9EE: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CBA20 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - bl move_anim_8072740 -_080CBA20: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CB9C4 - - thumb_func_start sub_80CBA28 -sub_80CBA28: @ 80CBA28 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080CBA64 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080CBA6C - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80CB7EC - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBA68 @ =sub_80CB8E8 - b _080CBA96 - .align 2, 0 -_080CBA64: .4byte gUnknown_0202F7C9 -_080CBA68: .4byte sub_80CB8E8 -_080CBA6C: - movs r0, 0xFF - strh r0, [r5, 0x3A] - adds r0, r6, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CBA84 - movs r0, 0 - strh r0, [r5, 0x3A] -_080CBA84: - adds r0, r5, 0 - movs r1, 0x28 - bl sub_80CB7EC - movs r0, 0x3 - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBAA0 @ =sub_80CB9C4 -_080CBA96: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBAA0: .4byte sub_80CB9C4 - thumb_func_end sub_80CBA28 - - thumb_func_start sub_80CBAA4 -sub_80CBAA4: @ 80CBAA4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CBABE - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 - ldr r0, _080CBAE4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x30] -_080CBABE: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - muls r0, r1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CBADE - adds r0, r4, 0 - bl move_anim_8072740 -_080CBADE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CBAE4: .4byte gUnknown_03004B00 - thumb_func_end sub_80CBAA4 - - thumb_func_start sub_80CBAE8 -sub_80CBAE8: @ 80CBAE8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_8078764 - ldr r4, _080CBB30 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CBB34 @ =gUnknown_0202F7C9 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080CBB38 - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x1 - b _080CBB4A - .align 2, 0 -_080CBB30: .4byte gUnknown_0202F7C8 -_080CBB34: .4byte gUnknown_0202F7C9 -_080CBB38: - strh r6, [r5, 0x3A] - adds r0, r2, 0 - adds r0, 0xA - strh r0, [r5, 0x3C] - adds r0, r5, 0 - movs r1, 0x3C - bl sub_80CB7EC - movs r0, 0x3 -_080CBB4A: - strh r0, [r5, 0x34] - movs r0, 0x3C - strh r0, [r5, 0x36] - ldr r0, _080CBB5C @ =sub_80CBB60 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBB5C: .4byte sub_80CBB60 - thumb_func_end sub_80CBAE8 - - thumb_func_start sub_80CBB60 -sub_80CBB60: @ 80CBB60 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 7 - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __divsi3 - ldrh r1, [r4, 0x2E] - adds r1, r0 - movs r5, 0 - strh r1, [r4, 0x2E] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - ble _080CBB8A - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - strh r5, [r4, 0x2E] -_080CBB8A: - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x30 - ldrsh r2, [r4, r1] - lsls r2, 3 - movs r1, 0x1E - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bne _080CBBBE - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x7D - bl PlaySE12WithPanning -_080CBBBE: - adds r0, r4, 0 - bl sub_80CB814 - lsls r0, 24 - cmp r0, 0 - beq _080CBBE6 - strh r5, [r4, 0x26] - strh r5, [r4, 0x2E] - ldr r0, _080CBBEC @ =sub_80CB8B8 - str r0, [r4, 0x1C] - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x7D - bl PlaySE12WithPanning -_080CBBE6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CBBEC: .4byte sub_80CB8B8 - thumb_func_end sub_80CBB60 - - thumb_func_start sub_80CBBF0 -sub_80CBBF0: @ 80CBBF0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CBC84 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CBC18 - ldr r0, _080CBC14 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - strh r1, [r4, 0x30] - movs r1, 0x78 - strh r1, [r4, 0x20] - adds r5, r0, 0 - b _080CBC3A - .align 2, 0 -_080CBC14: .4byte gUnknown_03004B00 -_080CBC18: - ldr r0, _080CBC74 @ =gUnknown_03004B00 - movs r1, 0x2 - ldrsh r3, [r0, r1] - adds r1, r3, 0 - subs r1, 0x20 - adds r2, r1, 0 - adds r5, r0, 0 - cmp r1, 0 - bge _080CBC2E - adds r2, r3, 0 - adds r2, 0xDF -_080CBC2E: - asrs r0, r2, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - movs r0, 0x46 - strh r0, [r4, 0x20] -_080CBC3A: - ldrh r0, [r5] - strh r0, [r4, 0x22] - strh r0, [r4, 0x32] - movs r0, 0x14 - strh r0, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldr r0, _080CBC78 @ =sub_80CBC8C - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080CBC7C - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080CBC82 - .align 2, 0 -_080CBC74: .4byte gUnknown_03004B00 -_080CBC78: .4byte sub_80CBC8C -_080CBC7C: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080CBC82: - strb r0, [r1] -_080CBC84: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CBBF0 - - thumb_func_start sub_80CBC8C -sub_80CBC8C: @ 80CBC8C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CBC9E - cmp r0, 0x1 - beq _080CBCCE - b _080CBCEE -_080CBC9E: - ldrh r5, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x4E - ble _080CBCB6 - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080CBCEE -_080CBCB6: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - adds r0, r5, r0 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x36] - adds r1, 0x3 - strh r1, [r4, 0x36] - strh r0, [r4, 0x22] - b _080CBCEE -_080CBCCE: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CBCEE - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080CBCEE - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x32] - ldr r0, _080CBCF4 @ =sub_80CBCF8 - str r0, [r4, 0x1C] -_080CBCEE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CBCF4: .4byte sub_80CBCF8 - thumb_func_end sub_80CBC8C - - thumb_func_start sub_80CBCF8 -sub_80CBCF8: @ 80CBCF8 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080CBD3C @ =gUnknown_083D680C - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r3, r0, r1 - adds r0, r5, 0x1 - adds r0, r3, r0 - ldrh r2, [r4, 0x32] - movs r6, 0x32 - ldrsh r1, [r4, r6] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080CBD44 - adds r0, r5, 0x2 - adds r0, r3, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x7F - bne _080CBD30 - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080CBD40 @ =sub_80CBDB0 - str r0, [r4, 0x1C] -_080CBD30: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CBDAA - .align 2, 0 -_080CBD3C: .4byte gUnknown_083D680C -_080CBD40: .4byte sub_80CBDB0 -_080CBD44: - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - adds r1, r0, r5 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r1, [r4, 0x30] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080CBD92 - ldrh r0, [r4, 0x30] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBE - bhi _080CBD8A - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F - b _080CBD90 -_080CBD8A: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D -_080CBD90: - strb r0, [r1] -_080CBD92: - movs r6, 0x30 - ldrsh r0, [r4, r6] - movs r1, 0x3C - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] -_080CBDAA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CBCF8 - - thumb_func_start sub_80CBDB0 -sub_80CBDB0: @ 80CBDB0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080CBDC2 - adds r0, r4, 0 - bl move_anim_8072740 -_080CBDC2: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CBDB0 - - thumb_func_start sub_80CBDF4 -sub_80CBDF4: @ 80CBDF4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080CBF48 @ =gTasks - adds r5, r0, r1 - ldr r4, _080CBF4C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - strh r0, [r5, 0x10] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - strh r0, [r5, 0x1C] - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0x1 - bne _080CBE5C - movs r1, 0x1 -_080CBE5C: - strh r1, [r5, 0x12] - movs r3, 0x12 - ldrsh r0, [r5, r3] - lsls r0, 6 - movs r1, 0x38 - subs r1, r0 - strh r1, [r5, 0x1A] - ldrh r0, [r5, 0x16] - subs r0, r1 - ldrh r1, [r5, 0x14] - adds r0, r1 - strh r0, [r5, 0x18] - ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884 - movs r2, 0x18 - ldrsh r1, [r5, r2] - movs r3, 0x1A - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - cmp r0, 0x40 - bne _080CBE94 - adds r0, r6, 0 - bl move_anim_task_del -_080CBE94: - ldr r4, _080CBF54 @ =gSprites - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x2E] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x18] - strh r1, [r0, 0x30] - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r1, 0x1C - ldrsh r0, [r5, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r5, r3] - muls r1, r0 - ldrh r0, [r5, 0x14] - subs r0, r1 - strh r0, [r2, 0x32] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x1A] - strh r1, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x1E - ldrsh r0, [r5, r2] - lsrs r2, r0, 31 - adds r0, r2 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r2, [r5, r3] - muls r0, r2 - ldrh r2, [r5, 0x16] - adds r0, r2 - strh r0, [r1, 0x36] - movs r3, 0xC - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80CC338 - movs r1, 0xC - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x38] - movs r2, 0xC - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl sub_80786EC - ldr r0, _080CBF58 @ =sub_80CBF5C - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CBF48: .4byte gTasks -_080CBF4C: .4byte gUnknown_0202F7C9 -_080CBF50: .4byte gSpriteTemplate_83D6884 -_080CBF54: .4byte gSprites -_080CBF58: .4byte sub_80CBF5C - thumb_func_end sub_80CBDF4 - - thumb_func_start sub_80CBF5C -sub_80CBF5C: @ 80CBF5C - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CBFA0 @ =gTasks - adds r6, r0, r1 - movs r0, 0xC - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080CBFA4 @ =gSprites - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r5, [r6, r1] - cmp r5, 0x7 - bne _080CBF84 - b _080CC1B4 -_080CBF84: - cmp r5, 0x7 - bgt _080CBFD2 - cmp r5, 0x3 - bne _080CBF8E - b _080CC0A6 -_080CBF8E: - cmp r5, 0x3 - bgt _080CBFA8 - cmp r5, 0x1 - beq _080CC038 - cmp r5, 0x1 - bgt _080CC088 - cmp r5, 0 - beq _080CC01A - b _080CC330 - .align 2, 0 -_080CBFA0: .4byte gTasks -_080CBFA4: .4byte gSprites -_080CBFA8: - cmp r5, 0x5 - bne _080CBFAE - b _080CC11C -_080CBFAE: - cmp r5, 0x5 - ble _080CBFB4 - b _080CC196 -_080CBFB4: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CBFCA - b _080CC330 -_080CBFCA: - movs r0, 0x5 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CBFD2: - cmp r5, 0xB - bne _080CBFD8 - b _080CC298 -_080CBFD8: - cmp r5, 0xB - bgt _080CC006 - cmp r5, 0x9 - bne _080CBFE2 - b _080CC206 -_080CBFE2: - cmp r5, 0x9 - ble _080CBFE8 - b _080CC27C -_080CBFE8: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CBFFE - b _080CC330 -_080CBFFE: - movs r0, 0x9 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC006: - cmp r5, 0xD - bne _080CC00C - b _080CC30A -_080CC00C: - cmp r5, 0xD - bge _080CC012 - b _080CC2EA -_080CC012: - cmp r5, 0xFF - bne _080CC018 - b _080CC31A -_080CC018: - b _080CC330 -_080CC01A: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC030 - b _080CC330 -_080CC030: - movs r0, 0x1 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC038: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r0, [r6, 0x10] - adds r0, 0x2 - strh r0, [r6, 0x10] - strh r5, [r6, 0xE] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC088: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC09E - b _080CC330 -_080CC09E: - movs r0, 0x3 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC0A6: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r1, r0 - ldrh r0, [r6, 0x16] - subs r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - movs r0, 0x2 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC11C: - ldrh r1, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r1, r3 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x14] - adds r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r2, 0x1E - ldrsh r0, [r6, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r0, r1 - ldrh r1, [r6, 0x16] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x3 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC196: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080CC1AC - b _080CC330 -_080CC1AC: - movs r0, 0x7 - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC1B4: - ldrh r2, [r4, 0x24] - ldrh r3, [r4, 0x20] - adds r2, r3 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x14] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x16] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - adds r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x4 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC206: - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r1, r0 - movs r0, 0 - strh r1, [r4, 0x20] - ldrh r2, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r2, r3 - strh r2, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r3, 0x12 - ldrsh r1, [r6, r3] - muls r1, r0 - ldrh r0, [r6, 0x14] - subs r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - movs r1, 0x1E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, 0xA - movs r2, 0x12 - ldrsh r1, [r6, r2] - muls r0, r1 - ldrh r3, [r6, 0x16] - adds r0, r3 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - movs r0, 0x5 - strh r0, [r6, 0xE] - ldrh r0, [r6, 0x10] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC27C: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CC330 - movs r0, 0xB - strh r0, [r6, 0x26] - movs r0, 0xFF - b _080CC32E -_080CC298: - ldrh r2, [r4, 0x24] - ldrh r0, [r4, 0x20] - adds r2, r0 - movs r0, 0 - strh r2, [r4, 0x20] - ldrh r1, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - movs r0, 0xA - strh r0, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrh r0, [r6, 0x18] - strh r0, [r4, 0x32] - strh r1, [r4, 0x34] - ldrh r0, [r6, 0x1A] - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_80CC338 - strh r0, [r4, 0x38] - ldrh r1, [r6, 0x10] - subs r1, 0x2 - strh r1, [r6, 0x10] - movs r0, 0x6 - strh r0, [r6, 0xE] - adds r0, r4, 0 - adds r0, 0x43 - strb r1, [r0] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl sub_80786EC - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC2EA: - adds r0, r6, 0 - adds r1, r2, 0 - bl sub_80CC358 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080CC330 - adds r0, r4, 0 - bl DestroySprite - ldrh r0, [r6, 0x8] - adds r0, 0x1 - b _080CC32E -_080CC30A: - movs r1, 0x20 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CC330 - adds r0, r2, 0 - bl move_anim_task_del - b _080CC330 -_080CC31A: - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080CC330 - movs r0, 0 - strh r0, [r6, 0xA] - ldrh r0, [r6, 0x26] -_080CC32E: - strh r0, [r6, 0x8] -_080CC330: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CBF5C - - thumb_func_start sub_80CC338 -sub_80CC338: @ 80CC338 - push {lr} - movs r2, 0x8 - movs r3, 0x36 - ldrsh r1, [r0, r3] - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r1, r0 - bge _080CC34E - negs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_080CC34E: - lsls r0, r2, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80CC338 - - thumb_func_start sub_80CC358 -sub_80CC358: @ 80CC358 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldrh r0, [r6, 0x24] - adds r0, 0x1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080CC3EE - movs r0, 0 - strh r0, [r6, 0x24] - ldr r0, _080CC3F8 @ =gSprites - mov r8, r0 - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - ldrh r2, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r0 - ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldrb r3, [r6, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080CC3EE - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r0, r8 - adds r4, r5, r0 - strh r7, [r4, 0x3A] - movs r0, 0xC - strh r0, [r4, 0x3C] - ldr r0, _080CC400 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldrh r2, [r6, 0x22] - movs r0, 0x1 - ands r0, r2 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - ldrb r1, [r6, 0xE] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r6, 0x10] - adds r4, 0x43 - strb r0, [r4] - mov r0, r8 - adds r0, 0x1C - adds r5, r0 - ldr r0, _080CC404 @ =sub_80CC408 - str r0, [r5] -_080CC3EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC3F8: .4byte gSprites -_080CC3FC: .4byte gSpriteTemplate_83D6884 -_080CC400: .4byte gTasks -_080CC404: .4byte sub_80CC408 - thumb_func_end sub_80CC358 - - thumb_func_start sub_80CC408 -sub_80CC408: @ 80CC408 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CC46A - movs r0, 0 - strh r0, [r4, 0x2E] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CC46A - ldr r3, _080CC470 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080CC46A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC470: .4byte gTasks - thumb_func_end sub_80CC408 - - thumb_func_start sub_80CC474 -sub_80CC474: @ 80CC474 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080CC488 @ =gUnknown_03004B00 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CC490 - ldr r0, _080CC48C @ =gUnknown_0202F7C8 - b _080CC492 - .align 2, 0 -_080CC488: .4byte gUnknown_03004B00 -_080CC48C: .4byte gUnknown_0202F7C8 -_080CC490: - ldr r0, _080CC4B0 @ =gUnknown_0202F7C9 -_080CC492: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CC4BC - movs r0, 0 - strh r0, [r4, 0x36] - ldr r1, _080CC4B4 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080CC4B8 @ =0x0000fff0 - b _080CC4CC - .align 2, 0 -_080CC4B0: .4byte gUnknown_0202F7C9 -_080CC4B4: .4byte gUnknown_03004B00 -_080CC4B8: .4byte 0x0000fff0 -_080CC4BC: - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r1, _080CC4F0 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r4, 0x32] - movs r0, 0x80 - lsls r0, 1 -_080CC4CC: - strh r0, [r4, 0x20] - adds r7, r1, 0 - adds r5, r7, 0 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x34] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080CC502 - cmp r0, 0x1 - bgt _080CC4F4 - cmp r0, 0 - beq _080CC4FE - b _080CC56C - .align 2, 0 -_080CC4F0: .4byte gUnknown_03004B00 -_080CC4F4: - cmp r0, 0x2 - beq _080CC508 - cmp r0, 0x3 - beq _080CC534 - b _080CC56C -_080CC4FE: - ldrh r0, [r5] - b _080CC518 -_080CC502: - ldrh r0, [r5] - strh r0, [r4, 0x22] - b _080CC54E -_080CC508: - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5] - adds r0, r5 -_080CC518: - strh r0, [r4, 0x22] - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080CC56C -_080CC534: - ldr r0, _080CC578 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7] - adds r0, r7 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move -_080CC54E: - adds r0, r6, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080CC56C: - ldr r0, _080CC57C @ =sub_80CC580 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC578: .4byte gUnknown_0202F7C9 -_080CC57C: .4byte sub_80CC580 - thumb_func_end sub_80CC474 - - thumb_func_start sub_80CC580 -sub_80CC580: @ 80CC580 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r3, [r4, r0] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x30 - ldrsh r2, [r4, r1] - ldr r1, _080CC5D4 @ =gSineTable - movs r5, 0x2E - ldrsh r0, [r4, r5] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r0, 8 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - muls r0, r3 - strh r0, [r4, 0x24] - movs r5, 0x34 - ldrsh r0, [r4, r5] - muls r0, r3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CC5D8 - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r5, 0x20 - ldrsh r1, [r4, r5] - adds r0, r1 - cmp r0, 0xF7 - ble _080CC5F0 - b _080CC5EA - .align 2, 0 -_080CC5D4: .4byte gSineTable -_080CC5D8: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _080CC5F0 -_080CC5EA: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CC5F0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CC580 - - thumb_func_start sub_80CC5F8 -sub_80CC5F8: @ 80CC5F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080CC618 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CC61C - cmp r0, 0x1 - beq _080CC650 - b _080CC6AA - .align 2, 0 -_080CC618: .4byte gTasks -_080CC61C: - ldr r0, _080CC648 @ =0x0000274f - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r2, 0x80 - lsls r2, 1 - adds r4, r2, 0 - adds r0, r4 - strh r0, [r5, 0x18] - ldr r0, _080CC64C @ =0x000027b0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - adds r0, r4 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080CC6AA - .align 2, 0 -_080CC648: .4byte 0x0000274f -_080CC64C: .4byte 0x000027b0 -_080CC650: - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x1A] - lsls r0, 16 - cmp r0, 0 - blt _080CC6AA - strh r7, [r5, 0x1A] - ldrh r0, [r5, 0x18] - ldrb r2, [r5, 0x1C] - ldr r4, _080CC6C4 @ =gUnknown_083D6984 - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x20] - ldrb r2, [r5, 0x1C] - movs r3, 0x1E - ldrsh r1, [r5, r3] - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - bne _080CC6AA - strh r7, [r5, 0x1C] - ldrh r0, [r5, 0x1E] - adds r0, 0x1 - strh r0, [r5, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bne _080CC6AA - strh r7, [r5, 0x1E] -_080CC6AA: - ldr r0, _080CC6C8 @ =gUnknown_03004B00 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080CC6BE - adds r0, r6, 0 - bl move_anim_task_del -_080CC6BE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC6C4: .4byte gUnknown_083D6984 -_080CC6C8: .4byte gUnknown_03004B00 - thumb_func_end sub_80CC5F8 - - thumb_func_start sub_80CC6CC -sub_80CC6CC: @ 80CC6CC - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r1, _080CC6E4 @ =gUnknown_03004B00 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080CC6E8 - adds r0, r6, 0 - bl move_anim_8072740 - b _080CC7C2 - .align 2, 0 -_080CC6E4: .4byte gUnknown_03004B00 -_080CC6E8: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080CC6F8 - ldr r4, _080CC6F4 @ =gUnknown_0202F7C8 - b _080CC6FA - .align 2, 0 -_080CC6F4: .4byte gUnknown_0202F7C8 -_080CC6F8: - ldr r4, _080CC734 @ =gUnknown_0202F7C9 -_080CC6FA: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CC738 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x8] - strh r1, [r6, 0x2E] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r7, r0, 0 - cmp r1, 0 - bne _080CC73C - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x20] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x22] - strh r5, [r6, 0x38] - strh r2, [r6, 0x3A] - b _080CC74C - .align 2, 0 -_080CC734: .4byte gUnknown_0202F7C9 -_080CC738: .4byte gUnknown_03004B00 -_080CC73C: - strh r5, [r6, 0x20] - strh r2, [r6, 0x22] - ldrh r0, [r7, 0x4] - adds r0, r5 - strh r0, [r6, 0x38] - ldrh r0, [r7, 0x6] - adds r0, r2 - strh r0, [r6, 0x3A] -_080CC74C: - ldrh r4, [r6, 0x20] - lsls r0, r4, 4 - strh r0, [r6, 0x30] - ldrh r5, [r6, 0x22] - lsls r0, r5, 4 - strh r0, [r6, 0x32] - movs r1, 0x38 - ldrsh r0, [r6, r1] - movs r2, 0x20 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x34] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x22 - ldrsh r1, [r6, r2] - subs r0, r1 - lsls r0, 4 - movs r3, 0x8 - ldrsh r1, [r7, r3] - bl __divsi3 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x38] - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r6, 0x3A] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CC7AE - ldr r1, _080CC7CC @ =0xffff8000 - adds r0, r4, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080CC7AE: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldr r0, _080CC7D0 @ =sub_80CC7D4 - str r0, [r6, 0x1C] -_080CC7C2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CC7CC: .4byte 0xffff8000 -_080CC7D0: .4byte sub_80CC7D4 - thumb_func_end sub_80CC6CC - - thumb_func_start sub_80CC7D4 -sub_80CC7D4: @ 80CC7D4 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080CC804 - ldrh r0, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r0, r4 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r4, [r2, 0x32] - adds r1, r4 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x2E] - b _080CC80A -_080CC804: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080CC80A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CC7D4 - - thumb_func_start sub_80CC810 -sub_80CC810: @ 80CC810 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CC826 - adds r0, r2, 0 - bl move_anim_8072740 -_080CC826: - pop {r0} - bx r0 - thumb_func_end sub_80CC810 - - thumb_func_start sub_80CC82C -sub_80CC82C: @ 80CC82C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CC84C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CC854 - ldr r2, _080CC850 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - b _080CC860 - .align 2, 0 -_080CC84C: .4byte gUnknown_0202F7C8 -_080CC850: .4byte gUnknown_03004B00 -_080CC854: - ldr r0, _080CC878 @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080CC860: - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080CC87C @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080CC880 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC878: .4byte gUnknown_03004B00 -_080CC87C: .4byte sub_8078600 -_080CC880: .4byte move_anim_8072740 - thumb_func_end sub_80CC82C - - thumb_func_start sub_80CC884 -sub_80CC884: @ 80CC884 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CC8BC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CC89E - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080CC89E: - ldr r0, _080CC8C0 @ =sub_80CC810 - str r0, [r5, 0x1C] - ldr r4, _080CC8C4 @ =gUnknown_03004B00 - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CC8BC: .4byte gUnknown_0202F7C8 -_080CC8C0: .4byte sub_80CC810 -_080CC8C4: .4byte gUnknown_03004B00 - thumb_func_end sub_80CC884 - - thumb_func_start sub_80CC8C8 -sub_80CC8C8: @ 80CC8C8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080CC908 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080CC90C @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CC910 @ =sub_8078504 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CC908: .4byte gUnknown_03004B00 -_080CC90C: .4byte move_anim_8074EE0 -_080CC910: .4byte sub_8078504 - thumb_func_end sub_80CC8C8 - - thumb_func_start sub_80CC914 -sub_80CC914: @ 80CC914 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080CC964 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CC948 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080CC948: - ldr r0, _080CC968 @ =sub_80CCB00 - str r0, [r5, 0x1C] - ldr r0, _080CC96C @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080CC970 - ldrh r0, [r3] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - b _080CC984 - .align 2, 0 -_080CC964: .4byte gUnknown_0202F7C9 -_080CC968: .4byte sub_80CCB00 -_080CC96C: .4byte gUnknown_03004B00 -_080CC970: - ldrh r0, [r5, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r5, 0x20] - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CC984: - ldrh r0, [r3, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldr r1, _080CC9B8 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r5, 0x30] - adds r1, r0, r2 - strh r1, [r5, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CC9B2 - negs r0, r1 - strh r0, [r5, 0x30] -_080CC9B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CC9B8: .4byte 0xfffffc00 - thumb_func_end sub_80CC914 - - thumb_func_start sub_80CC9BC -sub_80CC9BC: @ 80CC9BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, _080CC9D8 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080CC9DC - cmp r0, 0x1 - ble _080CCA58 - cmp r0, 0x2 - beq _080CC9FC - b _080CCA58 - .align 2, 0 -_080CC9D8: .4byte gUnknown_03004B00 -_080CC9DC: - ldr r5, _080CC9F8 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - eors r4, r0 - adds r0, r4, 0 - b _080CCA68 - .align 2, 0 -_080CC9F8: .4byte gUnknown_0202F7C9 -_080CC9FC: - ldr r5, _080CCA54 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - movs r2, 0x2 - mov r8, r2 - mov r1, r8 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CCA72 - ldrb r0, [r5] - mov r2, r8 - eors r0, r2 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - lsrs r7, r0, 1 - ldrb r0, [r5] - mov r1, r8 - eors r0, r1 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - lsrs r4, r0, 1 - b _080CCA72 - .align 2, 0 -_080CCA54: .4byte gUnknown_0202F7C9 -_080CCA58: - ldr r4, _080CCAA4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] -_080CCA68: - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 -_080CCA72: - strh r7, [r6, 0x20] - strh r4, [r6, 0x22] - ldr r0, _080CCAA4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CCA8A - ldrh r0, [r6, 0x22] - adds r0, 0x8 - strh r0, [r6, 0x22] -_080CCA8A: - ldr r0, _080CCAA8 @ =sub_80CCB00 - str r0, [r6, 0x1C] - ldr r0, _080CCAAC @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080CCAB0 - ldrh r0, [r3] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - b _080CCAC4 - .align 2, 0 -_080CCAA4: .4byte gUnknown_0202F7C9 -_080CCAA8: .4byte sub_80CCB00 -_080CCAAC: .4byte gUnknown_03004B00 -_080CCAB0: - ldrh r0, [r6, 0x20] - ldrh r1, [r3] - subs r0, r1 - strh r0, [r6, 0x20] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080CCAC4: - ldrh r0, [r3, 0x2] - ldrh r2, [r6, 0x22] - adds r0, r2 - strh r0, [r6, 0x22] - ldr r1, _080CCAFC @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r6, 0x30] - adds r1, r0, r2 - strh r1, [r6, 0x30] - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - ldrh r2, [r6, 0x32] - adds r0, r2 - strh r0, [r6, 0x32] - ldrh r0, [r3, 0x4] - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CCAF2 - negs r0, r1 - strh r0, [r6, 0x30] -_080CCAF2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CCAFC: .4byte 0xfffffc00 - thumb_func_end sub_80CC9BC - - thumb_func_start sub_80CCB00 -sub_80CCB00: @ 80CCB00 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CCB22 - adds r0, r1, 0 - adds r0, 0x18 - b _080CCB26 -_080CCB22: - adds r0, r1, 0 - subs r0, 0x18 -_080CCB26: - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - subs r0, 0x18 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080CCB5C - ldr r1, _080CCB64 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldr r0, _080CCB68 @ =sub_80782D8 - str r0, [r4, 0x1C] -_080CCB5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CCB64: .4byte move_anim_8072740 -_080CCB68: .4byte sub_80782D8 - thumb_func_end sub_80CCB00 - - thumb_func_start unref_sub_80CCB6C -unref_sub_80CCB6C: @ 80CCB6C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x1 - ble _080CCC10 - ldrh r1, [r5, 0x34] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CCBC8 - adds r3, r5, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - strb r0, [r3] - ldr r4, _080CCBC4 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r3, [r0] - adds r1, r2, 0 - ands r1, r3 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _080CCBFE - .align 2, 0 -_080CCBC4: .4byte gSprites -_080CCBC8: - adds r1, r5, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r3, _080CCC0C @ =gSprites - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] -_080CCBFE: - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - b _080CCC14 - .align 2, 0 -_080CCC0C: .4byte gSprites -_080CCC10: - adds r0, r1, 0x1 - strh r0, [r5, 0x32] -_080CCC14: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xA - bne _080CCC44 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080CCC4C @ =gSprites - adds r0, r4 - bl DestroySprite - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r5, 0 - bl move_anim_8072740 -_080CCC44: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CCC4C: .4byte gSprites - thumb_func_end unref_sub_80CCB6C - - thumb_func_start sub_80CCC50 -sub_80CCC50: @ 80CCC50 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080CCC70 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080CCC74 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CCC78 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080CCC7E - .align 2, 0 -_080CCC70: .4byte gUnknown_03004B00 -_080CCC74: .4byte gUnknown_0202F7C8 -_080CCC78: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080CCC7E: - strh r0, [r5, 0x20] - ldr r4, _080CCCAC @ =gUnknown_03004B00 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080CCCB0 @ =sub_80CCCB4 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CCCAC: .4byte gUnknown_03004B00 -_080CCCB0: .4byte sub_80CCCB4 - thumb_func_end sub_80CCC50 - - thumb_func_start sub_80CCCB4 -sub_80CCCB4: @ 80CCCB4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x64 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x7F - bgt _080CCCE0 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0 - b _080CCCE6 -_080CCCE0: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0xE -_080CCCE6: - strb r0, [r1] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x82 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080CCD1C - adds r0, r4, 0 - bl move_anim_8072740 -_080CCD1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CCCB4 - - thumb_func_start sub_80CCD24 -sub_80CCD24: @ 80CCD24 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CCD3A - ldr r1, _080CCD98 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - adds r0, 0x8 - strh r0, [r1, 0x2] -_080CCD3A: - ldr r6, _080CCD9C @ =gUnknown_0202F7C8 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080CCD98 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CCD78 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CCDA0 -_080CCD78: - ldrb r0, [r6] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - b _080CCDB8 - .align 2, 0 -_080CCD98: .4byte gUnknown_03004B00 -_080CCD9C: .4byte gUnknown_0202F7C8 -_080CCDA0: - ldrb r0, [r6] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] -_080CCDB8: - ldr r0, _080CCDF8 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080CCDFC @ =0x00002828 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r3, 0x80 - lsls r3, 1 - adds r0, r3 - strh r0, [r5, 0x32] - movs r2, 0x10 - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldr r1, _080CCE00 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - ldr r3, _080CCE04 @ =REG_BLDALPHA - ldrh r1, [r5, 0x3C] - lsls r0, r1, 8 - subs r2, r1 - orrs r0, r2 - strh r0, [r3] - ldr r0, _080CCE08 @ =sub_80CCE0C - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCDF8: .4byte gUnknown_03004B00 -_080CCDFC: .4byte 0x00002828 -_080CCE00: .4byte REG_BLDCNT -_080CCE04: .4byte REG_BLDALPHA -_080CCE08: .4byte sub_80CCE0C - thumb_func_end sub_80CCD24 - - thumb_func_start sub_80CCE0C -sub_80CCE0C: @ 80CCE0C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x60 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE6A - movs r0, 0 - strh r0, [r4, 0x30] - ldr r1, _080CCEB0 @ =gPlttBufferFaded - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r5, [r0] - movs r2, 0 - adds r6, r1, 0 - adds r3, r6, 0 -_080CCE44: - movs r1, 0x32 - ldrsh r0, [r4, r1] - adds r2, 0x1 - adds r0, r2 - lsls r1, r0, 1 - adds r1, r3 - adds r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - cmp r2, 0x5 - ble _080CCE44 - movs r2, 0x32 - ldrsh r0, [r4, r2] - adds r0, 0x7 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] -_080CCE6A: - ldrh r2, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080CCE9E - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _080CCEB8 - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCE9E - movs r0, 0 - strh r0, [r4, 0x3A] - subs r2, 0x1 - strh r2, [r4, 0x3C] - ldr r3, _080CCEB4 @ =REG_BLDALPHA - lsls r1, r2, 8 - movs r0, 0x10 - subs r0, r2 - orrs r1, r0 - strh r1, [r3] -_080CCE9E: - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCEB8 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080CCEF4 - .align 2, 0 -_080CCEB0: .4byte gPlttBufferFaded -_080CCEB4: .4byte REG_BLDALPHA -_080CCEB8: - ldrh r0, [r4, 0x3A] - adds r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CCEF4 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r1, 0x1 - strh r1, [r4, 0x3C] - ldr r3, _080CCEFC @ =REG_BLDALPHA - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CCEF4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080CCF00 @ =sub_807861C - str r0, [r4, 0x1C] -_080CCEF4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCEFC: .4byte REG_BLDALPHA -_080CCF00: .4byte sub_807861C - thumb_func_end sub_80CCE0C - - thumb_func_start sub_80CCF04 -sub_80CCF04: @ 80CCF04 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080CCF5C @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CCF60 @ =0x0000ffe8 - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - strh r5, [r4, 0x3A] - movs r0, 0x10 - strh r0, [r4, 0x3C] - ldr r1, _080CCF64 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080CCF68 @ =REG_BLDALPHA - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080CCF6C @ =sub_80CCF70 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CCF5C: .4byte gUnknown_0202F7C9 -_080CCF60: .4byte 0x0000ffe8 -_080CCF64: .4byte REG_BLDCNT -_080CCF68: .4byte REG_BLDALPHA -_080CCF6C: .4byte sub_80CCF70 - thumb_func_end sub_80CCF04 - - thumb_func_start sub_80CCF70 -sub_80CCF70: @ 80CCF70 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080CCF7E - b _080CD0C0 -_080CCF7E: - lsls r0, 2 - ldr r1, _080CCF88 @ =_080CCF8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CCF88: .4byte _080CCF8C - .align 2, 0 -_080CCF8C: - .4byte _080CCFA0 - .4byte _080CD004 - .4byte _080CD020 - .4byte _080CD09C - .4byte _080CD0B0 -_080CCFA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080CCFAE - b _080CD0C0 -_080CCFAE: - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CCFD0 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CCFDE - adds r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CCFDE -_080CCFD0: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CCFDE - subs r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CCFDE: - ldr r2, _080CD000 @ =REG_BLDALPHA - ldrh r0, [r4, 0x3C] - lsls r0, 8 - ldrh r1, [r4, 0x3A] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD0C0 - strh r0, [r4, 0x30] - b _080CD0A8 - .align 2, 0 -_080CD000: .4byte REG_BLDALPHA -_080CD004: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CD0C0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080CD0A8 -_080CD020: - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x4 - bl sub_80CD0CC - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080CD042 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080CD042: - ldrh r0, [r4, 0x32] - adds r1, r0, 0x1 - strh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080CD0C0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080CD068 - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080CD076 - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - b _080CD076 -_080CD068: - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080CD076 - adds r0, r1, 0x1 - strh r0, [r4, 0x3C] -_080CD076: - ldr r0, _080CD098 @ =REG_BLDALPHA - ldrh r1, [r4, 0x3C] - lsls r1, 8 - ldrh r2, [r4, 0x3A] - orrs r1, r2 - strh r1, [r0] - movs r0, 0x3A - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080CD0C0 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080CD0C0 - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - b _080CD0A8 - .align 2, 0 -_080CD098: .4byte REG_BLDALPHA -_080CD09C: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080CD0A8: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CD0C0 -_080CD0B0: - ldr r0, _080CD0C8 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl move_anim_8072740 -_080CD0C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD0C8: .4byte REG_BLDCNT - thumb_func_end sub_80CCF70 - - thumb_func_start sub_80CD0CC -sub_80CD0CC: @ 80CD0CC - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0xB - bgt _080CD0DE - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD0DE: - ldrh r5, [r4, 0x34] - adds r0, r5, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - cmp r0, 0x17 - bhi _080CD0F4 - ldrh r0, [r4, 0x36] - subs r0, 0x2 - strh r0, [r4, 0x36] -_080CD0F4: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _080CD102 - ldrh r0, [r4, 0x36] - adds r0, 0x2 - strh r0, [r4, 0x36] -_080CD102: - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0x9 - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - bge _080CD128 - movs r1, 0x26 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x26] -_080CD128: - adds r0, r5, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _080CD138 - movs r0, 0 - strh r0, [r4, 0x34] -_080CD138: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CD0CC - - thumb_func_start sub_80CD140 -sub_80CD140: @ 80CD140 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CD184 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CD154 - adds r0, r4, 0 - bl sub_8078650 -_080CD154: - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080CD188 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD18C @ =sub_8078394 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD184: .4byte gUnknown_03004B00 -_080CD188: .4byte move_anim_8072740 -_080CD18C: .4byte sub_8078394 - thumb_func_end sub_80CD140 - - thumb_func_start sub_80CD190 -sub_80CD190: @ 80CD190 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080CD1A4 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CD1AC - ldr r0, _080CD1A8 @ =gUnknown_0202F7C8 - b _080CD1AE - .align 2, 0 -_080CD1A4: .4byte gUnknown_03004B00 -_080CD1A8: .4byte gUnknown_0202F7C8 -_080CD1AC: - ldr r0, _080CD1F0 @ =gUnknown_0202F7C9 -_080CD1AE: - ldrb r6, [r0] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - movs r1, 0x2 - adds r0, r6, 0 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CD1F8 - ldr r4, _080CD1F4 @ =gUnknown_03004B00 - ldrb r1, [r4, 0xC] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - adds r0, r6, 0 - bl sub_807A3FC - movs r2, 0 - ldrsh r1, [r4, r2] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - b _080CD248 - .align 2, 0 -_080CD1F0: .4byte gUnknown_0202F7C9 -_080CD1F4: .4byte gUnknown_03004B00 -_080CD1F8: - ldr r4, _080CD218 @ =gUnknown_03004B00 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CD21C - adds r0, r6, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - b _080CD22E - .align 2, 0 -_080CD218: .4byte gUnknown_03004B00 -_080CD21C: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 -_080CD22E: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r5, 0x22] - ldr r0, _080CD268 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r0, r5, 0 - bl sub_807867C -_080CD248: - ldr r1, _080CD268 @ =gUnknown_03004B00 - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - ldr r1, _080CD26C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD270 @ =sub_8078394 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD268: .4byte gUnknown_03004B00 -_080CD26C: .4byte move_anim_8072740 -_080CD270: .4byte sub_8078394 - thumb_func_end sub_80CD190 - - thumb_func_start sub_80CD274 -sub_80CD274: @ 80CD274 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD2A0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CD2A8 - ldr r0, _080CD2A4 @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _080CD2C2 - .align 2, 0 -_080CD2A0: .4byte gUnknown_0202F7C8 -_080CD2A4: .4byte gUnknown_03004B00 -_080CD2A8: - ldr r2, _080CD2CC @ =gUnknown_03004B00 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080CD2C2: - ldr r0, _080CD2D0 @ =sub_80CD2D4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD2CC: .4byte gUnknown_03004B00 -_080CD2D0: .4byte sub_80CD2D4 - thumb_func_end sub_80CD274 - - thumb_func_start sub_80CD2D4 -sub_80CD2D4: @ 80CD2D4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080CD30C - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x1E - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r4, 0x26] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 18 - asrs r0, 16 - movs r1, 0x3 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080CD30C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CD320 - adds r0, r4, 0 - bl move_anim_8072740 -_080CD320: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD2D4 - - thumb_func_start sub_80CD328 -sub_80CD328: @ 80CD328 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080CD358 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CD360 - ldr r1, _080CD35C @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x1 - strh r0, [r4, 0x34] - b _080CD37E - .align 2, 0 -_080CD358: .4byte gUnknown_0202F7C8 -_080CD35C: .4byte gUnknown_03004B00 -_080CD360: - ldr r2, _080CD388 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldr r0, _080CD38C @ =0x0000ffff - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080CD37E: - ldr r0, _080CD390 @ =sub_80CD394 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD388: .4byte gUnknown_03004B00 -_080CD38C: .4byte 0x0000ffff -_080CD390: .4byte sub_80CD394 - thumb_func_end sub_80CD328 - - thumb_func_start sub_80CD394 -sub_80CD394: @ 80CD394 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x36 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 1 - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080CD3D8 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CD3D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD394 - - thumb_func_start sub_80CD3E0 -sub_80CD3E0: @ 80CD3E0 - push {lr} - ldrh r1, [r0, 0x20] - subs r1, 0x20 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x22] - movs r1, 0x14 - strh r1, [r0, 0x2E] - ldr r1, _080CD400 @ =sub_80782D8 - str r1, [r0, 0x1C] - ldr r1, _080CD404 @ =sub_80CD408 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CD400: .4byte sub_80782D8 -_080CD404: .4byte sub_80CD408 - thumb_func_end sub_80CD3E0 - - thumb_func_start sub_80CD408 -sub_80CD408: @ 80CD408 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r6, [r5, 0x38] - movs r1, 0x1 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080CD41E - cmp r0, 0x1 - beq _080CD438 - b _080CD49E -_080CD41E: - strh r1, [r5, 0x2E] - ldr r0, _080CD430 @ =sub_80782D8 - str r0, [r5, 0x1C] - ldr r1, _080CD434 @ =sub_80CD408 - adds r0, r5, 0 - bl oamt_set_x3A_32 - b _080CD49E - .align 2, 0 -_080CD430: .4byte sub_80782D8 -_080CD434: .4byte sub_80CD408 -_080CD438: - ldrh r3, [r5, 0x24] - ldrh r0, [r5, 0x20] - adds r3, r0 - movs r0, 0 - strh r3, [r5, 0x20] - ldrh r4, [r5, 0x26] - ldrh r1, [r5, 0x22] - adds r4, r1 - strh r4, [r5, 0x22] - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r2, _080CD4AC @ =gUnknown_083D6DDC - lsls r0, r6, 16 - asrs r0, 24 - lsls r0, 1 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r3, r1 - strh r3, [r5, 0x32] - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r0 - strh r4, [r5, 0x36] - ldr r0, _080CD4B0 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080CD4B4 @ =sub_80CD4B8 - adds r0, r5, 0 - bl oamt_set_x3A_32 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xD2 - bl PlaySE12WithPanning -_080CD49E: - ldrh r0, [r5, 0x38] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x38] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD4AC: .4byte gUnknown_083D6DDC -_080CD4B0: .4byte sub_8078B34 -_080CD4B4: .4byte sub_80CD4B8 - thumb_func_end sub_80CD408 - - thumb_func_start sub_80CD4B8 -sub_80CD4B8: @ 80CD4B8 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _080CD4E0 - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r0, _080CD4D8 @ =sub_80782D8 - str r0, [r2, 0x1C] - ldr r1, _080CD4DC @ =sub_80CD4EC - adds r0, r2, 0 - bl oamt_set_x3A_32 - b _080CD4E4 - .align 2, 0 -_080CD4D8: .4byte sub_80782D8 -_080CD4DC: .4byte sub_80CD4EC -_080CD4E0: - ldr r0, _080CD4E8 @ =sub_80CD408 - str r0, [r2, 0x1C] -_080CD4E4: - pop {r0} - bx r0 - .align 2, 0 -_080CD4E8: .4byte sub_80CD408 - thumb_func_end sub_80CD4B8 - - thumb_func_start sub_80CD4EC -sub_80CD4EC: @ 80CD4EC - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x6] - cmp r1, 0 - bne _080CD514 - movs r0, 0x3 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] - ldr r0, _080CD50C @ =sub_80782D8 - str r0, [r5, 0x1C] - ldr r1, _080CD510 @ =sub_80CD5A8 - adds r0, r5, 0 - bl oamt_set_x3A_32 - b _080CD594 - .align 2, 0 -_080CD50C: .4byte sub_80782D8 -_080CD510: .4byte sub_80CD5A8 -_080CD514: - ldrh r0, [r5, 0x6] - cmp r0, 0x2 - beq _080CD534 - cmp r0, 0x2 - bgt _080CD524 - cmp r0, 0x1 - beq _080CD52A - b _080CD548 -_080CD524: - cmp r0, 0x3 - beq _080CD53C - b _080CD548 -_080CD52A: - ldr r6, _080CD530 @ =0x0000fff8 - adds r7, r6, 0 - b _080CD54C - .align 2, 0 -_080CD530: .4byte 0x0000fff8 -_080CD534: - ldr r7, _080CD538 @ =0x0000fff8 - b _080CD54A - .align 2, 0 -_080CD538: .4byte 0x0000fff8 -_080CD53C: - movs r7, 0x8 - ldr r6, _080CD544 @ =0x0000fff8 - b _080CD54C - .align 2, 0 -_080CD544: .4byte 0x0000fff8 -_080CD548: - movs r7, 0x8 -_080CD54A: - movs r6, 0x8 -_080CD54C: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080CD59C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080CD5A0 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080CD5A4 @ =sub_80CD654 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CD594: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CD59C: .4byte gUnknown_0202F7C9 -_080CD5A0: .4byte sub_8078B34 -_080CD5A4: .4byte sub_80CD654 - thumb_func_end sub_80CD4EC - - thumb_func_start sub_80CD5A8 -sub_80CD5A8: @ 80CD5A8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CD5C8 - ldrh r0, [r4, 0x30] - adds r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080CD5D8 - movs r0, 0x10 - b _080CD5D6 -_080CD5C8: - ldrh r0, [r4, 0x30] - subs r0, 0x3 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080CD5D8 - movs r0, 0 -_080CD5D6: - strh r0, [r4, 0x30] -_080CD5D8: - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80791A8 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080CD634 @ =0x00007fff - bl BlendPalettes - movs r3, 0x30 - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _080CD640 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - lsls r0, r1, 5 - ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210 - adds r0, r2 - lsls r1, 4 - ldr r3, _080CD63C @ =0x00000101 - adds r2, r3, 0 - orrs r1, r2 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC0 - bl PlaySE12WithPanning - b _080CD648 - .align 2, 0 -_080CD634: .4byte 0x00007fff -_080CD638: .4byte gPlttBufferUnfaded + 0x210 -_080CD63C: .4byte 0x00000101 -_080CD640: - cmp r0, 0 - bne _080CD648 - ldr r0, _080CD650 @ =sub_80CD654 - str r0, [r4, 0x1C] -_080CD648: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD650: .4byte sub_80CD654 - thumb_func_end sub_80CD5A8 - - thumb_func_start sub_80CD654 -sub_80CD654: @ 80CD654 - push {lr} - adds r2, r0, 0 - ldr r0, _080CD670 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080CD674 @ =0x0000ffff - cmp r1, r0 - bne _080CD66C - movs r0, 0 - strh r0, [r2, 0x30] - strh r0, [r2, 0x2E] - ldr r0, _080CD678 @ =sub_80CD67C - str r0, [r2, 0x1C] -_080CD66C: - pop {r0} - bx r0 - .align 2, 0 -_080CD670: .4byte gUnknown_03004B00 -_080CD674: .4byte 0x0000ffff -_080CD678: .4byte sub_80CD67C - thumb_func_end sub_80CD654 - - thumb_func_start sub_80CD67C -sub_80CD67C: @ 80CD67C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080CD6B0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080CD6B0: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _080CD6C4 - adds r0, r4, 0 - bl move_anim_8072740 -_080CD6C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CD67C - - thumb_func_start sub_80CD6CC -sub_80CD6CC: @ 80CD6CC - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080CD6EC @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r3, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CD6F0 - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - b _080CD742 - .align 2, 0 -_080CD6EC: .4byte gUnknown_03004B00 -_080CD6F0: - cmp r0, 0x2 - bne _080CD70C - ldrh r0, [r3, 0x20] - subs r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x20 - b _080CD73E -_080CD70C: - cmp r0, 0x3 - bne _080CD728 - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - subs r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - b _080CD73E -_080CD728: - ldrh r0, [r3, 0x20] - adds r0, 0x18 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x22] - adds r0, 0x18 - strh r0, [r3, 0x22] - ldrb r1, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 -_080CD73E: - orrs r0, r1 - strb r0, [r3, 0x3] -_080CD742: - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r4, _080CD768 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080CD76C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r1, _080CD770 @ =sub_80CD3E0 - str r1, [r3, 0x1C] - adds r0, r3, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CD768: .4byte 0x000003ff -_080CD76C: .4byte 0xfffffc00 -_080CD770: .4byte sub_80CD3E0 - thumb_func_end sub_80CD6CC - - thumb_func_start sub_80CD774 -sub_80CD774: @ 80CD774 - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r3, 0x2E] - ldr r0, _080CD79C @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080CD7B0 - cmp r0, 0x1 - bgt _080CD7A0 - cmp r0, 0 - beq _080CD7A6 - b _080CD7C0 - .align 2, 0 -_080CD79C: .4byte gUnknown_03004B00 -_080CD7A0: - cmp r0, 0x2 - beq _080CD7B8 - b _080CD7C0 -_080CD7A6: - ldr r0, _080CD7AC @ =sub_80CD7CC - b _080CD7C2 - .align 2, 0 -_080CD7AC: .4byte sub_80CD7CC -_080CD7B0: - ldr r0, _080CD7B4 @ =sub_80CD8A8 - b _080CD7C2 - .align 2, 0 -_080CD7B4: .4byte sub_80CD8A8 -_080CD7B8: - ldr r0, _080CD7BC @ =sub_80CD8F8 - b _080CD7C2 - .align 2, 0 -_080CD7BC: .4byte sub_80CD8F8 -_080CD7C0: - ldr r0, _080CD7C8 @ =sub_80CD9B8 -_080CD7C2: - str r0, [r3, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080CD7C8: .4byte sub_80CD9B8 - thumb_func_end sub_80CD774 - - thumb_func_start sub_80CD7CC -sub_80CD7CC: @ 80CD7CC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - strh r0, [r4, 0x2E] - ldr r5, _080CD80C @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - beq _080CD7EA - movs r1, 0x2 -_080CD7EA: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CD810 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080CD814 @ =sub_80CD81C - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD818 @ =sub_8078458 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD80C: .4byte gUnknown_0202F7C8 -_080CD810: .4byte gUnknown_02024BE0 -_080CD814: .4byte sub_80CD81C -_080CD818: .4byte sub_8078458 - thumb_func_end sub_80CD7CC - - thumb_func_start sub_80CD81C -sub_80CD81C: @ 80CD81C - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r6, [r5, r0] - cmp r6, 0 - bne _080CD858 - ldr r1, _080CD898 @ =gUnknown_02024BE0 - ldr r4, _080CD89C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - movs r1, 0 - bl sub_8078E70 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldr r2, _080CD8A0 @ =0xfffffd00 - adds r1, r2, 0 - cmp r0, 0 - beq _080CD854 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r0, 0 -_080CD854: - strh r1, [r5, 0x36] - strh r6, [r5, 0x38] -_080CD858: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CD892 - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080CD8A4 @ =sub_80CD9B8 - str r0, [r5, 0x1C] -_080CD892: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CD898: .4byte gUnknown_02024BE0 -_080CD89C: .4byte gUnknown_0202F7C8 -_080CD8A0: .4byte 0xfffffd00 -_080CD8A4: .4byte sub_80CD9B8 - thumb_func_end sub_80CD81C - - thumb_func_start sub_80CD8A8 -sub_80CD8A8: @ 80CD8A8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - strh r0, [r4, 0x2E] - ldr r5, _080CD8E8 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080CD8C6 - movs r0, 0x3 - negs r0, r0 - adds r1, r0, 0 -_080CD8C6: - strh r1, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CD8EC @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x34] - ldr r1, _080CD8F0 @ =sub_80CD9B8 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CD8F4 @ =sub_8078458 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD8E8: .4byte gUnknown_0202F7C8 -_080CD8EC: .4byte gUnknown_02024BE0 -_080CD8F0: .4byte sub_80CD9B8 -_080CD8F4: .4byte sub_8078458 - thumb_func_end sub_80CD8A8 - - thumb_func_start sub_80CD8F8 -sub_80CD8F8: @ 80CD8F8 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CD912 - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080CD918 @ =sub_80CD91C - str r0, [r1, 0x1C] -_080CD912: - pop {r0} - bx r0 - .align 2, 0 -_080CD918: .4byte sub_80CD91C - thumb_func_end sub_80CD8F8 - - thumb_func_start sub_80CD91C -sub_80CD91C: @ 80CD91C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080CD96C - ldr r1, _080CD958 @ =gUnknown_02024BE0 - ldr r4, _080CD95C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5, 0x34] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CD960 - movs r0, 0xFC - lsls r0, 8 - strh r0, [r5, 0x36] - movs r0, 0xC0 - lsls r0, 4 - b _080CD96A - .align 2, 0 -_080CD958: .4byte gUnknown_02024BE0 -_080CD95C: .4byte gUnknown_0202F7C8 -_080CD960: - movs r0, 0x80 - lsls r0, 3 - strh r0, [r5, 0x36] - movs r0, 0xF4 - lsls r0, 8 -_080CD96A: - strh r0, [r5, 0x38] -_080CD96C: - ldrh r0, [r5, 0x36] - ldrh r1, [r5, 0x38] - adds r0, r1 - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r5, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080CD9AC - ldrh r0, [r5, 0x34] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - ldr r0, _080CD9B4 @ =sub_80CD9B8 - str r0, [r5, 0x1C] -_080CD9AC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CD9B4: .4byte sub_80CD9B8 - thumb_func_end sub_80CD91C - - thumb_func_start sub_80CD9B8 -sub_80CD9B8: @ 80CD9B8 - push {lr} - bl move_anim_8072740 - pop {r0} - bx r0 - thumb_func_end sub_80CD9B8 - - thumb_func_start sub_80CD9C4 -sub_80CD9C4: @ 80CD9C4 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _080CD9D0 @ =sub_80CD9D4 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CD9D0: .4byte sub_80CD9D4 - thumb_func_end sub_80CD9C4 - - thumb_func_start sub_80CD9D4 -sub_80CD9D4: @ 80CD9D4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080CDA2E - cmp r5, 0x1 - bgt _080CD9EA - cmp r5, 0 - beq _080CD9F0 - b _080CDAC2 -_080CD9EA: - cmp r5, 0x2 - beq _080CDA80 - b _080CDAC2 -_080CD9F0: - strh r5, [r4, 0x30] - ldr r1, _080CDA74 @ =gUnknown_02024BE0 - ldr r2, _080CDA78 @ =gUnknown_0202F7C8 - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r4, 0x32] - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldr r2, _080CDA7C @ =0xfffffe00 - adds r1, r2, 0 - cmp r0, 0 - beq _080CDA18 - movs r0, 0x80 - lsls r0, 2 - adds r1, r0, 0 -_080CDA18: - strh r1, [r4, 0x36] - strh r5, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080CDA2E: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CDAC2 - movs r0, 0 - strh r0, [r4, 0x30] - movs r2, 0x36 - ldrsh r0, [r4, r2] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080CDAC2 - .align 2, 0 -_080CDA74: .4byte gUnknown_02024BE0 -_080CDA78: .4byte gUnknown_0202F7C8 -_080CDA7C: .4byte 0xfffffe00 -_080CDA80: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x38] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F9C - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CDAC2 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - adds r0, r4, 0 - bl move_anim_8072740 -_080CDAC2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CD9D4 - - thumb_func_start sub_80CDAC8 -sub_80CDAC8: @ 80CDAC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080CDB0C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldr r1, _080CDB10 @ =gUnknown_02024BE0 - ldr r2, _080CDB14 @ =gUnknown_0202F7C8 - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r5, 0x8] - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r5, 0xA] - strh r4, [r5, 0xC] - ldr r0, _080CDB18 @ =gUnknown_03004B00 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - beq _080CDB1C - cmp r1, 0x1 - beq _080CDB38 - adds r0, r6, 0 - bl move_anim_task_del - b _080CDB56 - .align 2, 0 -_080CDB0C: .4byte gTasks -_080CDB10: .4byte gUnknown_02024BE0 -_080CDB14: .4byte gUnknown_0202F7C8 -_080CDB18: .4byte gUnknown_03004B00 -_080CDB1C: - strh r1, [r5, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - movs r0, 0x3 - strh r0, [r5, 0x12] - cmp r2, 0 - bne _080CDB30 - negs r0, r0 - strh r0, [r5, 0x12] -_080CDB30: - ldr r0, _080CDB34 @ =sub_80CDB60 - b _080CDB54 - .align 2, 0 -_080CDB34: .4byte sub_80CDB60 -_080CDB38: - movs r0, 0x8 - strh r0, [r5, 0xE] - movs r0, 0xC0 - lsls r0, 3 - strh r0, [r5, 0x10] - movs r1, 0xC0 - strh r1, [r5, 0x12] - cmp r2, 0 - bne _080CDB52 - negs r0, r0 - strh r0, [r5, 0x10] - negs r0, r1 - strh r0, [r5, 0x12] -_080CDB52: - ldr r0, _080CDB5C @ =sub_80CDD20 -_080CDB54: - str r0, [r5] -_080CDB56: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDB5C: .4byte sub_80CDD20 - thumb_func_end sub_80CDAC8 - - thumb_func_start sub_80CDB60 -sub_80CDB60: @ 80CDB60 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CDB84 @ =gTasks - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080CDB7A - b _080CDD1A -_080CDB7A: - lsls r0, 2 - ldr r1, _080CDB88 @ =_080CDB8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080CDB84: .4byte gTasks -_080CDB88: .4byte _080CDB8C - .align 2, 0 -_080CDB8C: - .4byte _080CDBA0 - .4byte _080CDBD2 - .4byte _080CDC2C - .4byte _080CDCA4 - .4byte _080CDCE8 -_080CDBA0: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _080CDBB0 - ldrh r2, [r4, 0x12] - ldrh r3, [r4, 0x10] - adds r2, r3 - b _080CDCF6 -_080CDBB0: - movs r0, 0x8 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r1, 0xC0 - cmp r0, 0 - bne _080CDBC6 - movs r2, 0xC0 - negs r2, r2 - adds r1, r2, 0 -_080CDBC6: - strh r1, [r4, 0x12] - ldrb r0, [r4, 0x8] - movs r1, 0 - bl sub_8078E70 - b _080CDCDC -_080CDBD2: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDBF8 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8078F9C - b _080CDD08 -_080CDBF8: - movs r0, 0x8 - strh r0, [r4, 0xE] - ldr r2, _080CDC28 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080CDC1E - movs r1, 0x2 -_080CDC1E: - strh r1, [r4, 0x12] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080CDCDC - .align 2, 0 -_080CDC28: .4byte gSprites -_080CDC2C: - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDC88 - ldrh r1, [r4, 0x14] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDC46 - subs r0, r1, 0x1 - strh r0, [r4, 0x14] - b _080CDD1A -_080CDC46: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080CDC68 - ldr r2, _080CDC64 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x12] - ldrh r2, [r4, 0x10] - adds r1, r2 - b _080CDC7C - .align 2, 0 -_080CDC64: .4byte gSprites -_080CDC68: - ldr r2, _080CDC84 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r4, 0x12] - subs r1, r2 -_080CDC7C: - strh r1, [r0, 0x24] - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080CDD08 - .align 2, 0 -_080CDC84: .4byte gSprites -_080CDC88: - ldr r2, _080CDCA0 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x24] - movs r0, 0xC - strh r0, [r4, 0xE] - b _080CDCDC - .align 2, 0 -_080CDCA0: .4byte gSprites -_080CDCA4: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080CDCB4 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080CDD1A -_080CDCB4: - movs r0, 0x3 - strh r0, [r4, 0xE] - ldr r2, _080CDCE4 @ =gSprites - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x24] - strh r0, [r4, 0x10] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x8 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080CDCDA - movs r1, 0x8 -_080CDCDA: - strh r1, [r4, 0x12] -_080CDCDC: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _080CDD1A - .align 2, 0 -_080CDCE4: .4byte gSprites -_080CDCE8: - movs r3, 0xE - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080CDD14 - ldrh r2, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r2, r0 -_080CDCF6: - strh r2, [r4, 0x10] - ldr r3, _080CDD10 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] -_080CDD08: - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080CDD1A - .align 2, 0 -_080CDD10: .4byte gSprites -_080CDD14: - adds r0, r2, 0 - bl move_anim_task_del -_080CDD1A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CDB60 - - thumb_func_start sub_80CDD20 -sub_80CDD20: @ 80CDD20 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080CDD5C @ =gTasks - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080CDD60 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r2, 0x80 - lsls r2, 1 - ldrh r3, [r4, 0x10] - adds r1, r2, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8078F9C - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080CDD6C - .align 2, 0 -_080CDD5C: .4byte gTasks -_080CDD60: - ldrb r0, [r4, 0x8] - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080CDD6C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80CDD20 - - thumb_func_start sub_80CDD74 -sub_80CDD74: @ 80CDD74 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CDD88 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CDD90 - ldr r4, _080CDD8C @ =gUnknown_0202F7C8 - b _080CDD92 - .align 2, 0 -_080CDD88: .4byte gUnknown_03004B00 -_080CDD8C: .4byte gUnknown_0202F7C8 -_080CDD90: - ldr r4, _080CDDD0 @ =gUnknown_0202F7C9 -_080CDD92: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldr r1, _080CDDD4 @ =sub_80CDEC0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDDD8 @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDDD0: .4byte gUnknown_0202F7C9 -_080CDDD4: .4byte sub_80CDEC0 -_080CDDD8: .4byte sub_8078600 - thumb_func_end sub_80CDD74 - - thumb_func_start sub_80CDDDC -sub_80CDDDC: @ 80CDDDC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080CDE14 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CDE18 @ =0x0000ffd0 - adds r0, r1 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r1, _080CDE1C @ =sub_80CDE78 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDE20 @ =sub_8078600 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CDE14: .4byte gUnknown_0202F7C9 -_080CDE18: .4byte 0x0000ffd0 -_080CDE1C: .4byte sub_80CDE78 -_080CDE20: .4byte sub_8078600 - thumb_func_end sub_80CDDDC - - thumb_func_start sub_80CDE24 -sub_80CDE24: @ 80CDE24 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080CDE68 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080CDE6C @ =gUnknown_03004B00 - ldr r2, _080CDE70 @ =0x0000ffd0 - adds r0, r2 - ldrh r1, [r1] - adds r0, r1 - movs r6, 0 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - strh r6, [r4, 0x2E] - strh r6, [r4, 0x30] - ldr r0, _080CDE74 @ =sub_80CDEC0 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDE68: .4byte gUnknown_0202F7C9 -_080CDE6C: .4byte gUnknown_03004B00 -_080CDE70: .4byte 0x0000ffd0 -_080CDE74: .4byte sub_80CDEC0 - thumb_func_end sub_80CDE24 - - thumb_func_start sub_80CDE78 -sub_80CDE78: @ 80CDE78 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CDEA2 - movs r0, 0xC - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldr r1, _080CDEA8 @ =sub_80CDEB0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CDEAC @ =sub_8078364 - str r0, [r4, 0x1C] -_080CDEA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CDEA8: .4byte sub_80CDEB0 -_080CDEAC: .4byte sub_8078364 - thumb_func_end sub_80CDE78 - - thumb_func_start sub_80CDEB0 -sub_80CDEB0: @ 80CDEB0 - movs r1, 0 - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - ldr r1, _080CDEBC @ =sub_80CDEC0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CDEBC: .4byte sub_80CDEC0 - thumb_func_end sub_80CDEB0 - - thumb_func_start sub_80CDEC0 -sub_80CDEC0: @ 80CDEC0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CDF08 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080CDF08 - adds r0, r3, 0 - bl move_anim_8072740 -_080CDF08: - pop {r0} - bx r0 - thumb_func_end sub_80CDEC0 - - thumb_func_start sub_80CDF0C -sub_80CDF0C: @ 80CDF0C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CDF20 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CDF28 - ldr r4, _080CDF24 @ =gUnknown_0202F7C8 - b _080CDF2A - .align 2, 0 -_080CDF20: .4byte gUnknown_03004B00 -_080CDF24: .4byte gUnknown_0202F7C8 -_080CDF28: - ldr r4, _080CDF64 @ =gUnknown_0202F7C9 -_080CDF2A: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x4] - adds r0, r6 - strh r0, [r5, 0x22] - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080CDF68 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x30] - ldr r0, _080CDF6C @ =sub_80CDF70 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDF64: .4byte gUnknown_0202F7C9 -_080CDF68: .4byte gUnknown_03004B00 -_080CDF6C: .4byte sub_80CDF70 - thumb_func_end sub_80CDF0C - - thumb_func_start sub_80CDF70 -sub_80CDF70: @ 80CDF70 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - ble _080CDF90 - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_080CDF90: - ldrh r0, [r2, 0x22] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x22] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CDFAC - adds r0, r2, 0 - bl move_anim_8072740 -_080CDFAC: - pop {r0} - bx r0 - thumb_func_end sub_80CDF70 - - thumb_func_start sub_80CDFB0 -sub_80CDFB0: @ 80CDFB0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080CDFF8 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0xC - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - movs r0, 0x2 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r5, [r4, 0x34] - strh r5, [r4, 0x36] - subs r0, 0x42 - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _080CDFFC @ =sub_80CE000 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CDFF8: .4byte gUnknown_0202F7C8 -_080CDFFC: .4byte sub_80CE000 - thumb_func_end sub_80CDFB0 - - thumb_func_start sub_80CE000 -sub_80CE000: @ 80CE000 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080CE06C - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r1, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080CE052 - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080CE052 - ldrh r1, [r4, 0x38] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xC2 - bl PlaySE12WithPanning -_080CE052: - movs r1, 0 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE06C - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080CE06C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080CE096 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - ble _080CE096 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080CE096 - adds r0, r4, 0 - bl move_anim_8072740 -_080CE096: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CE000 - - thumb_func_start sub_80CE09C -sub_80CE09C: @ 80CE09C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080CE0E6 - ldr r4, _080CE0FC @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r5, _080CE100 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x2] - adds r0, r5 - strh r0, [r6, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE0E0 - ldrh r0, [r6, 0x22] - adds r0, 0xA - strh r0, [r6, 0x22] -_080CE0E0: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] -_080CE0E6: - ldr r0, _080CE100 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080CE104 @ =0x0000ffff - cmp r1, r0 - bne _080CE0F6 - adds r0, r6, 0 - bl move_anim_8072740 -_080CE0F6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CE0FC: .4byte gUnknown_0202F7C8 -_080CE100: .4byte gUnknown_03004B00 -_080CE104: .4byte 0x0000ffff - thumb_func_end sub_80CE09C - - thumb_func_start sub_80CE108 -sub_80CE108: @ 80CE108 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CE128 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080CE134 - ldr r1, _080CE12C @ =gUnknown_03004B00 - ldr r0, _080CE130 @ =0x0000ffff - strh r0, [r1, 0xE] - b _080CE16C - .align 2, 0 -_080CE128: .4byte gTasks -_080CE12C: .4byte gUnknown_03004B00 -_080CE130: .4byte 0x0000ffff -_080CE134: - cmp r0, 0x2 - bne _080CE140 - adds r0, r2, 0 - bl move_anim_task_del - b _080CE172 -_080CE140: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080CE172 - movs r0, 0 - strh r0, [r4, 0x8] - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - ldr r3, _080CE178 @ =REG_BLDALPHA - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _080CE172 -_080CE16C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080CE172: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE178: .4byte REG_BLDALPHA - thumb_func_end sub_80CE108 - - thumb_func_start sub_80CE17C -sub_80CE17C: @ 80CE17C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080CE1A4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080CE1A8 @ =sub_80CE1AC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE1A4: .4byte gUnknown_03004B00 -_080CE1A8: .4byte sub_80CE1AC - thumb_func_end sub_80CE17C - - thumb_func_start sub_80CE1AC -sub_80CE1AC: @ 80CE1AC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080CE1C0 - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080CE1FC -_080CE1C0: - adds r2, r5, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldr r4, _080CE204 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080CE208 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080CE20C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080CE1FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CE204: .4byte gUnknown_0202F7C8 -_080CE208: .4byte sub_8078B34 -_080CE20C: .4byte move_anim_8072740 - thumb_func_end sub_80CE1AC - - thumb_func_start sub_80CE210 -sub_80CE210: @ 80CE210 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080CE258 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080CE252 - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r1, [r3, 0xA] - adds r1, 0x1 - strh r1, [r3, 0xA] - ldr r2, _080CE25C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x10 - bne _080CE252 - adds r0, r4, 0 - bl move_anim_task_del -_080CE252: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE258: .4byte gTasks -_080CE25C: .4byte REG_BLDALPHA - thumb_func_end sub_80CE210 - - thumb_func_start unref_sub_80CE260 -unref_sub_80CE260: @ 80CE260 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _080CE2C8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bcs _080CE2BC - ldr r6, _080CE2CC @ =gUnknown_03004B00 - ldr r5, _080CE2D0 @ =gUnknown_03004340 -_080CE274: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080CE290 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CE290 - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8043DB0 -_080CE290: - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _080CE2AE - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE2AE - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8043DB0 -_080CE2AE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CE2C8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bcc _080CE274 -_080CE2BC: - adds r0, r7, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE2C8: .4byte gUnknown_02024A68 -_080CE2CC: .4byte gUnknown_03004B00 -_080CE2D0: .4byte gUnknown_03004340 - thumb_func_end unref_sub_80CE260 - - thumb_func_start unref_sub_80CE2D4 -unref_sub_80CE2D4: @ 80CE2D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - b _080CE2EE -_080CE2DE: - ldr r0, _080CE304 @ =gUnknown_03004340 - adds r0, r4, r0 - ldrb r0, [r0] - bl sub_8043DFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080CE2EE: - ldr r0, _080CE308 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bcc _080CE2DE - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CE304: .4byte gUnknown_03004340 -_080CE308: .4byte gUnknown_02024A68 - thumb_func_end unref_sub_80CE2D4 - - thumb_func_start sub_80CE30C -sub_80CE30C: @ 80CE30C - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE322 - movs r0, 0x30 - strh r0, [r4, 0x20] - movs r0, 0x28 - b _080CE32A -_080CE322: - ldr r0, _080CE34C @ =gUnknown_03004B00 - ldrh r1, [r0] - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] -_080CE32A: - strh r0, [r4, 0x22] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080CE350 @ =sub_80CE354 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE34C: .4byte gUnknown_03004B00 -_080CE350: .4byte sub_80CE354 - thumb_func_end sub_80CE30C - - thumb_func_start sub_80CE354 -sub_80CE354: @ 80CE354 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080CE366 - adds r0, r1, 0 - bl move_anim_8072740 -_080CE366: - pop {r0} - bx r0 - thumb_func_end sub_80CE354 - - thumb_func_start sub_80CE36C -sub_80CE36C: @ 80CE36C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CE3A4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r2, _080CE3A8 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x22] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x30] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x36] - ldr r0, _080CE3AC @ =sub_80CE3B0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE3A4: .4byte gUnknown_0202F7C8 -_080CE3A8: .4byte gUnknown_03004B00 -_080CE3AC: .4byte sub_80CE3B0 - thumb_func_end sub_80CE36C - - thumb_func_start sub_80CE3B0 -sub_80CE3B0: @ 80CE3B0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE3DA - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r2, [r1, 0x32] - movs r3, 0x32 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _080CE3DA - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] - adds r0, r2, 0x1 - strh r0, [r1, 0x32] -_080CE3DA: - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080CE3E8 - adds r0, r1, 0 - bl move_anim_8072740 -_080CE3E8: - pop {r0} - bx r0 - thumb_func_end sub_80CE3B0 - - thumb_func_start sub_80CE3EC -sub_80CE3EC: @ 80CE3EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - mov r8, r0 - ldr r0, _080CE4BC @ =0x0000ffff - mov r1, r8 - ands r1, r0 - mov r8, r1 - ldr r0, _080CE4C0 @ =gTasks - mov r9, r0 - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r6, r5, r0 - strh r4, [r6, 0x8] - strh r4, [r6, 0xA] - strh r4, [r6, 0xC] - strh r1, [r6, 0xE] - strh r4, [r6, 0x10] - strh r4, [r6, 0x12] - strh r4, [r6, 0x14] - movs r0, 0xD - strh r0, [r6, 0x16] - movs r0, 0xE - strh r0, [r6, 0x18] - movs r0, 0xF - strh r0, [r6, 0x1A] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80792C0 - mov r10, r0 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r0, 0x8 - add r9, r0 - add r5, r9 - adds r0, r5, 0 - adds r0, 0x1C - adds r5, 0x1E - adds r1, r5, 0 - mov r2, r8 - bl sub_8079BF4 - ldr r0, _080CE4C4 @ =0x000027d2 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - mov r0, r10 - orrs r0, r1 - mov r10, r0 - ldr r0, _080CE4C8 @ =0x000027d3 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0 - mov r1, r10 - orrs r4, r1 - ldr r0, _080CE4CC @ =0x00007fbb - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080CE4D0 @ =sub_80CE4D4 - str r1, [r6] - adds r0, r7, 0 - bl _call_via_r1 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE4BC: .4byte 0x0000ffff -_080CE4C0: .4byte gTasks -_080CE4C4: .4byte 0x000027d2 -_080CE4C8: .4byte 0x000027d3 -_080CE4CC: .4byte 0x00007fbb -_080CE4D0: .4byte sub_80CE4D4 - thumb_func_end sub_80CE3EC - - thumb_func_start sub_80CE4D4 -sub_80CE4D4: @ 80CE4D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080CE4FC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080CE5C0 - cmp r1, 0x1 - bgt _080CE500 - cmp r1, 0 - beq _080CE50E - b _080CE65E - .align 2, 0 -_080CE4FC: .4byte gTasks -_080CE500: - cmp r1, 0x2 - bne _080CE506 - b _080CE618 -_080CE506: - cmp r1, 0x3 - bne _080CE50C - b _080CE64C -_080CE50C: - b _080CE65E -_080CE50E: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _080CE51C - b _080CE65E -_080CE51C: - strh r1, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080CE568 - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - ldrh r2, [r4, 0x18] - ldrh r3, [r4, 0x12] - adds r2, r3 - strh r2, [r4, 0x12] - ldrh r1, [r4, 0x1A] - ldrh r5, [r4, 0x14] - adds r1, r5 - strh r1, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r0, 16 - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r2, 11 - orrs r0, r2 - lsrs r1, 6 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - b _080CE572 -_080CE568: - ldr r7, _080CE5B8 @ =0x00007fbb - mov r12, r7 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080CE572: - movs r2, 0x1 - movs r3, 0 - movs r1, 0 -_080CE578: - movs r5, 0xE - ldrsh r0, [r4, r5] - ands r0, r2 - lsls r5, r2, 17 - adds r6, r3, 0 - adds r6, 0x10 - adds r1, 0x1 - mov r8, r1 - cmp r0, 0 - beq _080CE5A4 - movs r1, 0x1 - ldr r2, _080CE5BC @ =gPlttBufferFaded -_080CE590: - adds r0, r3, r1 - lsls r0, 1 - adds r0, r2 - mov r7, r12 - strh r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080CE590 -_080CE5A4: - lsrs r2, r5, 16 - lsls r0, r6, 16 - lsrs r3, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _080CE578 - b _080CE65E - .align 2, 0 -_080CE5B8: .4byte 0x00007fbb -_080CE5BC: .4byte gPlttBufferFaded -_080CE5C0: - ldr r0, _080CE608 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CE65E - movs r2, 0 - ldr r3, _080CE60C @ =gSprites - movs r5, 0x14 - adds r5, r3 - mov r12, r5 - ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8 - mov r8, r7 - ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8 - movs r5, 0x1 -_080CE5DE: - lsls r0, r2, 4 - adds r0, r2 - lsls r1, r0, 2 - mov r7, r12 - adds r0, r1, r7 - ldr r0, [r0] - cmp r0, r8 - beq _080CE5F2 - cmp r0, r6 - bne _080CE5F6 -_080CE5F2: - adds r0, r1, r3 - strh r5, [r0, 0x2E] -_080CE5F6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080CE5DE - movs r0, 0 - strh r0, [r4, 0xA] - b _080CE640 - .align 2, 0 -_080CE608: .4byte gPaletteFade -_080CE60C: .4byte gSprites -_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 -_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 -_080CE618: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080CE65E - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - bl sub_8079BFC - ldr r1, _080CE648 @ =0x00007fbb - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080CE640: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080CE65E - .align 2, 0 -_080CE648: .4byte 0x00007fbb -_080CE64C: - ldr r0, _080CE66C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CE65E - adds r0, r2, 0 - bl move_anim_task_del -_080CE65E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE66C: .4byte gPaletteFade - thumb_func_end sub_80CE4D4 - - thumb_func_start sub_80CE670 -sub_80CE670: @ 80CE670 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080CE6F4 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bgt _080CE682 - movs r0, 0x2 - strh r0, [r6, 0x4] -_080CE682: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x7F - ble _080CE68E - movs r0, 0x7F - strh r0, [r6, 0x4] -_080CE68E: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x30] - ldr r4, _080CE6F8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x2] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r1, [r5, 0x20] - strh r1, [r5, 0x3A] - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CE700 - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE6FC @ =0xffffec00 - b _080CE726 - .align 2, 0 -_080CE6F4: .4byte gUnknown_03004B00 -_080CE6F8: .4byte gUnknown_0202F7C9 -_080CE6FC: .4byte 0xffffec00 -_080CE700: - ldr r0, _080CE740 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CE748 - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - adds r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 5 -_080CE726: - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE744 @ =0xfffff600 - bl __divsi3 - strh r0, [r5, 0x38] - b _080CE784 - .align 2, 0 -_080CE740: .4byte gUnknown_0202F7C8 -_080CE744: .4byte 0xfffff600 -_080CE748: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r4, [r5, 0x22] - subs r4, 0x14 - strh r4, [r5, 0x22] - lsls r0, 7 - strh r0, [r5, 0x32] - movs r0, 0x30 - ldrsh r1, [r5, r0] - ldr r0, _080CE790 @ =0xffffec00 - bl __divsi3 - strh r0, [r5, 0x34] - lsls r4, 7 - strh r4, [r5, 0x36] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0xA0 - lsls r0, 4 - bl __divsi3 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x30 - orrs r0, r1 - strb r0, [r5, 0x3] -_080CE784: - ldr r0, _080CE794 @ =sub_80CE798 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CE790: .4byte 0xffffec00 -_080CE794: .4byte sub_80CE798 - thumb_func_end sub_80CE670 - - thumb_func_start sub_80CE798 -sub_80CE798: @ 80CE798 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 23 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080CE7CE - ldrh r0, [r2, 0x3A] - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x22] -_080CE7CE: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080CE7DC - adds r0, r2, 0 - bl move_anim_8072740 -_080CE7DC: - pop {r0} - bx r0 - thumb_func_end sub_80CE798 - - thumb_func_start sub_80CE7E0 -sub_80CE7E0: @ 80CE7E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _080CE870 @ =gTasks - adds r6, r0, r1 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x8] - ldr r0, _080CE874 @ =0x00002771 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xA] - movs r1, 0xA - ldrsh r0, [r6, r1] - lsls r0, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - ldr r2, _080CE878 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - movs r5, 0x1 - ldr r2, _080CE87C @ =gPlttBufferUnfaded -_080CE838: - adds r1, r3, r5 - lsls r1, 1 - adds r1, r2 - adds r0, r4, r5 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080CE838 - adds r0, r3, 0 - movs r1, 0x10 - movs r2, 0xB - movs r3, 0 - bl BlendPalette - movs r0, 0 - strh r0, [r6, 0xE] - movs r5, 0 - ldr r7, _080CE878 @ =gSprites - movs r1, 0x1C - adds r1, r7 - mov r9, r1 - b _080CE8B4 - .align 2, 0 -_080CE870: .4byte gTasks -_080CE874: .4byte 0x00002771 -_080CE878: .4byte gSprites -_080CE87C: .4byte gPlttBufferUnfaded -_080CE880: - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r7 - ldrb r1, [r6, 0xA] - lsls r1, 4 - ldrb r3, [r4, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x5] - movs r0, 0 - strh r0, [r4, 0x2E] - lsls r0, r5, 7 - strh r0, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x32] - add r2, r9 - ldr r0, _080CE8E4 @ =sub_80CE974 - str r0, [r2] - ldrh r0, [r6, 0xE] - adds r0, 0x1 - strh r0, [r6, 0xE] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080CE8B4: - cmp r5, 0x1 - bhi _080CE8C6 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080CE880 -_080CE8C6: - ldr r0, _080CE8E8 @ =sub_80CE910 - str r0, [r6] - ldr r0, _080CE8EC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE8F4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080CE8F0 @ =0x0000fdff - b _080CE8FC - .align 2, 0 -_080CE8E4: .4byte sub_80CE974 -_080CE8E8: .4byte sub_80CE910 -_080CE8EC: .4byte gUnknown_0202F7C8 -_080CE8F0: .4byte 0x0000fdff -_080CE8F4: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080CE90C @ =0x0000fbff -_080CE8FC: - ands r0, r1 - strh r0, [r2] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CE90C: .4byte 0x0000fbff - thumb_func_end sub_80CE7E0 - - thumb_func_start sub_80CE910 -sub_80CE910: @ 80CE910 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080CE944 @ =gTasks - adds r0, r1 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CE968 - ldr r0, _080CE948 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CE94C - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080CE956 - .align 2, 0 -_080CE944: .4byte gTasks -_080CE948: .4byte gUnknown_0202F7C8 -_080CE94C: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080CE956: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - ldr r0, _080CE970 @ =0x00002771 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl move_anim_task_del -_080CE968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CE970: .4byte 0x00002771 - thumb_func_end sub_80CE910 - - thumb_func_start sub_80CE974 -sub_80CE974: @ 80CE974 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080CE990 - movs r0, 0 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_080CE990: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x40 - ble _080CE9B8 - ldr r2, _080CE9B4 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xE] - subs r1, 0x1 - strh r1, [r0, 0xE] - adds r0, r5, 0 - bl obj_delete_but_dont_free_vram - b _080CE9FA - .align 2, 0 -_080CE9B4: .4byte gTasks -_080CE9B8: - ldr r4, _080CEA00 @ =gSineTable - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x6 - bl __divsi3 - strh r0, [r5, 0x36] - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 1 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xD - bl __divsi3 - strh r0, [r5, 0x38] - ldrh r1, [r5, 0x30] - adds r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] -_080CE9FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEA00: .4byte gSineTable - thumb_func_end sub_80CE974 - - thumb_func_start sub_80CEA04 -sub_80CEA04: @ 80CEA04 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080CEA18 @ =move_anim_8072740 - bl oamt_set_x3A_32 - ldr r0, _080CEA1C @ =sub_8078600 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CEA18: .4byte move_anim_8072740 -_080CEA1C: .4byte sub_8078600 - thumb_func_end sub_80CEA04 - - thumb_func_start sub_80CEA20 -sub_80CEA20: @ 80CEA20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _080CEAD0 @ =gUnknown_083D712C - ldrh r0, [r4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - beq _080CEA64 - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r5, _080CEAD4 @ =gPlttBufferFaded -_080CEA4C: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r5 - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080CEA4C -_080CEA64: - movs r4, 0x1 - ldr r0, _080CEAD0 @ =gUnknown_083D712C - mov r8, r0 -_080CEA6A: - lsls r0, r4, 1 - adds r0, r4 - lsls r5, r0, 2 - mov r1, r8 - adds r0, r5, r1 - ldrh r0, [r0] - bl AllocSpritePalette - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, 0x1 - mov r12, r4 - cmp r3, 0xFF - beq _080CEAB2 - lsls r0, r3, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r3, r0, 16 - movs r2, 0x1 - ldr r7, _080CEAD4 @ =gPlttBufferFaded - ldr r6, _080CEAD0 @ =gUnknown_083D712C - adds r4, r5, 0 -_080CEA98: - adds r1, r3, r2 - lsls r1, 1 - adds r1, r7 - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080CEA98 -_080CEAB2: - mov r1, r12 - lsls r0, r1, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080CEA6A - mov r0, r9 - bl move_anim_task_del - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CEAD0: .4byte gUnknown_083D712C -_080CEAD4: .4byte gPlttBufferFaded - thumb_func_end sub_80CEA20 - - thumb_func_start sub_80CEAD8 -sub_80CEAD8: @ 80CEAD8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0x1 - ldr r6, _080CEB08 @ =gUnknown_083D712C -_080CEAE2: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080CEAE2 - adds r0, r5, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEB08: .4byte gUnknown_083D712C - thumb_func_end sub_80CEAD8 - - thumb_func_start sub_80CEB0C -sub_80CEB0C: @ 80CEB0C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8078650 - ldr r4, _080CEB64 @ =gUnknown_03004B00 - ldrb r1, [r4] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r2, _080CEB68 @ =gUnknown_083D712C - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CEB48 - lsls r2, r0, 4 - ldrb r1, [r5, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] -_080CEB48: - ldrh r0, [r4, 0x2] - movs r1, 0 - strh r0, [r5, 0x30] - strh r1, [r5, 0x32] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x34] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CEB6C - movs r6, 0x30 - movs r3, 0x28 - b _080CEB86 - .align 2, 0 -_080CEB64: .4byte gUnknown_03004B00 -_080CEB68: .4byte gUnknown_083D712C -_080CEB6C: - ldr r4, _080CEBBC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r3, r0, 24 -_080CEB86: - ldrh r0, [r5, 0x20] - lsls r1, r0, 4 - strh r1, [r5, 0x36] - ldrh r1, [r5, 0x22] - lsls r2, r1, 4 - strh r2, [r5, 0x38] - subs r0, r6, r0 - lsls r0, 16 - asrs r0, 16 - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - adds r2, r5, 0 - adds r2, 0x3A - adds r3, r5, 0 - adds r3, 0x3C - movs r4, 0x28 - str r4, [sp] - bl sub_80CEBC4 - ldr r0, _080CEBC0 @ =sub_80CEC1C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEBBC: .4byte gUnknown_0202F7C9 -_080CEBC0: .4byte sub_80CEC1C - thumb_func_end sub_80CEB0C - - thumb_func_start sub_80CEBC4 -sub_80CEBC4: @ 80CEBC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - mov r8, r3 - ldr r2, [sp, 0x18] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bge _080CEBE6 - lsls r0, r1, 24 - negs r0, r0 - lsrs r1, r0, 24 -_080CEBE6: - lsls r5, r2, 8 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl __divsi3 - adds r4, r0, 0 - cmp r4, 0 - bne _080CEBFA - movs r4, 0x1 -_080CEBFA: - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r7] - lsls r0, r6, 16 - asrs r0, 8 - adds r1, r4, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80CEBC4 - - thumb_func_start sub_80CEC1C -sub_80CEC1C: @ 80CEC1C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r1, r0, r1 - adds r0, r1, 0 - cmp r1, 0 - bge _080CEC38 - adds r0, 0xFF -_080CEC38: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - ldrh r1, [r4, 0x3A] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - ldrh r2, [r4, 0x3C] - ldrh r3, [r4, 0x38] - adds r2, r3 - strh r2, [r4, 0x38] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x20] - lsls r2, 16 - asrs r2, 20 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xF - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bhi _080CEC86 - lsls r0, r2, 16 - asrs r1, r0, 16 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _080CEC86 - cmp r1, 0x80 - ble _080CEC8E -_080CEC86: - adds r0, r4, 0 - bl move_anim_8074EE0 - b _080CECDE -_080CEC8E: - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _080CECDE - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, r1 - ble _080CECDE - strh r5, [r4, 0x32] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080CECB6 - strh r5, [r4, 0x30] -_080CECB6: - ldr r2, _080CECE4 @ =gUnknown_083D712C - movs r3, 0x30 - ldrsh r1, [r4, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CECDE - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080CECDE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CECE4: .4byte gUnknown_083D712C - thumb_func_end sub_80CEC1C - - thumb_func_start sub_80CECE8 -sub_80CECE8: @ 80CECE8 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _080CED6C @ =gUnknown_0202F7C8 - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080CED06 - ldr r1, _080CED70 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080CED06: - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CED70 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r7] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r6, 0x22] - ldrb r1, [r4] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x32] - strh r5, [r6, 0x34] - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r6, 0x38] - movs r1, 0x2 - ldrsh r0, [r4, r1] - lsls r0, 4 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3A] - movs r2, 0x4 - ldrsh r0, [r4, r2] - lsls r0, 7 - movs r1, 0x5 - bl __divsi3 - strh r0, [r6, 0x3C] - ldr r0, _080CED74 @ =sub_80CED78 - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CED6C: .4byte gUnknown_0202F7C8 -_080CED70: .4byte gUnknown_03004B00 -_080CED74: .4byte sub_80CED78 - thumb_func_end sub_80CECE8 - - thumb_func_start sub_80CED78 -sub_80CED78: @ 80CED78 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - ble _080CEDD6 - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080CEDD6 - ldrh r0, [r4, 0x32] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x12 - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x12 - bl Sin - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080CEDD6 - movs r0, 0x1 - strh r0, [r4, 0x34] -_080CEDD6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - bne _080CEDEA - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CEDEA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CED78 - - thumb_func_start sub_80CEDF0 -sub_80CEDF0: @ 80CEDF0 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080CEE10 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080CEE14 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] - movs r6, 0x10 - b _080CEE16 - .align 2, 0 -_080CEE10: .4byte gUnknown_03004B00 -_080CEE14: - ldr r6, _080CEE50 @ =0x0000fff0 -_080CEE16: - ldr r4, _080CEE54 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x8 - strh r0, [r5, 0x22] - movs r0, 0x8 - strh r0, [r5, 0x2E] - ldr r0, _080CEE58 @ =sub_80782D8 - str r0, [r5, 0x1C] - ldr r1, _080CEE5C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CEE50: .4byte 0x0000fff0 -_080CEE54: .4byte gUnknown_0202F7C8 -_080CEE58: .4byte sub_80782D8 -_080CEE5C: .4byte move_anim_8072740 - thumb_func_end sub_80CEDF0 - - thumb_func_start sub_80CEE60 -sub_80CEE60: @ 80CEE60 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] - ldr r5, _080CEED8 @ =gUnknown_03004B00 - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r2, _080CEEDC @ =gUnknown_083D712C - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080CEEA0 - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] -_080CEEA0: - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x20 - cmp r0, 0 - bne _080CEEAC - ldr r2, _080CEEE0 @ =0x0000ffe0 -_080CEEAC: - movs r0, 0x28 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x20] - strh r1, [r4, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - subs r0, 0x28 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x38] - ldr r0, _080CEEE4 @ =sub_80CEEE8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEED8: .4byte gUnknown_03004B00 -_080CEEDC: .4byte gUnknown_083D712C -_080CEEE0: .4byte 0x0000ffe0 -_080CEEE4: .4byte sub_80CEEE8 - thumb_func_end sub_80CEE60 - - thumb_func_start sub_80CEEE8 -sub_80CEEE8: @ 80CEEE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080CEF38 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - lsls r0, 16 - lsrs r1, r0, 16 - ldrh r2, [r4, 0x24] - movs r3, 0x24 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080CEF14 - lsls r0, r1, 16 - negs r0, r0 - lsrs r1, r0, 16 -_080CEF14: - lsls r0, r1, 16 - asrs r0, 16 - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - ldrh r3, [r4, 0x26] - adds r0, r3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x8 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080CEF3E -_080CEF38: - adds r0, r4, 0 - bl move_anim_8072740 -_080CEF3E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80CEEE8 - - thumb_func_start sub_80CEF44 -sub_80CEF44: @ 80CEF44 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CEF64 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - adds r0, 0x8 - b _080CEF6E -_080CEF64: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - subs r0, 0x8 -_080CEF6E: - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080CEF90 - adds r0, 0x3 -_080CEF90: - asrs r0, 2 - subs r0, r4, r0 - strh r0, [r6, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CEF44 - - thumb_func_start sub_80CEF9C -sub_80CEF9C: @ 80CEF9C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CEFB0 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CEFB8 - ldr r0, _080CEFB4 @ =gUnknown_0202F7C8 - b _080CEFBA - .align 2, 0 -_080CEFB0: .4byte gUnknown_03004B00 -_080CEFB4: .4byte gUnknown_0202F7C8 -_080CEFB8: - ldr r0, _080CEFF8 @ =gUnknown_0202F7C9 -_080CEFBA: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80CEF44 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - ldr r0, _080CEFFC @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - strh r0, [r5, 0x2E] - adds r0, r1, 0x2 - strh r0, [r5, 0x30] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _080CF000 @ =sub_80CF008 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF004 @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CEFF8: .4byte gUnknown_0202F7C9 -_080CEFFC: .4byte gUnknown_03004B00 -_080CF000: .4byte sub_80CF008 -_080CF004: .4byte sub_8078600 - thumb_func_end sub_80CEF9C - - thumb_func_start sub_80CF008 -sub_80CF008: @ 80CF008 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080CF030 - ldr r1, _080CF038 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080CF03C @ =sub_8078600 - str r0, [r4, 0x1C] -_080CF030: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF038: .4byte move_anim_8072740 -_080CF03C: .4byte sub_8078600 - thumb_func_end sub_80CF008 - - thumb_func_start sub_80CF040 -sub_80CF040: @ 80CF040 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CF054 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF05C - ldr r0, _080CF058 @ =gUnknown_0202F7C8 - b _080CF05E - .align 2, 0 -_080CF054: .4byte gUnknown_03004B00 -_080CF058: .4byte gUnknown_0202F7C8 -_080CF05C: - ldr r0, _080CF07C @ =gUnknown_0202F7C9 -_080CF05E: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80CEF44 - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r1, _080CF080 @ =sub_80CF088 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF084 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF07C: .4byte gUnknown_0202F7C9 -_080CF080: .4byte sub_80CF088 -_080CF084: .4byte sub_80785E4 - thumb_func_end sub_80CF040 - - thumb_func_start sub_80CF088 -sub_80CF088: @ 80CF088 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080CF0AE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080CF0B4 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF0B8 @ =sub_80785E4 - str r0, [r4, 0x1C] -_080CF0AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF0B4: .4byte move_anim_8074EE0 -_080CF0B8: .4byte sub_80785E4 - thumb_func_end sub_80CF088 - - thumb_func_start sub_80CF0BC -sub_80CF0BC: @ 80CF0BC - push {r4-r6,lr} - adds r4, r0, 0 - ldr r0, _080CF0D0 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF0D8 - ldr r0, _080CF0D4 @ =gUnknown_0202F7C8 - b _080CF0DA - .align 2, 0 -_080CF0D0: .4byte gUnknown_03004B00 -_080CF0D4: .4byte gUnknown_0202F7C8 -_080CF0D8: - ldr r0, _080CF12C @ =gUnknown_0202F7C9 -_080CF0DA: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080CF102 - movs r0, 0xA - strh r0, [r4, 0x22] -_080CF102: - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r6, [r4, 0x30] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - strh r0, [r4, 0x32] - ldrb r0, [r1] - adds r0, 0x4 - strh r0, [r4, 0x34] - strh r6, [r4, 0x36] - ldr r1, _080CF130 @ =sub_80CF138 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF134 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF12C: .4byte gUnknown_0202F7C9 -_080CF130: .4byte sub_80CF138 -_080CF134: .4byte sub_80785E4 - thumb_func_end sub_80CF0BC - - thumb_func_start sub_80CF138 -sub_80CF138: @ 80CF138 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080CF14E - ldr r0, _080CF154 @ =sub_80CF158 - str r0, [r1, 0x1C] -_080CF14E: - pop {r0} - bx r0 - .align 2, 0 -_080CF154: .4byte sub_80CF158 - thumb_func_end sub_80CF138 - - thumb_func_start sub_80CF158 -sub_80CF158: @ 80CF158 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x4 - strh r1, [r2, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFE - ble _080CF18A - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080CF184 - strh r0, [r2, 0x24] - ldr r0, _080CF180 @ =sub_80CF088 - str r0, [r2, 0x1C] - b _080CF1C0 - .align 2, 0 -_080CF180: .4byte sub_80CF088 -_080CF184: - movs r0, 0xFF - ands r1, r0 - strh r1, [r2, 0x30] -_080CF18A: - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - ble _080CF19A - ldrh r0, [r2, 0x34] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080CF19A: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0x9F - ble _080CF1AA - ldrh r0, [r2, 0x32] - adds r1, r2, 0 - adds r1, 0x43 - strb r0, [r1] -_080CF1AA: - ldr r1, _080CF1C4 @ =gSineTable - movs r3, 0x30 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - asrs r1, r0, 1 - adds r0, r1 - strh r0, [r2, 0x24] -_080CF1C0: - pop {r0} - bx r0 - .align 2, 0 -_080CF1C4: .4byte gSineTable - thumb_func_end sub_80CF158 - - thumb_func_start sub_80CF1C8 -sub_80CF1C8: @ 80CF1C8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080CF1DC @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF1E4 - ldr r0, _080CF1E0 @ =gUnknown_0202F7C8 - b _080CF1E6 - .align 2, 0 -_080CF1DC: .4byte gUnknown_03004B00 -_080CF1E0: .4byte gUnknown_0202F7C8 -_080CF1E4: - ldr r0, _080CF208 @ =gUnknown_0202F7C9 -_080CF1E6: - ldrb r4, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80CEF44 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CF20C - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x2 - b _080CF216 - .align 2, 0 -_080CF208: .4byte gUnknown_0202F7C9 -_080CF20C: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x3 -_080CF216: - strh r0, [r5, 0x2E] - ldr r0, _080CF224 @ =sub_80CF228 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF224: .4byte sub_80CF228 - thumb_func_end sub_80CF1C8 - - thumb_func_start sub_80CF228 -sub_80CF228: @ 80CF228 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080CF256 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, _080CF25C @ =sub_80CF264 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080CF260 @ =sub_8078600 - str r0, [r4, 0x1C] -_080CF256: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF25C: .4byte sub_80CF264 -_080CF260: .4byte sub_8078600 - thumb_func_end sub_80CF228 - - thumb_func_start sub_80CF264 -sub_80CF264: @ 80CF264 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080CF27C - adds r0, r1, 0 - bl move_anim_8072740 -_080CF27C: - pop {r0} - bx r0 - thumb_func_end sub_80CF264 - - thumb_func_start sub_80CF280 -sub_80CF280: @ 80CF280 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r5, _080CF2C4 @ =gUnknown_03004B00 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x36] - ldr r1, _080CF2C8 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080CF2CC @ =sub_8078278 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF2C4: .4byte gUnknown_03004B00 -_080CF2C8: .4byte move_anim_8074EE0 -_080CF2CC: .4byte sub_8078278 - thumb_func_end sub_80CF280 - - thumb_func_start sub_80CF2D0 -sub_80CF2D0: @ 80CF2D0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080CF2E4 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CF2EC - ldr r0, _080CF2E8 @ =gUnknown_0202F7C8 - b _080CF2EE - .align 2, 0 -_080CF2E4: .4byte gUnknown_03004B00 -_080CF2E8: .4byte gUnknown_0202F7C8 -_080CF2EC: - ldr r0, _080CF308 @ =gUnknown_0202F7C9 -_080CF2EE: - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80CEF44 - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x30] - ldr r0, _080CF30C @ =sub_80CF310 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF308: .4byte gUnknown_0202F7C9 -_080CF30C: .4byte sub_80CF310 - thumb_func_end sub_80CF2D0 - - thumb_func_start sub_80CF310 -sub_80CF310: @ 80CF310 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080CF342 - cmp r0, 0x1 - bgt _080CF326 - cmp r0, 0 - beq _080CF32C - b _080CF370 -_080CF326: - cmp r0, 0x2 - beq _080CF35C - b _080CF370 -_080CF32C: - ldrh r0, [r1, 0x26] - subs r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080CF370 - b _080CF354 -_080CF342: - ldrh r0, [r1, 0x26] - adds r0, 0x3 - strh r0, [r1, 0x26] - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080CF370 -_080CF354: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080CF370 -_080CF35C: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080CF370 - adds r0, r1, 0 - bl move_anim_8072740 -_080CF370: - pop {r0} - bx r0 - thumb_func_end sub_80CF310 - - thumb_func_start sub_80CF374 -sub_80CF374: @ 80CF374 - push {r4,lr} - adds r4, r0, 0 - ldr r3, _080CF3C0 @ =gSprites - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r4, 0x30] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080CF3B2 - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x24] - adds r0, r4, 0 - bl move_anim_8074EE0 -_080CF3B2: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF3C0: .4byte gSprites - thumb_func_end sub_80CF374 - - thumb_func_start sub_80CF3C4 -sub_80CF3C4: @ 80CF3C4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080CF40C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080CF410 @ =gUnknown_02024BE0 - ldr r0, _080CF414 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF41C - ldr r0, _080CF418 @ =gUnknown_03004B00 - ldrh r1, [r5, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r5, 0x20] - adds r1, r0, 0 - b _080CF426 - .align 2, 0 -_080CF40C: .4byte gUnknown_0202F7C8 -_080CF410: .4byte gUnknown_02024BE0 -_080CF414: .4byte gUnknown_0202F7C9 -_080CF418: .4byte gUnknown_03004B00 -_080CF41C: - ldr r1, _080CF450 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080CF426: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - strh r6, [r5, 0x32] - ldr r0, _080CF454 @ =sub_80CF374 - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080CF450: .4byte gUnknown_03004B00 -_080CF454: .4byte sub_80CF374 - thumb_func_end sub_80CF3C4 - - thumb_func_start sub_80CF458 -sub_80CF458: @ 80CF458 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080CF484 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x38] - ldr r0, _080CF488 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080CF48C @ =sub_80CF490 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF484: .4byte gUnknown_03004B00 -_080CF488: .4byte sub_80782D8 -_080CF48C: .4byte sub_80CF490 - thumb_func_end sub_80CF458 - - thumb_func_start sub_80CF490 -sub_80CF490: @ 80CF490 - push {lr} - ldrh r1, [r0, 0x30] - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0xF - strh r1, [r0, 0x36] - ldr r1, _080CF4B0 @ =sub_8078B34 - str r1, [r0, 0x1C] - ldr r1, _080CF4B4 @ =sub_80CF4B8 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CF4B0: .4byte sub_8078B34 -_080CF4B4: .4byte sub_80CF4B8 - thumb_func_end sub_80CF490 - - thumb_func_start sub_80CF4B8 -sub_80CF4B8: @ 80CF4B8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x38] - movs r3, 0x38 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080CF4CE - adds r0, r1, 0 - bl move_anim_8072740 - b _080CF4D2 -_080CF4CE: - subs r0, r2, 0x1 - strh r0, [r1, 0x38] -_080CF4D2: - pop {r0} - bx r0 - thumb_func_end sub_80CF4B8 - - thumb_func_start sub_80CF4D8 -sub_80CF4D8: @ 80CF4D8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080CF504 @ =gUnknown_02024BE0 - ldr r0, _080CF508 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8078E70 - ldr r1, _080CF50C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080CF510 @ =sub_80CF514 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF504: .4byte gUnknown_02024BE0 -_080CF508: .4byte gUnknown_0202F7C8 -_080CF50C: .4byte gTasks -_080CF510: .4byte sub_80CF514 - thumb_func_end sub_80CF4D8 - - thumb_func_start sub_80CF514 -sub_80CF514: @ 80CF514 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080CF544 @ =gUnknown_02024BE0 - ldr r0, _080CF548 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r1, r0, r1 - ldrb r4, [r1] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CF550 - ldr r1, _080CF54C @ =gTasks - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - negs r0, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r6, r2, 0 - b _080CF55E - .align 2, 0 -_080CF544: .4byte gUnknown_02024BE0 -_080CF548: .4byte gUnknown_0202F7C8 -_080CF54C: .4byte gTasks -_080CF550: - ldr r2, _080CF590 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - ldrh r3, [r0, 0x8] - adds r6, r1, 0 -_080CF55E: - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - bl obj_id_set_rotscale - ldr r1, _080CF590 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080CF598 - ldrh r0, [r1, 0x8] - adds r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080CF594 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - b _080CF5C2 - .align 2, 0 -_080CF590: .4byte gTasks -_080CF594: .4byte gSprites -_080CF598: - cmp r0, 0x1 - bne _080CF5AE - ldrh r0, [r1, 0xE] - adds r0, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - bne _080CF608 - movs r0, 0x2 - b _080CF606 -_080CF5AE: - ldrh r0, [r1, 0x8] - subs r0, 0xB0 - strh r0, [r1, 0x8] - ldr r1, _080CF5FC @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - subs r1, 0x1 -_080CF5C2: - strh r1, [r0, 0x26] - adds r0, r4, 0 - bl sub_8078F9C - ldr r0, _080CF600 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r2, [r1, r3] - movs r0, 0xF2 - lsls r0, 4 - cmp r2, r0 - beq _080CF5E2 - cmp r2, 0 - bne _080CF608 -_080CF5E2: - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bne _080CF604 - adds r0, r4, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del - b _080CF608 - .align 2, 0 -_080CF5FC: .4byte gSprites -_080CF600: .4byte gTasks -_080CF604: - adds r0, r2, 0x1 -_080CF606: - strh r0, [r1, 0xA] -_080CF608: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80CF514 - - thumb_func_start sub_80CF610 -sub_80CF610: @ 80CF610 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r5, _080CF658 @ =gUnknown_03004B00 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080CF65C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF660 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r1, r0 - strb r1, [r2] - movs r3, 0x4 - ldrsh r0, [r5, r3] - cmp r0, 0 - beq _080CF674 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] - b _080CF674 - .align 2, 0 -_080CF658: .4byte gUnknown_03004B00 -_080CF65C: .4byte gUnknown_0202F7C8 -_080CF660: - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080CF674 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] -_080CF674: - ldr r0, _080CF688 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080CF68C @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080CF688: .4byte sub_8078600 -_080CF68C: .4byte move_anim_8072740 - thumb_func_end sub_80CF610 - - thumb_func_start sub_80CF690 -sub_80CF690: @ 80CF690 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080CF6AC @ =sub_80785E4 - str r0, [r4, 0x1C] - ldr r1, _080CF6B0 @ =sub_80CF6B4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF6AC: .4byte sub_80785E4 -_080CF6B0: .4byte sub_80CF6B4 - thumb_func_end sub_80CF690 - - thumb_func_start sub_80CF6B4 -sub_80CF6B4: @ 80CF6B4 - push {lr} - movs r1, 0x6 - strh r1, [r0, 0x2E] - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - subs r1, 0x20 - strh r1, [r0, 0x36] - ldr r1, _080CF6D4 @ =sub_8078B34 - str r1, [r0, 0x1C] - ldr r1, _080CF6D8 @ =move_anim_8072740 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080CF6D4: .4byte sub_8078B34 -_080CF6D8: .4byte move_anim_8072740 - thumb_func_end sub_80CF6B4 - - thumb_func_start sub_80CF6DC -sub_80CF6DC: @ 80CF6DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CF700 - ldr r1, _080CF6FC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080CF722 - .align 2, 0 -_080CF6FC: .4byte gUnknown_03004B00 -_080CF700: - ldr r0, _080CF7C8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CF722 - ldr r1, _080CF7CC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080CF722: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080CF7D0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r6, _080CF7CC @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldrh r1, [r5, 0x20] - mov r2, r8 - lsls r0, r2, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 24 - adds r0, r1 - lsrs r4, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080CF794 - ldr r2, _080CF7D4 @ =0xffffa000 - adds r0, r4, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_080CF794: - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - mov r0, r8 - strh r0, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080CF7D8 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080CF7DC @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CF7C8: .4byte gUnknown_0202F7C8 -_080CF7CC: .4byte gUnknown_03004B00 -_080CF7D0: .4byte gUnknown_0202F7C9 -_080CF7D4: .4byte 0xffffa000 -_080CF7D8: .4byte sub_8078B34 -_080CF7DC: .4byte move_anim_8072740 - thumb_func_end sub_80CF6DC - - thumb_func_start sub_80CF7E0 -sub_80CF7E0: @ 80CF7E0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF80A - ldr r2, _080CF810 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0xA] - subs r1, 0x1 - strh r1, [r0, 0xA] - adds r0, r3, 0 - bl DestroySprite -_080CF80A: - pop {r0} - bx r0 - .align 2, 0 -_080CF810: .4byte gTasks - thumb_func_end sub_80CF7E0 - - thumb_func_start sub_80CF814 -sub_80CF814: @ 80CF814 - push {r4,lr} - adds r2, r0, 0 - movs r0, 0x3C - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080CF844 @ =gTasks - adds r4, r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - ble _080CF848 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x38] - adds r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x36] - ldrh r3, [r2, 0x3A] - adds r0, r3 - b _080CF856 - .align 2, 0 -_080CF844: .4byte gTasks -_080CF848: - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x34] - subs r0, r1 - strh r0, [r2, 0x38] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - subs r0, r1 -_080CF856: - strh r0, [r2, 0x3A] - ldrh r0, [r2, 0x38] - ldrh r1, [r2, 0x30] - adds r3, r0, r1 - strh r3, [r2, 0x30] - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r4, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF87A - lsls r0, r3, 16 - lsrs r0, 24 - negs r0, r0 - b _080CF87E -_080CF87A: - lsls r0, r3, 16 - lsrs r0, 24 -_080CF87E: - strh r0, [r2, 0x24] - ldrh r1, [r4, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF892 - ldrh r0, [r2, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080CF896 -_080CF892: - ldrh r0, [r2, 0x32] - lsrs r0, 8 -_080CF896: - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - subs r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF8AC - movs r0, 0x1E - strh r0, [r2, 0x2E] - ldr r0, _080CF8B4 @ =sub_80CF7E0 - str r0, [r2, 0x1C] -_080CF8AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CF8B4: .4byte sub_80CF7E0 - thumb_func_end sub_80CF814 - - thumb_func_start sub_80CF8B8 -sub_80CF8B8: @ 80CF8B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _080CF8FC @ =gTasks - adds r6, r0, r1 - ldrh r2, [r6, 0x16] - movs r1, 0x2 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - ldrh r3, [r7, 0x30] - adds r2, r0, r3 - strh r2, [r7, 0x30] - ldrh r0, [r6, 0x18] - ands r1, r0 - ldrh r0, [r7, 0x32] - adds r1, r0 - strh r1, [r7, 0x32] - ldrh r1, [r6, 0x16] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF900 - lsls r0, r2, 16 - lsrs r0, 24 - negs r0, r0 - b _080CF904 - .align 2, 0 -_080CF8FC: .4byte gTasks -_080CF900: - lsls r0, r2, 16 - lsrs r0, 24 -_080CF904: - strh r0, [r7, 0x24] - ldrh r1, [r6, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CF918 - ldrh r0, [r7, 0x32] - lsrs r0, 8 - negs r0, r0 - b _080CF91C -_080CF918: - ldrh r0, [r7, 0x32] - lsrs r0, 8 -_080CF91C: - strh r0, [r7, 0x26] - ldrh r0, [r7, 0x2E] - subs r1, r0, 0x1 - strh r1, [r7, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080CF9E8 - movs r4, 0 - movs r0, 0x8 - strh r0, [r7, 0x2E] - movs r0, 0x4 - strh r0, [r6, 0x12] - movs r0, 0x80 - lsls r0, 5 - bl sub_81174E0 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r2, r0, r1 - strh r2, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r3, [r7, 0x22] - adds r0, r3 - strh r0, [r7, 0x22] - strh r4, [r7, 0x26] - strh r4, [r7, 0x24] - ldrh r3, [r6, 0x1E] - movs r0, 0x1E - ldrsh r1, [r6, r0] - lsls r0, r2, 16 - asrs r0, 16 - cmp r1, r0 - blt _080CF966 - subs r0, r3, r2 - b _080CF968 -_080CF966: - subs r0, r2, r3 -_080CF968: - lsls r0, 24 - lsrs r4, r0, 16 - ldrh r3, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - ldrh r2, [r7, 0x22] - movs r6, 0x22 - ldrsh r0, [r7, r6] - cmp r1, r0 - blt _080CF980 - subs r0, r3, r2 - b _080CF982 -_080CF980: - subs r0, r2, r3 -_080CF982: - lsls r0, 24 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - strh r0, [r7, 0x32] - strh r0, [r7, 0x30] - strh r0, [r7, 0x3A] - strh r0, [r7, 0x38] - lsls r0, r4, 16 - asrs r0, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r5, 0 - bl sub_81174C4 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r6, 0 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - strh r0, [r7, 0x34] - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, 0 - bl sub_81174C4 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - adds r0, r6, 0 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - strh r0, [r7, 0x36] - ldr r0, _080CF9F4 @ =sub_80CF814 - str r0, [r7, 0x1C] -_080CF9E8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CF9F4: .4byte sub_80CF814 - thumb_func_end sub_80CF8B8 - - thumb_func_start sub_80CF9F8 -sub_80CF9F8: @ 80CF9F8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080CFA1C @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080CFA16 - adds r0, r2, 0 - bl move_anim_task_del -_080CFA16: - pop {r0} - bx r0 - .align 2, 0 -_080CFA1C: .4byte gTasks - thumb_func_end sub_80CF9F8 - - thumb_func_start sub_80CFA20 -sub_80CFA20: @ 80CFA20 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080CFA74 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - subs r1, r0, 0x1 - strh r1, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bgt _080CFAF4 - ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC - movs r2, 0x1A - ldrsh r1, [r5, r2] - movs r3, 0x1C - ldrsh r2, [r5, r3] - ldrb r3, [r5, 0xC] - ldrb r4, [r5, 0xA] - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r0, 4 - add r0, r12 - lsls r0, 2 - ldr r1, _080CFA7C @ =gSprites - adds r6, r0, r1 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080CFA80 - cmp r0, 0x2 - beq _080CFA96 - b _080CFAA4 - .align 2, 0 -_080CFA74: .4byte gTasks -_080CFA78: .4byte gSpriteTemplate_83D74BC -_080CFA7C: .4byte gSprites -_080CFA80: - ldrb r2, [r6, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x3] - b _080CFAA4 -_080CFA96: - ldrb r0, [r6, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r6, 0x3] -_080CFAA4: - ldr r3, _080CFAFC @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r4, r2, r3 - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x14] - subs r0, r1 - strh r0, [r6, 0x2E] - strh r7, [r6, 0x3C] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xD - lsls r0, 1 - adds r0, r2 - adds r3, 0x8 - adds r0, r3 - mov r2, r12 - strh r2, [r0] - ldrh r0, [r4, 0xE] - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r0, 0x3F - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x9A - bl PlaySE12WithPanning - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x2 - ble _080CFAF4 - ldr r0, _080CFB00 @ =sub_80CF9F8 - str r0, [r4] -_080CFAF4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFAFC: .4byte gTasks -_080CFB00: .4byte sub_80CF9F8 - thumb_func_end sub_80CFA20 - - thumb_func_start sub_80CFB04 -sub_80CFB04: @ 80CFB04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r9, r0 - movs r5, 0 - mov r0, sp - mov r1, r9 - strh r1, [r0] - mov r4, sp - adds r4, 0x2 - strh r1, [r4] - bl sub_8076BE0 - lsls r0, 24 - mov r10, r4 - cmp r0, 0 - beq _080CFB70 - ldr r1, _080CFB60 @ =gTasks - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x10] - ldr r3, _080CFB64 @ =gUnknown_03004B00 - ldrh r0, [r3] - negs r0, r0 - strh r0, [r3] - ldrh r1, [r3, 0x4] - movs r0, 0x1 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _080CFB68 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strh r0, [r3, 0x4] - b _080CFBCA - .align 2, 0 -_080CFB60: .4byte gTasks -_080CFB64: .4byte gUnknown_03004B00 -_080CFB68: - movs r0, 0x1 - orrs r0, r1 - strh r0, [r3, 0x4] - b _080CFBCA -_080CFB70: - ldr r1, _080CFBB4 @ =gUnknown_02024A72 - ldr r0, _080CFBB8 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - lsls r2, r7, 2 - mov r8, r2 - cmp r0, 0 - bne _080CFBCA - ldr r1, _080CFBBC @ =gTasks - adds r0, r2, r7 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x10] - ldr r2, _080CFBC0 @ =gUnknown_03004B00 - ldrh r0, [r2] - negs r0, r0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - negs r0, r0 - strh r0, [r2, 0x2] - ldrh r1, [r2, 0x4] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080CFBC4 - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - b _080CFBC8 - .align 2, 0 -_080CFBB4: .4byte gUnknown_02024A72 -_080CFBB8: .4byte gUnknown_0202F7C9 -_080CFBBC: .4byte gTasks -_080CFBC0: .4byte gUnknown_03004B00 -_080CFBC4: - movs r0, 0x1 - orrs r0, r1 -_080CFBC8: - strh r0, [r2, 0x4] -_080CFBCA: - ldr r5, _080CFC24 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - ldr r1, _080CFC28 @ =gTasks - mov r3, r8 - adds r4, r3, r7 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - adds r6, r0, 0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - mov r9, r0 - ldr r0, _080CFC2C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080CFC34 - ldr r4, _080CFC30 @ =gUnknown_0202F7C9 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080CFC34 - ldrb r0, [r4] - movs r1, 0 - mov r2, sp - mov r3, r10 - bl sub_807A3FC - b _080CFC56 - .align 2, 0 -_080CFC24: .4byte gUnknown_0202F7C8 -_080CFC28: .4byte gTasks -_080CFC2C: .4byte gUnknown_020239F8 -_080CFC30: .4byte gUnknown_0202F7C9 -_080CFC34: - mov r5, sp - ldr r4, _080CFC90 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r1, r10 - strh r0, [r1] -_080CFC56: - mov r4, sp - ldr r0, _080CFC94 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - mov r2, sp - ldr r3, _080CFC98 @ =gUnknown_03004B00 - ldrh r0, [r3] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r1, 0x1E] - strh r0, [r4] - ldrh r0, [r3, 0x2] - mov r3, r10 - ldrh r3, [r3] - adds r0, r3 - strh r0, [r1, 0x20] - mov r1, r10 - strh r0, [r1] - mov r0, sp - ldrh r2, [r0] - movs r3, 0 - ldrsh r0, [r0, r3] - adds r1, r6, 0 - cmp r0, r1 - blt _080CFC9C - subs r0, r2, r1 - b _080CFC9E - .align 2, 0 -_080CFC90: .4byte gUnknown_0202F7C9 -_080CFC94: .4byte gTasks -_080CFC98: .4byte gUnknown_03004B00 -_080CFC9C: - subs r0, r1, r2 -_080CFC9E: - lsls r0, 16 - lsrs r0, 16 - lsls r4, r0, 16 - asrs r4, 16 - ldr r5, _080CFD14 @ =gUnknown_03004B00 - ldrh r1, [r5, 0x4] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - ldr r2, _080CFD18 @ =gTasks - mov r3, r8 - adds r1, r3, r7 - lsls r1, 3 - adds r6, r1, r2 - strh r0, [r6, 0x12] - movs r1, 0x12 - ldrsh r0, [r6, r1] - movs r1, 0x80 - bl sub_81174C4 - strh r0, [r6, 0x14] - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x16] - mov r2, r10 - ldrh r1, [r2] - movs r3, 0 - ldrsh r0, [r2, r3] - mov r4, r9 - cmp r0, r4 - blt _080CFD1C - subs r4, r1, r4 - lsls r4, 16 - asrs r4, 16 - movs r1, 0x12 - ldrsh r0, [r6, r1] - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - strh r1, [r6, 0x18] - b _080CFD3C - .align 2, 0 -_080CFD14: .4byte gUnknown_03004B00 -_080CFD18: .4byte gTasks -_080CFD1C: - subs r4, r1 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - bl sub_81174E0 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_81174C4 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r6, 0x18] -_080CFD3C: - ldr r1, _080CFD7C @ =gTasks - mov r3, r8 - adds r0, r3, r7 - lsls r0, 3 - adds r5, r0, r1 - ldr r4, _080CFD80 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x6] - strh r0, [r5, 0xE] - ldrh r1, [r4, 0x8] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080CFD8C - movs r0, 0x80 - eors r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080CFDB4 - ldr r0, _080CFD84 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080CFD88 @ =0x0000ffc0 - adds r1, r2, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080CFDC4 - .align 2, 0 -_080CFD7C: .4byte gTasks -_080CFD80: .4byte gUnknown_03004B00 -_080CFD84: .4byte gUnknown_0202F7C9 -_080CFD88: .4byte 0x0000ffc0 -_080CFD8C: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x3F - ble _080CFDB4 - ldr r0, _080CFDAC @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080CFDB0 @ =0x0000ffc0 - adds r1, r3, 0 - ldrh r4, [r4, 0x8] - adds r1, r4 - adds r0, r1 - b _080CFDC4 - .align 2, 0 -_080CFDAC: .4byte gUnknown_0202F7C9 -_080CFDB0: .4byte 0x0000ffc0 -_080CFDB4: - ldr r0, _080CFDF0 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x8] - subs r0, r1 -_080CFDC4: - strh r0, [r5, 0xC] - ldr r0, _080CFDF4 @ =gTasks - mov r2, r8 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0x2 - bgt _080CFDDC - movs r0, 0x3 - strh r0, [r1, 0xC] -_080CFDDC: - ldr r0, _080CFDF8 @ =sub_80CFA20 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFDF0: .4byte gUnknown_0202F7C9 -_080CFDF4: .4byte gTasks -_080CFDF8: .4byte sub_80CFA20 - thumb_func_end sub_80CFB04 - - thumb_func_start sub_80CFDFC -sub_80CFDFC: @ 80CFDFC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0x2E] - ldr r0, _080CFE28 @ =sub_80CFE2C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CFE24: .4byte gSpriteTemplate_83D75AC -_080CFE28: .4byte sub_80CFE2C - thumb_func_end sub_80CFDFC - - thumb_func_start sub_80CFE2C -sub_80CFE2C: @ 80CFE2C - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080CFE90 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r5, [r4, 0x2E] - ldr r1, _080CFE98 @ =gPlttBufferFaded - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - adds r6, r1, 0 - adds r1, r5, 0 - adds r1, 0x9 - lsls r0, r5, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - movs r3, 0x7 - lsls r1, 1 - adds r1, r6 -_080CFE64: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080CFE64 - adds r0, r5, 0 - adds r0, 0xF - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - bne _080CFE90 - adds r0, r4, 0 - bl move_anim_8072740 -_080CFE90: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFE98: .4byte gPlttBufferFaded - thumb_func_end sub_80CFE2C - - thumb_func_start sub_80CFE9C -sub_80CFE9C: @ 80CFE9C - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080CFF3C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080CFF40 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080CFF44 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080CFEE0 - ldrh r0, [r4, 0x4] - negs r0, r0 - strh r0, [r4, 0x4] -_080CFEE0: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r1, [r4, 0x4] - adds r0, r1 - lsls r0, 16 - ldrh r1, [r5, 0x20] - lsrs r6, r0, 16 - asrs r0, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - strh r6, [r5, 0x32] - strh r7, [r5, 0x36] - ldr r0, _080CFF48 @ =sub_8078C00 - str r0, [r5, 0x1C] - ldr r1, _080CFF4C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080CFF3C: .4byte gUnknown_0202F7C9 -_080CFF40: .4byte gUnknown_03004B00 -_080CFF44: .4byte gUnknown_0202F7C8 -_080CFF48: .4byte sub_8078C00 -_080CFF4C: .4byte move_anim_8072740 - thumb_func_end sub_80CFE9C - - thumb_func_start sub_80CFF50 -sub_80CFF50: @ 80CFF50 - ldr r1, _080CFF60 @ =0x0000fff0 - strh r1, [r0, 0x32] - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - ldr r1, _080CFF64 @ =sub_80CFF68 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080CFF60: .4byte 0x0000fff0 -_080CFF64: .4byte sub_80CFF68 - thumb_func_end sub_80CFF50 - - thumb_func_start sub_80CFF68 -sub_80CFF68: @ 80CFF68 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldr r0, _080CFFD4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080CFF8C - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080CFF8C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080CFFCC - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080CFFCC - adds r0, r4, 0 - bl move_anim_8072740 -_080CFFCC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CFFD4: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80CFF68 - - thumb_func_start sub_80CFFD8 -sub_80CFFD8: @ 80CFFD8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080D0024 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080D0028 @ =sub_8078B34 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080D002C @ =sub_80D0030 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0024: .4byte gUnknown_0202F7C9 -_080D0028: .4byte sub_8078B34 -_080D002C: .4byte sub_80D0030 - thumb_func_end sub_80CFFD8 - - thumb_func_start sub_80D0030 -sub_80D0030: @ 80D0030 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x3F - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA6 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - movs r2, 0 - movs r1, 0x7 - adds r0, r4, 0 - adds r0, 0x3C -_080D0064: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080D0064 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - ands r0, r1 - ldr r2, _080D00AC @ =0x0000fff4 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r4, 0x3A] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA0 - bl __umodsi3 - adds r0, 0xA0 - strh r0, [r4, 0x3C] - ldr r0, _080D00B0 @ =sub_80D00B4 - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D00AC: .4byte 0x0000fff4 -_080D00B0: .4byte sub_80D00B4 - thumb_func_end sub_80D0030 - - thumb_func_start sub_80D00B4 -sub_80D00B4: @ 80D00B4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - ldrh r2, [r4, 0x2E] - adds r0, r1, r2 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r2, r0, 24 - strh r2, [r4, 0x24] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D00D2 - negs r0, r2 - strh r0, [r4, 0x24] -_080D00D2: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _080D0112 - movs r0, 0 - strh r0, [r4, 0x30] - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D0112 - adds r0, r4, 0 - bl move_anim_8072740 -_080D0112: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D00B4 - - thumb_func_start sub_80D0118 -sub_80D0118: @ 80D0118 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080D0168 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D0136 - ldrh r0, [r4, 0x22] - adds r0, 0x10 - strh r0, [r4, 0x22] -_080D0136: - ldr r1, _080D016C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080D0170 @ =sub_8078114 - str r0, [r4, 0x1C] - ldr r1, _080D0174 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0168: .4byte gUnknown_0202F7C8 -_080D016C: .4byte gUnknown_03004B00 -_080D0170: .4byte sub_8078114 -_080D0174: .4byte move_anim_8072740 - thumb_func_end sub_80D0118 - - thumb_func_start sub_80D0178 -sub_80D0178: @ 80D0178 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r7, 0x20 - ldr r4, _080D01F4 @ =0x0000ffe0 - movs r0, 0x10 - mov r8, r0 - ldr r6, _080D01F8 @ =0x0000fff0 - ldr r0, _080D01FC @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D01A4 - adds r7, r4, 0 - movs r4, 0x20 - mov r8, r6 - movs r6, 0x10 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080D01A4: - lsls r0, r7, 16 - asrs r0, 16 - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080D0200 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - add r0, r8 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080D0204 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D0208 @ =sub_80D020C - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D01F4: .4byte 0x0000ffe0 -_080D01F8: .4byte 0x0000fff0 -_080D01FC: .4byte gUnknown_03004B00 -_080D0200: .4byte gUnknown_0202F7C9 -_080D0204: .4byte sub_8078B34 -_080D0208: .4byte sub_80D020C - thumb_func_end sub_80D0178 - - thumb_func_start sub_80D020C -sub_80D020C: @ 80D020C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D0222 - adds r0, r2, 0 - bl move_anim_8072740 -_080D0222: - pop {r0} - bx r0 - thumb_func_end sub_80D020C - - thumb_func_start sub_80D0228 -sub_80D0228: @ 80D0228 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r0, 0x20 - mov r8, r0 - ldr r4, _080D02BC @ =0x0000ffe0 - movs r2, 0x10 - mov r9, r2 - ldr r6, _080D02C0 @ =0x0000fff0 - ldr r7, _080D02C4 @ =gUnknown_03004B00 - ldrh r1, [r7] - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - beq _080D025C - mov r8, r4 - movs r4, 0x20 - mov r9, r6 - movs r6, 0x10 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim -_080D025C: - mov r0, r8 - lsls r1, r0, 16 - asrs r1, 16 - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - movs r0, 0x6 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080D02C8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - add r0, r9 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r7] - strh r0, [r5, 0x38] - ldrh r0, [r5, 0x2E] - strh r0, [r5, 0x3A] - ldr r0, _080D02CC @ =sub_80D02D0 - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D02BC: .4byte 0x0000ffe0 -_080D02C0: .4byte 0x0000fff0 -_080D02C4: .4byte gUnknown_03004B00 -_080D02C8: .4byte gUnknown_0202F7C9 -_080D02CC: .4byte sub_80D02D0 - thumb_func_end sub_80D0228 - - thumb_func_start sub_80D02D0 -sub_80D02D0: @ 80D02D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D0334 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D0334 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - ldr r0, _080D033C @ =0x0000fffe - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - eors r0, r1 - strh r0, [r4, 0x32] - strh r2, [r4, 0x36] - strh r2, [r4, 0x34] - ldr r0, _080D0340 @ =sub_80D0344 - str r0, [r4, 0x1C] -_080D0334: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D033C: .4byte 0x0000fffe -_080D0340: .4byte sub_80D0344 - thumb_func_end sub_80D02D0 - - thumb_func_start sub_80D0344 -sub_80D0344: @ 80D0344 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D035C - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_080D035C: - ldrh r0, [r4, 0x34] - movs r1, 0x1 - eors r0, r1 - movs r1, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080D039E - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - movs r1, 0x1 - eors r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080D03A4 @ =sub_80D03A8 - str r0, [r4, 0x1C] -_080D039E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D03A4: .4byte sub_80D03A8 - thumb_func_end sub_80D0344 - - thumb_func_start sub_80D03A8 -sub_80D03A8: @ 80D03A8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D03BC - adds r0, r4, 0 - bl move_anim_8072740 -_080D03BC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D03A8 - - thumb_func_start sub_80D03C4 -sub_80D03C4: @ 80D03C4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078E70 - adds r0, r4, 0 - movs r1, 0xD0 - movs r2, 0xD0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080D041C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8079108 - ldr r1, _080D0420 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x50 - strh r1, [r0, 0x8] - ldr r1, _080D0424 @ =sub_80D0428 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D041C: .4byte gSprites -_080D0420: .4byte gTasks -_080D0424: .4byte sub_80D0428 - thumb_func_end sub_80D03C4 - - thumb_func_start sub_80D0428 -sub_80D0428: @ 80D0428 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D0480 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D0478 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _080D0484 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0x1 - bl sub_8079108 - adds r0, r5, 0 - bl move_anim_task_del -_080D0478: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0480: .4byte gTasks -_080D0484: .4byte gSprites - thumb_func_end sub_80D0428 - - thumb_func_start sub_80D0488 -sub_80D0488: @ 80D0488 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D04D4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x8] - movs r1, 0 - bl sub_8078E70 - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0x14] - ldr r0, _080D04D8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - ldr r0, _080D04DC @ =sub_80D04E0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D04D4: .4byte gTasks -_080D04D8: .4byte gUnknown_0202F7C8 -_080D04DC: .4byte sub_80D04E0 - thumb_func_end sub_80D0488 - - thumb_func_start sub_80D04E0 -sub_80D04E0: @ 80D04E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D0504 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080D04FA - b _080D060A -_080D04FA: - lsls r0, 2 - ldr r1, _080D0508 @ =_080D050C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D0504: .4byte gTasks -_080D0508: .4byte _080D050C - .align 2, 0 -_080D050C: - .4byte _080D0524 - .4byte _080D056C - .4byte _080D05A2 - .4byte _080D05A8 - .4byte _080D05B8 - .4byte _080D05EC -_080D0524: - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080D0534 - cmp r0, 0x3 - beq _080D0534 - cmp r0, 0x6 - bne _080D053C -_080D0534: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80D0614 -_080D053C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x28 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080D060A - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _080D05E4 -_080D056C: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D060A - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r1, 0x3 - bne _080D0582 - strh r0, [r4, 0xC] - strh r1, [r4, 0xA] - b _080D060A -_080D0582: - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r4, 0x10] - ldrb r0, [r4, 0x8] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r0, 0x2 - strh r0, [r4, 0xA] - b _080D060A -_080D05A2: - movs r0, 0 - strh r0, [r4, 0xA] - b _080D060A -_080D05A8: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _080D060A - b _080D05E0 -_080D05B8: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - subs r0, 0x50 - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - movs r1, 0x10 - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x8] - bl sub_8079A64 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x20 - bne _080D060A -_080D05E0: - movs r0, 0 - strh r0, [r4, 0xC] -_080D05E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080D060A -_080D05EC: - ldrb r0, [r4, 0x8] - bl sub_8078F40 - ldr r2, _080D0610 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - adds r0, r5, 0 - bl move_anim_task_del -_080D060A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D0610: .4byte gSprites - thumb_func_end sub_80D04E0 - - thumb_func_start sub_80D0614 -sub_80D0614: @ 80D0614 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, 16 - asrs r4, r0, 16 - cmp r4, 0 - blt _080D06EE - bl AllocOamMatrix - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xFF - bne _080D0658 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080D0654 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - b _080D06EE - .align 2, 0 -_080D0654: .4byte gSprites -_080D0658: - ldr r5, _080D06FC @ =gSprites - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r4, r3, r5 - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrb r0, [r7, 0x16] - ldrb r1, [r7, 0xE] - subs r0, r1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r0, [r7, 0xE] - adds r0, 0x1 - strh r0, [r7, 0xE] - ldrh r0, [r7, 0x14] - adds r0, 0x1 - strh r0, [r7, 0x14] - movs r0, 0x10 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - movs r0, 0x6 - strh r0, [r4, 0x32] - adds r5, 0x1C - adds r3, r5 - ldr r0, _080D0700 @ =sub_80D0704 - str r0, [r3] - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x10 - ldrsh r2, [r7, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r0, [r4, 0x1] - movs r3, 0x4 - negs r3, r3 - ands r3, r0 - movs r0, 0x1 - orrs r3, r0 - strb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec -_080D06EE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D06FC: .4byte gSprites -_080D0700: .4byte sub_80D0704 - thumb_func_end sub_80D0614 - - thumb_func_start sub_80D0704 -sub_80D0704: @ 80D0704 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080D0742 - ldr r3, _080D0748 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080D0742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0748: .4byte gTasks - thumb_func_end sub_80D0704 - - thumb_func_start sub_80D074C -sub_80D074C: @ 80D074C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D0770 @ =gTasks - adds r4, r0, r1 - ldr r5, _080D0774 @ =gUnknown_03004B00 - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D0778 - adds r0, r2, 0 - bl move_anim_task_del - b _080D079E - .align 2, 0 -_080D0770: .4byte gTasks -_080D0774: .4byte gUnknown_03004B00 -_080D0778: - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - strh r1, [r4, 0x8] - strh r2, [r4, 0xA] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xC] - strh r2, [r4, 0xE] - strh r2, [r4, 0x10] - ldr r2, _080D07A4 @ =gUnknown_083D76F4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D07A8 @ =sub_80D07AC - str r0, [r4] -_080D079E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D07A4: .4byte gUnknown_083D76F4 -_080D07A8: .4byte sub_80D07AC - thumb_func_end sub_80D074C - - thumb_func_start sub_80D07AC -sub_80D07AC: @ 80D07AC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D07D0 @ =gTasks - adds r4, r0, r1 - movs r0, 0xA - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080D0814 - cmp r5, 0x1 - bgt _080D07D4 - cmp r5, 0 - beq _080D07DE - b _080D08BC - .align 2, 0 -_080D07D0: .4byte gTasks -_080D07D4: - cmp r5, 0x2 - beq _080D0848 - cmp r5, 0x3 - beq _080D0878 - b _080D08BC -_080D07DE: - adds r0, r4, 0 - bl sub_807992C - ldrh r2, [r4, 0x10] - adds r2, 0x3 - strh r2, [r4, 0x10] - ldr r3, _080D0810 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D08BC - strh r5, [r4, 0xE] - b _080D0870 - .align 2, 0 -_080D0810: .4byte gSprites -_080D0814: - adds r0, r4, 0 - bl sub_807992C - ldr r2, _080D0844 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D08BC - movs r0, 0 - strh r0, [r4, 0xE] - b _080D0870 - .align 2, 0 -_080D0844: .4byte gSprites -_080D0848: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D0870 - ldr r2, _080D086C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x10] - subs r0, 0x2 - strh r0, [r4, 0x10] - b _080D08BC - .align 2, 0 -_080D086C: .4byte gSprites -_080D0870: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080D08BC -_080D0878: - adds r0, r4, 0 - bl sub_807992C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D08BC - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080D08B0 - ldr r2, _080D08AC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - adds r0, r6, 0 - bl move_anim_task_del - b _080D08BC - .align 2, 0 -_080D08AC: .4byte gSprites -_080D08B0: - ldrb r1, [r4, 0x8] - ldr r2, _080D08C4 @ =gUnknown_083D76F4 - adds r0, r4, 0 - bl sub_80798F4 - strh r5, [r4, 0xA] -_080D08BC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D08C4: .4byte gUnknown_083D76F4 - thumb_func_end sub_80D07AC - - thumb_func_start sub_80D08C8 -sub_80D08C8: @ 80D08C8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D08F8 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D08FC @ =gUnknown_083D7714 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D0900 @ =sub_80D0904 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D08F8: .4byte gTasks -_080D08FC: .4byte gUnknown_083D7714 -_080D0900: .4byte sub_80D0904 - thumb_func_end sub_80D08C8 - - thumb_func_start sub_80D0904 -sub_80D0904: @ 80D0904 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D092C @ =gTasks - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D0924 - adds r0, r4, 0 - bl move_anim_task_del -_080D0924: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D092C: .4byte gTasks - thumb_func_end sub_80D0904 - - thumb_func_start sub_80D0930 -sub_80D0930: @ 80D0930 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D0960 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D0964 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080D097E - .align 2, 0 -_080D0960: .4byte gUnknown_0202F7C8 -_080D0964: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x20 - strh r0, [r4, 0x20] - ldr r0, _080D09B0 @ =0x0000ffc0 -_080D097E: - strh r0, [r4, 0x30] - ldr r0, _080D09B4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x22] - movs r0, 0x34 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x32] - strh r1, [r4, 0x34] - strh r1, [r4, 0x36] - ldr r1, _080D09B8 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D09BC @ =sub_8078394 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D09B0: .4byte 0x0000ffc0 -_080D09B4: .4byte gUnknown_0202F7C8 -_080D09B8: .4byte move_anim_8072740 -_080D09BC: .4byte sub_8078394 - thumb_func_end sub_80D0930 - - thumb_func_start sub_80D09C0 -sub_80D09C0: @ 80D09C0 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D09D4 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D09DC - ldr r0, _080D09D8 @ =gUnknown_0202F7C8 - b _080D09DE - .align 2, 0 -_080D09D4: .4byte gUnknown_03004B00 -_080D09D8: .4byte gUnknown_0202F7C8 -_080D09DC: - ldr r0, _080D0A3C @ =gUnknown_0202F7C9 -_080D09DE: - ldrb r5, [r0] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D09F8 - ldr r1, _080D0A40 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D09F8: - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D0A40 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x4] - adds r0, r4 - strh r0, [r6, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080D0A2A - movs r0, 0x8 - strh r0, [r6, 0x22] -_080D0A2A: - ldr r1, _080D0A44 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl oamt_set_x3A_32 - ldr r0, _080D0A48 @ =sub_80785E4 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0A3C: .4byte gUnknown_0202F7C9 -_080D0A40: .4byte gUnknown_03004B00 -_080D0A44: .4byte move_anim_8074EE0 -_080D0A48: .4byte sub_80785E4 - thumb_func_end sub_80D09C0 - - thumb_func_start sub_80D0A4C -sub_80D0A4C: @ 80D0A4C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D0A80 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - strh r1, [r4, 0x8] - strh r0, [r4, 0xA] - ldr r2, _080D0A84 @ =gUnknown_083D77B0 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D0A88 @ =sub_80D0A8C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0A80: .4byte gTasks -_080D0A84: .4byte gUnknown_083D77B0 -_080D0A88: .4byte sub_80D0A8C - thumb_func_end sub_80D0A4C - - thumb_func_start sub_80D0A8C -sub_80D0A8C: @ 80D0A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0AB4 @ =gTasks - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D0AAC - adds r0, r4, 0 - bl move_anim_task_del -_080D0AAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0AB4: .4byte gTasks - thumb_func_end sub_80D0A8C - - thumb_func_start sub_80D0AB8 -sub_80D0AB8: @ 80D0AB8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D0B2C @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - movs r0, 0x4 - strh r0, [r4, 0xC] - movs r0, 0x7 - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x10] - ldr r3, _080D0B30 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x12] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x14] - strh r2, [r4, 0x16] - strh r2, [r4, 0x18] - movs r0, 0x2 - strh r0, [r4, 0x1A] - ldr r0, _080D0B34 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D0B22 - movs r1, 0xC - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4, 0xC] -_080D0B22: - ldr r0, _080D0B38 @ =sub_80D0B3C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0B2C: .4byte gTasks -_080D0B30: .4byte gSprites -_080D0B34: .4byte gUnknown_0202F7C8 -_080D0B38: .4byte sub_80D0B3C - thumb_func_end sub_80D0AB8 - - thumb_func_start sub_80D0B3C -sub_80D0B3C: @ 80D0B3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0B84 @ =gTasks - adds r3, r0, r1 - ldrh r0, [r3, 0x16] - adds r0, 0x1 - strh r0, [r3, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D0BA2 - movs r0, 0 - strh r0, [r3, 0x16] - ldrh r0, [r3, 0x18] - adds r0, 0x1 - strh r0, [r3, 0x18] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D0B8C - ldr r2, _080D0B88 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x1A] - ldrh r2, [r0, 0x22] - adds r1, r2 - b _080D0BA0 - .align 2, 0 -_080D0B84: .4byte gTasks -_080D0B88: .4byte gSprites -_080D0B8C: - ldr r2, _080D0BB4 @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 -_080D0BA0: - strh r1, [r0, 0x22] -_080D0BA2: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080D0BF0 - cmp r0, 0x1 - bgt _080D0BB8 - cmp r0, 0 - beq _080D0BBE - b _080D0C80 - .align 2, 0 -_080D0BB4: .4byte gSprites -_080D0BB8: - cmp r0, 0x2 - beq _080D0C20 - b _080D0C80 -_080D0BBE: - ldr r2, _080D0BEC @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r2, [r0, 0x20] - adds r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080D0C80 - movs r0, 0xE - strh r0, [r3, 0xE] - movs r0, 0x1 - strh r0, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0BEC: .4byte gSprites -_080D0BF0: - ldr r2, _080D0C1C @ =gSprites - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x20] - ldrh r2, [r3, 0xC] - subs r1, r2 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - cmp r0, 0 - bne _080D0C80 - movs r0, 0x7 - strh r0, [r3, 0xE] - movs r0, 0x2 - strh r0, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0C1C: .4byte gSprites -_080D0C20: - ldr r2, _080D0C58 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0xC] - ldrh r5, [r0, 0x20] - adds r1, r5 - strh r1, [r0, 0x20] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080D0C80 - ldrh r0, [r3, 0x10] - subs r0, 0x1 - strh r0, [r3, 0x10] - lsls r0, 16 - cmp r0, 0 - beq _080D0C5C - movs r0, 0x7 - strh r0, [r3, 0xE] - strh r1, [r3, 0xA] - b _080D0C80 - .align 2, 0 -_080D0C58: .4byte gSprites -_080D0C5C: - ldrh r1, [r3, 0x18] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D0C7A - movs r0, 0x8 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - ldrh r2, [r3, 0x1A] - subs r1, r2 - strh r1, [r0, 0x22] -_080D0C7A: - adds r0, r4, 0 - bl move_anim_task_del -_080D0C80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D0B3C - - thumb_func_start sub_80D0C88 -sub_80D0C88: @ 80D0C88 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D0CD8 @ =gTasks - adds r5, r1, r0 - ldr r4, _080D0CDC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - movs r1, 0 - strh r0, [r5, 0x8] - movs r0, 0x4 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - strh r1, [r5, 0x10] - strh r1, [r5, 0x12] - ldrb r0, [r4] - bl sub_807A100 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D0CE8 - ldr r0, _080D0CE0 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080D0CE4 @ =REG_BG1HOFS - b _080D0CF0 - .align 2, 0 -_080D0CD8: .4byte gTasks -_080D0CDC: .4byte gUnknown_0202F7C9 -_080D0CE0: .4byte gUnknown_030042C0 -_080D0CE4: .4byte REG_BG1HOFS -_080D0CE8: - ldr r0, _080D0D54 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r5, 0x14] - ldr r0, _080D0D58 @ =REG_BG2HOFS -_080D0CF0: - str r0, [sp] - ldrh r0, [r5, 0x8] - adds r1, r0, 0 - subs r1, 0x40 - lsls r2, r1, 16 - lsls r0, 16 - cmp r2, r0 - bgt _080D0D2E - ldr r4, _080D0D5C @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080D0D08: - asrs r3, r2, 16 - cmp r3, 0 - blt _080D0D20 - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x14] - adds r0, 0xF0 - strh r0, [r1] -_080D0D20: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x8 - ldrsh r0, [r5, r3] - cmp r1, r0 - ble _080D0D08 -_080D0D2E: - ldr r0, _080D0D60 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080D0D64 @ =sub_80D0D68 - str r0, [r5] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0D54: .4byte gUnknown_03004288 -_080D0D58: .4byte REG_BG2HOFS -_080D0D5C: .4byte gUnknown_03004DE0 -_080D0D60: .4byte 0xa2600001 -_080D0D64: .4byte sub_80D0D68 - thumb_func_end sub_80D0C88 - - thumb_func_start sub_80D0D68 -sub_80D0D68: @ 80D0D68 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D0D88 @ =gTasks - adds r3, r0, r1 - movs r1, 0x10 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080D0D8C - cmp r0, 0x1 - beq _080D0DA2 - b _080D0E22 - .align 2, 0 -_080D0D88: .4byte gTasks -_080D0D8C: - ldrh r0, [r3, 0x12] - adds r0, 0x1 - strh r0, [r3, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D0E22 - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] - b _080D0E22 -_080D0DA2: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D0E22 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xE] - movs r0, 0x3 - ands r0, r1 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - subs r0, r1 - strh r0, [r3, 0x12] - movs r2, 0xC - ldrsh r1, [r3, r2] - cmp r1, 0x1 - beq _080D0DD8 - cmp r1, 0x1 - ble _080D0DE0 - cmp r1, 0x2 - beq _080D0DDC - cmp r1, 0x3 - beq _080D0DDC - b _080D0DE0 -_080D0DD8: - subs r0, 0x2 - b _080D0DDE -_080D0DDC: - adds r0, 0x1 -_080D0DDE: - strh r0, [r3, 0x12] -_080D0DE0: - movs r1, 0x12 - ldrsh r0, [r3, r1] - cmp r0, 0 - blt _080D0E04 - ldr r2, _080D0E28 @ =gUnknown_03004DE0 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 1 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r1 - adds r0, r2 - ldrh r1, [r3, 0x14] - strh r1, [r0] -_080D0E04: - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x26 - ldrsh r1, [r3, r2] - cmp r0, r1 - blt _080D0E22 - ldr r1, _080D0E2C @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] - adds r0, r4, 0 - bl move_anim_task_del -_080D0E22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D0E28: .4byte gUnknown_03004DE0 -_080D0E2C: .4byte gUnknown_03004DC0 - thumb_func_end sub_80D0D68 - - thumb_func_start sub_80D0E30 -sub_80D0E30: @ 80D0E30 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080D0E84 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - movs r5, 0 - strh r0, [r4, 0x20] - ldrb r0, [r6] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - strh r0, [r4, 0x22] - strh r5, [r4, 0x2E] - strh r5, [r4, 0x30] - strh r5, [r4, 0x32] - movs r0, 0x10 - strh r0, [r4, 0x34] - strh r5, [r4, 0x36] - ldrb r0, [r6] - movs r1, 0 - bl sub_807A100 - adds r0, 0x2 - strh r0, [r4, 0x38] - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - ldr r0, _080D0E88 @ =sub_80D0E8C - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D0E84: .4byte gUnknown_0202F7C9 -_080D0E88: .4byte sub_80D0E8C - thumb_func_end sub_80D0E30 - - thumb_func_start sub_80D0E8C -sub_80D0E8C: @ 80D0E8C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080D0EF0 - cmp r1, 0x1 - bgt _080D0EA2 - cmp r1, 0 - beq _080D0EA8 - b _080D0FD0 -_080D0EA2: - cmp r1, 0x2 - beq _080D0F82 - b _080D0FD0 -_080D0EA8: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D0ED2 - strh r1, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D0ED2: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D0FD0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - b _080D0F7A -_080D0EF0: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D0F36 - ldrh r2, [r4, 0x32] - movs r3, 0x32 - ldrsh r1, [r4, r3] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D0F36 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - adds r0, r2, 0x1 - strh r0, [r4, 0x32] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D0F36 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCD - bl PlaySE12WithPanning -_080D0F36: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - adds r1, r0, r2 - strh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r2, r0, 16 - cmp r2, 0x1F - ble _080D0F4A - movs r0, 0x40 - b _080D0F58 -_080D0F4A: - movs r0, 0x20 - negs r0, r0 - cmp r2, r0 - bgt _080D0F64 - movs r2, 0x40 - negs r2, r2 - adds r0, r2, 0 -_080D0F58: - subs r0, r1 - strh r0, [r4, 0x36] - movs r3, 0x34 - ldrsh r0, [r4, r3] - negs r0, r0 - strh r0, [r4, 0x34] -_080D0F64: - ldrh r0, [r4, 0x36] - movs r2, 0 - strh r0, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r3, 0x32 - ldrsh r0, [r4, r3] - cmp r1, r0 - bne _080D0FD0 - strh r2, [r4, 0x30] - strh r2, [r4, 0x32] -_080D0F7A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D0FD0 -_080D0F82: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D0FAE - movs r0, 0 - strh r0, [r4, 0x32] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D0FAE: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D0FD0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - bl move_anim_8072740 -_080D0FD0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D0E8C - - thumb_func_start sub_80D0FD8 -sub_80D0FD8: @ 80D0FD8 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r5, 0 - mov r0, sp - strh r5, [r0] - mov r1, sp - adds r1, 0x2 - strh r5, [r1] - ldr r0, _080D0FFC @ =gUnknown_03004B00 - movs r3, 0x4 - ldrsh r2, [r0, r3] - adds r7, r1, 0 - adds r1, r0, 0 - cmp r2, 0 - bne _080D1004 - ldr r0, _080D1000 @ =gUnknown_0202F7C8 - b _080D1006 - .align 2, 0 -_080D0FFC: .4byte gUnknown_03004B00 -_080D1000: .4byte gUnknown_0202F7C8 -_080D1004: - ldr r0, _080D1040 @ =gUnknown_0202F7C9 -_080D1006: - ldrb r5, [r0] - ldrb r1, [r1, 0x6] - movs r0, 0x1 - adds r4, r0, 0 - eors r4, r1 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080D107E - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D107E - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, sp - adds r3, r7, 0 - bl sub_807A3FC - cmp r4, 0 - bne _080D1044 - adds r0, r5, 0 - movs r1, 0 - b _080D1048 - .align 2, 0 -_080D1040: .4byte gUnknown_0202F7C9 -_080D1044: - adds r0, r5, 0 - movs r1, 0x2 -_080D1048: - bl sub_8077ABC - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1074 - ldr r2, _080D1070 @ =gUnknown_03004B00 - mov r0, sp - ldrh r1, [r0] - subs r1, r4 - ldrh r0, [r2] - subs r1, r0 - subs r0, r1 - strh r0, [r2] - b _080D107E - .align 2, 0 -_080D1070: .4byte gUnknown_03004B00 -_080D1074: - ldr r1, _080D1090 @ =gUnknown_03004B00 - mov r0, sp - ldrh r0, [r0] - subs r0, r4 - strh r0, [r1] -_080D107E: - ldr r1, _080D1094 @ =sub_80793C4 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D1090: .4byte gUnknown_03004B00 -_080D1094: .4byte sub_80793C4 - thumb_func_end sub_80D0FD8 - - thumb_func_start sub_80D1098 -sub_80D1098: @ 80D1098 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D10B2 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl move_anim_8072740 -_080D10B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1098 - - thumb_func_start sub_80D10B8 -sub_80D10B8: @ 80D10B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - movs r6, 0 - mov r0, sp - strh r6, [r0] - mov r1, sp - adds r1, 0x2 - strh r6, [r1] - ldr r0, _080D10E4 @ =gUnknown_03004B00 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080D10F0 - ldr r0, _080D10E8 @ =gUnknown_0202F7C8 - ldrb r7, [r0] - ldr r0, _080D10EC @ =gUnknown_0202F7C9 - b _080D10F6 - .align 2, 0 -_080D10E4: .4byte gUnknown_03004B00 -_080D10E8: .4byte gUnknown_0202F7C8 -_080D10EC: .4byte gUnknown_0202F7C9 -_080D10F0: - ldr r0, _080D1110 @ =gUnknown_0202F7C9 - ldrb r7, [r0] - ldr r0, _080D1114 @ =gUnknown_0202F7C8 -_080D10F6: - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080D1118 @ =gUnknown_03004B00 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080D111C - movs r0, 0 - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x4] - b _080D1124 - .align 2, 0 -_080D1110: .4byte gUnknown_0202F7C9 -_080D1114: .4byte gUnknown_0202F7C8 -_080D1118: .4byte gUnknown_03004B00 -_080D111C: - movs r2, 0x2 - mov r10, r2 - movs r3, 0x3 - str r3, [sp, 0x4] -_080D1124: - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1180 - adds r0, r7, 0 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - ldr r1, _080D1164 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0x2 - mov r4, r8 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D1170 - ldr r2, _080D1168 @ =gSprites - ldr r0, _080D116C @ =gUnknown_02024BE0 - adds r0, r4, r0 - b _080D120A - .align 2, 0 -_080D1164: .4byte gUnknown_03004B00 -_080D1168: .4byte gSprites -_080D116C: .4byte gUnknown_02024BE0 -_080D1170: - ldr r2, _080D1178 @ =gSprites - ldr r0, _080D117C @ =gUnknown_02024BE0 - add r0, r8 - b _080D120A - .align 2, 0 -_080D1178: .4byte gSprites -_080D117C: .4byte gUnknown_02024BE0 -_080D1180: - adds r0, r7, 0 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D11EC @ =gUnknown_03004B00 - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r0, _080D11F0 @ =gMain - ldr r1, _080D11F4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D1204 - adds r4, r7, 0 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D1204 - ldr r3, _080D11F8 @ =gSprites - ldr r2, _080D11FC @ =gUnknown_02024BE0 - adds r0, r7, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r3 - adds r2, r4, r2 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r3, 0x20 - ldrsh r1, [r6, r3] - movs r3, 0x20 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D1200 - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 - b _080D121A - .align 2, 0 -_080D11EC: .4byte gUnknown_03004B00 -_080D11F0: .4byte gMain -_080D11F4: .4byte 0x0000043d -_080D11F8: .4byte gSprites -_080D11FC: .4byte gUnknown_02024BE0 -_080D1200: - adds r0, r6, 0 - b _080D1214 -_080D1204: - ldr r2, _080D1268 @ =gSprites - ldr r0, _080D126C @ =gUnknown_02024BE0 - adds r0, r7, r0 -_080D120A: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 -_080D1214: - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 -_080D121A: - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r7, 0 - ldr r1, [sp, 0x4] - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D1270 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080D1274 @ =gMain - ldr r2, _080D1278 @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D127C - mov r0, r8 - movs r1, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D127C - ldrb r1, [r4, 0xC] - mov r0, r8 - mov r2, sp - mov r3, sp - adds r3, 0x2 - bl sub_807A3FC - b _080D129C - .align 2, 0 -_080D1268: .4byte gSprites -_080D126C: .4byte gUnknown_02024BE0 -_080D1270: .4byte gUnknown_03004B00 -_080D1274: .4byte gMain -_080D1278: .4byte 0x0000043d -_080D127C: - mov r4, sp - mov r0, r8 - mov r1, r10 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - mov r0, r8 - ldr r1, [sp, 0x4] - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r3, sp - strh r0, [r3, 0x2] -_080D129C: - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D12C0 - mov r3, sp - mov r2, sp - ldr r1, _080D12BC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - ldrh r2, [r2] - adds r0, r2 - strh r0, [r3] - adds r2, r1, 0 - b _080D12CE - .align 2, 0 -_080D12BC: .4byte gUnknown_03004B00 -_080D12C0: - mov r3, sp - mov r0, sp - ldr r2, _080D1310 @ =gUnknown_03004B00 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r3] -_080D12CE: - ldrh r1, [r2, 0x8] - mov r0, sp - ldrh r0, [r0, 0x2] - adds r1, r0 - mov r3, sp - strh r1, [r3, 0x2] - mov r0, r9 - strh r0, [r5, 0x30] - strh r0, [r5, 0x20] - strh r6, [r5, 0x34] - strh r6, [r5, 0x22] - mov r0, sp - ldrh r0, [r0] - strh r0, [r5, 0x32] - strh r1, [r5, 0x36] - ldrh r0, [r2] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D1314 @ =sub_80D1098 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D1310: .4byte gUnknown_03004B00 -_080D1314: .4byte sub_80D1098 - thumb_func_end sub_80D10B8 - - thumb_func_start sub_80D1318 -sub_80D1318: @ 80D1318 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D1358 @ =0x000027db - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080D133E - lsls r0, 20 - ldr r1, _080D135C @ =0x01010000 - adds r0, r1 - lsrs r0, 16 - ldr r1, _080D1360 @ =gUnknown_03004B00 - ldrb r2, [r1, 0xA] - ldrh r3, [r1, 0x8] - movs r1, 0xF - bl BlendPalette -_080D133E: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080D1364 @ =sub_80793C4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1358: .4byte 0x000027db -_080D135C: .4byte 0x01010000 -_080D1360: .4byte gUnknown_03004B00 -_080D1364: .4byte sub_80793C4 - thumb_func_end sub_80D1318 - - thumb_func_start sub_80D1368 -sub_80D1368: @ 80D1368 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r0, _080D139C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080D1384 - ldr r1, _080D13A0 @ =0x0000ff60 -_080D1384: - movs r0, 0xE0 - lsls r0, 2 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - ldr r0, _080D13A4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080D13A8 @ =sub_80D13AC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D139C: .4byte gUnknown_0202F7C8 -_080D13A0: .4byte 0x0000ff60 -_080D13A4: .4byte gUnknown_03004B00 -_080D13A8: .4byte sub_80D13AC - thumb_func_end sub_80D1368 - - thumb_func_start sub_80D13AC -sub_80D13AC: @ 80D13AC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - subs r1, r0 - movs r5, 0 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - subs r2, 0x20 - strh r2, [r4, 0x2E] - ldr r0, _080D1418 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0xA0 - cmp r0, 0 - beq _080D13DC - ldr r1, _080D141C @ =0x0000ff60 -_080D13DC: - lsls r0, r1, 16 - asrs r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x26] - movs r2, 0x26 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D1410 - ldrh r2, [r4, 0x22] - adds r0, r1, r2 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - strh r5, [r4, 0x2E] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080D1420 @ =sub_80D1424 - str r0, [r4, 0x1C] -_080D1410: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1418: .4byte gUnknown_0202F7C8 -_080D141C: .4byte 0x0000ff60 -_080D1420: .4byte sub_80D1424 - thumb_func_end sub_80D13AC - - thumb_func_start sub_80D1424 -sub_80D1424: @ 80D1424 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080D1442 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080D1448 @ =sub_80D144C - str r0, [r4, 0x1C] -_080D1442: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1448: .4byte sub_80D144C - thumb_func_end sub_80D1424 - - thumb_func_start sub_80D144C -sub_80D144C: @ 80D144C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D14B2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r0, 0 - strh r0, [r4, 0x2E] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1498 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x10 - ldr r3, _080D148C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D1490 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080D1494 @ =sub_80D14C4 - b _080D14B0 - .align 2, 0 -_080D148C: .4byte 0x000003ff -_080D1490: .4byte 0xfffffc00 -_080D1494: .4byte sub_80D14C4 -_080D1498: - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x20 - ldr r3, _080D14B8 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D14BC @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, _080D14C0 @ =sub_80D154C -_080D14B0: - str r0, [r4, 0x1C] -_080D14B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D14B8: .4byte 0x000003ff -_080D14BC: .4byte 0xfffffc00 -_080D14C0: .4byte sub_80D154C - thumb_func_end sub_80D144C - - thumb_func_start sub_80D14C4 -sub_80D14C4: @ 80D14C4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x26] - subs r0, 0x2 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bne _080D14F8 - movs r0, 0x10 - strh r0, [r2, 0x2E] - movs r0, 0 - strh r0, [r2, 0x30] - ldr r1, _080D14FC @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r2, 0x2E] - strh r0, [r1] - ldr r0, _080D1500 @ =sub_80D1504 - str r0, [r2, 0x1C] -_080D14F8: - pop {r0} - bx r0 - .align 2, 0 -_080D14FC: .4byte REG_BLDCNT -_080D1500: .4byte sub_80D1504 - thumb_func_end sub_80D14C4 - - thumb_func_start sub_80D1504 -sub_80D1504: @ 80D1504 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D153C - ldrh r1, [r4, 0x2E] - subs r1, 0x1 - strh r1, [r4, 0x2E] - ldr r2, _080D1544 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D153C - ldr r0, _080D1548 @ =sub_80D154C - str r0, [r4, 0x1C] -_080D153C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1544: .4byte REG_BLDALPHA -_080D1548: .4byte sub_80D154C - thumb_func_end sub_80D1504 - - thumb_func_start sub_80D154C -sub_80D154C: @ 80D154C - push {lr} - adds r3, r0, 0 - ldr r0, _080D1574 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080D1578 @ =0x0000ffff - cmp r1, r0 - bne _080D1584 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x3C - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080D1580 - ldr r0, _080D157C @ =sub_80D158C - b _080D1582 - .align 2, 0 -_080D1574: .4byte gUnknown_03004B00 -_080D1578: .4byte 0x0000ffff -_080D157C: .4byte sub_80D158C -_080D1580: - ldr r0, _080D1588 @ =move_anim_8072740 -_080D1582: - str r0, [r3, 0x1C] -_080D1584: - pop {r0} - bx r0 - .align 2, 0 -_080D1588: .4byte move_anim_8072740 - thumb_func_end sub_80D154C - - thumb_func_start sub_80D158C -sub_80D158C: @ 80D158C - push {lr} - ldr r1, _080D15A0 @ =REG_BLDCNT - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080D15A0: .4byte REG_BLDCNT - thumb_func_end sub_80D158C - - thumb_func_start sub_80D15A4 -sub_80D15A4: @ 80D15A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D15D4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080D15D8 @ =gUnknown_083D79BC - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D15DC @ =sub_80D15E0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D15D4: .4byte gTasks -_080D15D8: .4byte gUnknown_083D79BC -_080D15DC: .4byte sub_80D15E0 - thumb_func_end sub_80D15A4 - - thumb_func_start sub_80D15E0 -sub_80D15E0: @ 80D15E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D1630 @ =gTasks - adds r4, r0, r1 - adds r0, r4, 0 - bl sub_807992C - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080D162A - ldr r2, _080D1634 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080D162A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1630: .4byte gTasks -_080D1634: .4byte gSprites - thumb_func_end sub_80D15E0 - - thumb_func_start sub_80D1638 -sub_80D1638: @ 80D1638 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D166C @ =gTasks - adds r4, r1, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x3 - strh r0, [r4, 0x20] - ldr r0, _080D1670 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D1678 - ldr r0, _080D1674 @ =0x0000ffff - strh r0, [r4, 0x22] - movs r0, 0x8 - b _080D167E - .align 2, 0 -_080D166C: .4byte gTasks -_080D1670: .4byte gUnknown_0202F7C9 -_080D1674: .4byte 0x0000ffff -_080D1678: - movs r0, 0x1 - strh r0, [r4, 0x22] - ldr r0, _080D1698 @ =0x0000fff8 -_080D167E: - strh r0, [r4, 0x24] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D169C @ =sub_80D16A0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1698: .4byte 0x0000fff8 -_080D169C: .4byte sub_80D16A0 - thumb_func_end sub_80D1638 - - thumb_func_start sub_80D16A0 -sub_80D16A0: @ 80D16A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D16C4 @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r4, [r3, r0] - cmp r4, 0x1 - beq _080D16F4 - cmp r4, 0x1 - bgt _080D16C8 - cmp r4, 0 - beq _080D16D2 - b _080D17BA - .align 2, 0 -_080D16C4: .4byte gTasks -_080D16C8: - cmp r4, 0x2 - beq _080D1770 - cmp r4, 0x3 - beq _080D178A - b _080D17BA -_080D16D2: - ldr r2, _080D16F0 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x24] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - strh r4, [r3, 0xA] - strh r4, [r3, 0xC] - strh r4, [r3, 0xE] - b _080D1782 - .align 2, 0 -_080D16F0: .4byte gSprites -_080D16F4: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D17BA - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - ands r0, r4 - lsls r0, 16 - cmp r0, 0 - beq _080D172C - ldr r2, _080D1728 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0x6 - b _080D173E - .align 2, 0 -_080D1728: .4byte gSprites -_080D172C: - ldr r2, _080D176C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - subs r1, 0x6 -_080D173E: - strh r1, [r0, 0x24] - ldrh r0, [r3, 0xE] - adds r0, 0x1 - strh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D17BA - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D1782 - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x24] - subs r0, 0x6 - strh r0, [r1, 0x24] - b _080D1782 - .align 2, 0 -_080D176C: .4byte gSprites -_080D1770: - ldrh r0, [r3, 0x20] - subs r0, 0x1 - strh r0, [r3, 0x20] - lsls r0, 16 - cmp r0, 0 - beq _080D1782 - movs r0, 0 - strh r0, [r3, 0x8] - b _080D17BA -_080D1782: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080D17BA -_080D178A: - ldr r2, _080D17C0 @ =gSprites - movs r4, 0x26 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x22] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D17BA - adds r0, r5, 0 - bl move_anim_task_del -_080D17BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D17C0: .4byte gSprites - thumb_func_end sub_80D16A0 - - thumb_func_start sub_80D17C4 -sub_80D17C4: @ 80D17C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D1800 @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r0, 0xE - strh r0, [r4, 0x22] - movs r0, 0x2 - strh r0, [r4, 0x24] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D1804 @ =sub_80D1808 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1800: .4byte gTasks -_080D1804: .4byte sub_80D1808 - thumb_func_end sub_80D17C4 - - thumb_func_start sub_80D1808 -sub_80D1808: @ 80D1808 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D185C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - bne _080D18CE - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x10 - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080D18CE - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D1864 - ldr r3, _080D1860 @ =gSprites - movs r6, 0x26 - ldrsh r1, [r4, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _080D187A - .align 2, 0 -_080D185C: .4byte gTasks -_080D1860: .4byte gSprites -_080D1864: - ldr r3, _080D18AC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_080D187A: - strb r1, [r0] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x22 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080D18CE - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r6, 0x24 - ldrsh r1, [r4, r6] - cmp r0, r1 - bge _080D18B0 - strh r2, [r4, 0xA] - strh r2, [r4, 0xC] - strh r2, [r4, 0xE] - b _080D18CE - .align 2, 0 -_080D18AC: .4byte gSprites -_080D18B0: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080D18CE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D1808 - - thumb_func_start sub_80D18D4 -sub_80D18D4: @ 80D18D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D1924 @ =gTasks - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - movs r1, 0x4 - strh r1, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - strh r0, [r4, 0x12] - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - strh r0, [r4, 0x18] - strh r0, [r4, 0x22] - ldr r5, _080D1928 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D192C @ =sub_80D1930 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1924: .4byte gTasks -_080D1928: .4byte gUnknown_0202F7C8 -_080D192C: .4byte sub_80D1930 - thumb_func_end sub_80D18D4 - - thumb_func_start sub_80D1930 -sub_80D1930: @ 80D1930 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D1954 @ =gTasks - adds r4, r0, r1 - movs r0, 0x18 - ldrsh r2, [r4, r0] - cmp r2, 0x1 - beq _080D199C - cmp r2, 0x1 - bgt _080D1958 - cmp r2, 0 - beq _080D195E - b _080D19B8 - .align 2, 0 -_080D1954: .4byte gTasks -_080D1958: - cmp r2, 0x2 - beq _080D19B4 - b _080D19B8 -_080D195E: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D19B8 - strh r2, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D19B8 - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1996 - strh r2, [r4, 0x14] - movs r0, 0x1 - strh r0, [r4, 0x18] - b _080D19B8 -_080D1996: - movs r0, 0x2 - strh r0, [r4, 0x18] - b _080D19B8 -_080D199C: - movs r1, 0 - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D19B8 - strh r2, [r4, 0x16] - strh r1, [r4, 0x18] - b _080D19B8 -_080D19B4: - movs r0, 0x1 - strh r0, [r4, 0x12] -_080D19B8: - movs r2, 0x8 - ldrsh r5, [r4, r2] - cmp r5, 0 - beq _080D19C6 - cmp r5, 0x1 - beq _080D1A5C - b _080D1A6A -_080D19C6: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D1A6A - strh r5, [r4, 0xA] - ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8 - movs r3, 0x24 - ldrsh r1, [r4, r3] - movs r3, 0x26 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D1A6A - ldr r0, _080D1A54 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - strh r6, [r1, 0x2E] - movs r0, 0xD - strh r0, [r1, 0x30] - ldr r2, _080D1A58 @ =gUnknown_083D7A00 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x24] - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 1 - adds r2, 0x1 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080D1A6A - strh r5, [r4, 0xC] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080D1A6A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D1A6A - .align 2, 0 -_080D1A50: .4byte gSpriteTemplate_83D79E8 -_080D1A54: .4byte gSprites -_080D1A58: .4byte gUnknown_083D7A00 -_080D1A5C: - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D1A6A - adds r0, r6, 0 - bl move_anim_task_del -_080D1A6A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D1930 - - thumb_func_start sub_80D1A70 -sub_80D1A70: @ 80D1A70 - push {r4,lr} - adds r3, r0, 0 - ldr r4, _080D1AD8 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r2, 0x1 - ldrb r1, [r0, 0x12] - ands r1, r2 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D1AD2 - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 1 - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x8 - adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r3, 0 - bl DestroySprite -_080D1AD2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1AD8: .4byte gTasks - thumb_func_end sub_80D1A70 - - thumb_func_start sub_80D1ADC -sub_80D1ADC: @ 80D1ADC - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080D1B34 @ =0x000027de - bl IndexOfSpritePaletteTag - mov r1, sp - strb r0, [r1] - movs r5, 0x1 - ldr r0, _080D1B38 @ =0x00002710 - adds r4, r0, 0 -_080D1AF4: - subs r0, r4, r5 - lsls r0, 16 - lsrs r0, 16 - bl AllocSpritePalette - mov r2, sp - adds r1, r2, r5 - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x4 - ble _080D1AF4 - ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206 - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _080D1B40 @ =0x02018000 - cmp r0, 0 - beq _080D1B1C - ldr r0, _080D1B44 @ =0xffffc800 - adds r1, r0 -_080D1B1C: - adds r0, r4, 0 - bl sub_800D238 - movs r5, 0 -_080D1B24: - lsls r4, r5, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D1B4C - ldr r0, _080D1B48 @ =0x02014800 - b _080D1B4E - .align 2, 0 -_080D1B34: .4byte 0x000027de -_080D1B38: .4byte 0x00002710 -_080D1B3C: .4byte gBattleAnimSpritePalette_206 -_080D1B40: .4byte 0x02018000 -_080D1B44: .4byte 0xffffc800 -_080D1B48: .4byte 0x02014800 -_080D1B4C: - ldr r0, _080D1B7C @ =0x02018000 -_080D1B4E: - adds r2, r4, r0 - mov r1, sp - adds r0, r1, r5 - ldrb r1, [r0] - lsls r1, 20 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r2, 0 - movs r2, 0x20 - bl LoadPalette - adds r5, 0x1 - cmp r5, 0x4 - ble _080D1B24 - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1B7C: .4byte 0x02018000 - thumb_func_end sub_80D1ADC - - thumb_func_start sub_80D1B80 -sub_80D1B80: @ 80D1B80 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080D1BA4 @ =gUnknown_083D7A5C - movs r4, 0x4 -_080D1B8A: - ldrh r0, [r5] - bl FreeSpritePaletteByTag - adds r5, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D1B8A - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1BA4: .4byte gUnknown_083D7A5C - thumb_func_end sub_80D1B80 - - thumb_func_start sub_80D1BA8 -sub_80D1BA8: @ 80D1BA8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - movs r0, 0x1 - ands r3, r0 - negs r0, r3 - orrs r0, r3 - asrs r0, 31 - movs r3, 0x20 - ands r0, r3 - ldrh r4, [r5, 0x4] - lsls r3, r4, 22 - lsrs r3, 22 - lsrs r1, 22 - adds r0, r1 - adds r3, r0 - ldr r1, _080D1BFC @ =0x000003ff - adds r0, r1, 0 - ands r3, r0 - ldr r0, _080D1C00 @ =0xfffffc00 - ands r0, r4 - orrs r0, r3 - strh r0, [r5, 0x4] - ldr r0, _080D1C04 @ =gUnknown_083D7A5C - lsrs r2, 25 - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1BFC: .4byte 0x000003ff -_080D1C00: .4byte 0xfffffc00 -_080D1C04: .4byte gUnknown_083D7A5C - thumb_func_end sub_80D1BA8 - - thumb_func_start sub_80D1C08 -sub_80D1C08: @ 80D1C08 - push {r4-r6,lr} - adds r5, r0, 0 - movs r1, 0 - bl sub_80787B0 - ldr r6, _080D1C70 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D1C28 - ldr r1, _080D1C74 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D1C28: - ldr r4, _080D1C74 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldr r0, _080D1C78 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D1C7C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldrb r1, [r4, 0xA] - ldrb r2, [r4, 0xC] - adds r0, r5, 0 - bl sub_80D1BA8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1C70: .4byte gUnknown_0202F7C8 -_080D1C74: .4byte gUnknown_03004B00 -_080D1C78: .4byte sub_8078B34 -_080D1C7C: .4byte move_anim_8072740 - thumb_func_end sub_80D1C08 - - thumb_func_start sub_80D1C80 -sub_80D1C80: @ 80D1C80 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1C9A - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 -_080D1C9A: - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Sin - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x32] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x7 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - subs r2, 0x80 - strh r2, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bne _080D1CCA - adds r0, r4, 0 - bl move_anim_8072740 -_080D1CCA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1C80 - - thumb_func_start sub_80D1CD0 -sub_80D1CD0: @ 80D1CD0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - movs r2, 0xF0 - cmp r0, 0 - beq _080D1CE4 - movs r2, 0x98 -_080D1CE4: - movs r3, 0 - ldr r0, _080D1D2C @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _080D1D30 @ =gUnknown_03004240 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080D1D34 @ =REG_WIN0H - strh r2, [r0] - adds r0, 0x4 - strh r1, [r0] - ldr r1, _080D1D38 @ =REG_WININ - ldr r5, _080D1D3C @ =0x00003f1f - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - adds r5, 0x20 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xC8 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r1, _080D1D40 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x8] - strh r2, [r0, 0xA] - ldr r1, _080D1D44 @ =sub_80D1D48 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1D2C: .4byte gUnknown_030042C4 -_080D1D30: .4byte gUnknown_03004240 -_080D1D34: .4byte REG_WIN0H -_080D1D38: .4byte REG_WININ -_080D1D3C: .4byte 0x00003f1f -_080D1D40: .4byte gTasks -_080D1D44: .4byte sub_80D1D48 - thumb_func_end sub_80D1CD0 - - thumb_func_start sub_80D1D48 -sub_80D1D48: @ 80D1D48 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D1D7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x8] - adds r4, r0, 0 - adds r4, 0xD - strh r4, [r3, 0x8] - ldrh r0, [r3, 0xA] - adds r2, r0, 0 - subs r2, 0xD - strh r2, [r3, 0xA] - lsls r1, r4, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080D1D88 - ldr r0, _080D1D80 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D1D84 @ =sub_80D1D9C - str r0, [r3] - b _080D1D90 - .align 2, 0 -_080D1D7C: .4byte gTasks -_080D1D80: .4byte gUnknown_030042C4 -_080D1D84: .4byte sub_80D1D9C -_080D1D88: - ldr r1, _080D1D98 @ =gUnknown_030042C4 - lsls r0, r4, 8 - orrs r2, r0 - strh r2, [r1] -_080D1D90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D1D98: .4byte gUnknown_030042C4 - thumb_func_end sub_80D1D48 - - thumb_func_start sub_80D1D9C -sub_80D1D9C: @ 80D1D9C - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - ldr r5, _080D1DEC @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r3, r0, 3 - adds r1, r3, r5 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r1, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080D1DF8 - movs r0, 0x88 - strh r0, [r1, 0x1E] - adds r0, r5, r3 - adds r0, 0x1E - ldr r1, _080D1DF0 @ =REG_BLDCNT - movs r2, 0x2 - bl RequestSpriteCopy - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - ldr r2, _080D1DF4 @ =0x00007fff - movs r1, 0x10 - bl BlendPalettes - b _080D1E1E - .align 2, 0 -_080D1DEC: .4byte gTasks -_080D1DF0: .4byte REG_BLDCNT -_080D1DF4: .4byte 0x00007fff -_080D1DF8: - cmp r0, 0x4 - ble _080D1E1E - ldr r0, _080D1E28 @ =gUnknown_030042C4 - strh r4, [r0] - ldr r0, _080D1E2C @ =gUnknown_03004240 - strh r4, [r0] - ldr r0, _080D1E30 @ =REG_WININ - ldr r3, _080D1E34 @ =0x00003f3f - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080D1E1E: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1E28: .4byte gUnknown_030042C4 -_080D1E2C: .4byte gUnknown_03004240 -_080D1E30: .4byte REG_WININ -_080D1E34: .4byte 0x00003f3f - thumb_func_end sub_80D1D9C - - thumb_func_start sub_80D1E38 -sub_80D1E38: @ 80D1E38 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D1E88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1E94 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D1E8C @ =gUnknown_083D7A98 - adds r0, r5, 0 - bl sub_80798F4 - ldr r1, _080D1E90 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080D1EBC - .align 2, 0 -_080D1E88: .4byte gTasks -_080D1E8C: .4byte gUnknown_083D7A98 -_080D1E90: .4byte gSprites -_080D1E94: - ldr r1, _080D1EC4 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_807992C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D1EBC - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080D1EBC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1EC4: .4byte gSprites - thumb_func_end sub_80D1E38 - - thumb_func_start sub_80D1EC8 -sub_80D1EC8: @ 80D1EC8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D1F18 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D1F24 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D1F1C @ =gUnknown_083D7A98 - adds r0, r5, 0 - bl sub_80798F4 - ldr r1, _080D1F20 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0, 0x24] - b _080D1F4C - .align 2, 0 -_080D1F18: .4byte gTasks -_080D1F1C: .4byte gUnknown_083D7A98 -_080D1F20: .4byte gSprites -_080D1F24: - ldr r1, _080D1F54 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r5, 0 - bl sub_807992C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D1F4C - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r6, 0 - bl move_anim_task_del -_080D1F4C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D1F54: .4byte gSprites - thumb_func_end sub_80D1EC8 - - thumb_func_start sub_80D1F58 -sub_80D1F58: @ 80D1F58 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x5F - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080D1F9C @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D1FA0 @ =sub_80D1FA4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D1F9C: .4byte gUnknown_0202F7C9 -_080D1FA0: .4byte sub_80D1FA4 - thumb_func_end sub_80D1F58 - - thumb_func_start sub_80D1FA4 -sub_80D1FA4: @ 80D1FA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D1FCE - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xE - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080D1FD4 -_080D1FCE: - adds r0, r4, 0 - bl move_anim_8072740 -_080D1FD4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1FA4 - - thumb_func_start sub_80D1FDC -sub_80D1FDC: @ 80D1FDC - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2000 - ldr r1, _080D1FFC @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080D205C - .align 2, 0 -_080D1FFC: .4byte gUnknown_03004B00 -_080D2000: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080D204E - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D204E: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080D205C - adds r0, r4, 0 - bl move_anim_8072740 -_080D205C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D1FDC - - thumb_func_start sub_80D2064 -sub_80D2064: @ 80D2064 - push {lr} - ldr r2, _080D2088 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r0, 0x20] - movs r1, 0xA0 - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x30] - ldr r1, _080D208C @ =sub_80782D8 - str r1, [r0, 0x1C] - ldr r1, _080D2090 @ =sub_80D2094 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D2088: .4byte gUnknown_03004B00 -_080D208C: .4byte sub_80782D8 -_080D2090: .4byte sub_80D2094 - thumb_func_end sub_80D2064 - - thumb_func_start sub_80D2094 -sub_80D2094: @ 80D2094 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - lsls r0, 16 - lsrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - lsls r0, 16 - asrs r5, r0, 16 - cmp r5, 0x48 - bgt _080D20FA - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - cmp r5, 0x40 - bgt _080D20FA - adds r0, r4, 0 - bl move_anim_8072740 -_080D20FA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D2094 - - thumb_func_start sub_80D2100 -sub_80D2100: @ 80D2100 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D21BC @ =REG_BLDCNT - ldr r2, _080D21C0 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D21C4 @ =REG_BG1CNT - ldrb r0, [r4] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D2144 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D2144: - ldr r0, _080D21C8 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D21CC @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080D21D0 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080D21D4 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080D21D8 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080D21DC @ =gAttractTilemap - bl LZDecompressVram - ldr r0, _080D21E0 @ =gAttractGfx - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D21E4 @ =gAttractPal - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D21A4 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D21A4: - ldr r0, _080D21E8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D21EC @ =sub_80D21F0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D21BC: .4byte REG_BLDCNT -_080D21C0: .4byte 0x00003f42 -_080D21C4: .4byte REG_BG1CNT -_080D21C8: .4byte gUnknown_030042C0 -_080D21CC: .4byte gUnknown_030041B4 -_080D21D0: .4byte REG_BG1HOFS -_080D21D4: .4byte 0x040000d4 -_080D21D8: .4byte 0x85000400 -_080D21DC: .4byte gAttractTilemap -_080D21E0: .4byte gAttractGfx -_080D21E4: .4byte gAttractPal -_080D21E8: .4byte gTasks -_080D21EC: .4byte sub_80D21F0 - thumb_func_end sub_80D2100 - - thumb_func_start sub_80D21F0 -sub_80D21F0: @ 80D21F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2220 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080D2216 - b _080D238C -_080D2216: - lsls r0, 2 - ldr r1, _080D2224 @ =_080D2228 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D2220: .4byte gTasks -_080D2224: .4byte _080D2228 - .align 2, 0 -_080D2228: - .4byte _080D223C - .4byte _080D2284 - .4byte _080D22A6 - .4byte _080D22E8 - .4byte _080D236C -_080D223C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080D2256 - b _080D238C -_080D2256: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D2280 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0x10 - beq _080D2274 - b _080D238C -_080D2274: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D238C - .align 2, 0 -_080D2280: .4byte REG_BLDALPHA -_080D2284: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8D - bne _080D238C - movs r0, 0x10 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D238C -_080D22A6: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D238C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D22E4 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D238C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D238C - .align 2, 0 -_080D22E4: .4byte REG_BLDALPHA -_080D22E8: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r0, r5, 2 - mov r10, r0 - add r6, sp, 0xC - movs r7, 0 - ldr r1, _080D239C @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D23A0 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D230E: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D230E - str r7, [sp, 0xC] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D239C @ =0x040000d4 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D23A4 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D235C - ldr r2, _080D23A8 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D235C: - ldr r0, _080D23AC @ =gTasks - mov r2, r10 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080D236C: - ldr r0, _080D23B0 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D23A8 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl move_anim_task_del -_080D238C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D239C: .4byte 0x040000d4 -_080D23A0: .4byte 0x85000400 -_080D23A4: .4byte 0x85000200 -_080D23A8: .4byte REG_BG1CNT -_080D23AC: .4byte gTasks -_080D23B0: .4byte REG_BLDCNT - thumb_func_end sub_80D21F0 - - thumb_func_start sub_80D23B4 -sub_80D23B4: @ 80D23B4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2438 @ =REG_BLDCNT - ldr r2, _080D243C @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D2440 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D23FE - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D23FE: - ldr r0, _080D2444 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D2448 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080D244C @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r1, _080D2450 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080D2454 @ =0x85000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D245C - ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest - b _080D246E - .align 2, 0 -_080D2438: .4byte REG_BLDCNT -_080D243C: .4byte 0x00003f42 -_080D2440: .4byte REG_BG1CNT -_080D2444: .4byte gUnknown_030042C0 -_080D2448: .4byte gUnknown_030041B4 -_080D244C: .4byte REG_BG1HOFS -_080D2450: .4byte 0x040000d4 -_080D2454: .4byte 0x85000400 -_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest -_080D245C: - ldr r0, _080D2478 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D2480 - ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer -_080D246E: - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080D2488 - .align 2, 0 -_080D2478: .4byte gUnknown_0202F7C9 -_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer -_080D2480: - ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent - ldr r1, [sp, 0x4] - bl LZDecompressVram -_080D2488: - ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D24B6 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D24B6: - ldr r0, _080D24D8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D24DC @ =sub_80D24E0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent -_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace -_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace -_080D24D8: .4byte gTasks -_080D24DC: .4byte sub_80D24E0 - thumb_func_end sub_80D23B4 - - thumb_func_start sub_80D24E0 -sub_80D24E0: @ 80D24E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D2510 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080D2506 - b _080D267C -_080D2506: - lsls r0, 2 - ldr r1, _080D2514 @ =_080D2518 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D2510: .4byte gTasks -_080D2514: .4byte _080D2518 - .align 2, 0 -_080D2518: - .4byte _080D252C - .4byte _080D2574 - .4byte _080D2596 - .4byte _080D25D8 - .4byte _080D265C -_080D252C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - beq _080D2546 - b _080D267C -_080D2546: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D2570 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0xE - beq _080D2564 - b _080D267C -_080D2564: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D267C - .align 2, 0 -_080D2570: .4byte REG_BLDALPHA -_080D2574: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D267C - movs r0, 0xE - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D267C -_080D2596: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080D267C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D25D4 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D267C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D267C - .align 2, 0 -_080D25D4: .4byte REG_BLDALPHA -_080D25D8: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r0, r5, 2 - mov r10, r0 - add r6, sp, 0xC - movs r7, 0 - ldr r1, _080D268C @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D2690 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D25FE: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D25FE - str r7, [sp, 0xC] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D268C @ =0x040000d4 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D2694 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D264C - ldr r2, _080D2698 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D264C: - ldr r0, _080D269C @ =gTasks - mov r2, r10 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] -_080D265C: - ldr r0, _080D26A0 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D2698 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl move_anim_task_del -_080D267C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D268C: .4byte 0x040000d4 -_080D2690: .4byte 0x85000400 -_080D2694: .4byte 0x85000200 -_080D2698: .4byte REG_BG1CNT -_080D269C: .4byte gTasks -_080D26A0: .4byte REG_BLDCNT - thumb_func_end sub_80D24E0 - - thumb_func_start sub_80D26A4 -sub_80D26A4: @ 80D26A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D26F8 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080D26FC @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - ldrb r0, [r5] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x3C] - ldr r1, _080D2700 @ =sub_80D2704 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D26F8: .4byte gUnknown_0202F7C8 -_080D26FC: .4byte gUnknown_03004B00 -_080D2700: .4byte sub_80D2704 - thumb_func_end sub_80D26A4 - - thumb_func_start sub_80D2704 -sub_80D2704: @ 80D2704 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D271A - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - b _080D271E -_080D271A: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 -_080D271E: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r2, 0x30 - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x34] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r3, 0x38 - ldrsh r2, [r4, r3] - cmp r2, 0 - beq _080D2790 - cmp r2, 0x1 - bne _080D27C0 - ldr r1, _080D2788 @ =0xfffffc00 - adds r0, r1, 0 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r4, 0x32] - ldr r3, _080D278C @ =0xffffff00 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D27C0 - movs r0, 0x2 - strh r0, [r4, 0x38] - b _080D27D0 - .align 2, 0 -_080D2788: .4byte 0xfffffc00 -_080D278C: .4byte 0xffffff00 -_080D2790: - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x2E - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080D27C0 - strh r2, [r4, 0x36] - movs r0, 0x1 - strh r0, [r4, 0x38] -_080D27C0: - ldr r0, _080D27D8 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080D27DC @ =0x0000ffff - cmp r1, r0 - bne _080D27D0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D27D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D27D8: .4byte gUnknown_03004B00 -_080D27DC: .4byte 0x0000ffff - thumb_func_end sub_80D2704 - - thumb_func_start sub_80D27E0 -sub_80D27E0: @ 80D27E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D2828 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080D282C @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldr r0, _080D2830 @ =sub_80D2834 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2828: .4byte gUnknown_0202F7C8 -_080D282C: .4byte gUnknown_03004B00 -_080D2830: .4byte sub_80D2834 - thumb_func_end sub_80D27E0 - - thumb_func_start sub_80D2834 -sub_80D2834: @ 80D2834 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r3, 0x24 - ldrsh r1, [r2, r3] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D2872 - movs r0, 0x22 - ldrsh r1, [r2, r0] - movs r3, 0x26 - ldrsh r0, [r2, r3] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D2872 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D2878 -_080D2872: - adds r0, r2, 0 - bl move_anim_8072740 -_080D2878: - pop {r0} - bx r0 - thumb_func_end sub_80D2834 - - thumb_func_start sub_80D287C -sub_80D287C: @ 80D287C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x30] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080D28A8 - adds r0, r2, 0 - bl move_anim_8072740 -_080D28A8: - pop {r0} - bx r0 - thumb_func_end sub_80D287C - - thumb_func_start sub_80D28AC -sub_80D28AC: @ 80D28AC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D28F8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080D28FC @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - strh r0, [r5, 0x2E] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x7 - bl Cos - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x32] - ldr r0, _080D2900 @ =sub_80D287C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D28F8: .4byte gUnknown_0202F7C8 -_080D28FC: .4byte gUnknown_03004B00 -_080D2900: .4byte sub_80D287C - thumb_func_end sub_80D28AC - - thumb_func_start sub_80D2904 -sub_80D2904: @ 80D2904 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D291A - adds r0, r2, 0 - bl move_anim_8072740 -_080D291A: - pop {r0} - bx r0 - thumb_func_end sub_80D2904 - - thumb_func_start sub_80D2920 -sub_80D2920: @ 80D2920 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D2934 @ =sub_80D2904 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2934: .4byte sub_80D2904 - thumb_func_end sub_80D2920 - - thumb_func_start sub_80D2938 -sub_80D2938: @ 80D2938 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2956 - ldr r0, _080D29C8 @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D2956: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r5, r0, 1 - movs r0, 0xFF - ands r5, r0 - adds r0, r5, 0 - movs r1, 0x50 - bl Sin - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4F - bgt _080D299A - adds r0, r5, 0 - movs r1, 0x50 - bl Cos - movs r2, 0x2E - ldrsh r1, [r4, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - lsls r0, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x26] -_080D299A: - movs r0, 0x2E - ldrsh r2, [r4, r0] - cmp r2, 0x5A - ble _080D29B8 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] -_080D29B8: - cmp r2, 0x64 - ble _080D29C2 - adds r0, r4, 0 - bl move_anim_8072740 -_080D29C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D29C8: .4byte gUnknown_03004B00 - thumb_func_end sub_80D2938 - - thumb_func_start sub_80D29CC -sub_80D29CC: @ 80D29CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x14 - ble _080D2A22 - adds r1, r0, 0 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D2A22: - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x1E - ble _080D2A30 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D29CC - - thumb_func_start sub_80D2A38 -sub_80D2A38: @ 80D2A38 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2A5C - ldr r1, _080D2A58 @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x32] - adds r0, r2, 0x1 - strh r0, [r4, 0x2E] - b _080D2AB0 - .align 2, 0 -_080D2A58: .4byte gUnknown_03004B00 -_080D2A5C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - movs r5, 0 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - adds r2, r0, 0 - strh r2, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x46 - ble _080D2AB0 - ldr r0, _080D2AB8 @ =sub_80D29CC - str r0, [r4, 0x1C] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r0, r2, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x24] - strh r5, [r4, 0x26] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xB4 - bl __umodsi3 - strh r0, [r4, 0x34] -_080D2AB0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2AB8: .4byte sub_80D29CC - thumb_func_end sub_80D2A38 - - thumb_func_start sub_80D2ABC -sub_80D2ABC: @ 80D2ABC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2AF6 - ldr r1, _080D2BB8 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _080D2BBC @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - movs r0, 0x1 - strh r0, [r4, 0x32] -_080D2AF6: - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r0, r2 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - lsls r1, r0, 2 - adds r0, r1, 0 - cmp r1, 0 - bge _080D2B0C - adds r0, 0xFF -_080D2B0C: - asrs r0, 8 - lsls r0, 8 - subs r0, r1, r0 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _080D2B1E - movs r0, 0 - strh r0, [r4, 0x30] -_080D2B1E: - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080D2B2C - adds r0, 0x3 -_080D2B2C: - asrs r0, 2 - movs r1, 0x1E - subs r1, r0 - adds r0, r2, 0 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0x30 - ldrsh r2, [r4, r0] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080D2B48 - adds r0, 0x7 -_080D2B48: - asrs r0, 3 - movs r1, 0xA - subs r1, r0 - adds r0, r2, 0 - bl Sin - strh r0, [r4, 0x26] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x80 - ble _080D2B6C - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D2B6C - ldr r0, _080D2BC0 @ =0x0000ffff - strh r0, [r4, 0x32] -_080D2B6C: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2B80 - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _080D2B80 - movs r0, 0x1 - strh r0, [r4, 0x32] -_080D2B80: - ldrh r0, [r4, 0x34] - adds r1, r0, 0x1 - strh r1, [r4, 0x34] - subs r0, 0x9 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x46 - bls _080D2BC4 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080D2BD2 - .align 2, 0 -_080D2BB8: .4byte gUnknown_03004B00 -_080D2BBC: .4byte gUnknown_0202F7C9 -_080D2BC0: .4byte 0x0000ffff -_080D2BC4: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D2BD2: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x5A - ble _080D2BE0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2BE0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2ABC - - thumb_func_start sub_80D2BE8 -sub_80D2BE8: @ 80D2BE8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2C1C - ldr r1, _080D2C18 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D2C30 - .align 2, 0 -_080D2C18: .4byte gUnknown_03004B00 -_080D2C1C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D2C30 - adds r0, r4, 0 - bl move_anim_8072740 -_080D2C30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2BE8 - - thumb_func_start sub_80D2C38 -sub_80D2C38: @ 80D2C38 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _080D2C50 @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D2C54 - adds r0, r5, 0 - bl move_anim_8072740 - b _080D2CB8 - .align 2, 0 -_080D2C50: .4byte gUnknown_03004B00 -_080D2C54: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D2C64 - ldr r4, _080D2C60 @ =gUnknown_0202F7C8 - b _080D2C66 - .align 2, 0 -_080D2C60: .4byte gUnknown_0202F7C8 -_080D2C64: - ldr r4, _080D2C94 @ =gUnknown_0202F7C9 -_080D2C66: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D2C98 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _080D2C9C - ldrh r0, [r5, 0x20] - adds r0, 0x20 - b _080D2CA0 - .align 2, 0 -_080D2C94: .4byte gUnknown_0202F7C9 -_080D2C98: .4byte gUnknown_03004B00 -_080D2C9C: - ldrh r0, [r5, 0x20] - subs r0, 0x20 -_080D2CA0: - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x2E] - ldrh r1, [r2, 0x2] - strh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldr r0, _080D2CC0 @ =sub_80D2CC4 - str r0, [r5, 0x1C] -_080D2CB8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2CC0: .4byte sub_80D2CC4 - thumb_func_end sub_80D2C38 - - thumb_func_start sub_80D2CC4 -sub_80D2CC4: @ 80D2CC4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D2CF4 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - cmp r0, 0 - beq _080D2CEE - ldrh r1, [r2, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080D2CF4 -_080D2CEE: - adds r0, r2, 0 - bl move_anim_8072740 -_080D2CF4: - pop {r0} - bx r0 - thumb_func_end sub_80D2CC4 - - thumb_func_start sub_80D2CF8 -sub_80D2CF8: @ 80D2CF8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080D2D2C @ =gUnknown_03004B00 - ldrb r0, [r0] - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _080D2D30 @ =gTasks - adds r4, r0 - ldr r2, _080D2D34 @ =gUnknown_083D7CA8 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080D2D38 @ =sub_80D2D3C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D2D2C: .4byte gUnknown_03004B00 -_080D2D30: .4byte gTasks -_080D2D34: .4byte gUnknown_083D7CA8 -_080D2D38: .4byte sub_80D2D3C - thumb_func_end sub_80D2CF8 - - thumb_func_start sub_80D2D3C -sub_80D2D3C: @ 80D2D3C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D2D64 @ =gTasks - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080D2D5C - adds r0, r4, 0 - bl move_anim_task_del -_080D2D5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2D64: .4byte gTasks - thumb_func_end sub_80D2D3C - - thumb_func_start sub_80D2D68 -sub_80D2D68: @ 80D2D68 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080D2D7C @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D2D84 - ldr r0, _080D2D80 @ =gUnknown_0202F7C8 - b _080D2D86 - .align 2, 0 -_080D2D7C: .4byte gUnknown_03004B00 -_080D2D80: .4byte gUnknown_0202F7C8 -_080D2D84: - ldr r0, _080D2E1C @ =gUnknown_0202F7C9 -_080D2D86: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D2DA0 - ldr r1, _080D2E20 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D2DA0: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r7, _080D2E20 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r3, [r7, 0x2] - adds r0, r3 - movs r4, 0 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x4] - adds r0, r1 - strh r0, [r5, 0x22] - strh r4, [r5, 0x2E] - ldrh r1, [r5, 0x20] - lsls r1, 3 - strh r1, [r5, 0x30] - lsls r0, 3 - strh r0, [r5, 0x32] - movs r2, 0x2 - ldrsh r0, [r7, r2] - lsls r0, 3 - cmp r0, 0 - bge _080D2DE0 - adds r0, 0x7 -_080D2DE0: - asrs r0, 3 - strh r0, [r5, 0x34] - movs r3, 0x4 - ldrsh r0, [r7, r3] - lsls r0, 3 - cmp r0, 0 - bge _080D2DF0 - adds r0, 0x7 -_080D2DF0: - asrs r0, 3 - strh r0, [r5, 0x36] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x6 - ldrsh r0, [r7, r3] - lsls r0, 4 - adds r1, r0 - ldr r3, _080D2E24 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D2E28 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080D2E2C @ =sub_80D2E30 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D2E1C: .4byte gUnknown_0202F7C9 -_080D2E20: .4byte gUnknown_03004B00 -_080D2E24: .4byte 0x000003ff -_080D2E28: .4byte 0xfffffc00 -_080D2E2C: .4byte sub_80D2E30 - thumb_func_end sub_80D2D68 - - thumb_func_start sub_80D2E30 -sub_80D2E30: @ 80D2E30 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x34] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - ldrh r3, [r2, 0x32] - adds r1, r3 - strh r1, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D2E64 - adds r0, r2, 0 - bl move_anim_8072740 -_080D2E64: - pop {r0} - bx r0 - thumb_func_end sub_80D2E30 - - thumb_func_start sub_80D2E68 -sub_80D2E68: @ 80D2E68 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D2E8A - ldr r0, _080D2EC4 @ =gUnknown_03004B00 - ldrh r1, [r0] - movs r0, 0x78 - subs r0, r1 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080D2E8A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x30 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D2EA8 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - adds r0, 0x10 - movs r1, 0 - bl sub_8079108 -_080D2EA8: - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - adds r0, 0x50 - cmp r1, r0 - bne _080D2EBC - adds r0, r4, 0 - bl move_anim_8072740 -_080D2EBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D2EC4: .4byte gUnknown_03004B00 - thumb_func_end sub_80D2E68 - - thumb_func_start sub_80D2EC8 -sub_80D2EC8: @ 80D2EC8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D2EF6 - movs r5, 0x78 - strh r5, [r6, 0x20] - ldr r4, _080D2F78 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r4, r2] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r0, 0xF - strh r0, [r6, 0x22] - ldrb r1, [r4, 0x2] - adds r0, r6, 0 - bl StartSpriteAnim - strh r5, [r6, 0x38] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x34] -_080D2EF6: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r6, 0x2E] - movs r1, 0x2E - ldrsh r0, [r6, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r6, 0x30] - movs r2, 0x2E - ldrsh r0, [r6, r2] - lsls r4, r0, 1 - adds r4, r0 - ldrh r0, [r6, 0x34] - adds r4, r0 - movs r2, 0xFF - ldrh r0, [r6, 0x3A] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3A] - ands r4, r2 - adds r0, r4, 0 - movs r1, 0x64 - bl Cos - strh r0, [r6, 0x24] - adds r0, r4, 0 - movs r1, 0xA - bl Sin - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r1, 0x4 - bl Cos - ldrh r2, [r6, 0x30] - adds r4, r2 - adds r0, r4 - strh r0, [r6, 0x26] - movs r0, 0x2E - ldrsh r1, [r6, r0] - movs r2, 0x38 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080D2F72 - ldr r0, _080D2F7C @ =sub_80D2F80 - str r0, [r6, 0x1C] - strh r5, [r6, 0x2E] - adds r0, r6, 0 - bl oamt_add_pos2_onto_pos1 - movs r0, 0x5 - strh r0, [r6, 0x32] - strh r5, [r6, 0x36] - strh r5, [r6, 0x34] - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080D2F72: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D2F78: .4byte gUnknown_03004B00 -_080D2F7C: .4byte sub_80D2F80 - thumb_func_end sub_80D2EC8 - - thumb_func_start sub_80D2F80 -sub_80D2F80: @ 80D2F80 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080D2F9A - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080D2FA0 @ =sub_80D2FA4 - str r0, [r1, 0x1C] -_080D2F9A: - pop {r0} - bx r0 - .align 2, 0 -_080D2FA0: .4byte sub_80D2FA4 - thumb_func_end sub_80D2F80 - - thumb_func_start sub_80D2FA4 -sub_80D2FA4: @ 80D2FA4 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x34] - adds r0, r1, r2 - strh r0, [r4, 0x34] - strh r0, [r4, 0x26] - adds r1, 0x1 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x30 - ble _080D2FCE - lsls r0, r1, 16 - cmp r0, 0 - ble _080D2FCE - ldrh r0, [r4, 0x36] - subs r1, r0, 0x5 - strh r1, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x36] -_080D2FCE: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080D3000 - movs r2, 0x32 - ldrsh r1, [r4, r2] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl move_anim_8072740 -_080D3000: - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _080D300E - adds r0, r4, 0 - bl move_anim_8072740 -_080D300E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D2FA4 - - thumb_func_start sub_80D3014 -sub_80D3014: @ 80D3014 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D3058 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D3060 - ldr r4, _080D305C @ =gUnknown_0202F7C8 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D3060 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrh r0, [r5, 0x22] - adds r0, 0x28 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080D3080 - .align 2, 0 -_080D3058: .4byte gUnknown_020239F8 -_080D305C: .4byte gUnknown_0202F7C8 -_080D3060: - ldr r4, _080D30A0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 - strh r0, [r5, 0x22] -_080D3080: - movs r0, 0xD - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - subs r0, 0x48 - strh r0, [r5, 0x36] - ldr r0, _080D30A4 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D30A8 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D30A0: .4byte gUnknown_0202F7C8 -_080D30A4: .4byte sub_8078B34 -_080D30A8: .4byte move_anim_8072740 - thumb_func_end sub_80D3014 - - thumb_func_start sub_80D30AC -sub_80D30AC: @ 80D30AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080D30C8 @ =gUnknown_03004B00 - ldr r1, _080D30CC @ =gUnknown_0202F7B4 - ldr r1, [r1] - ldrb r2, [r1, 0x10] - movs r1, 0x1 - ands r1, r2 - strh r1, [r3, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D30C8: .4byte gUnknown_03004B00 -_080D30CC: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80D30AC - - thumb_func_start update_fury_cutter_counter_copy -update_fury_cutter_counter_copy: @ 80D30D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D30E8 @ =gUnknown_03004B00 - ldr r1, _080D30EC @ =gUnknown_0202F7B4 - ldr r1, [r1] - ldrb r1, [r1, 0x10] - strh r1, [r2, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D30E8: .4byte gUnknown_03004B00 -_080D30EC: .4byte gUnknown_0202F7B4 - thumb_func_end update_fury_cutter_counter_copy - - thumb_func_start sub_80D30F0 -sub_80D30F0: @ 80D30F0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080D3178 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D3118 - ldr r1, _080D317C @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r5, 0xA] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0xC] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0xE] -_080D3118: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r2, 0x8 - ldrsh r0, [r5, r2] - movs r2, 0xC - ldrsh r1, [r5, r2] - bl __modsi3 - cmp r0, 0x1 - bne _080D3160 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x50 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080D3180 @ =gSpriteTemplate_83D9130 - adds r1, r4, 0 - movs r3, 0x4 - bl CreateSprite -_080D3160: - movs r0, 0x8 - ldrsh r1, [r5, r0] - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _080D3172 - adds r0, r6, 0 - bl move_anim_task_del -_080D3172: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D3178: .4byte gTasks -_080D317C: .4byte gUnknown_03004B00 -_080D3180: .4byte gSpriteTemplate_83D9130 - thumb_func_end sub_80D30F0 - - thumb_func_start sub_80D3184 -sub_80D3184: @ 80D3184 - ldr r1, _080D318C @ =sub_80D3190 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D318C: .4byte sub_80D3190 - thumb_func_end sub_80D3184 - - thumb_func_start sub_80D3190 -sub_80D3190: @ 80D3190 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080D31AE - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - adds r0, 0x4 - strh r0, [r2, 0x26] -_080D31AE: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D31C2 - adds r0, r2, 0 - bl DestroySprite -_080D31C2: - pop {r0} - bx r0 - thumb_func_end sub_80D3190 - - thumb_func_start sub_80D31C8 -sub_80D31C8: @ 80D31C8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080D31F0 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D31F8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080D31F4 @ =gUnknown_03004B00 - ldrh r1, [r4] - subs r0, r1 - b _080D320A - .align 2, 0 -_080D31F0: .4byte gUnknown_0202F7C8 -_080D31F4: .4byte gUnknown_03004B00 -_080D31F8: - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D32D0 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 -_080D320A: - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 - strh r0, [r6, 0x22] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D32D4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D3240 - ldr r1, _080D32D0 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D3240: - ldr r5, _080D32D0 @ =gUnknown_03004B00 - ldrh r0, [r5, 0xC] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r4, _080D32D8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D32DC @ =SpriteCallbackDummy - bl object_new_hidden_with_callback - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - strh r4, [r6, 0x38] - ldrb r0, [r5, 0x8] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r6, 0x20] - subs r1, r0 - strh r1, [r6, 0x20] - ldrb r0, [r5, 0x8] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - ldrh r1, [r6, 0x22] - subs r1, r0 - strh r1, [r6, 0x22] - ldr r0, _080D32E0 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x4] - strh r0, [r1, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r1, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r1, 0x32] - ldrb r0, [r5, 0x8] - lsls r0, 8 - strh r0, [r1, 0x34] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x36] - ldr r1, _080D32E4 @ =sub_80D32E8 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D32D0: .4byte gUnknown_03004B00 -_080D32D4: .4byte gUnknown_0202F7C8 -_080D32D8: .4byte gUnknown_0202F7C9 -_080D32DC: .4byte SpriteCallbackDummy -_080D32E0: .4byte gSprites -_080D32E4: .4byte sub_80D32E8 - thumb_func_end sub_80D31C8 - - thumb_func_start sub_80D32E8 -sub_80D32E8: @ 80D32E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r1, [r5, 0x38] - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080D3350 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r7, r0, r2 - ldrh r4, [r7, 0x36] - lsls r4, 24 - lsrs r4, 24 - ldrh r0, [r7, 0x34] - mov r8, r0 - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078B5C - mov r1, r8 - lsrs r6, r1, 8 - movs r0, 0x2E - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Sin - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r0, 0x30 - ldrsh r1, [r7, r0] - adds r0, r6, 0 - bl Cos - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r0, [r7, 0x32] - mov r1, r8 - adds r1, r0 - strh r1, [r7, 0x34] - subs r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0 - beq _080D3354 - strh r4, [r7, 0x36] - b _080D335E - .align 2, 0 -_080D3350: .4byte gSprites -_080D3354: - ldr r0, _080D336C @ =sub_80D3370 - str r0, [r5, 0x1C] - adds r0, r7, 0 - bl DestroySprite -_080D335E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D336C: .4byte sub_80D3370 - thumb_func_end sub_80D32E8 - - thumb_func_start sub_80D3370 -sub_80D3370: @ 80D3370 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldr r1, _080D3390 @ =sub_8078600 - str r1, [r0, 0x1C] - ldr r1, _080D3394 @ =sub_80D3398 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D3390: .4byte sub_8078600 -_080D3394: .4byte sub_80D3398 - thumb_func_end sub_80D3370 - - thumb_func_start sub_80D3398 -sub_80D3398: @ 80D3398 - push {lr} - movs r1, 0xA - strh r1, [r0, 0x2E] - ldr r1, _080D33AC @ =sub_80782D8 - str r1, [r0, 0x1C] - ldr r1, _080D33B0 @ =move_anim_8074EE0 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D33AC: .4byte sub_80782D8 -_080D33B0: .4byte move_anim_8074EE0 - thumb_func_end sub_80D3398 - - thumb_func_start sub_80D33B4 -sub_80D33B4: @ 80D33B4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D33DC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D33E4 - ldr r1, _080D33E0 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r1, 0 - b _080D33EA - .align 2, 0 -_080D33DC: .4byte gUnknown_0202F7C8 -_080D33E0: .4byte gUnknown_03004B00 -_080D33E4: - ldr r0, _080D3440 @ =gUnknown_03004B00 - ldrh r6, [r0, 0x4] - adds r7, r0, 0 -_080D33EA: - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D3444 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r7, [r7, 0x6] - adds r0, r7 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D3448 @ =sub_80D344C - str r0, [r5, 0x1C] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3440: .4byte gUnknown_03004B00 -_080D3444: .4byte gUnknown_0202F7C9 -_080D3448: .4byte sub_80D344C - thumb_func_end sub_80D33B4 - - thumb_func_start sub_80D344C -sub_80D344C: @ 80D344C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D3488 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - ldr r0, _080D348C @ =0x0000ffff - cmp r1, r0 - bne _080D346E - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] -_080D346E: - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D3480 - adds r0, r4, 0 - bl move_anim_8072740 -_080D3480: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D3488: .4byte gUnknown_03004B00 -_080D348C: .4byte 0x0000ffff - thumb_func_end sub_80D344C - - thumb_func_start sub_80D3490 -sub_80D3490: @ 80D3490 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D34C4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080D34C8 @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r4, 0x8] - ldr r0, _080D34CC @ =0x0000279c - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4, 0xC] - ldr r0, _080D34D0 @ =sub_80D34D4 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D34C4: .4byte gTasks -_080D34C8: .4byte gUnknown_03004B00 -_080D34CC: .4byte 0x0000279c -_080D34D0: .4byte sub_80D34D4 - thumb_func_end sub_80D3490 - - thumb_func_start sub_80D34D4 -sub_80D34D4: @ 80D34D4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080D354C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - adds r0, 0x1 - strh r0, [r2, 0x1C] - lsls r0, 16 - asrs r0, 16 - mov r12, r1 - cmp r0, 0x3 - bne _080D3526 - movs r0, 0 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080D3550 @ =gPlttBufferFaded - lsls r0, r5, 1 - adds r0, r1 - ldrh r6, [r0] - adds r7, r1, 0 - adds r3, r0, 0x2 - movs r1, 0x6 - adds r2, r0, 0 -_080D3510: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080D3510 - adds r0, r5, 0x7 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] -_080D3526: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x1E] - adds r1, 0x1 - strh r1, [r0, 0x1E] - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _080D3546 - adds r0, r4, 0 - bl move_anim_task_del -_080D3546: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D354C: .4byte gTasks -_080D3550: .4byte gPlttBufferFaded - thumb_func_end sub_80D34D4 - - thumb_func_start sub_80D3554 -sub_80D3554: @ 80D3554 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0x1E - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D35BC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r5, r0] - movs r0, 0xD2 - lsls r0, 8 - bl __divsi3 - strh r0, [r5, 0x38] - ldr r0, _080D35C0 @ =gUnknown_03004B00 - ldrh r2, [r0, 0x6] - strh r2, [r5, 0x3C] - ldrh r1, [r0, 0xE] - movs r3, 0xE - ldrsh r0, [r0, r3] - cmp r0, 0x7F - ble _080D35C4 - adds r0, r1, 0 - subs r0, 0x7F - lsls r0, 8 - strh r0, [r5, 0x3A] - negs r0, r2 - strh r0, [r5, 0x3C] - b _080D35C8 - .align 2, 0 -_080D35BC: .4byte gUnknown_0202F7C9 -_080D35C0: .4byte gUnknown_03004B00 -_080D35C4: - lsls r0, r1, 8 - strh r0, [r5, 0x3A] -_080D35C8: - ldr r1, _080D35D8 @ =sub_80D35DC - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D35D8: .4byte sub_80D35DC - thumb_func_end sub_80D3554 - - thumb_func_start sub_80D35DC -sub_80D35DC: @ 80D35DC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D35F0 - adds r0, r4, 0 - bl move_anim_8072740 -_080D35F0: - ldrh r0, [r4, 0x3A] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - adds r0, r1 - asrs r0, 8 - cmp r0, 0x7F - ble _080D3620 - movs r0, 0 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - negs r0, r0 - strh r0, [r4, 0x3C] - b _080D3628 -_080D3620: - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x3A] - adds r0, r1 - strh r0, [r4, 0x3A] -_080D3628: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D35DC - - thumb_func_start sub_80D3630 -sub_80D3630: @ 80D3630 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D3650 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080D3654 @ =gUnknown_03004B00 - ldrh r0, [r3] - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r3, 0xE] - ldr r0, _080D3658 @ =sub_80D365C - str r0, [r1] - bx lr - .align 2, 0 -_080D3650: .4byte gTasks -_080D3654: .4byte gUnknown_03004B00 -_080D3658: .4byte sub_80D365C - thumb_func_end sub_80D3630 - - thumb_func_start sub_80D365C -sub_80D365C: @ 80D365C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080D3690 @ =gUnknown_03004B00 - ldrh r0, [r2, 0xE] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0xE] - ldr r1, _080D3694 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080D368A - adds r0, r3, 0 - bl move_anim_task_del -_080D368A: - pop {r0} - bx r0 - .align 2, 0 -_080D3690: .4byte gUnknown_03004B00 -_080D3694: .4byte gTasks - thumb_func_end sub_80D365C - - thumb_func_start sub_80D3698 -sub_80D3698: @ 80D3698 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r7, _080D36E4 @ =gUnknown_0202F7C8 - ldrb r0, [r7] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r7] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r6, _080D36E8 @ =0x0000fff6 - strh r6, [r4, 0x26] - ldrb r0, [r7] - bl sub_8079E90 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D36F2 - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D36EC - movs r0, 0xA - strh r0, [r4, 0x24] - b _080D36F4 - .align 2, 0 -_080D36E4: .4byte gUnknown_0202F7C8 -_080D36E8: .4byte 0x0000fff6 -_080D36EC: - strh r6, [r4, 0x24] - subs r0, r5, 0x2 - b _080D36F6 -_080D36F2: - strh r6, [r4, 0x24] -_080D36F4: - adds r0, r5, 0x2 -_080D36F6: - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r0, _080D3708 @ =sub_80D370C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3708: .4byte sub_80D370C - thumb_func_end sub_80D3698 - - thumb_func_start sub_80D370C -sub_80D370C: @ 80D370C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D3722 - adds r0, r2, 0 - bl move_anim_8072740 -_080D3722: - pop {r0} - bx r0 - thumb_func_end sub_80D370C - - thumb_func_start sub_80D3728 -sub_80D3728: @ 80D3728 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r5, _080D37E8 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080D37EC @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080D3772 - ldr r4, _080D37F0 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - beq _080D376A - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D3772 -_080D376A: - movs r1, 0 - ldrsh r0, [r4, r1] - negs r0, r0 - strh r0, [r4] -_080D3772: - ldr r5, _080D37F0 @ =gUnknown_03004B00 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _080D3786 - movs r1, 0x1 -_080D3786: - ldrb r0, [r5, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _080D3790 - movs r7, 0x3 -_080D3790: - adds r0, r6, 0 - bl sub_80787B0 - ldr r0, _080D37E8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D37AA - ldrh r0, [r5, 0x4] - negs r0, r0 - strh r0, [r5, 0x4] -_080D37AA: - ldrh r0, [r5, 0x8] - strh r0, [r6, 0x2E] - ldr r4, _080D37EC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r6, 0x36] - ldr r0, _080D37F4 @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080D37F8 @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D37E8: .4byte gUnknown_0202F7C8 -_080D37EC: .4byte gUnknown_0202F7C9 -_080D37F0: .4byte gUnknown_03004B00 -_080D37F4: .4byte sub_8078B34 -_080D37F8: .4byte move_anim_8072740 - thumb_func_end sub_80D3728 - - thumb_func_start sub_80D37FC -sub_80D37FC: @ 80D37FC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D382C @ =gUnknown_03004B00 - ldrh r1, [r0, 0x8] - strh r1, [r4, 0x2E] - ldrh r0, [r0, 0x4] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x36] - ldr r0, _080D3830 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D3834 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D382C: .4byte gUnknown_03004B00 -_080D3830: .4byte sub_8078B34 -_080D3834: .4byte move_anim_8072740 - thumb_func_end sub_80D37FC - - thumb_func_start sub_80D3838 -sub_80D3838: @ 80D3838 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D3850 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D3854 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D385C - .align 2, 0 -_080D3850: .4byte gUnknown_03004B00 -_080D3854: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 -_080D385C: - ldr r0, _080D386C @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x3C] - ldr r0, _080D3870 @ =sub_80D3874 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D386C: .4byte gUnknown_03004B00 -_080D3870: .4byte sub_80D3874 - thumb_func_end sub_80D3838 - - thumb_func_start sub_80D3874 -sub_80D3874: @ 80D3874 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D38B4 - adds r0, r4, 0 - bl move_anim_8072740 -_080D38B4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D3874 - - thumb_func_start sub_80D38BC -sub_80D38BC: @ 80D38BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080D398C @ =REG_BLDCNT - ldr r2, _080D3990 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r2, _080D3994 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x10 - add r0, sp, 0xC - mov r12, r0 - movs r5, 0 - ldr r1, _080D3998 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r7, _080D399C @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D3920: - str r5, [sp, 0x10] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D3920 - str r5, [sp, 0x10] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - mov r3, r12 - strb r0, [r3] - strb r0, [r3] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x10] - ldr r0, _080D3998 @ =0x040000d4 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D399C @ =0x85000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D39B8 - ldr r2, _080D3994 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D39A0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D39A8 - ldr r0, _080D39A4 @ =gUnknown_08E70968 - b _080D39AA - .align 2, 0 -_080D398C: .4byte REG_BLDCNT -_080D3990: .4byte 0x00003f42 -_080D3994: .4byte REG_BG1CNT -_080D3998: .4byte 0x040000d4 -_080D399C: .4byte 0x85000400 -_080D39A0: .4byte gUnknown_0202F7C8 -_080D39A4: .4byte gUnknown_08E70968 -_080D39A8: - ldr r0, _080D39B4 @ =gUnknown_08E70C38 -_080D39AA: - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080D39CE - .align 2, 0 -_080D39B4: .4byte gUnknown_08E70C38 -_080D39B8: - ldr r0, _080D39F0 @ =gUnknown_08E70F0C - ldr r1, [sp, 0x4] - bl LZDecompressVram - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0x1 - bl sub_80763FC -_080D39CE: - ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080D39F8 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D3A00 - ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080D3A0E - .align 2, 0 -_080D39F0: .4byte gUnknown_08E70F0C -_080D39F4: .4byte gBattleAnimBackgroundImage_Surf -_080D39F8: .4byte gUnknown_03004B00 -_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf -_080D3A00: - ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080D3A0E: - ldr r0, _080D3A7C @ =sub_80D3D68 - ldr r4, _080D3A80 @ =gTasks - mov r2, r10 - lsls r5, r2, 2 - adds r1, r5, r2 - lsls r1, 3 - adds r6, r1, r4 - ldrb r1, [r6, 0x7] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - mov r9, r3 - mov r0, r8 - strh r0, [r6, 0x26] - mov r1, r8 - lsls r0, r1, 2 - add r0, r8 - lsls r0, 3 - adds r7, r0, r4 - mov r2, r9 - strh r2, [r7, 0x8] - movs r0, 0x80 - lsls r0, 5 - strh r0, [r7, 0xA] - strh r0, [r7, 0xC] - bl sub_8076BE0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080D3A94 - ldr r3, _080D3A84 @ =0x0000ffb0 - adds r0, r3, 0 - ldr r1, _080D3A88 @ =gUnknown_030042C0 - strh r0, [r1] - ldr r2, _080D3A8C @ =0x0000ffd0 - adds r0, r2, 0 - ldr r3, _080D3A90 @ =gUnknown_030041B4 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - mov r0, r9 - strh r0, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal -_080D3A7C: .4byte sub_80D3D68 -_080D3A80: .4byte gTasks -_080D3A84: .4byte 0x0000ffb0 -_080D3A88: .4byte gUnknown_030042C0 -_080D3A8C: .4byte 0x0000ffd0 -_080D3A90: .4byte gUnknown_030041B4 -_080D3A94: - ldr r0, _080D3AC4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080D3AD8 - ldr r2, _080D3AC8 @ =0x0000ff20 - adds r0, r2, 0 - ldr r3, _080D3ACC @ =gUnknown_030042C0 - strh r0, [r3] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldr r3, _080D3AD0 @ =gUnknown_030041B4 - strh r0, [r3] - movs r0, 0x2 - strh r0, [r6, 0x8] - ldr r0, _080D3AD4 @ =0x0000ffff - strh r0, [r6, 0xA] - strh r1, [r7, 0xE] - b _080D3AEE - .align 2, 0 -_080D3AC4: .4byte gUnknown_0202F7C8 -_080D3AC8: .4byte 0x0000ff20 -_080D3ACC: .4byte gUnknown_030042C0 -_080D3AD0: .4byte gUnknown_030041B4 -_080D3AD4: .4byte 0x0000ffff -_080D3AD8: - ldr r0, _080D3B1C @ =gUnknown_030042C0 - strh r4, [r0] - ldr r1, _080D3B20 @ =0x0000ffd0 - adds r0, r1, 0 - ldr r2, _080D3B24 @ =gUnknown_030041B4 - strh r0, [r2] - ldr r0, _080D3B28 @ =0x0000fffe - strh r0, [r6, 0x8] - movs r0, 0x1 - strh r0, [r6, 0xA] - strh r4, [r7, 0xE] -_080D3AEE: - ldr r1, _080D3B2C @ =REG_BG1HOFS - ldr r3, _080D3B1C @ =gUnknown_030042C0 - ldrh r0, [r3] - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080D3B24 @ =gUnknown_030041B4 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _080D3B30 @ =gTasks - mov r3, r8 - lsls r0, r3, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080D3B34 - movs r0, 0x30 - strh r0, [r2, 0x10] - movs r0, 0x70 - b _080D3B38 - .align 2, 0 -_080D3B1C: .4byte gUnknown_030042C0 -_080D3B20: .4byte 0x0000ffd0 -_080D3B24: .4byte gUnknown_030041B4 -_080D3B28: .4byte 0x0000fffe -_080D3B2C: .4byte REG_BG1HOFS -_080D3B30: .4byte gTasks -_080D3B34: - movs r0, 0 - strh r0, [r2, 0x10] -_080D3B38: - strh r0, [r2, 0x12] - mov r2, r10 - adds r0, r5, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x14] - ldr r1, _080D3B5C @ =sub_80D3B60 - str r1, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3B5C: .4byte sub_80D3B60 - thumb_func_end sub_80D38BC - - thumb_func_start sub_80D3B60 -sub_80D3B60: @ 80D3B60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080D3D44 @ =gTasks - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x8] - ldr r1, _080D3D48 @ =gUnknown_030042C0 - ldrh r1, [r1] - adds r0, r1 - ldr r2, _080D3D48 @ =gUnknown_030042C0 - strh r0, [r2] - ldrh r0, [r4, 0xA] - ldr r3, _080D3D4C @ =gUnknown_030041B4 - ldrh r3, [r3] - adds r0, r3 - ldr r1, _080D3D4C @ =gUnknown_030041B4 - strh r0, [r1] - add r5, sp, 0x4 - adds r0, r5, 0 - bl sub_8078914 - ldrh r0, [r4, 0xA] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - mov r10, r5 - cmp r0, 0x4 - bne _080D3C02 - ldr r1, _080D3D50 @ =gPlttBufferFaded - ldrb r0, [r5, 0x8] - lsls r0, 4 - adds r0, 0x7 - lsls r0, 1 - adds r0, r1 - ldrh r6, [r0] - movs r2, 0x6 - adds r5, r1, 0 - adds r3, r5, 0 - mov r4, r10 -_080D3BC8: - ldrb r0, [r4, 0x8] - lsls r0, 4 - adds r1, r2, 0x1 - adds r0, r1 - lsls r1, r0, 1 - adds r1, r3 - subs r0, 0x1 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080D3BC8 - mov r3, r10 - ldrb r0, [r3, 0x8] - lsls r0, 4 - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - strh r6, [r0] - ldr r1, _080D3D44 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] -_080D3C02: - ldr r1, _080D3D44 @ =gTasks - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0x14] - adds r0, 0x1 - strh r0, [r3, 0x14] - lsls r0, 16 - asrs r0, 16 - adds r4, r1, 0 - str r2, [sp, 0x14] - cmp r0, 0x1 - ble _080D3C70 - movs r0, 0 - strh r0, [r3, 0x14] - ldrh r0, [r3, 0xE] - adds r2, r0, 0x1 - strh r2, [r3, 0xE] - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0xD - bgt _080D3C4C - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] - ldrh r0, [r3, 0x10] - adds r0, 0x1 - strh r0, [r3, 0x10] -_080D3C4C: - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r0, 0x36 - ble _080D3C70 - ldrh r2, [r3, 0x10] - subs r2, 0x1 - strh r2, [r3, 0x10] - movs r1, 0x26 - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - orrs r2, r0 - strh r2, [r1, 0xA] -_080D3C70: - ldr r2, [sp, 0x14] - adds r0, r2, r7 - lsls r0, 3 - adds r0, r4 - movs r3, 0x26 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrh r1, [r0, 0xA] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080D3D32 - ldr r2, [sp, 0x4] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x10 - movs r5, 0 - ldr r1, _080D3D54 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r6 - ldr r0, _080D3D58 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D3CAA: - str r5, [sp, 0x10] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D3CAA - str r5, [sp, 0x10] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - mov r3, r10 - ldr r1, [r3, 0x4] - movs r4, 0 - str r4, [sp, 0x10] - ldr r0, _080D3D54 @ =0x040000d4 - str r6, [r0] - str r1, [r0, 0x4] - ldr r1, _080D3D58 @ =0x85000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D3D02 - ldr r2, _080D3D5C @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D3D02: - ldr r0, _080D3D48 @ =gUnknown_030042C0 - strh r4, [r0] - ldr r1, _080D3D4C @ =gUnknown_030041B4 - strh r4, [r1] - ldr r0, _080D3D60 @ =REG_BLDCNT - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r2, _080D3D44 @ =gTasks - ldr r3, [sp, 0x14] - adds r0, r3, r7 - lsls r0, 3 - adds r0, r2 - movs r3, 0x26 - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080D3D64 @ =0x0000ffff - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl move_anim_task_del -_080D3D32: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D3D44: .4byte gTasks -_080D3D48: .4byte gUnknown_030042C0 -_080D3D4C: .4byte gUnknown_030041B4 -_080D3D50: .4byte gPlttBufferFaded -_080D3D54: .4byte 0x040000d4 -_080D3D58: .4byte 0x85000400 -_080D3D5C: .4byte REG_BG1CNT -_080D3D60: .4byte REG_BLDCNT -_080D3D64: .4byte 0x0000ffff - thumb_func_end sub_80D3B60 - - thumb_func_start sub_80D3D68 -sub_80D3D68: @ 80D3D68 - push {r4-r7,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080D3D90 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D3D84 - b _080D3EBC -_080D3D84: - cmp r0, 0x1 - bgt _080D3D94 - cmp r0, 0 - beq _080D3D9C - b _080D4032 - .align 2, 0 -_080D3D90: .4byte gTasks -_080D3D94: - cmp r0, 0x2 - bne _080D3D9A - b _080D3F88 -_080D3D9A: - b _080D4032 -_080D3D9C: - movs r3, 0 - movs r2, 0x10 - ldrsh r0, [r4, r2] - ldr r1, _080D3E6C @ =gUnknown_03004DE0 - mov r12, r1 - cmp r3, r0 - bge _080D3DDA - mov r7, r12 - movs r5, 0xF0 - lsls r5, 3 - add r5, r12 - ldr r6, _080D3E70 @ =0x0000ffff -_080D3DB4: - lsls r2, r3, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r7 - adds r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r6, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080D3DB4 -_080D3DDA: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3E14 - ldr r5, _080D3E6C @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080D3E70 @ =0x0000ffff -_080D3DF2: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldrh r1, [r4, 0xA] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3DF2 -_080D3E14: - ldrh r3, [r4, 0x12] - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - bgt _080D3E4A - ldr r5, _080D3E6C @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 - ldr r7, _080D3E70 @ =0x0000ffff -_080D3E28: - asrs r2, 16 - lsls r1, r2, 1 - adds r3, r1, r5 - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - ldrh r1, [r4, 0xC] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - lsls r2, r3, 16 - asrs r0, r2, 16 - cmp r0, 0x9F - ble _080D3E28 -_080D3E4A: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D3E74 - lsls r0, r3, 16 - asrs r0, 15 - mov r3, r12 - adds r2, r0, r3 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xA] - strh r1, [r0] - ldrh r0, [r4, 0xA] - b _080D3E8A - .align 2, 0 -_080D3E6C: .4byte gUnknown_03004DE0 -_080D3E70: .4byte 0x0000ffff -_080D3E74: - lsls r0, r3, 16 - asrs r0, 15 - mov r1, r12 - adds r2, r0, r1 - movs r1, 0xF0 - lsls r1, 3 - add r1, r12 - adds r0, r1 - ldrh r1, [r4, 0xC] - strh r1, [r0] - ldrh r0, [r4, 0xC] -_080D3E8A: - strh r0, [r2] - ldr r0, _080D3EB4 @ =REG_BLDALPHA - str r0, [sp] - ldr r0, _080D3EB8 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4032 - .align 2, 0 -_080D3EB4: .4byte REG_BLDALPHA -_080D3EB8: .4byte 0xa2600001 -_080D3EBC: - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _080D3ED4 - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bgt _080D3EE8 - strh r1, [r4, 0x10] - b _080D3EE2 -_080D3ED4: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080D3EE8 -_080D3EE2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D3EE8: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080D3F1C - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 -_080D3EF6: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D3EF6 -_080D3F1C: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3F50 - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 -_080D3F2E: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3F2E -_080D3F50: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080D4032 - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 -_080D3F5E: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080D3F5E - b _080D4032 - .align 2, 0 -_080D3F80: .4byte gUnknown_03004DE0 -_080D3F84: .4byte gUnknown_03004DC0 -_080D3F88: - movs r3, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bge _080D3FBC - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 -_080D3F96: - lsls r1, r3, 16 - asrs r1, 16 - lsls r3, r1, 1 - ldrb r2, [r5, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - adds r3, r6 - ldrh r0, [r4, 0xC] - strh r0, [r3] - adds r1, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D3F96 -_080D3FBC: - ldrh r3, [r4, 0x10] - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D3FF0 - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 -_080D3FCE: - asrs r3, r2, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xA] - strh r0, [r2] - adds r3, 0x1 - lsls r2, r3, 16 - asrs r1, r2, 16 - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r1, r0 - blt _080D3FCE -_080D3FF0: - ldrh r3, [r4, 0x12] - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080D401C - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 -_080D3FFE: - asrs r3, r1, 16 - lsls r2, r3, 1 - ldrb r1, [r5, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r6 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - lsls r1, r3, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080D3FFE -_080D401C: - movs r0, 0x26 - ldrsh r1, [r4, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D4032 - bl remove_some_task - adds r0, r7, 0 - bl DestroyTask -_080D4032: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D403C: .4byte gUnknown_03004DE0 -_080D4040: .4byte gUnknown_03004DC0 - thumb_func_end sub_80D3D68 - - thumb_func_start sub_80D4044 -sub_80D4044: @ 80D4044 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080D4098 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D409C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080D40A0 @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080D408A - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080D408A: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080D40A4 @ =sub_80D40A8 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4098: .4byte 0x000003ff -_080D409C: .4byte 0xfffffc00 -_080D40A0: .4byte 0x000001ff -_080D40A4: .4byte sub_80D40A8 - thumb_func_end sub_80D4044 - - thumb_func_start sub_80D40A8 -sub_80D40A8: @ 80D40A8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080D40CC - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080D40D0 -_080D40CC: - lsls r0, r3, 16 - asrs r0, 24 -_080D40D0: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D40EE - adds r0, r2, 0 - bl move_anim_8072740 -_080D40EE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D40A8 - - thumb_func_start sub_80D40F4 -sub_80D40F4: @ 80D40F4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D4144 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r2, _080D4148 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x12] - bl sub_80D4394 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldr r0, _080D414C @ =sub_80D4150 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4144: .4byte gTasks -_080D4148: .4byte gSprites -_080D414C: .4byte sub_80D4150 - thumb_func_end sub_80D40F4 - - thumb_func_start sub_80D4150 -sub_80D4150: @ 80D4150 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D4178 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bls _080D416C - b _080D438A -_080D416C: - lsls r0, 2 - ldr r1, _080D417C @ =_080D4180 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D4178: .4byte gTasks -_080D417C: .4byte _080D4180 - .align 2, 0 -_080D4180: - .4byte _080D41A0 - .4byte _080D41C6 - .4byte _080D4258 - .4byte _080D428E - .4byte _080D42A2 - .4byte _080D42B0 - .4byte _080D4330 - .4byte _080D437C -_080D41A0: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_8079C08 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D41C6: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D4222 - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D4210 - ldr r2, _080D420C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x24] - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] - b _080D4222 - .align 2, 0 -_080D420C: .4byte gSprites -_080D4210: - ldr r2, _080D4250 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080D4254 @ =0x0000fffd - strh r1, [r0, 0x24] -_080D4222: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080D4232 - b _080D438A -_080D4232: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - ldr r2, _080D4250 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xE] - b _080D436C - .align 2, 0 -_080D4250: .4byte gSprites -_080D4254: .4byte 0x0000fffd -_080D4258: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080D4268 - b _080D438A -_080D4268: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xE0 - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 - movs r0, 0 - strh r0, [r4, 0xE] - b _080D436E -_080D428E: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080D438A - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080D436E -_080D42A2: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80D4418 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D42B0: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D438A - movs r0, 0 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D42E8 - ldr r2, _080D42E4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x2 - b _080D42FA - .align 2, 0 -_080D42E4: .4byte gSprites -_080D42E8: - ldr r2, _080D432C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x2 -_080D42FA: - strh r1, [r0, 0x26] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0xA - bne _080D438A - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xE0 - bl sub_8079C08 - movs r0, 0 - strh r0, [r4, 0xE] - strh r0, [r4, 0x10] - b _080D436E - .align 2, 0 -_080D432C: .4byte gSprites -_080D4330: - ldr r6, _080D4378 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D438A - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0x12] - strh r1, [r0, 0x22] -_080D436C: - strh r5, [r4, 0x10] -_080D436E: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D438A - .align 2, 0 -_080D4378: .4byte gSprites -_080D437C: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D438A - adds r0, r2, 0 - bl move_anim_task_del -_080D438A: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D4150 - - thumb_func_start sub_80D4394 -sub_80D4394: @ 80D4394 - push {r4,r5,lr} - ldr r4, _080D43B8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D43C8 - ldr r1, _080D43BC @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080D43C0 @ =gPlayerParty - b _080D43D8 - .align 2, 0 -_080D43B8: .4byte gUnknown_0202F7C8 -_080D43BC: .4byte gUnknown_02024A6A -_080D43C0: .4byte gPlayerParty -_080D43C4: - adds r0, r2, 0 - b _080D440A -_080D43C8: - ldr r1, _080D4410 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080D4414 @ =gEnemyParty -_080D43D8: - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - lsrs r4, 18 - movs r2, 0 -_080D43F6: - adds r1, r2, 0x1 - adds r0, r4, 0 - muls r0, r1 - cmp r3, r0 - blt _080D43C4 - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080D43F6 - movs r0, 0x3 -_080D440A: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080D4410: .4byte gUnknown_02024A6A -_080D4414: .4byte gEnemyParty - thumb_func_end sub_80D4394 - - thumb_func_start sub_80D4418 -sub_80D4418: @ 80D4418 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - ldr r4, _080D4520 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0xAC - ldrb r0, [r4] - bl sub_8079E90 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldrh r1, [r7, 0xA] - movs r0, 0x4 - subs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r0, 0 - bgt _080D4468 - movs r1, 0x1 -_080D4468: - movs r0, 0 - str r0, [sp, 0x4] - lsls r0, r1, 16 - mov r10, r8 - mov r9, r6 - mov r1, r10 - lsls r1, 4 - str r1, [sp, 0xC] - mov r1, r9 - lsls r1, 4 - str r1, [sp, 0x10] - asrs r0, 16 - mov r8, r0 -_080D4482: - ldr r0, _080D4524 @ =gSpriteTemplate_83D9378 - mov r1, r10 - mov r2, r9 - ldr r3, [sp, 0x8] - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r6, r5, 16 - cmp r2, 0x40 - beq _080D44EA - ldr r1, _080D4528 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x30] - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r5, 0x32] - mov r0, sp - ldrh r0, [r0, 0x10] - strh r0, [r5, 0x34] - asrs r4, r6, 16 - adds r0, r4, 0 - movs r1, 0x40 - bl Cos - strh r0, [r5, 0x36] - adds r0, r4, 0 - movs r1, 0x40 - bl Sin - strh r0, [r5, 0x38] - mov r1, sp - ldrh r1, [r1] - strh r1, [r5, 0x3A] - movs r0, 0x2 - strh r0, [r5, 0x3C] - ldrh r1, [r7, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D44E4 - adds r0, r5, 0 - bl sub_80D452C -_080D44E4: - ldrh r0, [r7, 0xC] - adds r0, 0x1 - strh r0, [r7, 0xC] -_080D44EA: - mov r1, r8 - lsls r0, r1, 1 - asrs r1, r6, 16 - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r5, r0, 16 - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - asrs r0, 16 - add r0, r8 - lsls r0, 16 - lsrs r1, r0, 16 - str r1, [sp, 0x4] - asrs r0, 16 - cmp r0, 0x13 - ble _080D4482 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D4520: .4byte gUnknown_0202F7C8 -_080D4524: .4byte gSpriteTemplate_83D9378 -_080D4528: .4byte gSprites - thumb_func_end sub_80D4418 - - thumb_func_start sub_80D452C -sub_80D452C: @ 80D452C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D453E - cmp r0, 0x1 - beq _080D4574 - b _080D45CE -_080D453E: - movs r2, 0x30 - ldrsh r0, [r4, r2] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r0, [r4, 0x36] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080D4574: - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r2, r1, 20 - strh r2, [r4, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D45AA - adds r1, r2, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D45AA - cmp r1, 0x78 - ble _080D45CE -_080D45AA: - ldr r3, _080D45D4 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D45CE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D45D4: .4byte gTasks - thumb_func_end sub_80D452C - - thumb_func_start sub_80D45D8 -sub_80D45D8: @ 80D45D8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D4608 @ =gTasks - adds r4, r1, r0 - bl sub_80D4394 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldr r0, _080D460C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D4610 - movs r0, 0x88 - strh r0, [r4, 0x10] - movs r0, 0x28 - b _080D4616 - .align 2, 0 -_080D4608: .4byte gTasks -_080D460C: .4byte gUnknown_0202F7C8 -_080D4610: - movs r0, 0x10 - strh r0, [r4, 0x10] - movs r0, 0x50 -_080D4616: - strh r0, [r4, 0x14] - movs r0, 0x62 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x10] - adds r0, 0x31 - strh r0, [r4, 0x16] - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, 0x5 - strh r0, [r4, 0x20] - ldr r0, _080D4638 @ =sub_80D463C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4638: .4byte sub_80D463C - thumb_func_end sub_80D45D8 - - thumb_func_start sub_80D463C -sub_80D463C: @ 80D463C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r7, _080D4660 @ =gTasks - adds r4, r0, r7 - movs r0, 0x8 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080D4664 - cmp r2, 0x1 - beq _080D4714 - b _080D4722 - .align 2, 0 -_080D4660: .4byte gTasks -_080D4664: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D467A - strh r2, [r4, 0xC] - adds r0, r4, 0 - bl sub_80D472C -_080D467A: - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D46F4 - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D46F4 - ldr r5, _080D4708 @ =gUnknown_03004B00 - movs r1, 0x1 - mov r8, r1 - mov r2, r8 - strh r2, [r5] - strh r0, [r5, 0x2] - movs r0, 0xC - strh r0, [r5, 0x4] - ldr r6, _080D470C @ =sub_80E1864 - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080D46C4 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080D4710 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080D46C4: - movs r0, 0x3 - strh r0, [r5] - adds r0, r6, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080D46F0 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r7 - ldr r1, [r0] - adds r0, r2, 0 - bl _call_via_r1 - ldr r1, _080D4710 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080D46F0: - mov r0, r8 - strh r0, [r4, 0x22] -_080D46F4: - movs r2, 0x1E - ldrsh r1, [r4, r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _080D4722 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4722 - .align 2, 0 -_080D4708: .4byte gUnknown_03004B00 -_080D470C: .4byte sub_80E1864 -_080D4710: .4byte gUnknown_0202F7B2 -_080D4714: - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D4722 - adds r0, r1, 0 - bl move_anim_task_del -_080D4722: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D463C - - thumb_func_start sub_80D472C -sub_80D472C: @ 80D472C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080D47B8 @ =gSineTable - movs r2, 0x18 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, 0x3 - asrs r0, 4 - ldrh r2, [r4, 0x14] - adds r0, r2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080D47BC @ =gSpriteTemplate_83D9378 - movs r2, 0x16 - ldrsh r1, [r4, r2] - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080D4786 - ldr r3, _080D47C0 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080D47C4 @ =sub_80D47D0 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x38] - strh r6, [r0, 0x3A] - movs r1, 0x9 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] -_080D4786: - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x18] - adds r0, 0x27 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x18] - movs r0, 0x16 - ldrsh r1, [r4, r0] - ldr r0, _080D47C8 @ =0x41c64e6d - muls r0, r1 - ldr r1, _080D47CC @ =0x00003039 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - ldrh r1, [r4, 0x10] - adds r1, r0 - strh r1, [r4, 0x16] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D47B8: .4byte gSineTable -_080D47BC: .4byte gSpriteTemplate_83D9378 -_080D47C0: .4byte gSprites -_080D47C4: .4byte sub_80D47D0 -_080D47C8: .4byte 0x41c64e6d -_080D47CC: .4byte 0x00003039 - thumb_func_end sub_80D472C - - thumb_func_start sub_80D47D0 -sub_80D47D0: @ 80D47D0 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D4866 - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080D4866 - ldr r2, _080D486C @ =gTasks - movs r3, 0x3A - ldrsh r1, [r5, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x1C] - ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - cmp r0, 0x40 - beq _080D4860 - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080D4874 @ =gSprites - adds r0, r4 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3A] - strh r1, [r0, 0x3A] - movs r3, 0x30 - ldrsh r1, [r5, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r5, 0x3C] - strh r1, [r0, 0x3C] - movs r0, 0x30 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080D4878 @ =sub_80D487C - str r1, [r0] -_080D4860: - adds r0, r5, 0 - bl DestroySprite -_080D4866: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D486C: .4byte gTasks -_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 -_080D4874: .4byte gSprites -_080D4878: .4byte sub_80D487C - thumb_func_end sub_80D47D0 - - thumb_func_start sub_80D487C -sub_80D487C: @ 80D487C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D48E8 - movs r0, 0 - strh r0, [r4, 0x30] - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080D48E8 - ldr r3, _080D48F0 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D48E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D48F0: .4byte gTasks - thumb_func_end sub_80D487C - - thumb_func_start sub_80D48F4 -sub_80D48F4: @ 80D48F4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D4978 @ =gTasks - adds r5, r1, r0 - ldr r4, _080D497C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D4938 - movs r1, 0x1 -_080D4938: - strh r1, [r5, 0x16] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D494C - movs r1, 0x16 - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x16] -_080D494C: - movs r2, 0x16 - ldrsh r0, [r5, r2] - lsls r0, 3 - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0x12] - movs r2, 0x16 - ldrsh r1, [r5, r2] - lsls r1, 3 - ldrh r0, [r5, 0x10] - subs r0, r1 - strh r0, [r5, 0x14] - ldr r0, _080D4980 @ =0x0000ffe0 - strh r0, [r5, 0x1A] - strh r6, [r5, 0xA] - strh r6, [r5, 0x8] - ldr r0, _080D4984 @ =sub_80D4988 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4978: .4byte gTasks -_080D497C: .4byte gUnknown_0202F7C8 -_080D4980: .4byte 0x0000ffe0 -_080D4984: .4byte sub_80D4988 - thumb_func_end sub_80D48F4 - - thumb_func_start sub_80D4988 -sub_80D4988: @ 80D4988 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D49AC @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080D49A2 - b _080D4AC2 -_080D49A2: - lsls r0, 2 - ldr r1, _080D49B0 @ =_080D49B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D49AC: .4byte gTasks -_080D49B0: .4byte _080D49B4 - .align 2, 0 -_080D49B4: - .4byte _080D49D0 - .4byte _080D49E0 - .4byte _080D49FA - .4byte _080D4A3C - .4byte _080D4A5E - .4byte _080D4A8C - .4byte _080D4AB2 -_080D49D0: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D4AC8 - b _080D4ABA -_080D49E0: - adds r0, r4, 0 - bl sub_80D4AD0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D4AC8 - movs r0, 0 - strh r0, [r4, 0xA] - b _080D4ABA -_080D49FA: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - adds r1, r0 - movs r2, 0 - strh r1, [r4, 0x12] - adds r1, 0x10 - lsls r1, 16 - movs r0, 0x88 - lsls r0, 17 - cmp r1, r0 - bls _080D4AC8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D4A38 - movs r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x6 - strh r0, [r4, 0x8] - strh r2, [r4, 0xA] - b _080D4AC8 -_080D4A38: - strh r2, [r4, 0xA] - b _080D4ABA -_080D4A3C: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D4AC8 - b _080D4ABA -_080D4A5E: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - ldrh r0, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x12] - adds r0, 0x10 - lsls r0, 16 - movs r1, 0x88 - lsls r1, 17 - cmp r0, r1 - bls _080D4AC8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0xA] - b _080D4ABA -_080D4A8C: - adds r0, r4, 0 - bl sub_80D4AD0 - movs r0, 0x16 - ldrsh r1, [r4, r0] - lsls r1, 1 - ldrh r0, [r4, 0x14] - subs r0, r1 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080D4AC8 - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080D4AC8 -_080D4AB2: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D4AC8 -_080D4ABA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D4AC8 -_080D4AC2: - adds r0, r2, 0 - bl move_anim_task_del -_080D4AC8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4988 - - thumb_func_start sub_80D4AD0 -sub_80D4AD0: @ 80D4AD0 - push {r4-r6,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0xC] - adds r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D4B2A - movs r0, 0 - strh r0, [r6, 0xC] - ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378 - movs r2, 0xE - ldrsh r1, [r6, r2] - movs r3, 0x10 - ldrsh r2, [r6, r3] - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080D4B2A - ldr r5, _080D4B34 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldrh r1, [r6, 0x12] - strh r1, [r0, 0x32] - ldrh r1, [r6, 0x14] - strh r1, [r0, 0x36] - ldrh r1, [r6, 0x1A] - strh r1, [r0, 0x38] - bl sub_80786EC - adds r5, 0x1C - adds r4, r5 - ldr r0, _080D4B38 @ =sub_80D4B3C - str r0, [r4] - ldrh r0, [r6, 0x18] - adds r0, 0x1 - strh r0, [r6, 0x18] -_080D4B2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4B30: .4byte gSpriteTemplate_83D9378 -_080D4B34: .4byte gSprites -_080D4B38: .4byte sub_80D4B3C - thumb_func_end sub_80D4AD0 - - thumb_func_start sub_80D4B3C -sub_80D4B3C: @ 80D4B3C - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D4B96 - ldrh r0, [r6, 0x24] - ldrh r1, [r6, 0x20] - adds r0, r1 - strh r0, [r6, 0x20] - ldrh r0, [r6, 0x26] - ldrh r1, [r6, 0x22] - adds r0, r1 - strh r0, [r6, 0x22] - movs r0, 0x6 - strh r0, [r6, 0x2E] - bl Random - movs r4, 0x1F - adds r1, r4, 0 - ands r1, r0 - ldr r5, _080D4B9C @ =0x0000fff0 - adds r1, r5 - ldrh r0, [r6, 0x20] - adds r1, r0 - strh r1, [r6, 0x32] - bl Random - ands r4, r0 - adds r4, r5 - ldrh r1, [r6, 0x22] - adds r4, r1 - strh r4, [r6, 0x36] - bl Random - movs r1, 0x7 - ands r1, r0 - mvns r1, r1 - strh r1, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080D4BA0 @ =sub_80D4BA4 - str r0, [r6, 0x1C] -_080D4B96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4B9C: .4byte 0x0000fff0 -_080D4BA0: .4byte sub_80D4BA4 - thumb_func_end sub_80D4B3C - - thumb_func_start sub_80D4BA4 -sub_80D4BA4: @ 80D4BA4 - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D4BE0 - movs r4, 0 - ldr r6, _080D4BE8 @ =gTasks -_080D4BB6: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - ldr r1, [r2] - ldr r0, _080D4BEC @ =sub_80D4988 - cmp r1, r0 - bne _080D4BD6 - movs r0, 0x1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - adds r0, r5, 0 - bl DestroySprite -_080D4BD6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080D4BB6 -_080D4BE0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D4BE8: .4byte gTasks -_080D4BEC: .4byte sub_80D4988 - thumb_func_end sub_80D4BA4 - - thumb_func_start sub_80D4BF0 -sub_80D4BF0: @ 80D4BF0 - ldr r2, _080D4C10 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r0, 0x20] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x22] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x2E] - ldrh r1, [r2, 0x6] - strh r1, [r0, 0x30] - ldrh r1, [r2, 0x8] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0xA] - strh r1, [r0, 0x34] - ldr r1, _080D4C14 @ =sub_80D4C18 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D4C10: .4byte gUnknown_03004B00 -_080D4C14: .4byte sub_80D4C18 - thumb_func_end sub_80D4BF0 - - thumb_func_start sub_80D4C18 -sub_80D4C18: @ 80D4C18 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080D4C5C - adds r0, r4, 0 - bl move_anim_8072740 -_080D4C5C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4C18 - - thumb_func_start sub_80D4C64 -sub_80D4C64: @ 80D4C64 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 23 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 23 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080D4C9C - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D4C9C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D4C64 - - thumb_func_start sub_80D4CA4 -sub_80D4CA4: @ 80D4CA4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080D4CE0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r1, _080D4CE4 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldr r0, _080D4CE8 @ =sub_80D4CEC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4CE0: .4byte gUnknown_0202F7C9 -_080D4CE4: .4byte gUnknown_03004B00 -_080D4CE8: .4byte sub_80D4CEC - thumb_func_end sub_80D4CA4 - - thumb_func_start sub_80D4CEC -sub_80D4CEC: @ 80D4CEC - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r6, r1, r0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x22 - ldrsh r0, [r4, r2] - subs r5, r1, r0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r6 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - muls r0, r5 - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080D4D44 - movs r0, 0 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80D4D64 -_080D4D44: - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080D4D56 - adds r0, r4, 0 - bl move_anim_8072740 -_080D4D56: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D4CEC - - thumb_func_start sub_80D4D64 -sub_80D4D64: @ 80D4D64 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r4, r1, 0 - adds r5, r2, 0 - movs r2, 0x2E - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - lsls r1, 15 - lsrs r1, 16 - str r1, [sp] - ldrh r1, [r0, 0x24] - ldrh r3, [r0, 0x20] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r0, r5, r0 - subs r0, 0x5 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - bl Random - negs r4, r4 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0 - subs r4, 0x5 - lsls r4, 16 - lsrs r7, r4, 16 - movs r6, 0 - mov r0, r8 - lsls r0, 16 - mov r8, r0 - mov r1, r10 - lsls r1, 16 - str r1, [sp, 0xC] - ldr r2, [sp] - lsls r2, 16 - str r2, [sp, 0x10] - asrs r1, 16 - lsls r0, r7, 16 - asrs r5, r0, 16 - str r0, [sp, 0x14] - negs r3, r5 - str r3, [sp, 0x4] - asrs r0, r2, 16 - adds r1, r0 - lsls r1, 16 - mov r10, r1 -_080D4DF2: - ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080D4E38 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080D4E3C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - bge _080D4E40 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r4, 0x32] - b _080D4E42 - .align 2, 0 -_080D4E34: .4byte gSpriteTemplate_83D9420 -_080D4E38: .4byte gSprites -_080D4E3C: .4byte gUnknown_0202F7C8 -_080D4E40: - strh r7, [r4, 0x32] -_080D4E42: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080D4DF2 - movs r6, 0 - ldr r3, [sp, 0xC] - asrs r1, r3, 16 - ldr r0, [sp, 0x14] - asrs r5, r0, 16 - negs r2, r5 - str r2, [sp, 0x8] - ldr r3, [sp, 0x10] - asrs r0, r3, 16 - subs r1, r0 - lsls r1, 16 - mov r10, r1 -_080D4E68: - ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420 - mov r2, r8 - asrs r1, r2, 16 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0x82 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080D4EB0 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - movs r0, 0x14 - strh r0, [r4, 0x2E] - mov r0, r9 - strh r0, [r4, 0x30] - ldr r0, _080D4EB4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079E90 - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - cmp r5, 0 - ble _080D4EB8 - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - b _080D4EBA - .align 2, 0 -_080D4EAC: .4byte gSpriteTemplate_83D9420 -_080D4EB0: .4byte gSprites -_080D4EB4: .4byte gUnknown_0202F7C8 -_080D4EB8: - strh r7, [r4, 0x32] -_080D4EBA: - lsls r0, r6, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r6, r0, 16 - cmp r0, 0 - ble _080D4E68 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D4D64 - - thumb_func_start sub_80D4ED8 -sub_80D4ED8: @ 80D4ED8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D4F0C @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080D4F10 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080D4F14 @ =sub_8078174 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4F0C: .4byte gUnknown_03004B00 -_080D4F10: .4byte move_anim_8072740 -_080D4F14: .4byte sub_8078174 - thumb_func_end sub_80D4ED8 - - thumb_func_start sub_80D4F18 -sub_80D4F18: @ 80D4F18 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D4F50 @ =gUnknown_03004B00 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x32] - ldr r0, _080D4F54 @ =sub_8078394 - str r0, [r4, 0x1C] - ldr r1, _080D4F58 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D4F50: .4byte gUnknown_03004B00 -_080D4F54: .4byte sub_8078394 -_080D4F58: .4byte move_anim_8072740 - thumb_func_end sub_80D4F18 - - thumb_func_start sub_80D4F5C -sub_80D4F5C: @ 80D4F5C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080D4F90 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D4F98 - ldr r2, _080D4F94 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080D4FAE - .align 2, 0 -_080D4F90: .4byte gUnknown_0202F7C8 -_080D4F94: .4byte gUnknown_03004B00 -_080D4F98: - ldr r1, _080D4FC4 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] -_080D4FAE: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080D4FC8 @ =sub_80D5038 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D4FC4: .4byte gUnknown_03004B00 -_080D4FC8: .4byte sub_80D5038 - thumb_func_end sub_80D4F5C - - thumb_func_start sub_80D4FCC -sub_80D4FCC: @ 80D4FCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D4FF8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5000 - ldr r2, _080D4FFC @ =gUnknown_03004B00 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - adds r1, r2, 0 - b _080D5018 - .align 2, 0 -_080D4FF8: .4byte gUnknown_0202F7C8 -_080D4FFC: .4byte gUnknown_03004B00 -_080D5000: - ldr r1, _080D5030 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x8] - negs r0, r0 - strh r0, [r4, 0x32] -_080D5018: - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x36] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080D5034 @ =sub_80D5038 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5030: .4byte gUnknown_03004B00 -_080D5034: .4byte sub_80D5038 - thumb_func_end sub_80D4FCC - - thumb_func_start sub_80D5038 -sub_80D5038: @ 80D5038 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x36 - ldrsh r1, [r2, r3] - cmp r0, r1 - bge _080D505E - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x26] - adds r0, r3 - strh r0, [r2, 0x26] -_080D505E: - movs r0, 0x2E - ldrsh r1, [r2, r0] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080D5070 - adds r0, r2, 0 - bl move_anim_8074EE0 -_080D5070: - pop {r0} - bx r0 - thumb_func_end sub_80D5038 - - thumb_func_start sub_80D5074 -sub_80D5074: @ 80D5074 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _080D5098 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D50A0 - ldr r0, _080D509C @ =gUnknown_03004B00 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080D50B2 - .align 2, 0 -_080D5098: .4byte gUnknown_0202F7C8 -_080D509C: .4byte gUnknown_03004B00 -_080D50A0: - ldr r0, _080D50E0 @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - adds r2, r4, 0 - adds r2, 0x43 - movs r1, 0x8 - strb r1, [r2] -_080D50B2: - adds r2, r0, 0 - ldrh r0, [r2, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x22] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r2, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r2, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r2, 0xA] - strh r0, [r4, 0x34] - ldrh r0, [r2, 0xC] - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldr r0, _080D50E4 @ =sub_80D50E8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D50E0: .4byte gUnknown_03004B00 -_080D50E4: .4byte sub_80D50E8 - thumb_func_end sub_80D5074 - - thumb_func_start sub_80D50E8 -sub_80D50E8: @ 80D50E8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D5170 - movs r2, 0x38 - ldrsh r1, [r4, r2] - ldr r0, _080D5154 @ =0x00002710 - cmp r1, r0 - ble _080D5106 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] -_080D5106: - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080D515C - ldr r2, _080D5158 @ =0xffffff00 - b _080D5164 - .align 2, 0 -_080D5154: .4byte 0x00002710 -_080D5158: .4byte 0xffffff00 -_080D515C: - cmp r0, 0 - bge _080D5168 - movs r2, 0x80 - lsls r2, 1 -_080D5164: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080D5168: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080D5176 -_080D5170: - adds r0, r4, 0 - bl move_anim_8074EE0 -_080D5176: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D50E8 - - thumb_func_start sub_80D517C -sub_80D517C: @ 80D517C - push {lr} - movs r1, 0 - strh r1, [r0, 0x20] - strh r1, [r0, 0x22] - movs r1, 0x3C - strh r1, [r0, 0x2E] - movs r1, 0x8C - strh r1, [r0, 0x32] - movs r1, 0x50 - strh r1, [r0, 0x36] - ldr r1, _080D51A0 @ =sub_8078B34 - str r1, [r0, 0x1C] - ldr r1, _080D51A4 @ =move_anim_8072740 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D51A0: .4byte sub_8078B34 -_080D51A4: .4byte move_anim_8072740 - thumb_func_end sub_80D517C - - thumb_func_start sub_80D51A8 -sub_80D51A8: @ 80D51A8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _080D5200 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080D5204 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080D51EE - movs r0, 0x2 - bl battle_get_side_with_given_state - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _080D51E6 - movs r0, 0x3 - bl battle_get_side_with_given_state - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080D51EE -_080D51E6: - ldr r1, _080D5208 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D51EE: - ldr r1, _080D520C @ =sub_8079534 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D5200: .4byte gUnknown_0202F7C8 -_080D5204: .4byte gUnknown_0202F7C9 -_080D5208: .4byte gUnknown_03004B00 -_080D520C: .4byte sub_8079534 - thumb_func_end sub_80D51A8 - - thumb_func_start sub_80D5210 -sub_80D5210: @ 80D5210 - ldr r2, _080D5224 @ =gUnknown_03004B00 - ldrh r1, [r2] - negs r1, r1 - strh r1, [r2] - ldrh r1, [r2, 0x4] - negs r1, r1 - strh r1, [r2, 0x4] - ldr r1, _080D5228 @ =sub_8079534 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080D5224: .4byte gUnknown_03004B00 -_080D5228: .4byte sub_8079534 - thumb_func_end sub_80D5210 - - thumb_func_start sub_80D522C -sub_80D522C: @ 80D522C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D524C @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x2E] - ldr r0, _080D5250 @ =sub_80D5254 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D524C: .4byte gUnknown_03004B00 -_080D5250: .4byte sub_80D5254 - thumb_func_end sub_80D522C - - thumb_func_start sub_80D5254 -sub_80D5254: @ 80D5254 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80D5348 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x12 - bne _080D529E - movs r0, 0x19 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080D52A4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D52A8 @ =sub_80D52AC - str r0, [r5, 0x1C] -_080D529E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D52A4: .4byte gUnknown_0202F7C9 -_080D52A8: .4byte sub_80D52AC - thumb_func_end sub_80D5254 - - thumb_func_start sub_80D52AC -sub_80D52AC: @ 80D52AC - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D52F4 - movs r4, 0 - strh r4, [r6, 0x2E] - ldr r5, _080D52EC @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r4, [r6, 0x26] - strh r4, [r6, 0x24] - ldr r1, _080D52F0 @ =sub_80D5324 - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - b _080D531E - .align 2, 0 -_080D52EC: .4byte gUnknown_0202F7C9 -_080D52F0: .4byte sub_80D5324 -_080D52F4: - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Sin - ldrh r1, [r6, 0x24] - adds r0, r1 - strh r0, [r6, 0x24] - movs r1, 0x3C - ldrsh r0, [r6, r1] - movs r1, 0x1C - bl Cos - ldrh r1, [r6, 0x26] - adds r0, r1 - strh r0, [r6, 0x26] - ldrh r0, [r6, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6, 0x3C] -_080D531E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D52AC - - thumb_func_start sub_80D5324 -sub_80D5324: @ 80D5324 - push {r4,lr} - adds r4, r0, 0 - bl sub_80D5348 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080D5340 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5340: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5324 - - thumb_func_start sub_80D5348 -sub_80D5348: @ 80D5348 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x1C - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x14 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5348 - - thumb_func_start sub_80D5374 -sub_80D5374: @ 80D5374 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080D53A8 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldr r1, _080D53AC @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D53B0 @ =sub_8078364 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D53A8: .4byte gUnknown_03004B00 -_080D53AC: .4byte move_anim_8072740 -_080D53B0: .4byte sub_8078364 - thumb_func_end sub_80D5374 - - thumb_func_start sub_80D53B4 -sub_80D53B4: @ 80D53B4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080D53E8 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080D53EC @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D53F0 @ =sub_80D53F4 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D53E8: .4byte gUnknown_03004B00 -_080D53EC: .4byte sub_80782D8 -_080D53F0: .4byte sub_80D53F4 - thumb_func_end sub_80D53B4 - - thumb_func_start sub_80D53F4 -sub_80D53F4: @ 80D53F4 - push {lr} - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r3] - ldrh r1, [r0, 0x30] - movs r2, 0 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - ldr r1, _080D5418 @ =sub_80D541C - str r1, [r0, 0x1C] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080D5418: .4byte sub_80D541C - thumb_func_end sub_80D53F4 - - thumb_func_start sub_80D541C -sub_80D541C: @ 80D541C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - adds r0, 0xD0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D5468 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5468: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D541C - - thumb_func_start sub_80D5470 -sub_80D5470: @ 80D5470 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080D54D0 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - ldr r2, _080D54D4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x10] - ldr r0, _080D54D8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8078E70 - ldr r0, _080D54DC @ =sub_80D54E0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D54D0: .4byte gTasks -_080D54D4: .4byte gSprites -_080D54D8: .4byte gUnknown_0202F7C8 -_080D54DC: .4byte sub_80D54E0 - thumb_func_end sub_80D5470 - - thumb_func_start sub_80D54E0 -sub_80D54E0: @ 80D54E0 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080D5508 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bls _080D54FC - b _080D57BA -_080D54FC: - lsls r0, 2 - ldr r1, _080D550C @ =_080D5510 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D5508: .4byte gTasks -_080D550C: .4byte _080D5510 - .align 2, 0 -_080D5510: - .4byte _080D552C - .4byte _080D5552 - .4byte _080D5604 - .4byte _080D5664 - .4byte _080D5682 - .4byte _080D5758 - .4byte _080D57AC -_080D552C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0xE0 - str r0, [sp] - movs r0, 0x80 - lsls r0, 2 - str r0, [sp, 0x4] - movs r0, 0x20 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r2, r3, 0 - bl sub_8079C08 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080D5552: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D559A - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5588 - ldr r2, _080D5584 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - b _080D5598 - .align 2, 0 -_080D5584: .4byte gSprites -_080D5588: - ldr r2, _080D55FC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _080D5600 @ =0x0000fffd -_080D5598: - strh r1, [r0, 0x24] -_080D559A: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D55C8 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D55C8 - movs r0, 0 - strh r0, [r4, 0xE] - ldr r2, _080D55FC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x1 - strh r1, [r0, 0x22] -_080D55C8: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080D55D8 - b _080D57BA -_080D55D8: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - ldr r2, _080D55FC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x24] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - b _080D57A0 - .align 2, 0 -_080D55FC: .4byte gSprites -_080D5600: .4byte 0x0000fffd -_080D5604: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080D5614 - b _080D57BA -_080D5614: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D563E - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xF0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 - b _080D565E -_080D563E: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r3, 0x80 - lsls r3, 2 - movs r0, 0xC0 - lsls r0, 1 - str r0, [sp] - movs r0, 0xC0 - str r0, [sp, 0x4] - movs r0, 0x6 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r2, 0xE0 - bl sub_8079C08 -_080D565E: - movs r0, 0 - strh r0, [r4, 0xA] - b _080D57A0 -_080D5664: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - cmp r0, 0 - beq _080D5672 - b _080D57BA -_080D5672: - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_80D57C4 - b _080D57A0 -_080D5682: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D56D0 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D56BC - ldr r2, _080D56B8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - adds r1, 0x3 - b _080D56CE - .align 2, 0 -_080D56B8: .4byte gSprites -_080D56BC: - ldr r2, _080D5708 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 -_080D56CE: - strh r1, [r0, 0x26] -_080D56D0: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _080D57BA - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D570C - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xF0 - bl sub_8079C08 - b _080D572A - .align 2, 0 -_080D5708: .4byte gSprites -_080D570C: - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xC0 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x8 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r3, 0xC0 - bl sub_8079C08 -_080D572A: - ldrh r1, [r4, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5748 - ldr r2, _080D5754 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x3 - strh r1, [r0, 0x26] -_080D5748: - movs r0, 0 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - strh r0, [r4, 0xE] - b _080D57A0 - .align 2, 0 -_080D5754: .4byte gSprites -_080D5758: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D5774 - ldr r2, _080D57A8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_080D5774: - adds r0, r4, 0 - bl sub_8079C74 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080D57BA - ldr r2, _080D57A8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x10] - strh r1, [r0, 0x22] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - strh r5, [r4, 0xC] -_080D57A0: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D57BA - .align 2, 0 -_080D57A8: .4byte gSprites -_080D57AC: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D57BA - adds r0, r5, 0 - bl move_anim_task_del -_080D57BA: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D54E0 - - thumb_func_start sub_80D57C4 -sub_80D57C4: @ 80D57C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - adds r0, r4, 0 - bl sub_80D5940 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r1, _080D5814 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r4, [r0, 0x20] - ldr r0, _080D5818 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D581C - adds r0, r4, 0 - subs r0, 0xC - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - b _080D5826 - .align 2, 0 -_080D5814: .4byte gSprites -_080D5818: .4byte gUnknown_0202F7C8 -_080D581C: - adds r0, r4, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0xFF -_080D5826: - movs r6, 0 - movs r5, 0 - lsls r4, 16 - str r4, [sp, 0x8] - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x4] - ldr r2, _080D58E0 @ =gUnknown_083D96DC - mov r9, r2 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r3, r8 - lsls r3, 1 - mov r10, r3 -_080D5844: - ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4 - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - ldr r3, [sp, 0x4] - asrs r2, r3, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D58C6 - ldr r1, _080D58E8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r4, r0, r1 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - lsls r0, r5, 2 - adds r0, 0x40 - adds r1, r0 - ldr r3, _080D58EC @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r3, _080D58F0 @ =0xfffffc00 - adds r0, r3, 0 - ands r2, r0 - orrs r2, r1 - strh r2, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080D588E - movs r5, 0 -_080D588E: - lsls r2, r6, 2 - mov r1, r9 - adds r0, r2, r1 - ldrh r0, [r0] - ldr r3, [sp] - adds r1, r0, 0 - muls r1, r3 - lsls r1, 16 - asrs r1, 16 - ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2 - adds r2, r0 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r0, r4, 0 - bl sub_80D5994 - strh r7, [r4, 0x3A] - mov r0, r8 - strh r0, [r4, 0x3C] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - add r0, r10 - ldr r1, _080D58F8 @ =gTasks + 0x8 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] -_080D58C6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x6 - bls _080D5844 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D58E0: .4byte gUnknown_083D96DC -_080D58E4: .4byte gSpriteTemplate_83D96C4 -_080D58E8: .4byte gSprites -_080D58EC: .4byte 0x000003ff -_080D58F0: .4byte 0xfffffc00 -_080D58F4: .4byte gUnknown_083D96DC + 0x2 -_080D58F8: .4byte gTasks + 0x8 - thumb_func_end sub_80D57C4 - - thumb_func_start sub_80D58FC -sub_80D58FC: @ 80D58FC - push {r4,lr} - adds r4, r0, 0 - bl sub_80D59B0 - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080D5936 - ldr r3, _080D593C @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D5936: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D593C: .4byte gTasks - thumb_func_end sub_80D58FC - - thumb_func_start sub_80D5940 -sub_80D5940: @ 80D5940 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D5978 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x26] - ldrh r0, [r1, 0x22] - adds r2, r0 - adds r1, 0x29 - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080D597C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D5980 - lsls r0, r4, 16 - movs r1, 0x94 - lsls r1, 15 - b _080D5986 - .align 2, 0 -_080D5978: .4byte gSprites -_080D597C: .4byte gUnknown_0202F7C8 -_080D5980: - lsls r0, r4, 16 - movs r1, 0xB0 - lsls r1, 14 -_080D5986: - adds r0, r1 - lsrs r4, r0, 16 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80D5940 - - thumb_func_start sub_80D5994 -sub_80D5994: @ 80D5994 - movs r3, 0 - strh r3, [r0, 0x2E] - strh r3, [r0, 0x30] - ldrh r3, [r0, 0x20] - lsls r3, 3 - strh r3, [r0, 0x32] - ldrh r3, [r0, 0x22] - lsls r3, 3 - strh r3, [r0, 0x34] - lsls r1, 3 - strh r1, [r0, 0x36] - lsls r2, 3 - strh r2, [r0, 0x38] - bx lr - thumb_func_end sub_80D5994 - - thumb_func_start sub_80D59B0 -sub_80D59B0: @ 80D59B0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D59DA - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x30] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r3, [r2, 0x34] - adds r0, r3 - strh r0, [r2, 0x34] -_080D59DA: - ldrh r0, [r2, 0x36] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 19 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r1, 16 - asrs r3, r1, 19 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D5A10 - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D5A10 - cmp r1, 0x78 - ble _080D5A1C -_080D5A10: - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080D5A1C: - pop {r0} - bx r0 - thumb_func_end sub_80D59B0 - - thumb_func_start sub_80D5A20 -sub_80D5A20: @ 80D5A20 - push {r4,r5,lr} - ldr r3, _080D5A64 @ =gUnknown_03004B00 - ldrh r1, [r3] - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x22] - strh r2, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3A] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x3C] - ldrh r4, [r0, 0x4] - lsls r2, r4, 22 - lsrs r2, 22 - movs r5, 0x8 - ldrsh r1, [r3, r5] - lsls r1, 4 - adds r2, r1 - ldr r3, _080D5A68 @ =0x000003ff - adds r1, r3, 0 - ands r2, r1 - ldr r1, _080D5A6C @ =0xfffffc00 - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r1, _080D5A70 @ =sub_80D5A74 - str r1, [r0, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5A64: .4byte gUnknown_03004B00 -_080D5A68: .4byte 0x000003ff -_080D5A6C: .4byte 0xfffffc00 -_080D5A70: .4byte sub_80D5A74 - thumb_func_end sub_80D5A20 - - thumb_func_start sub_80D5A74 -sub_80D5A74: @ 80D5A74 - push {r4,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _080D5AA6 - cmp r0, 0x1 - bgt _080D5A8A - cmp r0, 0 - beq _080D5A90 - b _080D5B04 -_080D5A8A: - cmp r0, 0x2 - beq _080D5AC4 - b _080D5B04 -_080D5A90: - ldrh r1, [r2, 0x3A] - movs r3, 0x3A - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080D5AA0 - subs r0, r1, 0x1 - strh r0, [r2, 0x3A] - b _080D5B04 -_080D5AA0: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_080D5AA6: - ldrh r0, [r2, 0x22] - adds r0, 0x8 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x3C] - movs r4, 0x3C - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080D5B04 - strh r3, [r2, 0x22] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _080D5B04 -_080D5AC4: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5AF0 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5AEC - ldr r0, _080D5AE8 @ =0x0000fffd - b _080D5AEE - .align 2, 0 -_080D5AE8: .4byte 0x0000fffd -_080D5AEC: - movs r0, 0x3 -_080D5AEE: - strh r0, [r2, 0x26] -_080D5AF0: - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080D5B04 - adds r0, r2, 0 - bl move_anim_8072740 -_080D5B04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5A74 - - thumb_func_start sub_80D5B0C -sub_80D5B0C: @ 80D5B0C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D5B80 - cmp r0, 0x1 - bgt _080D5B22 - cmp r0, 0 - beq _080D5B28 - b _080D5C4E -_080D5B22: - cmp r0, 0x2 - beq _080D5BDE - b _080D5C4E -_080D5B28: - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - ldr r4, _080D5B50 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x3C] - ldr r0, _080D5B54 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5B58 - movs r0, 0x4 - b _080D5B5A - .align 2, 0 -_080D5B50: .4byte gUnknown_03004B00 -_080D5B54: .4byte gUnknown_0202F7C8 -_080D5B58: - ldr r0, _080D5B78 @ =0x0000fffc -_080D5B5A: - strh r0, [r5, 0x36] - ldr r0, _080D5B7C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080D5BD6 - .align 2, 0 -_080D5B78: .4byte 0x0000fffc -_080D5B7C: .4byte gUnknown_0202F7C9 -_080D5B80: - ldrh r0, [r5, 0x30] - adds r0, 0xC0 - strh r0, [r5, 0x30] - ldr r0, _080D5BA0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D5BA4 - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - b _080D5BAA - .align 2, 0 -_080D5BA0: .4byte gUnknown_0202F7C8 -_080D5BA4: - ldrh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 24 -_080D5BAA: - strh r0, [r5, 0x26] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080D5C4E - movs r0, 0 - strh r0, [r5, 0x34] -_080D5BD6: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080D5C4E -_080D5BDE: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x36 - ldrsh r1, [r5, r2] - bl Sin - adds r2, r0, 0 - movs r3, 0 - strh r2, [r5, 0x24] - ldrh r0, [r5, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080D5C4E - ldrh r0, [r5, 0x20] - adds r1, r2, r0 - strh r1, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r3, [r5, 0x26] - strh r3, [r5, 0x24] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x2E] - strh r1, [r5, 0x30] - ldr r4, _080D5C54 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078BD4 - ldr r0, _080D5C58 @ =sub_80D5C5C - str r0, [r5, 0x1C] -_080D5C4E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D5C54: .4byte gUnknown_0202F7C9 -_080D5C58: .4byte sub_80D5C5C - thumb_func_end sub_80D5B0C - - thumb_func_start sub_80D5C5C -sub_80D5C5C: @ 80D5C5C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D5CB4 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0x10 - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080D5C92 - cmp r2, 0xC4 - ble _080D5CBA -_080D5C92: - lsls r0, 16 - cmp r0, 0 - ble _080D5CBA - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D5CBA - ldr r0, _080D5CB0 @ =gUnknown_0202F7D2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x90 - bl PlaySE12WithPanning - b _080D5CBA - .align 2, 0 -_080D5CB0: .4byte gUnknown_0202F7D2 -_080D5CB4: - adds r0, r4, 0 - bl move_anim_8072740 -_080D5CBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5C5C - - thumb_func_start sub_80D5CC0 -sub_80D5CC0: @ 80D5CC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D5CD8 - ldr r0, _080D5D4C @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] -_080D5CD8: - movs r0, 0xC0 - lsls r0, 1 - adds r1, r0, 0 - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0xA0 - strh r0, [r4, 0x36] - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x36] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r2, r0, 0x7 - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - ldr r0, _080D5D50 @ =gMain - ldr r1, _080D5D54 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D5D84 - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D5C - ldr r0, _080D5D58 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D4C: .4byte gUnknown_03004B00 -_080D5D50: .4byte gMain -_080D5D54: .4byte 0x0000043d -_080D5D58: .4byte gUnknown_0202F7C9 -_080D5D5C: - ldr r0, _080D5D80 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D80: .4byte gUnknown_0202F7C9 -_080D5D84: - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D98 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080D5D9E -_080D5D98: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080D5D9E: - strb r0, [r1] -_080D5DA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D5DC8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D5DC8: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x1E - bne _080D5DD6 - adds r0, r4, 0 - bl move_anim_8072740 -_080D5DD6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5CC0 - - thumb_func_start sub_80D5DDC -sub_80D5DDC: @ 80D5DDC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D5E3C @ =gTasks - adds r4, r1, r0 - ldr r0, _080D5E40 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D5E02 - movs r1, 0x1 -_080D5E02: - strh r1, [r4, 0x20] - ldr r0, _080D5E44 @ =gUnknown_0202F7C9 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r0, 0x3 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D5E48 @ =sub_80D5E4C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5E3C: .4byte gTasks -_080D5E40: .4byte gUnknown_0202F7C8 -_080D5E44: .4byte gUnknown_0202F7C9 -_080D5E48: .4byte sub_80D5E4C - thumb_func_end sub_80D5DDC - - thumb_func_start sub_80D5E4C -sub_80D5E4C: @ 80D5E4C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D5E70 @ =gTasks - adds r2, r0, r1 - movs r0, 0x8 - ldrsh r3, [r2, r0] - cmp r3, 0x1 - beq _080D5F14 - cmp r3, 0x1 - bgt _080D5E74 - cmp r3, 0 - beq _080D5E82 - b _080D6074 - .align 2, 0 -_080D5E70: .4byte gTasks -_080D5E74: - cmp r3, 0x2 - bne _080D5E7A - b _080D5F9C -_080D5E7A: - cmp r3, 0x3 - bne _080D5E80 - b _080D6030 -_080D5E80: - b _080D6074 -_080D5E82: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 1 - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5EB4 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5EB0 - movs r0, 0x2 - b _080D5EB2 -_080D5EB0: - ldr r0, _080D5F0C @ =0x0000fffe -_080D5EB2: - strh r0, [r2, 0x1E] -_080D5EB4: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5EF6 - ldr r4, _080D5F10 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5EC6: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5EC6 -_080D5EF6: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080D5F06 - b _080D6074 -_080D5F06: - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F0C: .4byte 0x0000fffe -_080D5F10: .4byte gSprites -_080D5F14: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D5F3C - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ands r0, r3 - lsls r0, 16 - cmp r0, 0 - beq _080D5F38 - movs r0, 0x2 - b _080D5F3A -_080D5F38: - ldr r0, _080D5F94 @ =0x0000fffe -_080D5F3A: - strh r0, [r2, 0x1E] -_080D5F3C: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5F7E - ldr r4, _080D5F98 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5F4E: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5F4E -_080D5F7E: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x60 - bne _080D6074 - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F94: .4byte 0x0000fffe -_080D5F98: .4byte gSprites -_080D5F9C: - movs r7, 0x20 - ldrsh r1, [r2, r7] - lsls r1, 1 - ldrh r0, [r2, 0x1C] - subs r0, r1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5FD0 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5FCC - strh r3, [r2, 0x1E] - b _080D5FD0 -_080D5FCC: - ldr r0, _080D6028 @ =0x0000fffe - strh r0, [r2, 0x1E] -_080D5FD0: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D6012 - ldr r4, _080D602C @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5FE2: - movs r5, 0xE - ldrsh r0, [r2, r5] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D5FE2 -_080D6012: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080D6074 -_080D6020: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080D6074 - .align 2, 0 -_080D6028: .4byte 0x0000fffe -_080D602C: .4byte gSprites -_080D6030: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D606E - ldr r6, _080D607C @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 - movs r5, 0 -_080D6044: - movs r7, 0xE - ldrsh r0, [r2, r7] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D6044 -_080D606E: - adds r0, r4, 0 - bl move_anim_task_del -_080D6074: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D607C: .4byte gSprites - thumb_func_end sub_80D5E4C - - thumb_func_start sub_80D6080 -sub_80D6080: @ 80D6080 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_8078914 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - ldr r1, _080D60B0 @ =gUnknown_03004B00 - ldrb r2, [r1] - ldrh r3, [r1, 0x2] - movs r1, 0x10 - bl BlendPalette - adds r0, r4, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D60B0: .4byte gUnknown_03004B00 - thumb_func_end sub_80D6080 - - thumb_func_start sub_80D60B4 -sub_80D60B4: @ 80D60B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080D610C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r9, r1 - ldr r4, _080D6110 @ =gUnknown_03004B00 - mov r8, r4 - cmp r0, 0 - bne _080D60EA - ldrh r0, [r4] - strh r0, [r2, 0xA] - ldrh r0, [r4, 0x2] - strh r0, [r2, 0xC] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0xE] - ldrh r0, [r4, 0x6] - strh r0, [r2, 0x10] -_080D60EA: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _080D6114 @ =gUnknown_02024BE0 - ldr r0, _080D6118 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r5, 0x10 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080D6120 - ldr r4, _080D611C @ =gUnknown_083D9794 - movs r1, 0x8 - ldrsh r0, [r2, r1] - b _080D6126 - .align 2, 0 -_080D610C: .4byte gTasks -_080D6110: .4byte gUnknown_03004B00 -_080D6114: .4byte gUnknown_02024BE0 -_080D6118: .4byte gUnknown_0202F7C9 -_080D611C: .4byte gUnknown_083D9794 -_080D6120: - ldr r4, _080D616C @ =gUnknown_083D97A4 - movs r3, 0x8 - ldrsh r0, [r2, r3] -_080D6126: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r0, r4 - ldrb r5, [r0] - lsls r0, r7, 2 - adds r1, r0, r7 - lsls r1, 3 - add r1, r9 - movs r4, 0xE - ldrsh r1, [r1, r4] - mov r12, r0 - cmp r1, 0x1 - bne _080D6174 - ldr r2, _080D6170 @ =gSprites - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - mov r10, r0 - mov r0, r8 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r5, 24 - asrs r0, 24 - muls r0, r1 - cmp r0, 0 - bge _080D6164 - negs r0, r0 -_080D6164: - mov r5, r10 - strh r0, [r5, 0x26] - b _080D618E - .align 2, 0 -_080D616C: .4byte gUnknown_083D97A4 -_080D6170: .4byte gSprites -_080D6174: - ldr r3, _080D61C4 @ =gSprites - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - lsls r0, r5, 24 - asrs r0, 24 - mov r5, r8 - ldrh r1, [r5, 0x2] - muls r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 - adds r3, r4, 0 -_080D618E: - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r9 - movs r4, 0x8 - ldrsh r1, [r0, r4] - movs r5, 0xA - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080D61B4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl move_anim_task_del -_080D61B4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D61C4: .4byte gSprites - thumb_func_end sub_80D60B4 - - thumb_func_start sub_80D61C8 -sub_80D61C8: @ 80D61C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D61E8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D61F0 - ldr r0, _080D61EC @ =gUnknown_03004B00 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080D61FC - .align 2, 0 -_080D61E8: .4byte gUnknown_0202F7C8 -_080D61EC: .4byte gUnknown_03004B00 -_080D61F0: - ldr r1, _080D6210 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080D61FC: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080D6214 @ =sub_80D6218 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6210: .4byte gUnknown_03004B00 -_080D6214: .4byte sub_80D6218 - thumb_func_end sub_80D61C8 - - thumb_func_start sub_80D6218 -sub_80D6218: @ 80D6218 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D622E - adds r0, r2, 0 - bl move_anim_8072740 -_080D622E: - pop {r0} - bx r0 - thumb_func_end sub_80D6218 - - thumb_func_start sub_80D6234 -sub_80D6234: @ 80D6234 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D6254 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D625C - ldr r0, _080D6258 @ =gUnknown_03004B00 - ldrh r1, [r4, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r4, 0x20] - b _080D6266 - .align 2, 0 -_080D6254: .4byte gUnknown_0202F7C8 -_080D6258: .4byte gUnknown_03004B00 -_080D625C: - ldr r0, _080D6270 @ =gUnknown_03004B00 - ldrh r0, [r0] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080D6266: - ldr r0, _080D6274 @ =sub_80D6278 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6270: .4byte gUnknown_03004B00 -_080D6274: .4byte sub_80D6278 - thumb_func_end sub_80D6234 - - thumb_func_start sub_80D6278 -sub_80D6278: @ 80D6278 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D628E - adds r0, r2, 0 - bl move_anim_8074EE0 -_080D628E: - pop {r0} - bx r0 - thumb_func_end sub_80D6278 - - thumb_func_start sub_80D6294 -sub_80D6294: @ 80D6294 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D62D8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D62DC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D62E4 - ldr r2, _080D62E0 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x22] - b _080D62F8 - .align 2, 0 -_080D62D8: .4byte gUnknown_0202F7C9 -_080D62DC: .4byte gUnknown_0202F7C8 -_080D62E0: .4byte gUnknown_03004B00 -_080D62E4: - ldr r0, _080D631C @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x20] - ldrh r1, [r0, 0x2] - ldrh r2, [r5, 0x22] - adds r1, r2 - strh r1, [r5, 0x22] - adds r2, r0, 0 -_080D62F8: - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x30] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x34] - ldr r1, _080D6320 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6324 @ =sub_8078114 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D631C: .4byte gUnknown_03004B00 -_080D6320: .4byte move_anim_8074EE0 -_080D6324: .4byte sub_8078114 - thumb_func_end sub_80D6294 - - thumb_func_start sub_80D6328 -sub_80D6328: @ 80D6328 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080D6340 @ =gUnknown_03004B00 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080D63A0 - cmp r0, 0x1 - bgt _080D6344 - cmp r0, 0 - beq _080D634E - b _080D63A0 - .align 2, 0 -_080D6340: .4byte gUnknown_03004B00 -_080D6344: - cmp r0, 0x2 - beq _080D6358 - cmp r0, 0x3 - beq _080D637C - b _080D63A0 -_080D634E: - ldr r0, _080D6354 @ =gUnknown_0202F7C8 - b _080D63A2 - .align 2, 0 -_080D6354: .4byte gUnknown_0202F7C8 -_080D6358: - ldr r4, _080D6370 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080D6374 - ldrb r4, [r4] - b _080D63A4 - .align 2, 0 -_080D6370: .4byte gUnknown_0202F7C8 -_080D6374: - ldrb r0, [r4] - adds r4, r6, 0 - eors r4, r0 - b _080D63A4 -_080D637C: - ldr r0, _080D6398 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D63A0 - ldr r0, _080D639C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - eors r4, r0 - b _080D63A4 - .align 2, 0 -_080D6398: .4byte gUnknown_0202F7C8 -_080D639C: .4byte gUnknown_0202F7C9 -_080D63A0: - ldr r0, _080D63C4 @ =gUnknown_0202F7C9 -_080D63A2: - ldrb r4, [r0] -_080D63A4: - ldr r0, _080D63C8 @ =gUnknown_03004B00 - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080D63CC - adds r0, r4, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x1 - b _080D63DE - .align 2, 0 -_080D63C4: .4byte gUnknown_0202F7C9 -_080D63C8: .4byte gUnknown_03004B00 -_080D63CC: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - adds r0, r4, 0 - movs r1, 0x3 -_080D63DE: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r7, _080D647C @ =gSineTable - ldr r6, _080D6480 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, 0x40 - lsls r0, 1 - adds r0, r7 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x2 - ldrsh r0, [r6, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x26] - ldrh r1, [r6, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D6442 - adds r0, r4, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] -_080D6442: - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r0, 0x4 - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - ldr r3, _080D6484 @ =gOamMatrices - lsls r2, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r7 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x2E] - ldr r0, _080D6488 @ =sub_80DA48C - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D647C: .4byte gSineTable -_080D6480: .4byte gUnknown_03004B00 -_080D6484: .4byte gOamMatrices -_080D6488: .4byte sub_80DA48C - thumb_func_end sub_80D6328 - - thumb_func_start sub_80D648C -sub_80D648C: @ 80D648C - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080D6500 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r6, _080D6504 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x38] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x3A] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x3C] - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r5, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D6508 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D650C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r1, _080D6510 @ =sub_80D6514 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6500: .4byte gUnknown_03004B00 -_080D6504: .4byte gUnknown_0202F7C9 -_080D6508: .4byte 0x000003ff -_080D650C: .4byte 0xfffffc00 -_080D6510: .4byte sub_80D6514 - thumb_func_end sub_80D648C - - thumb_func_start sub_80D6514 -sub_80D6514: @ 80D6514 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D657E - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080D6584 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080D6584 -_080D657E: - adds r0, r4, 0 - bl move_anim_8072740 -_080D6584: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D6514 - - thumb_func_start sub_80D658C -sub_80D658C: @ 80D658C - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x38] - subs r0, 0x1 - strh r0, [r3, 0x38] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D65C4 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x36] - strh r0, [r3, 0x38] -_080D65C4: - ldrh r0, [r3, 0x34] - subs r1, r0, 0x1 - strh r1, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080D65D6 - adds r0, r3, 0 - bl move_anim_8072740 -_080D65D6: - pop {r0} - bx r0 - thumb_func_end sub_80D658C - - thumb_func_start sub_80D65DC -sub_80D65DC: @ 80D65DC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D6644 @ =gMain - ldr r1, _080D6648 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D65FE - ldr r0, _080D664C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D6606 -_080D65FE: - ldr r1, _080D6650 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080D6606: - ldr r5, _080D664C @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D6650 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4] - strh r0, [r6, 0x34] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x36] - strh r0, [r6, 0x38] - ldr r0, _080D6654 @ =sub_80D658C - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6644: .4byte gMain -_080D6648: .4byte 0x0000043d -_080D664C: .4byte gUnknown_0202F7C9 -_080D6650: .4byte gUnknown_03004B00 -_080D6654: .4byte sub_80D658C - thumb_func_end sub_80D65DC - - thumb_func_start sub_80D6658 -sub_80D6658: @ 80D6658 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r1, _080D6674 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - movs r2, 0xE - ldrsh r0, [r1, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080D667C - ldr r0, _080D6678 @ =gUnknown_0202F7C9 - b _080D667E - .align 2, 0 -_080D6674: .4byte gUnknown_03004B00 -_080D6678: .4byte gUnknown_0202F7C9 -_080D667C: - ldr r0, _080D670C @ =gUnknown_0202F7C8 -_080D667E: - ldrb r6, [r0] - ldr r0, _080D6710 @ =gMain - ldr r3, _080D6714 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D669C - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D66A4 -_080D669C: - ldr r1, _080D6718 @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080D66A4: - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080D6718 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r5, 0x20] - adds r0, r6, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x2] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldr r0, _080D671C @ =0x00007fff - ands r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x3A] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x3C] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0xC - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D6720 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D6724 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r1, _080D6728 @ =sub_80D672C - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D670C: .4byte gUnknown_0202F7C8 -_080D6710: .4byte gMain -_080D6714: .4byte 0x0000043d -_080D6718: .4byte gUnknown_03004B00 -_080D671C: .4byte 0x00007fff -_080D6720: .4byte 0x000003ff -_080D6724: .4byte 0xfffffc00 -_080D6728: .4byte sub_80D672C - thumb_func_end sub_80D6658 - - thumb_func_start sub_80D672C -sub_80D672C: @ 80D672C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080D6782 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D6782: - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080D6794 - adds r0, r4, 0 - bl move_anim_8072740 -_080D6794: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D672C - - thumb_func_start sub_80D679C -sub_80D679C: @ 80D679C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080D67D8 @ =gUnknown_03004B00 - movs r5, 0x6 - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r1, r0 - ldr r5, _080D67DC @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _080D67E0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x6 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080D67E4 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - b _080D67F2 - .align 2, 0 -_080D67D8: .4byte gUnknown_03004B00 -_080D67DC: .4byte 0x000003ff -_080D67E0: .4byte 0xfffffc00 -_080D67E4: - cmp r0, 0x2 - bne _080D67F6 - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x20 -_080D67F2: - orrs r1, r0 - strb r1, [r4, 0x3] -_080D67F6: - ldr r0, _080D6810 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080D6814 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D6818 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6810: .4byte gUnknown_03004B00 -_080D6814: .4byte sub_80782D8 -_080D6818: .4byte move_anim_8072740 - thumb_func_end sub_80D679C - - thumb_func_start sub_80D681C -sub_80D681C: @ 80D681C - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080D6864 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - ldr r1, _080D6868 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - lsls r0, 24 - ldr r5, _080D686C @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x8] - ldrb r0, [r6] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldr r0, _080D6870 @ =sub_80D6874 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D6864: .4byte gUnknown_0202F7C9 -_080D6868: .4byte gTasks -_080D686C: .4byte gUnknown_03004B00 -_080D6870: .4byte sub_80D6874 - thumb_func_end sub_80D681C - - thumb_func_start sub_80D6874 -sub_80D6874: @ 80D6874 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - movs r7, 0 - ldr r1, _080D68B4 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0xC] - str r2, [sp] - ldrh r4, [r0, 0x8] - ldrh r6, [r0, 0xA] - movs r3, 0xC - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0 - bne _080D68B8 - movs r0, 0 - mov r8, r0 - movs r2, 0x1 - movs r1, 0x10 - mov r12, r1 - b _080D68C2 - .align 2, 0 -_080D68B4: .4byte gTasks -_080D68B8: - movs r2, 0x10 - mov r12, r2 - movs r3, 0x8 - mov r8, r3 - movs r2, 0x4 -_080D68C2: - mov r0, r9 - lsls r1, r0, 2 - adds r0, r1, r0 - lsls r0, 3 - add r0, r10 - movs r3, 0x1C - ldrsh r0, [r0, r3] - mov r10, r1 - cmp r0, 0xA - bhi _080D69B8 - lsls r0, 2 - ldr r1, _080D68E0 @ =_080D68E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D68E0: .4byte _080D68E4 - .align 2, 0 -_080D68E4: - .4byte _080D6910 - .4byte _080D69B8 - .4byte _080D6924 - .4byte _080D69B8 - .4byte _080D6944 - .4byte _080D69B8 - .4byte _080D695A - .4byte _080D69B8 - .4byte _080D697C - .4byte _080D69B8 - .4byte _080D69B0 -_080D6910: - ldr r0, _080D6920 @ =gSpriteTemplate_83D9938 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - mov r4, r12 - lsls r3, r4, 16 - b _080D6992 - .align 2, 0 -_080D6920: .4byte gSpriteTemplate_83D9938 -_080D6924: - mov r0, r12 - lsls r3, r0, 17 - mov r1, r8 - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080D6940 @ =gSpriteTemplate_83D9938 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080D6992 - .align 2, 0 -_080D6940: .4byte gSpriteTemplate_83D9938 -_080D6944: - mov r3, r12 - lsls r0, r3, 16 - asrs r0, 16 - lsls r3, r0, 1 - adds r3, r0 - lsls r0, r2, 1 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - b _080D6986 -_080D695A: - mov r0, r12 - lsls r3, r0, 18 - lsls r0, r2, 1 - adds r0, r2 - add r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080D6978 @ =gSpriteTemplate_83D9938 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - b _080D6992 - .align 2, 0 -_080D6978: .4byte gSpriteTemplate_83D9938 -_080D697C: - mov r1, r12 - lsls r0, r1, 16 - asrs r0, 16 - lsls r3, r0, 2 - adds r3, r0 -_080D6986: - ldr r0, _080D69AC @ =gSpriteTemplate_83D9938 - lsls r1, r4, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r2, 16 - lsls r3, 16 -_080D6992: - asrs r3, 16 - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - b _080D69B8 - .align 2, 0 -_080D69AC: .4byte gSpriteTemplate_83D9938 -_080D69B0: - mov r0, r9 - bl move_anim_task_del - b _080D69FC -_080D69B8: - cmp r7, 0 - beq _080D69EC - ldr r4, _080D6A0C @ =gSprites - lsls r3, r5, 4 - adds r3, r5 - lsls r3, 2 - adds r0, r3, r4 - ldrh r5, [r0, 0x4] - lsls r2, r5, 22 - lsrs r2, 22 - add r2, r8 - ldr r6, _080D6A10 @ =0x000003ff - adds r1, r6, 0 - ands r2, r1 - ldr r1, _080D6A14 @ =0xfffffc00 - ands r1, r5 - orrs r1, r2 - strh r1, [r0, 0x4] - mov r1, sp - ldrh r1, [r1] - strh r1, [r0, 0x2E] - adds r4, 0x1C - adds r3, r4 - ldr r1, [r3] - bl _call_via_r1 -_080D69EC: - ldr r0, _080D6A18 @ =gTasks - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1C] - adds r0, 0x1 - strh r0, [r1, 0x1C] -_080D69FC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D6A0C: .4byte gSprites -_080D6A10: .4byte 0x000003ff -_080D6A14: .4byte 0xfffffc00 -_080D6A18: .4byte gTasks - thumb_func_end sub_80D6874 - - thumb_func_start sub_80D6A1C -sub_80D6A1C: @ 80D6A1C - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080D6A3E - ldrb r1, [r3, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r2, r0 - strb r2, [r3, 0x3] - b _080D6A52 -_080D6A3E: - ldrb r2, [r3, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3, 0x1] - ldrb r0, [r3, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r3, 0x3] -_080D6A52: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _080D6A66 - adds r0, r3, 0 - bl DestroySprite -_080D6A66: - pop {r0} - bx r0 - thumb_func_end sub_80D6A1C - - thumb_func_start sub_80D6A6C -sub_80D6A6C: @ 80D6A6C - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080D6AD4 @ =gUnknown_03004B00 - ldrh r1, [r0] - ldrh r2, [r4, 0x20] - adds r1, r2 - strh r1, [r4, 0x20] - ldrh r0, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950 - adds r1, 0x20 - lsls r1, 16 - asrs r1, 16 - movs r7, 0x22 - ldrsh r2, [r4, r7] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080D6ADC @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r6, r2, r3 - ldrh r5, [r6, 0x4] - lsls r1, r5, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r7, _080D6AE0 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080D6AE4 @ =0xfffffc00 - ands r0, r5 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080D6AE8 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080D6AEC @ =sub_80D6AF0 - str r0, [r2] - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D6AD4: .4byte gUnknown_03004B00 -_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 -_080D6ADC: .4byte gSprites -_080D6AE0: .4byte 0x000003ff -_080D6AE4: .4byte 0xfffffc00 -_080D6AE8: .4byte gUnknown_0202F7B2 -_080D6AEC: .4byte sub_80D6AF0 - thumb_func_end sub_80D6A6C - - thumb_func_start sub_80D6AF0 -sub_80D6AF0: @ 80D6AF0 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080D6B24 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080D6B24: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080D6B38 - adds r0, r3, 0 - bl move_anim_8072740 -_080D6B38: - pop {r0} - bx r0 - thumb_func_end sub_80D6AF0 - - thumb_func_start sub_80D6B3C -sub_80D6B3C: @ 80D6B3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D6B5C @ =gTasks - adds r5, r1, r0 - ldr r0, _080D6B60 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6B68 - ldr r4, _080D6B64 @ =gUnknown_0202F7C8 - b _080D6B6A - .align 2, 0 -_080D6B5C: .4byte gTasks -_080D6B60: .4byte gUnknown_03004B00 -_080D6B64: .4byte gUnknown_0202F7C8 -_080D6B68: - ldr r4, _080D6BAC @ =gUnknown_0202F7C9 -_080D6B6A: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x26] - ldr r2, _080D6BB0 @ =gUnknown_03004B00 - ldrh r0, [r2, 0x2] - movs r1, 0 - strh r0, [r5, 0x14] - strh r1, [r5, 0x16] - strh r1, [r5, 0x18] - strh r1, [r5, 0x1A] - strh r1, [r5, 0x1C] - ldrh r0, [r2, 0x6] - strh r0, [r5, 0x1E] - strh r1, [r5, 0x20] - ldrh r0, [r2, 0x4] - strh r0, [r5, 0x22] - ldr r0, _080D6BB4 @ =sub_80D6BB8 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6BAC: .4byte gUnknown_0202F7C9 -_080D6BB0: .4byte gUnknown_03004B00 -_080D6BB4: .4byte sub_80D6BB8 - thumb_func_end sub_80D6B3C - - thumb_func_start sub_80D6BB8 -sub_80D6BB8: @ 80D6BB8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, r6, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D6CA0 @ =gTasks - adds r5, r0, r1 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D6CB8 - ldrh r0, [r5, 0x20] - adds r0, 0x1 - movs r7, 0 - strh r0, [r5, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x22 - ldrsh r1, [r5, r2] - cmp r0, r1 - ble _080D6CC6 - strh r7, [r5, 0x20] - ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8 - movs r3, 0x24 - ldrsh r1, [r5, r3] - movs r3, 0x26 - ldrsh r2, [r5, r3] - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080D6CC6 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080D6CA8 @ =gSprites - adds r4, r0 - ldr r1, _080D6CAC @ =gUnknown_083D9968 - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r0, [r4, 0x20] - adds r3, r0 - strh r3, [r4, 0x20] - movs r2, 0x1A - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r4, 0x22] - adds r2, r0 - strh r2, [r4, 0x22] - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - movs r0, 0x28 - subs r0, r1 - strh r0, [r4, 0x2E] - strh r3, [r4, 0x30] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x32] - strh r2, [r4, 0x34] - ldrh r0, [r5, 0x26] - strh r0, [r4, 0x36] - strh r6, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D6CB0 @ =sub_80D6D00 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6CB4 @ =sub_8078600 - str r0, [r4, 0x1C] - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - strh r0, [r5, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080D6C70 - strh r7, [r5, 0x1A] -_080D6C70: - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r5, r2] - cmp r0, r1 - blt _080D6C92 - strh r7, [r5, 0x1C] - ldrh r1, [r5, 0x18] - movs r3, 0x18 - ldrsh r0, [r5, r3] - cmp r0, 0x5 - bgt _080D6C92 - adds r0, r1, 0x1 - strh r0, [r5, 0x18] -_080D6C92: - ldrh r0, [r5, 0x16] - adds r0, 0x1 - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x14] - subs r0, 0x1 - strh r0, [r5, 0x14] - b _080D6CC6 - .align 2, 0 -_080D6CA0: .4byte gTasks -_080D6CA4: .4byte gSpriteTemplate_83D99B8 -_080D6CA8: .4byte gSprites -_080D6CAC: .4byte gUnknown_083D9968 -_080D6CB0: .4byte sub_80D6D00 -_080D6CB4: .4byte sub_8078600 -_080D6CB8: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D6CC6 - adds r0, r2, 0 - bl move_anim_task_del -_080D6CC6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80D6BB8 - - thumb_func_start sub_80D6CCC -sub_80D6CCC: @ 80D6CCC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D6CF4 - ldr r2, _080D6CFC @ =gTasks - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x16] - subs r1, 0x1 - strh r1, [r0, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080D6CF4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6CFC: .4byte gTasks - thumb_func_end sub_80D6CCC - - thumb_func_start sub_80D6D00 -sub_80D6D00: @ 80D6D00 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080D6D14 @ =sub_80D6CCC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6D14: .4byte sub_80D6CCC - thumb_func_end sub_80D6D00 - - thumb_func_start sub_80D6D18 -sub_80D6D18: @ 80D6D18 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D6D2C @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6D34 - ldr r4, _080D6D30 @ =gUnknown_0202F7C8 - b _080D6D36 - .align 2, 0 -_080D6D2C: .4byte gUnknown_03004B00 -_080D6D30: .4byte gUnknown_0202F7C8 -_080D6D34: - ldr r4, _080D6D64 @ =gUnknown_0202F7C9 -_080D6D36: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D6D68 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6D6C @ =sub_80785E4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6D64: .4byte gUnknown_0202F7C9 -_080D6D68: .4byte move_anim_8074EE0 -_080D6D6C: .4byte sub_80785E4 - thumb_func_end sub_80D6D18 - - thumb_func_start sub_80D6D70 -sub_80D6D70: @ 80D6D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D6D84 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D6D8C - ldr r4, _080D6D88 @ =gUnknown_0202F7C8 - b _080D6D8E - .align 2, 0 -_080D6D84: .4byte gUnknown_03004B00 -_080D6D88: .4byte gUnknown_0202F7C8 -_080D6D8C: - ldr r4, _080D6DC8 @ =gUnknown_0202F7C9 -_080D6D8E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D6DCC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x24] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x26] - ldr r1, _080D6DD0 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D6DD4 @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6DC8: .4byte gUnknown_0202F7C9 -_080D6DCC: .4byte gUnknown_03004B00 -_080D6DD0: .4byte move_anim_8072740 -_080D6DD4: .4byte sub_8078600 - thumb_func_end sub_80D6D70 - - thumb_func_start sub_80D6DD8 -sub_80D6DD8: @ 80D6DD8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r4, _080D6E30 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3A] - movs r0, 0x10 - strh r0, [r5, 0x3C] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080D6E26 - movs r1, 0x3C - ldrsh r0, [r5, r1] - negs r0, r0 - strh r0, [r5, 0x3C] -_080D6E26: - ldr r0, _080D6E34 @ =sub_80D6E38 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D6E30: .4byte gUnknown_0202F7C8 -_080D6E34: .4byte sub_80D6E38 - thumb_func_end sub_80D6DD8 - - thumb_func_start sub_80D6E38 -sub_80D6E38: @ 80D6E38 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D6E4A - cmp r0, 0x1 - beq _080D6E60 - b _080D6E90 -_080D6E4A: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D6E90 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D6E90 -_080D6E60: - ldrh r2, [r4, 0x3C] - ldrh r1, [r4, 0x20] - adds r0, r2, r1 - strh r0, [r4, 0x20] - ldr r3, _080D6E98 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - adds r2, r1 - strh r2, [r0, 0x24] - ldrh r0, [r4, 0x20] - adds r0, 0x50 - lsls r0, 16 - movs r1, 0xC8 - lsls r1, 17 - cmp r0, r1 - bls _080D6E90 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080D6E90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D6E98: .4byte gSprites - thumb_func_end sub_80D6E38 - - thumb_func_start sub_80D6E9C -sub_80D6E9C: @ 80D6E9C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080D6EC0 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D6F30 - cmp r0, 0x1 - bgt _080D6EC4 - cmp r0, 0 - beq _080D6ED0 - b _080D7000 - .align 2, 0 -_080D6EC0: .4byte gTasks -_080D6EC4: - cmp r0, 0x2 - beq _080D6F8C - cmp r0, 0x3 - bne _080D6ECE - b _080D6FE0 -_080D6ECE: - b _080D7000 -_080D6ED0: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x26] - ldr r4, _080D6F04 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D6F0C - ldr r0, _080D6F08 @ =0x0000ffe0 - strh r0, [r5, 0x24] - movs r0, 0x2 - b _080D6F12 - .align 2, 0 -_080D6F04: .4byte gUnknown_0202F7C8 -_080D6F08: .4byte 0x0000ffe0 -_080D6F0C: - movs r0, 0x20 - strh r0, [r5, 0x24] - ldr r0, _080D6F28 @ =0x0000fffe -_080D6F12: - strh r0, [r5, 0x22] - ldr r2, _080D6F2C @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r5, 0x24] - strh r1, [r0, 0x24] - b _080D6FD2 - .align 2, 0 -_080D6F28: .4byte 0x0000fffe -_080D6F2C: .4byte gSprites -_080D6F30: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D7000 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r4, _080D6F88 @ =gSprites - movs r1, 0x26 - ldrsh r0, [r5, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r1, [r5, 0x24] - movs r2, 0x24 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D6FD2 - ldrh r2, [r5, 0x22] - adds r2, r1, r2 - strh r2, [r5, 0x24] - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - b _080D7000 - .align 2, 0 -_080D6F88: .4byte gSprites -_080D6F8C: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D7000 - movs r0, 0 - strh r0, [r5, 0xA] - ldr r1, _080D6FDC @ =gSprites - movs r2, 0x26 - ldrsh r0, [r5, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080D7000 -_080D6FD2: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D7000 - .align 2, 0 -_080D6FDC: .4byte gSprites -_080D6FE0: - ldr r2, _080D7008 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r3, 0 - bl move_anim_task_del -_080D7000: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D7008: .4byte gSprites - thumb_func_end sub_80D6E9C - - thumb_func_start sub_80D700C -sub_80D700C: @ 80D700C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D7030 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080D7026 - b _080D714C -_080D7026: - cmp r0, 0x1 - bgt _080D7034 - cmp r0, 0 - beq _080D703C - b _080D718E - .align 2, 0 -_080D7030: .4byte gTasks -_080D7034: - cmp r0, 0x2 - bne _080D703A - b _080D7180 -_080D703A: - b _080D718E -_080D703C: - ldr r4, _080D707C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D7052 - movs r1, 0x1 -_080D7052: - movs r6, 0 - strh r1, [r5, 0xA] - ldr r0, _080D7080 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r3, r0, 0 - cmp r2, 0 - beq _080D7088 - cmp r2, 0x4 - beq _080D70B0 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D70E8 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0xE] - ldr r0, _080D7084 @ =0x0000fff0 - b _080D70F0 - .align 2, 0 -_080D707C: .4byte gUnknown_0202F7C8 -_080D7080: .4byte gUnknown_03004B00 -_080D7084: .4byte 0x0000fff0 -_080D7088: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 7 - adds r0, 0x78 - strh r0, [r5, 0x10] - b _080D7126 -_080D70B0: - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r1, 7 - movs r0, 0x78 - subs r0, r1 - strh r0, [r5, 0xE] - ldr r4, _080D70E4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x12] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xA - ldrsh r1, [r5, r2] - lsls r1, 5 - subs r0, r1 - strh r0, [r5, 0x10] - b _080D7126 - .align 2, 0 -_080D70E4: .4byte gUnknown_0202F7C9 -_080D70E8: - ldr r0, _080D710C @ =0x0000fff0 - strh r0, [r5, 0xE] - movs r0, 0x80 - lsls r0, 1 -_080D70F0: - strh r0, [r5, 0x10] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080D7110 - movs r2, 0 - ldrsh r0, [r3, r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 1 - movs r0, 0x50 - subs r0, r1 - strh r0, [r5, 0x12] - b _080D7126 - .align 2, 0 -_080D710C: .4byte 0x0000fff0 -_080D7110: - movs r0, 0 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, 0x28 - strh r0, [r5, 0x12] - ldrh r1, [r5, 0xE] - ldrh r0, [r5, 0x10] - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] -_080D7126: - movs r2, 0xE - ldrsh r1, [r5, r2] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _080D713C - movs r1, 0 - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0x14] - b _080D7178 -_080D713C: - ldr r0, _080D7148 @ =0x0000ffff - strh r0, [r5, 0xA] - movs r0, 0x3 - strh r0, [r5, 0x14] - b _080D7178 - .align 2, 0 -_080D7148: .4byte 0x0000ffff -_080D714C: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - ble _080D718E - movs r0, 0 - strh r0, [r5, 0xC] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D7194 - lsls r0, 24 - cmp r0, 0 - bne _080D7178 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D7194 - lsls r0, 24 - cmp r0, 0 - beq _080D718E -_080D7178: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D718E -_080D7180: - movs r1, 0x16 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D718E - adds r0, r4, 0 - bl move_anim_task_del -_080D718E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80D700C - - thumb_func_start sub_80D7194 -sub_80D7194: @ 80D7194 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10 - movs r2, 0xE - ldrsh r1, [r4, r2] - movs r3, 0x12 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D71CA - ldr r1, _080D7224 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - strh r5, [r0, 0x3A] - movs r1, 0x7 - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080D71CA: - ldrh r1, [r4, 0xA] - ldrh r5, [r4, 0x14] - adds r0, r1, r5 - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - bge _080D71DC - movs r0, 0x3 - strh r0, [r4, 0x14] -_080D71DC: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - ble _080D71E8 - movs r0, 0 - strh r0, [r4, 0x14] -_080D71E8: - movs r3, 0xA - ldrsh r0, [r4, r3] - lsls r0, 4 - ldrh r5, [r4, 0xE] - adds r2, r0, r5 - strh r2, [r4, 0xE] - lsls r0, r1, 16 - asrs r3, r0, 16 - cmp r3, 0x1 - bne _080D7208 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x10 - ldrsh r1, [r4, r5] - cmp r0, r1 - bge _080D721C -_080D7208: - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080D7228 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x10 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _080D7228 -_080D721C: - movs r0, 0x1 - b _080D722A - .align 2, 0 -_080D7220: .4byte gSpriteTemplate_83D9B10 -_080D7224: .4byte gSprites -_080D7228: - movs r0, 0 -_080D722A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D7194 - - thumb_func_start sub_80D7230 -sub_80D7230: @ 80D7230 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080D7270 - ldr r3, _080D7278 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D7270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7278: .4byte gTasks - thumb_func_end sub_80D7230 - - thumb_func_start sub_80D727C -sub_80D727C: @ 80D727C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D728E - cmp r0, 0x1 - beq _080D72C0 - b _080D72D4 -_080D728E: - ldr r4, _080D72BC @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080D72D4 - .align 2, 0 -_080D72BC: .4byte gUnknown_0202F7C8 -_080D72C0: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D72D4 - adds r0, r5, 0 - bl move_anim_8074EE0 -_080D72D4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D727C - - thumb_func_start sub_80D72DC -sub_80D72DC: @ 80D72DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D7300 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080D72F6 - b _080D7468 -_080D72F6: - lsls r0, 2 - ldr r1, _080D7304 @ =_080D7308 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D7300: .4byte gTasks -_080D7304: .4byte _080D7308 - .align 2, 0 -_080D7308: - .4byte _080D731C - .4byte _080D73AC - .4byte _080D73E8 - .4byte _080D7444 - .4byte _080D7454 -_080D731C: - ldr r4, _080D73A0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - ldr r0, _080D73A4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - movs r2, 0x1C - ldrsh r0, [r5, r2] - movs r2, 0x14 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x5 - bl __divsi3 - strh r0, [r5, 0x1A] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080D73A8 @ =0x0000ffff - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - subs r0, 0x4C - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x20] - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x22] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x24] - movs r1, 0x22 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r1, 0x3 - bl __divsi3 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - b _080D7466 - .align 2, 0 -_080D73A0: .4byte gUnknown_0202F7C8 -_080D73A4: .4byte gUnknown_0202F7C9 -_080D73A8: .4byte 0x0000ffff -_080D73AC: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _080D73DC - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80D7470 - lsls r0, 24 - cmp r0, 0 - beq _080D73DC - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bne _080D73D6 - movs r0, 0x3 - b _080D73DA -_080D73D6: - ldrh r0, [r5, 0x8] - adds r0, 0x1 -_080D73DA: - strh r0, [r5, 0x8] -_080D73DC: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D7468 - b _080D745E -_080D73E8: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D73F6 - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] -_080D73F6: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - movs r3, 0 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D7468 - strh r3, [r5, 0xA] - ldrh r1, [r5, 0xC] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080D7422 - movs r0, 0x4 - strh r0, [r5, 0x16] - movs r0, 0x44 - strh r0, [r5, 0x18] - strh r3, [r5, 0x10] - strh r2, [r5, 0x12] - b _080D7432 -_080D7422: - movs r0, 0x44 - strh r0, [r5, 0x16] - movs r0, 0x4 - strh r0, [r5, 0x18] - movs r0, 0x7 - strh r0, [r5, 0x10] - ldr r0, _080D7440 @ =0x0000ffff - strh r0, [r5, 0x12] -_080D7432: - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080D7464 - movs r0, 0x4 - b _080D7466 - .align 2, 0 -_080D7440: .4byte 0x0000ffff -_080D7444: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D7468 - adds r0, r2, 0 - bl move_anim_task_del - b _080D7468 -_080D7454: - ldrh r1, [r5, 0x1E] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080D7464 -_080D745E: - subs r0, r1, 0x1 - strh r0, [r5, 0x1E] - b _080D7468 -_080D7464: - movs r0, 0x1 -_080D7466: - strh r0, [r5, 0x8] -_080D7468: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D72DC - - thumb_func_start sub_80D7470 -sub_80D7470: @ 80D7470 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40 - movs r2, 0x14 - ldrsh r1, [r4, r2] - movs r3, 0x16 - ldrsh r2, [r4, r3] - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080D74DC - ldr r1, _080D753C @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldrh r6, [r4, 0x10] - adds r1, r6 - ldr r6, _080D7540 @ =0x000003ff - adds r0, r6, 0 - ands r1, r0 - ldr r0, _080D7544 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _080D74C4 - movs r0, 0x7 - strh r0, [r4, 0x10] -_080D74C4: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x7 - ble _080D74D0 - movs r0, 0 - strh r0, [r4, 0x10] -_080D74D0: - strh r5, [r3, 0x3A] - movs r0, 0x3 - strh r0, [r3, 0x3C] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080D74DC: - movs r3, 0x10 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080D74FE - movs r5, 0x12 - ldrsh r0, [r4, r5] - cmp r0, 0 - ble _080D74FE - ldrh r1, [r4, 0x26] - ldrh r6, [r4, 0x24] - adds r1, r6 - strh r1, [r4, 0x24] - lsls r1, 24 - asrs r1, 24 - movs r0, 0x76 - bl PlaySE12WithPanning -_080D74FE: - movs r0, 0x12 - ldrsh r3, [r4, r0] - ldrh r2, [r4, 0x16] - cmp r3, 0 - bge _080D7514 - lsls r0, r2, 16 - asrs r0, 16 - movs r5, 0x18 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080D7524 -_080D7514: - cmp r3, 0 - ble _080D7548 - lsls r0, r2, 16 - asrs r0, 16 - movs r6, 0x18 - ldrsh r1, [r4, r6] - cmp r0, r1 - blt _080D7548 -_080D7524: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1A] - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r0, 0x1 - b _080D7554 - .align 2, 0 -_080D7538: .4byte gSpriteTemplate_83D9B40 -_080D753C: .4byte gSprites -_080D7540: .4byte 0x000003ff -_080D7544: .4byte 0xfffffc00 -_080D7548: - movs r3, 0x12 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r0, r2, r0 - strh r0, [r4, 0x16] - movs r0, 0 -_080D7554: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80D7470 - - thumb_func_start sub_80D755C -sub_80D755C: @ 80D755C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080D7592 - ldr r3, _080D7598 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D7592: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7598: .4byte gTasks - thumb_func_end sub_80D755C - - thumb_func_start sub_80D759C -sub_80D759C: @ 80D759C - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D75C0 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080D7618 - cmp r0, 0x1 - bgt _080D75C4 - cmp r0, 0 - beq _080D75CA - b _080D764E - .align 2, 0 -_080D75C0: .4byte gTasks -_080D75C4: - cmp r0, 0x2 - beq _080D7640 - b _080D764E -_080D75CA: - ldr r0, _080D7614 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x26] - strh r0, [r5, 0x24] - cmp r0, 0x10 - ble _080D75F4 - adds r2, r0, 0 -_080D75E4: - adds r1, r2, 0 - subs r1, 0x20 - adds r2, r1, 0 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x10 - bgt _080D75E4 - strh r1, [r5, 0x24] -_080D75F4: - ldr r4, _080D7614 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r5, 0x20] - b _080D7638 - .align 2, 0 -_080D7614: .4byte gUnknown_0202F7C9 -_080D7618: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D764E - movs r0, 0 - strh r0, [r5, 0xA] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80D7654 - lsls r0, 24 - cmp r0, 0 - beq _080D764E -_080D7638: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080D764E -_080D7640: - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D764E - adds r0, r2, 0 - bl move_anim_task_del -_080D764E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D759C - - thumb_func_start sub_80D7654 -sub_80D7654: @ 80D7654 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0 - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080D7698 - ldr r3, _080D76B4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _080D76B8 @ =sub_80D76C4 - str r2, [r1] - adds r0, r3 - strh r5, [r0, 0x3A] - movs r1, 0xA - strh r1, [r0, 0x3C] - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] -_080D7698: - ldrh r2, [r4, 0x24] - movs r0, 0x24 - ldrsh r1, [r4, r0] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _080D76BC - adds r0, r2, 0 - adds r0, 0x20 - strh r0, [r4, 0x24] - movs r0, 0 - b _080D76BE - .align 2, 0 -_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 -_080D76B4: .4byte gSprites -_080D76B8: .4byte sub_80D76C4 -_080D76BC: - movs r0, 0x1 -_080D76BE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D7654 - - thumb_func_start sub_80D76C4 -sub_80D76C4: @ 80D76C4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D76F8 - ldr r3, _080D7700 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_080D76F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7700: .4byte gTasks - thumb_func_end sub_80D76C4 - - thumb_func_start sub_80D7704 -sub_80D7704: @ 80D7704 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x7 - ldr r3, _080D780C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D7810 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r4, _080D7814 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080D7818 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - str r3, [sp] - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080D781C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r3 - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x4] - mov r4, r9 - adds r0, r4, r0 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - adds r0, r6 - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - adds r4, 0x20 - movs r0, 0x98 - lsls r0, 1 - mov r12, r0 - ldr r3, [sp] - cmp r4, r12 - bhi _080D77DE - adds r0, r7, 0 - adds r0, 0x20 - ldrh r1, [r5, 0x30] - ldrh r2, [r5, 0x32] - cmp r0, 0xE0 - bhi _080D77DE - adds r4, r1, 0 - mov r10, r12 -_080D77AA: - mov r7, r9 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r4 - lsls r1, 16 - mov r7, r8 - lsls r0, r7, 16 - asrs r0, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r0, r1, 16 - mov r9, r0 - movs r7, 0x80 - lsls r7, 14 - adds r1, r7 - lsrs r1, 16 - cmp r1, r10 - bhi _080D77DE - mov r1, r8 - lsls r0, r1, 16 - adds r0, r7 - lsrs r0, 16 - cmp r0, 0xE0 - bls _080D77AA -_080D77DE: - ldrh r0, [r5, 0x30] - negs r7, r0 - strh r7, [r5, 0x30] - ldrh r0, [r5, 0x32] - negs r4, r0 - strh r4, [r5, 0x32] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r0, 16 - movs r2, 0x98 - lsls r2, 1 - mov r12, r2 - ldr r1, _080D781C @ =gUnknown_03004B00 - mov r10, r1 - cmp r0, r12 - bhi _080D784A - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 14 - adds r0, r1, r2 - b _080D7842 - .align 2, 0 -_080D780C: .4byte 0x000003ff -_080D7810: .4byte 0xfffffc00 -_080D7814: .4byte gUnknown_0202F7C9 -_080D7818: .4byte gUnknown_0202F7C8 -_080D781C: .4byte gUnknown_03004B00 -_080D7820: - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r7 - lsls r1, 16 - asrs r0, r2, 16 - adds r0, r4 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r3, r1, 16 - movs r0, 0x80 - lsls r0, 14 - adds r1, r0 - lsrs r1, 16 - cmp r1, r12 - bhi _080D784A - lsls r1, r6, 16 - adds r0, r1, r0 -_080D7842: - lsrs r0, 16 - adds r2, r1, 0 - cmp r0, 0xE0 - bls _080D7820 -_080D784A: - strh r3, [r5, 0x20] - strh r6, [r5, 0x22] - mov r1, r10 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - strh r3, [r5, 0x30] - mov r2, r9 - strh r2, [r5, 0x32] - strh r6, [r5, 0x34] - mov r3, r8 - strh r3, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - mov r7, r10 - ldrh r0, [r7, 0xA] - strh r0, [r5, 0x34] - ldrh r0, [r7, 0xC] - strh r0, [r5, 0x36] - ldr r0, _080D7884 @ =sub_80D7888 - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7884: .4byte sub_80D7888 - thumb_func_end sub_80D7704 - - thumb_func_start sub_80D7888 -sub_80D7888: @ 80D7888 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D78E0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - strh r1, [r4, 0x24] - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - b _080D78E6 -_080D78E0: - adds r0, r4, 0 - bl move_anim_8072740 -_080D78E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7888 - - thumb_func_start sub_80D78EC -sub_80D78EC: @ 80D78EC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7920 @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080D7924 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080D7928 @ =sub_8078174 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7920: .4byte gUnknown_03004B00 -_080D7924: .4byte move_anim_8072740 -_080D7928: .4byte sub_8078174 - thumb_func_end sub_80D78EC - - thumb_func_start sub_80D792C -sub_80D792C: @ 80D792C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D7960 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r0, _080D7964 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D796C - ldr r0, _080D7968 @ =gUnknown_03004B00 - ldrh r1, [r4, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r4, 0x32] - b _080D7976 - .align 2, 0 -_080D7960: .4byte gUnknown_0202F7C9 -_080D7964: .4byte gUnknown_0202F7C8 -_080D7968: .4byte gUnknown_03004B00 -_080D796C: - ldr r0, _080D79A4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] -_080D7976: - ldr r0, _080D79A8 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r1, _080D79A4 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r2, [r1, 0x6] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldr r1, _080D79AC @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D79B0 @ =sub_8078B34 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D79A4: .4byte gUnknown_03004B00 -_080D79A8: .4byte gUnknown_0202F7C9 -_080D79AC: .4byte move_anim_8072740 -_080D79B0: .4byte sub_8078B34 - thumb_func_end sub_80D792C - - thumb_func_start sub_80D79B4 -sub_80D79B4: @ 80D79B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D79CC @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D79D0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D7A06 - .align 2, 0 -_080D79CC: .4byte gUnknown_03004B00 -_080D79D0: - ldr r0, _080D7A18 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D7A1C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D79F6 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D79F6: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7A06: - ldr r1, _080D7A20 @ =sub_80D7A28 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D7A24 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7A18: .4byte gUnknown_0202F7C9 -_080D7A1C: .4byte gUnknown_0202F7C8 -_080D7A20: .4byte sub_80D7A28 -_080D7A24: .4byte sub_80785E4 - thumb_func_end sub_80D79B4 - - thumb_func_start sub_80D7A28 -sub_80D7A28: @ 80D7A28 - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D7A5E - adds r0, r3, 0 - bl move_anim_8074EE0 -_080D7A5E: - pop {r0} - bx r0 - thumb_func_end sub_80D7A28 - - thumb_func_start sub_80D7A64 -sub_80D7A64: @ 80D7A64 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080D7AAC @ =gUnknown_03004B00 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7AB4 - ldr r4, _080D7AB0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - b _080D7AC6 - .align 2, 0 -_080D7AAC: .4byte gUnknown_03004B00 -_080D7AB0: .4byte gUnknown_0202F7C9 -_080D7AB4: - ldr r0, _080D7AE0 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080D7AC6: - ldr r0, _080D7AE4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7AEC - ldr r0, _080D7AE8 @ =gUnknown_03004B00 - ldrh r1, [r5, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x32] - b _080D7AF6 - .align 2, 0 -_080D7AE0: .4byte gUnknown_0202F7C9 -_080D7AE4: .4byte gUnknown_0202F7C8 -_080D7AE8: .4byte gUnknown_03004B00 -_080D7AEC: - ldr r0, _080D7B94 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7AF6: - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7B00: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B00 - adds r0, r5, 0 - bl sub_8078D60 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7B22: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7B56 - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7B56 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7B22 -_080D7B56: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r6, _080D7B98 @ =sub_8078D8C - ldr r1, _080D7B9C @ =sub_80D7BA0 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7B76: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B76 - str r6, [r5, 0x1C] - adds r0, r5, 0 - bl oamt_set_x3A_32 - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7B94: .4byte gUnknown_03004B00 -_080D7B98: .4byte sub_8078D8C -_080D7B9C: .4byte sub_80D7BA0 - thumb_func_end sub_80D7A64 - - thumb_func_start sub_80D7BA0 -sub_80D7BA0: @ 80D7BA0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r5, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - movs r0, 0x80 - strh r0, [r4, 0x2E] - ldr r0, _080D7BFC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080D7C00 @ =0x0000ffec - cmp r0, 0 - beq _080D7BD0 - movs r1, 0x14 -_080D7BD0: - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - ldr r1, _080D7C04 @ =sub_80D7C08 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7BFC: .4byte gUnknown_0202F7C8 -_080D7C00: .4byte 0x0000ffec -_080D7C04: .4byte sub_80D7C08 - thumb_func_end sub_80D7BA0 - - thumb_func_start sub_80D7C08 -sub_80D7C08: @ 80D7C08 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7C5C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080D7C60 @ =0x0000ffec - cmp r0, 0 - beq _080D7C1E - movs r1, 0x14 -_080D7C1E: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bgt _080D7C64 - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x36] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080D7C82 - .align 2, 0 -_080D7C5C: .4byte gUnknown_0202F7C8 -_080D7C60: .4byte 0x0000ffec -_080D7C64: - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - ldr r0, _080D7C88 @ =sub_80D7C8C - str r0, [r4, 0x1C] -_080D7C82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7C88: .4byte sub_80D7C8C - thumb_func_end sub_80D7C08 - - thumb_func_start sub_80D7C8C -sub_80D7C8C: @ 80D7C8C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078CE8 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7CC8 - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bgt _080D7CC8 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7CCE -_080D7CC8: - adds r0, r4, 0 - bl move_anim_8072740 -_080D7CCE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7C8C - - thumb_func_start sub_80D7CD4 -sub_80D7CD4: @ 80D7CD4 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080D7D18 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D7D20 - ldr r4, _080D7D1C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080D7D32 - .align 2, 0 -_080D7D18: .4byte gUnknown_03004B00 -_080D7D1C: .4byte gUnknown_0202F7C9 -_080D7D20: - ldr r0, _080D7D50 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080D7D32: - ldr r0, _080D7D54 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7D5C - ldr r0, _080D7D58 @ =gUnknown_03004B00 - ldrh r1, [r5, 0x32] - ldrh r2, [r0, 0x4] - subs r1, r2 - strh r1, [r5, 0x32] - adds r1, r0, 0 - b _080D7D66 - .align 2, 0 -_080D7D50: .4byte gUnknown_0202F7C9 -_080D7D54: .4byte gUnknown_0202F7C8 -_080D7D58: .4byte gUnknown_03004B00 -_080D7D5C: - ldr r1, _080D7E10 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7D66: - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078D60 - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7D7E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7D7E - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7D9A: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7DCE - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7DCE - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7D9A -_080D7DCE: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r1, _080D7E10 @ =gUnknown_03004B00 - ldr r6, _080D7E14 @ =sub_80D7E18 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7DEE: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7DEE - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r1, 0xC] - strh r0, [r5, 0x3A] - str r6, [r5, 0x1C] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7E10: .4byte gUnknown_03004B00 -_080D7E14: .4byte sub_80D7E18 - thumb_func_end sub_80D7CD4 - - thumb_func_start sub_80D7E18 -sub_80D7E18: @ 80D7E18 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7E2C - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080D7E2C: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D7E82 - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7E7C - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7E7C - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7E82 -_080D7E7C: - adds r0, r4, 0 - bl move_anim_8072740 -_080D7E82: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7E18 - - thumb_func_start sub_80D7E88 -sub_80D7E88: @ 80D7E88 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7EF4 - ldr r5, _080D7EA8 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D7EAC - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 - b _080D7EE2 - .align 2, 0 -_080D7EA8: .4byte gUnknown_03004B00 -_080D7EAC: - ldr r0, _080D7EEC @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldr r0, _080D7EF0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7ED2 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D7ED2: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7EE2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D7F08 - .align 2, 0 -_080D7EEC: .4byte gUnknown_0202F7C9 -_080D7EF0: .4byte gUnknown_0202F7C8 -_080D7EF4: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D7F08 - adds r0, r4, 0 - bl move_anim_8072740 -_080D7F08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D7E88 - - thumb_func_start sub_80D7F10 -sub_80D7F10: @ 80D7F10 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D7F30 @ =gUnknown_03004B00 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F80 - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F34 - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - b _080D7F72 - .align 2, 0 -_080D7F30: .4byte gUnknown_03004B00 -_080D7F34: - ldr r4, _080D7F5C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7F60 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7F66 - .align 2, 0 -_080D7F5C: .4byte gUnknown_0202F7C8 -_080D7F60: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7F66: - strh r0, [r5, 0x20] - ldr r0, _080D7F78 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7F72: - ldr r0, _080D7F7C @ =gUnknown_0202F7C8 - b _080D7FD0 - .align 2, 0 -_080D7F78: .4byte gUnknown_03004B00 -_080D7F7C: .4byte gUnknown_0202F7C8 -_080D7F80: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F92 - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 - b _080D7FCE -_080D7F92: - ldr r4, _080D7FB8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D7FBC - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7FC2 - .align 2, 0 -_080D7FB8: .4byte gUnknown_0202F7C9 -_080D7FBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7FC2: - strh r0, [r5, 0x20] - ldr r0, _080D7FEC @ =gUnknown_03004B00 - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7FCE: - ldr r0, _080D7FF0 @ =gUnknown_0202F7C9 -_080D7FD0: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - ldr r0, _080D7FEC @ =gUnknown_03004B00 - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D7FE8 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _080D7FF4 -_080D7FE8: - movs r0, 0x20 - b _080D7FF6 - .align 2, 0 -_080D7FEC: .4byte gUnknown_03004B00 -_080D7FF0: .4byte gUnknown_0202F7C9 -_080D7FF4: - movs r0, 0x40 -_080D7FF6: - strh r0, [r5, 0x3A] - ldr r0, _080D803C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D800C - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080D800C: - ldr r1, _080D8040 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrh r1, [r1, 0x4] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x40 - strh r0, [r5, 0x38] - ldr r1, _080D8044 @ =sub_80D8048 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D803C: .4byte gUnknown_0202F7C9 -_080D8040: .4byte gUnknown_03004B00 -_080D8044: .4byte sub_80D8048 - thumb_func_end sub_80D7F10 - - thumb_func_start sub_80D8048 -sub_80D8048: @ 80D8048 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D80D2 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0x6 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D80A4 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D80C6 -_080D80A4: - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080D80C6: - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080D80D8 -_080D80D2: - adds r0, r4, 0 - bl move_anim_8072740 -_080D80D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8048 - - thumb_func_start sub_80D80E0 -sub_80D80E0: @ 80D80E0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D81A8 @ =REG_BLDCNT - ldr r2, _080D81AC @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D81B0 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D812A - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D812A: - ldr r0, _080D81B4 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D81B8 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080D81BC @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D81C0 @ =0x040000d4 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D81C4 @ =0x85000400 - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D81C8 @ =gWeatherFog1Tiles - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D81CC @ =0x80000400 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D81D0 @ =gWeatherFog1Tilemap - bl LZDecompressVram - ldr r0, _080D81D4 @ =gUnknown_083970E8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D8190 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D8190: - ldr r0, _080D81D8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D81DC @ =sub_80D81E0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D81A8: .4byte REG_BLDCNT -_080D81AC: .4byte 0x00003f42 -_080D81B0: .4byte REG_BG1CNT -_080D81B4: .4byte gUnknown_030042C0 -_080D81B8: .4byte gUnknown_030041B4 -_080D81BC: .4byte REG_BG1HOFS -_080D81C0: .4byte 0x040000d4 -_080D81C4: .4byte 0x85000400 -_080D81C8: .4byte gWeatherFog1Tiles -_080D81CC: .4byte 0x80000400 -_080D81D0: .4byte gWeatherFog1Tilemap -_080D81D4: .4byte gUnknown_083970E8 -_080D81D8: .4byte gTasks -_080D81DC: .4byte sub_80D81E0 - thumb_func_end sub_80D80E0 - - thumb_func_start sub_80D81E0 -sub_80D81E0: @ 80D81E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080D8220 @ =gUnknown_030042C0 - ldr r1, _080D8224 @ =0x0000ffff - adds r0, r1, 0 - ldrh r4, [r2] - adds r0, r4 - strh r0, [r2] - ldr r1, _080D8228 @ =gUnknown_030041B4 - ldr r3, _080D822C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - movs r4, 0x20 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080D8214 - b _080D83B0 -_080D8214: - lsls r0, 2 - ldr r1, _080D8230 @ =_080D8234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8220: .4byte gUnknown_030042C0 -_080D8224: .4byte 0x0000ffff -_080D8228: .4byte gUnknown_030041B4 -_080D822C: .4byte gTasks -_080D8230: .4byte _080D8234 - .align 2, 0 -_080D8234: - .4byte _080D8248 - .4byte _080D82A0 - .4byte _080D82C2 - .4byte _080D8304 - .4byte _080D838C -_080D8248: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080D8262 - b _080D83B0 -_080D8262: - strh r4, [r3, 0x1C] - ldrh r0, [r3, 0x1A] - adds r0, 0x1 - strh r0, [r3, 0x1A] - ldr r1, _080D8298 @ =gUnknown_083D9D6C - movs r2, 0x1A - ldrsh r0, [r3, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r3, 0x1E] - ldr r2, _080D829C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0x9 - beq _080D828C - b _080D83B0 -_080D828C: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8298: .4byte gUnknown_083D9D6C -_080D829C: .4byte REG_BLDALPHA -_080D82A0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1E] - adds r0, 0x1 - strh r0, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D83B0 - movs r0, 0x9 - strh r0, [r3, 0x1E] - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - b _080D83B0 -_080D82C2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D83B0 - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D8300 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D83B0 - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8300: .4byte REG_BLDALPHA -_080D8304: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r4, r6, 2 - mov r10, r4 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D83C0 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D83C4 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D832A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D832A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D83C0 @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D83C8 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D8378 - ldr r2, _080D83CC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8378: - ldr r0, _080D83D0 @ =gTasks - mov r4, r10 - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r2, _080D83D4 @ =gUnknown_030042C0 - ldr r4, _080D83D8 @ =gUnknown_030041B4 -_080D838C: - movs r1, 0 - strh r1, [r2] - strh r1, [r4] - ldr r0, _080D83DC @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D83CC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl move_anim_task_del -_080D83B0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D83C0: .4byte 0x040000d4 -_080D83C4: .4byte 0x85000400 -_080D83C8: .4byte 0x85000200 -_080D83CC: .4byte REG_BG1CNT -_080D83D0: .4byte gTasks -_080D83D4: .4byte gUnknown_030042C0 -_080D83D8: .4byte gUnknown_030041B4 -_080D83DC: .4byte REG_BLDCNT - thumb_func_end sub_80D81E0 - - thumb_func_start sub_80D83E0 -sub_80D83E0: @ 80D83E0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D840C @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080D8410 @ =sub_807941C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D840C: .4byte gUnknown_0202F7C8 -_080D8410: .4byte sub_807941C - thumb_func_end sub_80D83E0 - - thumb_func_start sub_80D8414 -sub_80D8414: @ 80D8414 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D84E0 @ =REG_BLDCNT - ldr r2, _080D84E4 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D84E8 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D845E - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D845E: - ldr r0, _080D84EC @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080D84F0 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080D84F4 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D84F8 @ =0x040000d4 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D84FC @ =0x85000400 - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D8500 @ =gWeatherFog1Tiles - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D8504 @ =0x80000400 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D8508 @ =gWeatherFog1Tilemap - bl LZDecompressVram - ldr r0, _080D850C @ =gUnknown_083970E8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D84C4 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D84C4: - ldr r1, _080D8510 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080D8514 @ =0x0000ffff - strh r1, [r0, 0x26] - ldr r1, _080D8518 @ =sub_80D851C - str r1, [r0] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D84E0: .4byte REG_BLDCNT -_080D84E4: .4byte 0x00003f42 -_080D84E8: .4byte REG_BG1CNT -_080D84EC: .4byte gUnknown_030042C0 -_080D84F0: .4byte gUnknown_030041B4 -_080D84F4: .4byte REG_BG1HOFS -_080D84F8: .4byte 0x040000d4 -_080D84FC: .4byte 0x85000400 -_080D8500: .4byte gWeatherFog1Tiles -_080D8504: .4byte 0x80000400 -_080D8508: .4byte gWeatherFog1Tilemap -_080D850C: .4byte gUnknown_083970E8 -_080D8510: .4byte gTasks -_080D8514: .4byte 0x0000ffff -_080D8518: .4byte sub_80D851C - thumb_func_end sub_80D8414 - - thumb_func_start sub_80D851C -sub_80D851C: @ 80D851C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _080D8558 @ =gUnknown_030042C0 - ldr r4, _080D855C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x26] - ldrh r2, [r3] - adds r0, r2 - strh r0, [r3] - ldr r2, _080D8560 @ =gUnknown_030041B4 - movs r5, 0x20 - ldrsh r0, [r1, r5] - cmp r0, 0x4 - bls _080D854C - b _080D86D0 -_080D854C: - lsls r0, 2 - ldr r1, _080D8564 @ =_080D8568 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8558: .4byte gUnknown_030042C0 -_080D855C: .4byte gTasks -_080D8560: .4byte gUnknown_030041B4 -_080D8564: .4byte _080D8568 - .align 2, 0 -_080D8568: - .4byte _080D857C - .4byte _080D85C0 - .4byte _080D85E2 - .4byte _080D8624 - .4byte _080D86AC -_080D857C: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080D85B8 @ =gUnknown_083D9D98 - movs r2, 0x1A - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - ldr r2, _080D85BC @ =REG_BLDALPHA - movs r0, 0x11 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r5, 0x1E - ldrsh r0, [r4, r5] - cmp r0, 0x5 - beq _080D85AC - b _080D86D0 -_080D85AC: - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D85B8: .4byte gUnknown_083D9D98 -_080D85BC: .4byte REG_BLDALPHA -_080D85C0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D86D0 - movs r0, 0x5 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D86D0 -_080D85E2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D86D0 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - ldr r2, _080D8620 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x1E - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080D86D0 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D8620: .4byte REG_BLDALPHA -_080D8624: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r1, r6, 2 - mov r10, r1 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D86E0 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D86E4 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D864A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D864A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D86E0 @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D86E8 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080D8698 - ldr r2, _080D86EC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8698: - ldr r0, _080D86F0 @ =gTasks - mov r5, r10 - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r3, _080D86F4 @ =gUnknown_030042C0 - ldr r2, _080D86F8 @ =gUnknown_030041B4 -_080D86AC: - movs r1, 0 - strh r1, [r3] - strh r1, [r2] - ldr r0, _080D86FC @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D86EC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl move_anim_task_del -_080D86D0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D86E0: .4byte 0x040000d4 -_080D86E4: .4byte 0x85000400 -_080D86E8: .4byte 0x85000200 -_080D86EC: .4byte REG_BG1CNT -_080D86F0: .4byte gTasks -_080D86F4: .4byte gUnknown_030042C0 -_080D86F8: .4byte gUnknown_030041B4 -_080D86FC: .4byte REG_BLDCNT - thumb_func_end sub_80D851C - - thumb_func_start sub_80D8700 -sub_80D8700: @ 80D8700 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r6, _080D87E8 @ =gUnknown_03004B00 - ldrh r0, [r6] - strh r0, [r5, 0x2E] - ldr r0, _080D87EC @ =gUnknown_0202F7C8 - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - ldr r7, _080D87F0 @ =gUnknown_0202F7C9 - ldrb r0, [r7] - movs r1, 0x2 - bl sub_8077ABC - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080D8734 - movs r0, 0x80 - lsls r0, 8 - strh r0, [r5, 0x3C] -_080D8734: - ldr r3, _080D87F4 @ =gUnknown_02024A72 - ldrb r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8794 - ldrh r0, [r6, 0x2] - negs r0, r0 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x6] - negs r0, r0 - strh r0, [r6, 0x6] - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080D8790 - mov r1, r8 - ldrb r0, [r1] - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8790 - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - ldr r2, _080D87F8 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] -_080D8790: - movs r0, 0x1 - strh r0, [r5, 0x3A] -_080D8794: - ldr r4, _080D87EC @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r6, _080D87E8 @ =gUnknown_03004B00 - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080D87FC - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D87F0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - b _080D8824 - .align 2, 0 -_080D87E8: .4byte gUnknown_03004B00 -_080D87EC: .4byte gUnknown_0202F7C8 -_080D87F0: .4byte gUnknown_0202F7C9 -_080D87F4: .4byte gUnknown_02024A72 -_080D87F8: .4byte gSprites -_080D87FC: - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D886C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x1 -_080D8824: - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x8] - adds r0, r6 - strh r0, [r5, 0x36] - ldrb r0, [r4] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 16 - ldrh r1, [r5, 0x3C] - orrs r0, r1 - strh r0, [r5, 0x3C] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D8858 - movs r0, 0x1 - strh r0, [r5, 0x3A] - adds r1, r5, 0 - adds r1, 0x43 - movs r0, 0x80 - strb r0, [r1] -_080D8858: - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080D8870 @ =sub_80D8874 - str r0, [r5, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D886C: .4byte gUnknown_0202F7C9 -_080D8870: .4byte sub_80D8874 - thumb_func_end sub_80D8700 - - thumb_func_start sub_80D8874 -sub_80D8874: @ 80D8874 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - movs r5, 0xFF - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x1 - beq _080D8968 - cmp r1, 0x1 - bgt _080D888E - cmp r1, 0 - beq _080D8896 - b _080D8AD0 -_080D888E: - cmp r1, 0x2 - bne _080D8894 - b _080D8A94 -_080D8894: - b _080D8AD0 -_080D8896: - adds r0, r4, 0 - bl sub_8078B5C - ldr r1, _080D88C0 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 4 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D88C4 - ldrh r0, [r4, 0x38] - subs r0, 0x8 - b _080D88C8 - .align 2, 0 -_080D88C0: .4byte gSineTable -_080D88C4: - ldrh r0, [r4, 0x38] - adds r0, 0x8 -_080D88C8: - ands r0, r5 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D88D6 - b _080D8AD0 -_080D88D6: - movs r5, 0x50 - strh r5, [r4, 0x2E] - ldr r6, _080D8928 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x1D - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldr r0, _080D892C @ =gMain - ldr r2, _080D8930 @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - ldr r1, _080D8934 @ =gUnknown_02024A72 - ldrb r0, [r6] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - movs r0, 0xCC - strh r0, [r4, 0x38] - b _080D893A - .align 2, 0 -_080D8928: .4byte gUnknown_0202F7C9 -_080D892C: .4byte gMain -_080D8930: .4byte 0x0000043d -_080D8934: .4byte gUnknown_02024A72 -_080D8938: - strh r5, [r4, 0x38] -_080D893A: - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080D8964 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 3 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - b _080D8AD0 - .align 2, 0 -_080D8964: .4byte gSineTable -_080D8968: - adds r0, r4, 0 - bl sub_8078B5C - ldr r1, _080D89C8 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r0, 3 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - adds r0, 0x40 - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - negs r0, r0 - asrs r0, 8 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r0, _080D89CC @ =gMain - ldr r2, _080D89D0 @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D89F2 - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - adds r3, r1, 0 - cmp r0, 0x7F - bhi _080D89D4 - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - b _080D89DC - .align 2, 0 -_080D89C8: .4byte gSineTable -_080D89CC: .4byte gMain -_080D89D0: .4byte 0x0000043d -_080D89D4: - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - adds r1, 0x1 -_080D89DC: - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r3, 0x4 - b _080D8A12 -_080D89F2: - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D8A06 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x80 - b _080D8A0C -_080D8A06: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x8C -_080D8A0C: - strb r0, [r1] - ldrh r0, [r4, 0x38] - subs r0, 0x4 -_080D8A12: - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _080D8AD0 - movs r2, 0 - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x36] - ldr r0, _080D8A68 @ =gMain - ldr r1, _080D8A6C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - ldr r1, _080D8A70 @ =gUnknown_02024A72 - ldr r0, _080D8A74 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - movs r0, 0x80 - lsls r0, 1 - b _080D8A7A - .align 2, 0 -_080D8A68: .4byte gMain -_080D8A6C: .4byte 0x0000043d -_080D8A70: .4byte gUnknown_02024A72 -_080D8A74: .4byte gUnknown_0202F7C9 -_080D8A78: - ldr r0, _080D8A90 @ =0x0000fff0 -_080D8A7A: - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_8078BD4 - b _080D8AD0 - .align 2, 0 -_080D8A90: .4byte 0x0000fff0 -_080D8A94: - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080D8AD0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8AC2 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080D8AC2: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080D8AD8 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080D8AD0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8AD8: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80D8874 - - thumb_func_start sub_80D8ADC -sub_80D8ADC: @ 80D8ADC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D8AF0 @ =gTasks - adds r1, r0 - ldr r0, _080D8AF4 @ =sub_80D8AF8 - str r0, [r1] - bx lr - .align 2, 0 -_080D8AF0: .4byte gTasks -_080D8AF4: .4byte sub_80D8AF8 - thumb_func_end sub_80D8ADC - - thumb_func_start sub_80D8AF8 -sub_80D8AF8: @ 80D8AF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D8B1C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080D8B3C - cmp r5, 0x1 - bgt _080D8B20 - cmp r5, 0 - beq _080D8B26 - b _080D8BA0 - .align 2, 0 -_080D8B1C: .4byte gTasks -_080D8B20: - cmp r5, 0x2 - beq _080D8B92 - b _080D8BA0 -_080D8B26: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D8BA0 - strh r5, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0xC] - b _080D8B78 -_080D8B3C: - ldrh r1, [r4, 0x12] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080D8B8C - ldrb r0, [r4, 0xE] - ldrb r1, [r4, 0xC] - movs r3, 0x1 - bl sub_80D8BA8 - lsls r0, 24 - cmp r0, 0 - beq _080D8B5C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_080D8B5C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080D8B88 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080D8B80 -_080D8B78: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B80: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B88: - strh r5, [r4, 0x12] - b _080D8BA0 -_080D8B8C: - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - b _080D8BA0 -_080D8B92: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8BA0 - adds r0, r2, 0 - bl move_anim_task_del -_080D8BA0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D8AF8 - - thumb_func_start sub_80D8BA8 -sub_80D8BA8: @ 80D8BA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _080D8C20 @ =gUnknown_083D9DC4 - lsrs r0, 22 - adds r4, r0, r1 - ldrb r0, [r4, 0x3] - lsls r0, 24 - asrs r0, 28 - mov r8, r0 - cmp r0, 0x2 - beq _080D8C94 - ldrh r0, [r4, 0x2] - lsls r0, 20 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080D8C94 - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r8 - cmp r1, 0 - beq _080D8C24 - cmp r1, 0x1 - beq _080D8C5A - b _080D8CA6 - .align 2, 0 -_080D8C20: .4byte gUnknown_083D9DC4 -_080D8C24: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r0 - b _080D8C8E -_080D8C5A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 -_080D8C8E: - lsls r1, 16 - lsrs r6, r1, 16 - b _080D8CA6 -_080D8C94: - ldrh r0, [r4] - lsls r0, 22 - asrs r0, 6 - lsrs r7, r0, 16 - ldr r0, [r4] - lsls r0, 12 - asrs r0, 22 - lsls r0, 16 - lsrs r6, r0, 16 -_080D8CA6: - lsls r0, r6, 16 - asrs r0, 16 - adds r0, 0x8 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - negs r2, r2 - movs r3, 0x12 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080D8D08 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _080D8D04 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - mov r1, r9 - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - strh r7, [r4, 0x34] - strh r6, [r4, 0x36] - mov r1, r9 - strh r1, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - mov r1, r10 - strh r1, [r4, 0x3C] - movs r0, 0x1 - b _080D8D0A - .align 2, 0 -_080D8D00: .4byte gSpriteTemplate_83D9E3C -_080D8D04: .4byte gSprites -_080D8D08: - movs r0, 0 -_080D8D0A: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8BA8 - - thumb_func_start sub_80D8D1C -sub_80D8D1C: @ 80D8D1C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r2, r1, 0 - adds r2, 0x8 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _080D8D46 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080D8DF6 -_080D8D46: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080D8DC8 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8DC8 - ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78 - movs r2, 0x34 - ldrsh r1, [r4, r2] - movs r3, 0x36 - ldrsh r2, [r4, r3] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - cmp r0, 0x40 - beq _080D8DAA - ldr r2, _080D8DC0 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080D8DC4 @ =sub_80D8E00 - str r1, [r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3A] - strh r1, [r0, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3C] - strh r1, [r0, 0x3C] -_080D8DAA: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _080D8DF6 - .align 2, 0 -_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 -_080D8DC0: .4byte gSprites -_080D8DC4: .4byte sub_80D8E00 -_080D8DC8: - ldr r3, _080D8DFC @ =gTasks - movs r2, 0x3C - ldrsh r1, [r4, r2] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8DF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8DFC: .4byte gTasks - thumb_func_end sub_80D8D1C - - thumb_func_start sub_80D8E00 -sub_80D8E00: @ 80D8E00 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D8E40 - ldr r3, _080D8E48 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8E40: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8E48: .4byte gTasks - thumb_func_end sub_80D8E00 - - thumb_func_start unc_080B06FC -unc_080B06FC: @ 80D8E4C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080D8ECC @ =gUnknown_0202F7B4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080D8E6A - movs r1, 0x4 -_080D8E6A: - adds r0, r5, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r6, _080D8ED0 @ =gUnknown_03004B00 - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080D8ED4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D8E92 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080D8E92: - ldr r4, _080D8ED8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080D8EDC @ =sub_80D8EE0 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8ECC: .4byte gUnknown_0202F7B4 -_080D8ED0: .4byte gUnknown_03004B00 -_080D8ED4: .4byte gUnknown_0202F7C8 -_080D8ED8: .4byte gUnknown_0202F7C9 -_080D8EDC: .4byte sub_80D8EE0 - thumb_func_end unc_080B06FC - - thumb_func_start sub_80D8EE0 -sub_80D8EE0: @ 80D8EE0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D8F02 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080D8F08 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080D8F0C @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080D8F02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8F08: .4byte sub_8078600 -_080D8F0C: .4byte move_anim_8072740 - thumb_func_end sub_80D8EE0 - - thumb_func_start sub_80D8F10 -sub_80D8F10: @ 80D8F10 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080D8F64 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D8F68 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080D8F6C @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080D8F56 - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080D8F56: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080D8F70 @ =sub_80D8F74 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8F64: .4byte 0x000003ff -_080D8F68: .4byte 0xfffffc00 -_080D8F6C: .4byte 0x000001ff -_080D8F70: .4byte sub_80D8F74 - thumb_func_end sub_80D8F10 - - thumb_func_start sub_80D8F74 -sub_80D8F74: @ 80D8F74 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080D8F98 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080D8F9C -_080D8F98: - lsls r0, r3, 16 - asrs r0, 24 -_080D8F9C: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D8FBA - adds r0, r2, 0 - bl move_anim_8072740 -_080D8FBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8F74 - - thumb_func_start sub_80D8FC0 -sub_80D8FC0: @ 80D8FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D8FE8 @ =gUnknown_03004B00 - ldrb r3, [r1] - lsls r3, 1 - adds r3, r1 - ldr r1, _080D8FEC @ =gUnknown_0202F7B4 - ldr r1, [r1] - ldrb r1, [r1, 0x11] - lsrs r2, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r2, r1 - subs r2, 0x1 - strh r2, [r3] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080D8FE8: .4byte gUnknown_03004B00 -_080D8FEC: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80D8FC0 - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 80D8FF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9020 @ =gUnknown_03004B00 - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0xF - strh r0, [r4, 0x2E] - ldr r0, _080D9024 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D9028 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9020: .4byte gUnknown_03004B00 -_080D9024: .4byte sub_80782D8 -_080D9028: .4byte move_anim_8072740 - thumb_func_end unc_080B08A0 - - thumb_func_start sub_80D902C -sub_80D902C: @ 80D902C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9070 @ =gUnknown_03004B00 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D9054 - ldr r0, _080D9074 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9054 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r4, 0x6] -_080D9054: - ldr r4, _080D9070 @ =gUnknown_03004B00 - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0xC] - adds r0, r5, 0 - bl sub_8079534 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9070: .4byte gUnknown_03004B00 -_080D9074: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80D902C - - thumb_func_start sub_80D9078 -sub_80D9078: @ 80D9078 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9094 - ldr r0, _080D90A0 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080D9094: - adds r0, r4, 0 - bl sub_80D902C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D90A0: .4byte gUnknown_03004B00 - thumb_func_end sub_80D9078 - - thumb_func_start sub_80D90A4 -sub_80D90A4: @ 80D90A4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D90C4 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x8] - bl StartSpriteAnim - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D90C8 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080D90D0 - .align 2, 0 -_080D90C4: .4byte gUnknown_03004B00 -_080D90C8: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080D90D0: - ldr r0, _080D90E8 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080D90EC @ =sub_80782D8 - str r0, [r5, 0x1C] - ldr r1, _080D90F0 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D90E8: .4byte gUnknown_03004B00 -_080D90EC: .4byte sub_80782D8 -_080D90F0: .4byte move_anim_8072740 - thumb_func_end sub_80D90A4 - - thumb_func_start sub_80D90F4 -sub_80D90F4: @ 80D90F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _080D9110 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - mov r9, r0 - cmp r1, 0 - bne _080D9118 - ldr r0, _080D9114 @ =gUnknown_0202F7C8 - b _080D911A - .align 2, 0 -_080D9110: .4byte gUnknown_03004B00 -_080D9114: .4byte gUnknown_0202F7C8 -_080D9118: - ldr r0, _080D9260 @ =gUnknown_0202F7C9 -_080D911A: - ldrb r0, [r0] - mov r8, r0 - mov r4, r9 - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080D9138 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strh r0, [r4, 0x4] -_080D9138: - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - mov r0, r8 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - mov r0, r8 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - mov r0, r8 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r6, r1, 16 - mov r0, r8 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080D9182 - adds r0, 0x3 -_080D9182: - lsls r4, r0, 14 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91C4 - lsls r0, r6, 16 - negs r0, r0 - lsrs r6, r0, 16 -_080D91C4: - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91D6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080D91D6: - ldr r0, _080D9264 @ =gUnknown_02024A72 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080D91EC - lsls r0, r4, 16 - ldr r1, _080D9268 @ =0xfff00000 - adds r0, r1 - lsrs r4, r0, 16 -_080D91EC: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - mov r1, r9 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - adds r3, r5, 0 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3C] - cmp r0, 0x40 - beq _080D9250 - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080D9270 @ =gSprites - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - movs r2, 0x3C - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080D9274 @ =SpriteCallbackDummy - str r1, [r0] -_080D9250: - ldr r0, _080D9278 @ =sub_80D927C - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9260: .4byte gUnknown_0202F7C9 -_080D9264: .4byte gUnknown_02024A72 -_080D9268: .4byte 0xfff00000 -_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 -_080D9270: .4byte gSprites -_080D9274: .4byte SpriteCallbackDummy -_080D9278: .4byte sub_80D927C - thumb_func_end sub_80D90F4 - - thumb_func_start sub_80D927C -sub_80D927C: @ 80D927C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080D92C4 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x40 - beq _080D92B8 - ldr r4, _080D92C0 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080D92B8: - adds r0, r5, 0 - bl move_anim_8072740 - b _080D92C8 - .align 2, 0 -_080D92C0: .4byte gSprites -_080D92C4: - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] -_080D92C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D927C - - thumb_func_start sub_80D92D0 -sub_80D92D0: @ 80D92D0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - movs r0, 0x1E - strh r0, [r4, 0x2E] - ldr r0, _080D92F0 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D92F4 - ldrh r0, [r4, 0x20] - subs r0, 0x14 - strh r0, [r4, 0x32] - b _080D9306 - .align 2, 0 -_080D92F0: .4byte gUnknown_03004B00 -_080D92F4: - ldrh r0, [r4, 0x20] - adds r0, 0x14 - strh r0, [r4, 0x32] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080D9306: - ldrh r0, [r4, 0x22] - subs r0, 0x14 - strh r0, [r4, 0x36] - ldr r0, _080D9320 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D9324 @ =sub_80D9328 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9320: .4byte sub_8078B34 -_080D9324: .4byte sub_80D9328 - thumb_func_end sub_80D92D0 - - thumb_func_start sub_80D9328 -sub_80D9328: @ 80D9328 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080D9368 - ldrh r2, [r5, 0x20] - ldrh r4, [r5, 0x24] - subs r0, r2, r4 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x22] - ldrh r3, [r5, 0x26] - subs r0, r1, r3 - strh r0, [r5, 0x36] - movs r0, 0x8 - strh r0, [r5, 0x2E] - adds r2, r4 - strh r2, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x22] - strh r6, [r5, 0x26] - strh r6, [r5, 0x24] - ldr r0, _080D9370 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D9374 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080D9368: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9370: .4byte sub_8078B34 -_080D9374: .4byte move_anim_8072740 - thumb_func_end sub_80D9328 - - thumb_func_start sub_80D9378 -sub_80D9378: @ 80D9378 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D93F4 @ =gUnknown_0202F7C8 - ldrb r1, [r0] - movs r0, 0x2 - ldr r2, _080D93F8 @ =gUnknown_0202F7C9 - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _080D93A4 - ldrb r0, [r2] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080D93A4 - ldr r1, _080D93FC @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080D93A4: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D93F4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D93C2 - ldr r1, _080D93FC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D93C2: - ldr r4, _080D93FC @ =gUnknown_03004B00 - ldrh r0, [r4, 0x6] - movs r5, 0 - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x3A] - strh r5, [r6, 0x3C] - ldr r0, _080D9400 @ =sub_80D9404 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D93F4: .4byte gUnknown_0202F7C8 -_080D93F8: .4byte gUnknown_0202F7C9 -_080D93FC: .4byte gUnknown_03004B00 -_080D9400: .4byte sub_80D9404 - thumb_func_end sub_80D9378 - - thumb_func_start sub_80D9404 -sub_80D9404: @ 80D9404 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D9430 - ldrh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] - b _080D9436 -_080D9430: - adds r0, r4, 0 - bl move_anim_8072740 -_080D9436: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9404 - - thumb_func_start sub_80D943C -sub_80D943C: @ 80D943C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r5, _080D9468 @ =gUnknown_03004B00 - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldr r0, _080D946C @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D9470 @ =sub_80D9474 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9468: .4byte gUnknown_03004B00 -_080D946C: .4byte sub_80782D8 -_080D9470: .4byte sub_80D9474 - thumb_func_end sub_80D943C - - thumb_func_start sub_80D9474 -sub_80D9474: @ 80D9474 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r0, _080D94A0 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D94A4 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94A0: .4byte sub_80782D8 -_080D94A4: .4byte move_anim_8072740 - thumb_func_end sub_80D9474 - - thumb_func_start sub_80D94A8 -sub_80D94A8: @ 80D94A8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D94C4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080D94C8 @ =sub_80D94CC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94C4: .4byte gUnknown_03004B00 -_080D94C8: .4byte sub_80D94CC - thumb_func_end sub_80D94A8 - - thumb_func_start sub_80D94CC -sub_80D94CC: @ 80D94CC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9510 - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080D9518 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D951C @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D9520 @ =sub_80D9524 - adds r0, r5, 0 - bl oamt_set_x3A_32 -_080D9510: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9518: .4byte gUnknown_0202F7C9 -_080D951C: .4byte sub_8078B34 -_080D9520: .4byte sub_80D9524 - thumb_func_end sub_80D94CC - - thumb_func_start sub_80D9524 -sub_80D9524: @ 80D9524 - push {lr} - movs r1, 0xF - strh r1, [r0, 0x2E] - ldr r1, _080D9538 @ =sub_80782D8 - str r1, [r0, 0x1C] - ldr r1, _080D953C @ =move_anim_8072740 - bl oamt_set_x3A_32 - pop {r0} - bx r0 - .align 2, 0 -_080D9538: .4byte sub_80782D8 -_080D953C: .4byte move_anim_8072740 - thumb_func_end sub_80D9524 - - thumb_func_start sub_80D9540 -sub_80D9540: @ 80D9540 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D956C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r1, _080D9568 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D95C8 - .align 2, 0 -_080D9568: .4byte gUnknown_03004B00 -_080D956C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080D95BA - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D95BA: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080D95C8 - adds r0, r4, 0 - bl move_anim_8072740 -_080D95C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9540 - - thumb_func_start sub_80D95D0 -sub_80D95D0: @ 80D95D0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D95E4 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D95EC - ldr r4, _080D95E8 @ =gUnknown_0202F7C8 - b _080D95EE - .align 2, 0 -_080D95E4: .4byte gUnknown_03004B00 -_080D95E8: .4byte gUnknown_0202F7C8 -_080D95EC: - ldr r4, _080D9634 @ =gUnknown_0202F7C9 -_080D95EE: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9638 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x4] - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - strh r2, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldr r0, _080D963C @ =sub_80D9640 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9634: .4byte gUnknown_0202F7C9 -_080D9638: .4byte gUnknown_03004B00 -_080D963C: .4byte sub_80D9640 - thumb_func_end sub_80D95D0 - - thumb_func_start sub_80D9640 -sub_80D9640: @ 80D9640 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080D9652 - cmp r2, 0x1 - beq _080D9676 - b _080D96B0 -_080D9652: - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D966E - adds r0, r1, 0 - bl move_anim_8072740 - b _080D96B0 -_080D966E: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080D96B0 -_080D9676: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D969E - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - ands r0, r2 - lsls r0, 16 - cmp r0, 0 - beq _080D969A - movs r0, 0x2 - b _080D969C -_080D969A: - ldr r0, _080D96B4 @ =0x0000fffe -_080D969C: - strh r0, [r1, 0x24] -_080D969E: - ldrh r0, [r1, 0x32] - subs r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - adds r0, r1, 0 - bl move_anim_8072740 -_080D96B0: - pop {r0} - bx r0 - .align 2, 0 -_080D96B4: .4byte 0x0000fffe - thumb_func_end sub_80D9640 - - thumb_func_start sub_80D96B8 -sub_80D96B8: @ 80D96B8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D96DC @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D96E4 - ldr r4, _080D96E0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x4] - adds r0, r2 - b _080D96F6 - .align 2, 0 -_080D96DC: .4byte gUnknown_03004B00 -_080D96E0: .4byte gUnknown_0202F7C8 -_080D96E4: - ldr r4, _080D9740 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 -_080D96F6: - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080D9744 @ =gUnknown_03004B00 - movs r4, 0x2 - ldrsh r0, [r3, r4] - lsls r0, 4 - adds r1, r0 - ldr r4, _080D9748 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080D974C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r1, 0 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r2, 0x2 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _080D9764 - cmp r0, 0x1 - bgt _080D9750 - cmp r0, 0 - beq _080D975A - b _080D978A - .align 2, 0 -_080D9740: .4byte gUnknown_0202F7C9 -_080D9744: .4byte gUnknown_03004B00 -_080D9748: .4byte 0x000003ff -_080D974C: .4byte 0xfffffc00 -_080D9750: - cmp r0, 0x2 - beq _080D9774 - cmp r0, 0x3 - beq _080D9784 - b _080D978A -_080D975A: - ldr r0, _080D9760 @ =0x0000fffd - b _080D9784 - .align 2, 0 -_080D9760: .4byte 0x0000fffd -_080D9764: - movs r0, 0x3 - strh r0, [r5, 0x3A] - ldr r0, _080D9770 @ =0x0000fffd - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9770: .4byte 0x0000fffd -_080D9774: - ldr r0, _080D9780 @ =0x0000fffd - strh r0, [r5, 0x3A] - movs r0, 0x3 - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9780: .4byte 0x0000fffd -_080D9784: - strh r0, [r5, 0x3A] - strh r0, [r5, 0x3C] - b _080D9792 -_080D978A: - adds r0, r5, 0 - bl move_anim_8072740 - b _080D9796 -_080D9792: - ldr r0, _080D979C @ =sub_80D97A0 - str r0, [r5, 0x1C] -_080D9796: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D979C: .4byte sub_80D97A0 - thumb_func_end sub_80D96B8 - - thumb_func_start sub_80D97A0 -sub_80D97A0: @ 80D97A0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x3A] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x3C] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D97C8 - adds r0, r1, 0 - bl move_anim_8072740 -_080D97C8: - pop {r0} - bx r0 - thumb_func_end sub_80D97A0 - - thumb_func_start sub_80D97CC -sub_80D97CC: @ 80D97CC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9818 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9828 - ldr r4, _080D981C @ =gUnknown_02024C07 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9820 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9824 @ =gUnknown_0202F7C9 - b _080D9844 - .align 2, 0 -_080D9818: .4byte gUnknown_03004B00 -_080D981C: .4byte gUnknown_02024C07 -_080D9820: .4byte gUnknown_0202F7C8 -_080D9824: .4byte gUnknown_0202F7C9 -_080D9828: - ldr r0, _080D9860 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9864 @ =gUnknown_0202F7C8 -_080D9844: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - movs r0, 0 - strh r0, [r5, 0x2E] - movs r0, 0xC - strh r0, [r5, 0x30] - movs r0, 0x8 - strh r0, [r5, 0x32] - ldr r0, _080D9868 @ =sub_80D986C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9860: .4byte gUnknown_0202F7C9 -_080D9864: .4byte gUnknown_0202F7C8 -_080D9868: .4byte sub_80D986C - thumb_func_end sub_80D97CC - - thumb_func_start sub_80D986C -sub_80D986C: @ 80D986C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - bne _080D98C6 - ldr r1, _080D98CC @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D98D0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080D98D4 @ =sub_8078BB8 - str r0, [r4, 0x1C] -_080D98C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D98CC: .4byte REG_BLDCNT -_080D98D0: .4byte move_anim_8074EE0 -_080D98D4: .4byte sub_8078BB8 - thumb_func_end sub_80D986C - - thumb_func_start sub_80D98D8 -sub_80D98D8: @ 80D98D8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9924 @ =gUnknown_03004B00 - ldrh r0, [r4] - strh r0, [r5, 0x20] - movs r2, 0x78 - strh r2, [r5, 0x22] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - adds r0, 0x36 - adds r1, r5, 0 - adds r1, 0x38 - lsls r2, 8 - bl sub_8079BF4 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x3A] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x4 - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D9928 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D992C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080D9930 @ =sub_80D9934 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9924: .4byte gUnknown_03004B00 -_080D9928: .4byte 0x000003ff -_080D992C: .4byte 0xfffffc00 -_080D9930: .4byte sub_80D9934 - thumb_func_end sub_80D98D8 - - thumb_func_start sub_80D9934 -sub_80D9934: @ 80D9934 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080D9986 - movs r2, 0x36 - ldrsh r0, [r7, r2] - movs r2, 0x38 - ldrsh r1, [r7, r2] - bl sub_8079BFC - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r7, r1] - subs r4, r0 - adds r0, r7, 0 - adds r0, 0x36 - adds r1, r7, 0 - adds r1, 0x38 - adds r2, r4, 0 - bl sub_8079BF4 - asrs r4, 8 - strh r4, [r7, 0x22] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - negs r0, r0 - cmp r4, r0 - bge _080D997E - adds r0, r7, 0 - bl move_anim_8072740 - b _080D99DC -_080D997E: - ldrh r0, [r7, 0x2E] - subs r0, 0x1 - strh r0, [r7, 0x2E] - b _080D99DC -_080D9986: - ldr r4, _080D99E8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r2, _080D99EC @ =gUnknown_0202F7C9 - mov r8, r2 - ldrb r0, [r2] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - subs r4, r6 - strh r4, [r7, 0x2E] - lsrs r0, 24 - subs r0, r5 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x20] - lsls r0, 4 - strh r0, [r7, 0x32] - ldrh r0, [r7, 0x22] - lsls r0, 4 - strh r0, [r7, 0x34] - ldr r0, _080D99F0 @ =sub_80D99F4 - str r0, [r7, 0x1C] -_080D99DC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D99E8: .4byte gUnknown_0202F7C8 -_080D99EC: .4byte gUnknown_0202F7C9 -_080D99F0: .4byte sub_80D99F4 - thumb_func_end sub_80D9934 - - thumb_func_start sub_80D99F4 -sub_80D99F4: @ 80D99F4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D9A2E - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D9A2E - cmp r1, 0x78 - ble _080D9A34 -_080D9A2E: - adds r0, r2, 0 - bl move_anim_8072740 -_080D9A34: - pop {r0} - bx r0 - thumb_func_end sub_80D99F4 - - thumb_func_start sub_80D9A38 -sub_80D9A38: @ 80D9A38 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9A6C @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9A7C - ldr r4, _080D9A70 @ =gUnknown_02024C07 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9A74 @ =gUnknown_0202F7C9 - ldrb r4, [r0] - ldr r0, _080D9A78 @ =gUnknown_0202F7C8 - b _080D9A82 - .align 2, 0 -_080D9A6C: .4byte gUnknown_03004B00 -_080D9A70: .4byte gUnknown_02024C07 -_080D9A74: .4byte gUnknown_0202F7C9 -_080D9A78: .4byte gUnknown_0202F7C8 -_080D9A7C: - ldr r0, _080D9AB4 @ =gUnknown_0202F7C8 - ldrb r4, [r0] - ldr r0, _080D9AB8 @ =gUnknown_0202F7C9 -_080D9A82: - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9ABC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x47 - b _080D9AD6 - .align 2, 0 -_080D9AB4: .4byte gUnknown_0202F7C8 -_080D9AB8: .4byte gUnknown_0202F7C9 -_080D9ABC: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9ADC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 -_080D9AD6: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080D9ADC: - movs r0, 0x10 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D9B1C @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080D9B20 @ =sub_8078BB8 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9B1C: .4byte move_anim_8072740 -_080D9B20: .4byte sub_8078BB8 - thumb_func_end sub_80D9A38 - - thumb_func_start sub_80D9B24 -sub_80D9B24: @ 80D9B24 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080D9B3A - adds r0, r4, 0 - bl move_anim_8072740 -_080D9B3A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9B24 - - thumb_func_start sub_80D9B48 -sub_80D9B48: @ 80D9B48 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080D9BC4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9BC8 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1] - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x36] - ldr r0, _080D9BCC @ =gUnknown_0202F7C4 - ldrb r6, [r0] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9B92 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080D9B92: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _080D9BA6 - ldrh r0, [r5, 0x32] - negs r0, r0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] -_080D9BA6: - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x32] - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x26] - ldr r0, _080D9BD0 @ =sub_80D9B24 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9BC4: .4byte gUnknown_0202F7C9 -_080D9BC8: .4byte gUnknown_03004B00 -_080D9BCC: .4byte gUnknown_0202F7C4 -_080D9BD0: .4byte sub_80D9B24 - thumb_func_end sub_80D9B48 - - thumb_func_start sub_80D9BD4 -sub_80D9BD4: @ 80D9BD4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9BEC @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9BF0 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080D9BF8 - .align 2, 0 -_080D9BEC: .4byte gUnknown_03004B00 -_080D9BF0: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080D9BF8: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080D9C0C - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - b _080D9C22 -_080D9C0C: - ldr r0, _080D9C34 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9C22 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080D9C22: - ldr r0, _080D9C38 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080D9C3C @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9C34: .4byte gUnknown_0202F7C8 -_080D9C38: .4byte sub_8078600 -_080D9C3C: .4byte move_anim_8072740 - thumb_func_end sub_80D9BD4 - - thumb_func_start sub_80D9C40 -sub_80D9C40: @ 80D9C40 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D9C7A - ldrh r0, [r4, 0x30] - adds r0, 0x28 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D9C7A - adds r0, r4, 0 - bl move_anim_8072740 -_080D9C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9C40 - - thumb_func_start sub_80D9C80 -sub_80D9C80: @ 80D9C80 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D9CB0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080D9CB8 - cmp r0, 0x1 - bgt _080D9CD2 - cmp r0, 0 - bne _080D9CD2 - movs r0, 0 - bl sub_80789D4 - ldr r0, _080D9CB4 @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r4, 0x18] - b _080D9CCA - .align 2, 0 -_080D9CB0: .4byte gTasks -_080D9CB4: .4byte gUnknown_03004B00 -_080D9CB8: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9CDE -_080D9CCA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D9CDE -_080D9CD2: - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] -_080D9CDE: - movs r2, 0xB0 - lsls r2, 4 - adds r0, r2, 0 - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldr r0, _080D9D0C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080D9D14 - ldr r1, _080D9D10 @ =gUnknown_030041B0 - ldrh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r7, r1, 0 - b _080D9D24 - .align 2, 0 -_080D9D0C: .4byte gUnknown_0202F7C9 -_080D9D10: .4byte gUnknown_030041B0 -_080D9D14: - ldr r2, _080D9D64 @ =gUnknown_030041B0 - ldrh r1, [r4, 0x1A] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - adds r7, r2, 0 -_080D9D24: - ldr r3, _080D9D68 @ =gUnknown_030041B8 - ldrh r2, [r4, 0x1C] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r0, 0xFF - ldrb r1, [r4, 0x1A] - movs r5, 0 - strh r1, [r4, 0x1A] - ands r0, r2 - strh r0, [r4, 0x1C] - ldr r0, _080D9D6C @ =gUnknown_03004B00 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D9D5C - strh r5, [r7] - strh r5, [r3] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl move_anim_task_del -_080D9D5C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9D64: .4byte gUnknown_030041B0 -_080D9D68: .4byte gUnknown_030041B8 -_080D9D6C: .4byte gUnknown_03004B00 - thumb_func_end sub_80D9C80 - - thumb_func_start sub_80D9D70 -sub_80D9D70: @ 80D9D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9DC4 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9D86 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9D86: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r4, _080D9DC8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D9DCC @ =0x0000ffe2 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080D9DD0 @ =sub_80D9DD4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9DC4: .4byte gUnknown_03004B00 -_080D9DC8: .4byte gUnknown_0202F7C9 -_080D9DCC: .4byte 0x0000ffe2 -_080D9DD0: .4byte sub_80D9DD4 - thumb_func_end sub_80D9D70 - - thumb_func_start sub_80D9DD4 -sub_80D9DD4: @ 80D9DD4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9DE8 - adds r0, r4, 0 - bl move_anim_8072740 -_080D9DE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9DD4 - - thumb_func_start sub_80D9DF0 -sub_80D9DF0: @ 80D9DF0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r5, _080D9E64 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9E08 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9E08: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D9E68 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - mov r6, sp - adds r6, 0x2 - movs r1, 0x1 - mov r2, sp - adds r3, r6, 0 - bl sub_807A3FC - ldr r0, _080D9E6C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9E36 - ldrh r0, [r5, 0x8] - negs r0, r0 - strh r0, [r5, 0x8] -_080D9E36: - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - mov r1, sp - ldrh r0, [r5, 0x8] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r6, [r6] - adds r0, r6 - strh r0, [r4, 0x36] - ldr r0, _080D9E70 @ =0x0000ffe2 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080D9E74 @ =sub_80D9E78 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9E64: .4byte gUnknown_03004B00 -_080D9E68: .4byte gUnknown_0202F7C9 -_080D9E6C: .4byte gUnknown_0202F7C8 -_080D9E70: .4byte 0x0000ffe2 -_080D9E74: .4byte sub_80D9E78 - thumb_func_end sub_80D9DF0 - - thumb_func_start sub_80D9E78 -sub_80D9E78: @ 80D9E78 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9E8C - adds r0, r4, 0 - bl move_anim_8072740 -_080D9E8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9E78 - - thumb_func_start sub_80D9E94 -sub_80D9E94: @ 80D9E94 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9EE0 @ =gUnknown_03004B00 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078A5C - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x38] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x3A] - ldr r0, _080D9EE4 @ =sub_80D9EE8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9EE0: .4byte gUnknown_03004B00 -_080D9EE4: .4byte sub_80D9EE8 - thumb_func_end sub_80D9E94 - - thumb_func_start sub_80D9EE8 -sub_80D9EE8: @ 80D9EE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078394 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - subs r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9F0E - adds r0, r4, 0 - bl move_anim_8072740 -_080D9F0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9EE8 - - thumb_func_start sub_80D9F14 -sub_80D9F14: @ 80D9F14 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9F74 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9F78 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9F40 - ldr r1, _080D9F7C @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080D9F40: - ldr r0, _080D9F7C @ =gUnknown_03004B00 - ldrh r2, [r0] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldrh r1, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - ldrh r3, [r0, 0x8] - strh r3, [r4, 0x2E] - ldrh r0, [r0, 0x4] - adds r2, r0 - strh r2, [r4, 0x32] - adds r1, r3 - strh r1, [r4, 0x36] - ldr r0, _080D9F80 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D9F84 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9F74: .4byte gUnknown_0202F7C9 -_080D9F78: .4byte gUnknown_0202F7C8 -_080D9F7C: .4byte gUnknown_03004B00 -_080D9F80: .4byte sub_8078B34 -_080D9F84: .4byte move_anim_8072740 - thumb_func_end sub_80D9F14 - - thumb_func_start sub_80D9F88 -sub_80D9F88: @ 80D9F88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9FA0 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9FA4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D9FDA - .align 2, 0 -_080D9FA0: .4byte gUnknown_03004B00 -_080D9FA4: - ldr r0, _080D9FE4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9FE8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080D9FCA - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D9FCA: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D9FDA: - ldr r0, _080D9FEC @ =sub_80D9FF0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9FE4: .4byte gUnknown_0202F7C9 -_080D9FE8: .4byte gUnknown_0202F7C8 -_080D9FEC: .4byte sub_80D9FF0 - thumb_func_end sub_80D9F88 - - thumb_func_start sub_80D9FF0 -sub_80D9FF0: @ 80D9FF0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DA02C - adds r0, r4, 0 - bl move_anim_8072740 -_080DA02C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9FF0 - - thumb_func_start sub_80DA034 -sub_80DA034: @ 80DA034 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_8078764 - ldrh r0, [r4, 0x22] - adds r0, 0x14 - strh r0, [r4, 0x22] - movs r0, 0xBF - strh r0, [r4, 0x30] - ldr r1, _080DA058 @ =sub_80DA05C - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA058: .4byte sub_80DA05C - thumb_func_end sub_80DA034 - - thumb_func_start sub_80DA05C -sub_80DA05C: @ 80DA05C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x47 - bne _080DA096 - adds r0, r4, 0 - bl move_anim_8072740 -_080DA096: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DA05C - - thumb_func_start sub_80DA09C -sub_80DA09C: @ 80DA09C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080DA0CC @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r1, _080DA0D0 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r1] - strh r0, [r4, 0xA] - ldr r0, _080DA0D4 @ =0x00002719 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldr r0, _080DA0D8 @ =sub_80DA0DC - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA0CC: .4byte gTasks -_080DA0D0: .4byte gUnknown_03004B00 -_080DA0D4: .4byte 0x00002719 -_080DA0D8: .4byte sub_80DA0DC - thumb_func_end sub_80DA09C - - thumb_func_start sub_80DA0DC -sub_80DA0DC: @ 80DA0DC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080DA15C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1C] - adds r1, r0, 0x1 - strh r1, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r3, r4] - adds r7, r2, 0 - cmp r0, r1 - bne _080DA13A - movs r0, 0 - strh r0, [r3, 0x1C] - ldrb r0, [r3, 0xC] - ldr r2, _080DA160 @ =gPlttBufferFaded - lsls r0, 4 - movs r3, 0x84 - lsls r3, 1 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r2 - ldrh r6, [r1] - movs r4, 0x7 - mov r12, r0 - ldr r0, _080DA164 @ =0x00000107 - add r0, r12 - lsls r0, 1 - adds r3, r0, r2 -_080DA122: - ldrh r0, [r3] - strh r0, [r1] - subs r3, 0x2 - subs r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bgt _080DA122 - ldr r0, _080DA168 @ =0x00000101 - add r0, r12 - lsls r0, 1 - adds r0, r2 - strh r6, [r0] -_080DA13A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - ldrh r1, [r0, 0x8] - subs r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - cmp r1, 0 - bne _080DA154 - adds r0, r5, 0 - bl move_anim_task_del -_080DA154: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA15C: .4byte gTasks -_080DA160: .4byte gPlttBufferFaded -_080DA164: .4byte 0x00000107 -_080DA168: .4byte 0x00000101 - thumb_func_end sub_80DA0DC - - thumb_func_start sub_80DA16C -sub_80DA16C: @ 80DA16C - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DA1D8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA18C - ldr r1, _080DA1DC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080DA18C: - ldr r4, _080DA1DC @ =gUnknown_03004B00 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldr r5, _080DA1E0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080DA1E4 @ =sub_80785E4 - str r0, [r6, 0x1C] - ldr r1, _080DA1E8 @ =sub_80DA1EC - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DA1D8: .4byte gUnknown_0202F7C8 -_080DA1DC: .4byte gUnknown_03004B00 -_080DA1E0: .4byte gUnknown_0202F7C9 -_080DA1E4: .4byte sub_80785E4 -_080DA1E8: .4byte sub_80DA1EC - thumb_func_end sub_80DA16C - - thumb_func_start sub_80DA1EC -sub_80DA1EC: @ 80DA1EC - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DA200 - adds r0, r4, 0 - bl move_anim_8072740 -_080DA200: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DA1EC - - thumb_func_start sub_80DA208 -sub_80DA208: @ 80DA208 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DA2A4 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA234 - ldr r1, _080DA2A8 @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080DA234: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DA24C - ldr r0, _080DA2A8 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080DA24C: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - ldr r2, _080DA2A8 @ =gUnknown_03004B00 - ldrh r1, [r2] - ldrh r3, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x20] - lsrs r0, 24 - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r0, [r2, 0x8] - strh r0, [r5, 0x2E] - movs r3, 0xC - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080DA2B0 - ldr r4, _080DA2AC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080DA2C2 - .align 2, 0 -_080DA2A4: .4byte gUnknown_0202F7C8 -_080DA2A8: .4byte gUnknown_03004B00 -_080DA2AC: .4byte gUnknown_0202F7C9 -_080DA2B0: - ldr r0, _080DA2F0 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080DA2C2: - ldr r4, _080DA2F4 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - ldrh r3, [r5, 0x36] - adds r0, r3 - strh r0, [r5, 0x36] - ldr r0, _080DA2F8 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080DA2FC @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldrb r1, [r4, 0xA] - adds r0, r5, 0 - bl SeekSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA2F0: .4byte gUnknown_0202F7C9 -_080DA2F4: .4byte gUnknown_03004B00 -_080DA2F8: .4byte sub_8078B34 -_080DA2FC: .4byte move_anim_8072740 - thumb_func_end sub_80DA208 - - thumb_func_start sub_80DA300 -sub_80DA300: @ 80DA300 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DA33C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DA340 @ =sub_80DA348 - str r0, [r4, 0x1C] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DA344 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA33C: .4byte gUnknown_03004B00 -_080DA340: .4byte sub_80DA348 -_080DA344: .4byte gSprites - thumb_func_end sub_80DA300 - - thumb_func_start sub_80DA348 -sub_80DA348: @ 80DA348 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080DA35C - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080DA36E -_080DA35C: - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] -_080DA36E: - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DA386 - adds r0, r2, 0 - bl move_anim_8072740 -_080DA386: - pop {r0} - bx r0 - thumb_func_end sub_80DA348 - - thumb_func_start sub_80DA38C -sub_80DA38C: @ 80DA38C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DA3B4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DA3BC - movs r0, 0x88 - lsls r0, 1 - strh r0, [r5, 0x20] - ldr r0, _080DA3B8 @ =0x0000ffe0 - strh r0, [r5, 0x22] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _080DA3C2 - .align 2, 0 -_080DA3B4: .4byte gUnknown_0202F7C8 -_080DA3B8: .4byte 0x0000ffe0 -_080DA3BC: - ldr r0, _080DA400 @ =0x0000ffe0 - strh r0, [r5, 0x20] - strh r0, [r5, 0x22] -_080DA3C2: - ldr r0, _080DA404 @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldr r4, _080DA408 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r0, _080DA40C @ =sub_80DA410 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA400: .4byte 0x0000ffe0 -_080DA404: .4byte gUnknown_03004B00 -_080DA408: .4byte gUnknown_0202F7C9 -_080DA40C: .4byte sub_80DA410 - thumb_func_end sub_80DA38C - - thumb_func_start sub_80DA410 -sub_80DA410: @ 80DA410 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078B5C - ldrh r1, [r4, 0x34] - lsrs r0, r1, 8 - cmp r0, 0xC8 - bls _080DA438 - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] -_080DA438: - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x20 - movs r1, 0x98 - lsls r1, 1 - cmp r0, r1 - bhi _080DA45A - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - ble _080DA480 -_080DA45A: - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DA488 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_8072740 -_080DA480: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA488: .4byte gSprites - thumb_func_end sub_80DA410 - - thumb_func_start sub_80DA48C -sub_80DA48C: @ 80DA48C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - subs r1, r0, 0x1 - strh r1, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bgt _080DA4CC - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DA4BE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080DA4BE: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080DA4D4 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080DA4CC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA4D4: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80DA48C - - thumb_func_start sub_80DA4D8 -sub_80DA4D8: @ 80DA4D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r7, 0 - adds r5, 0x2E - ldr r0, _080DA4F8 @ =gUnknown_03004B00 - ldrh r1, [r0, 0xE] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080DA500 - ldr r0, _080DA4FC @ =gUnknown_0202F7C8 - b _080DA502 - .align 2, 0 -_080DA4F8: .4byte gUnknown_03004B00 -_080DA4FC: .4byte gUnknown_0202F7C8 -_080DA500: - ldr r0, _080DA5B0 @ =gUnknown_0202F7C9 -_080DA502: - ldrb r6, [r0] - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DA518 - ldr r1, _080DA5B4 @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DA518: - adds r0, r6, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080DA5B4 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r7, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - ldrh r1, [r4, 0x2] - lsrs r0, 24 - adds r1, r0, r1 - strh r1, [r7, 0x22] - lsls r1, 8 - strh r1, [r5, 0x8] - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 1 - ldrh r2, [r5, 0xE] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0xE] - ldrb r0, [r5] - movs r2, 0x4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, 0x4] - ldrb r1, [r4, 0x4] - strh r1, [r5, 0x2] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x4] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x6] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0xC] - subs r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x7F - bhi _080DA618 - ldr r0, _080DA5B8 @ =gMain - ldr r2, _080DA5BC @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA5C0 - adds r0, r6, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r7, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - b _080DA5D8 - .align 2, 0 -_080DA5B0: .4byte gUnknown_0202F7C9 -_080DA5B4: .4byte gUnknown_03004B00 -_080DA5B8: .4byte gMain -_080DA5BC: .4byte 0x0000043d -_080DA5C0: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] -_080DA5D8: - ldrb r1, [r5, 0xE] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r5, 0xE] - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - b _080DA66E -_080DA618: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - ldrb r0, [r5, 0xE] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0xE] - movs r2, 0x4 - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - ands r1, r4 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - mov r1, r8 -_080DA66E: - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] -_080DA678: - ldrh r1, [r5, 0x2] - lsrs r1, 6 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _080DA6E4 @ =gSineTable - ldrh r0, [r5, 0x2] - lsls r0, 1 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, 0xC] - muls r0, r1 - asrs r0, 8 - strh r0, [r7, 0x24] - ldrb r2, [r7, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r7, r1] - negs r0, r0 - asrs r0, 1 - ldrb r5, [r5, 0xA] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r4, [r1] - ldr r1, _080DA6E8 @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r4, [r2, 0x2] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldr r0, _080DA6EC @ =sub_80DA6F0 - str r0, [r7, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA6E4: .4byte gSineTable -_080DA6E8: .4byte gOamMatrices -_080DA6EC: .4byte sub_80DA6F0 - thumb_func_end sub_80DA4D8 - - thumb_func_start sub_80DA6F0 -sub_80DA6F0: @ 80DA6F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - movs r0, 0x2E - adds r0, r5 - mov r12, r0 - ldrb r2, [r0] - movs r7, 0x1 - movs r1, 0x1 - mov r9, r1 - mov r0, r9 - ands r0, r2 - cmp r0, 0 - beq _080DA730 - mov r3, r12 - ldrb r0, [r3, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r3, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080DA724 - b _080DAD1A -_080DA724: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAD1A -_080DA730: - mov r4, r12 - ldrh r0, [r4, 0x2] - lsrs r4, r0, 6 - mov r8, r0 - cmp r4, 0x1 - bne _080DA73E - b _080DA896 -_080DA73E: - cmp r4, 0x1 - bgt _080DA748 - cmp r4, 0 - beq _080DA756 - b _080DAC52 -_080DA748: - cmp r4, 0x2 - bne _080DA74E - b _080DA9C8 -_080DA74E: - cmp r4, 0x3 - bne _080DA754 - b _080DAB0E -_080DA754: - b _080DAC52 -_080DA756: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA76C - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r1, r12 - strb r0, [r1] - strb r6, [r1, 0x1] - b _080DA88A -_080DA76C: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA790 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r2, r12 - strb r1, [r2] - strb r6, [r2, 0x1] - b _080DA88A -_080DA790: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA88A - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA87A - ldr r0, _080DA80C @ =gMain - ldr r1, _080DA810 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA82E - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA814 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA868 - .align 2, 0 -_080DA80C: .4byte gMain -_080DA810: .4byte 0x0000043d -_080DA814: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA866 -_080DA82E: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA85C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DA87A -_080DA85C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA866: - mov r3, r12 -_080DA868: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DA87A: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DA88A: - mov r2, r12 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - strb r0, [r2] - b _080DAC52 -_080DA896: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DA8AC - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DA9BC -_080DA8AC: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DA8BE - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DA9BC -_080DA8BE: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA9BC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA9AC - ldr r0, _080DA940 @ =gMain - ldr r1, _080DA944 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA962 - mov r2, r12 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA948 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r3, r12 - b _080DA978 - .align 2, 0 -_080DA940: .4byte gMain -_080DA944: .4byte 0x0000043d -_080DA948: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA996 -_080DA962: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA98C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] -_080DA978: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DA9AC -_080DA98C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA996: - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] -_080DA9AC: - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r4, [r3, 0x2] - mov r8, r4 -_080DA9BC: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080DAC4C -_080DA9C8: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA9DE - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAAFE -_080DA9DE: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA9F0 - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DAAFE -_080DA9F0: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _080DA9FA - b _080DAAFE -_080DA9FA: - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAAEC - ldr r0, _080DAA6C @ =gMain - ldr r3, _080DAA70 @ =0x0000043d - adds r0, r3 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - beq _080DAAA4 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAA74 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAAD8 - .align 2, 0 -_080DAA6C: .4byte gMain -_080DAA70: .4byte 0x0000043d -_080DAA74: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAAEC -_080DAAA4: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAACE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DAAEC -_080DAACE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAAD8: - mov r4, r12 - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080DAAEC: - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r2, [r1, 0x2] - mov r8, r2 -_080DAAFE: - mov r3, r12 - ldrb r0, [r3] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r3] - b _080DAC52 -_080DAB0E: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DAB20 - movs r0, 0x8 - orrs r0, r2 - mov r4, r12 - strb r0, [r4] - b _080DAC42 -_080DAB20: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DAB44 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r0, r12 - strb r1, [r0] - strb r6, [r0, 0x1] - b _080DAC42 -_080DAB44: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DAC42 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAC32 - ldr r0, _080DABC4 @ =gMain - ldr r3, _080DABC8 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DABE6 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DABCC - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - b _080DAC00 - .align 2, 0 -_080DABC4: .4byte gMain -_080DABC8: .4byte 0x0000043d -_080DABCC: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAC1E -_080DABE6: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAC14 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] -_080DAC00: - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAC32 -_080DAC14: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAC1E: - mov r3, r12 - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DAC32: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DAC42: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080DAC4C: - orrs r1, r0 - mov r2, r12 - strb r1, [r2] -_080DAC52: - mov r3, r12 - ldrb r1, [r3] - lsls r1, 30 - lsrs r1, 31 - mov r0, r12 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080DACE0 @ =gSineTable - mov r4, r8 - lsls r0, r4, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r4, 0x24 - ldrsh r0, [r5, r4] - negs r0, r0 - asrs r0, 1 - mov r1, r12 - ldrb r1, [r1, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080DACE4 @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - mov r2, r12 - ldrh r0, [r2, 0x6] - ldrh r3, [r2, 0x8] - adds r0, r3 - strh r0, [r2, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r4, 0x4 - ldrsh r0, [r2, r4] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DACE8 - ldrh r0, [r2, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0x2] - b _080DACFE - .align 2, 0 -_080DACE0: .4byte gSineTable -_080DACE4: .4byte gOamMatrices -_080DACE8: - mov r1, r12 - ldrh r0, [r1, 0x4] - ldr r1, _080DAD28 @ =0x00007fff - ands r1, r0 - mov r2, r12 - ldrh r2, [r2, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - mov r3, r12 - strh r1, [r3, 0x2] -_080DACFE: - movs r4, 0x22 - ldrsh r1, [r5, r4] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - mov r3, r12 - ldrh r0, [r3, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080DAD1A - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080DAD2C @ =sub_80DA48C - str r0, [r5, 0x1C] -_080DAD1A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAD28: .4byte 0x00007fff -_080DAD2C: .4byte sub_80DA48C - thumb_func_end sub_80DA6F0 - - thumb_func_start sub_80DAD30 -sub_80DAD30: @ 80DAD30 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _080DAD78 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r5, _080DAD7C @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080DAD80 @ =sub_807941C - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DAD78: .4byte gUnknown_0202F7C9 -_080DAD7C: .4byte gUnknown_0202F7C8 -_080DAD80: .4byte sub_807941C - thumb_func_end sub_80DAD30 - - thumb_func_start sub_80DAD84 -sub_80DAD84: @ 80DAD84 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080DADCC @ =gUnknown_03004B00 - ldrh r0, [r5] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x34] - ldr r0, _080DADD0 @ =gMain - ldr r1, _080DADD4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DAE44 - ldr r0, _080DADD8 @ =gUnknown_02024A72 - ldr r1, _080DADDC @ =gUnknown_0202F7C9 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DADE0 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - b _080DADEE - .align 2, 0 -_080DADCC: .4byte gUnknown_03004B00 -_080DADD0: .4byte gMain -_080DADD4: .4byte 0x0000043d -_080DADD8: .4byte gUnknown_02024A72 -_080DADDC: .4byte gUnknown_0202F7C9 -_080DADE0: - adds r0, r2, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 -_080DADEE: - strh r0, [r4, 0x3C] - ldr r0, _080DAE1C @ =gUnknown_03004B00 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DAE24 - ldr r0, _080DAE20 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE1C: .4byte gUnknown_03004B00 -_080DAE20: .4byte gUnknown_0202F7C9 -_080DAE24: - ldr r0, _080DAE40 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE40: .4byte gUnknown_0202F7C9 -_080DAE44: - ldr r0, _080DAEFC @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x3C] -_080DAE58: - ldr r5, _080DAF00 @ =gSineTable - ldrh r3, [r4, 0x30] - movs r1, 0xFF - ands r1, r3 - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r4, 0x36] - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x38] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x26] - strh r2, [r4, 0x24] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r6, r0, 27 - lsls r3, 16 - lsrs r3, 24 - strh r3, [r4, 0x30] - bl Random - lsls r0, 16 - asrs r7, r0, 16 - movs r0, 0x80 - lsls r0, 8 - ands r0, r7 - cmp r0, 0 - beq _080DAEA2 - ldrh r1, [r4, 0x30] - movs r0, 0xFF - subs r0, r1 - strh r0, [r4, 0x30] -_080DAEA2: - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, _080DAF04 @ =gOamMatrices - lsls r2, r6, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _080DAEF2 - adds r2, r4, 0 - adds r2, 0x2A - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_080DAEF2: - ldr r0, _080DAF08 @ =sub_80DAF0C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAEFC: .4byte gUnknown_0202F7C9 -_080DAF00: .4byte gSineTable -_080DAF04: .4byte gOamMatrices -_080DAF08: .4byte sub_80DAF0C - thumb_func_end sub_80DAD84 - - thumb_func_start sub_80DAF0C -sub_80DAF0C: @ 80DAF0C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x2E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - mov r8, r1 - movs r7, 0 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080DAFF0 - movs r2, 0x36 - ldrsh r1, [r4, r2] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r6, r0, 8 - strh r6, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r3, r0, 8 - strh r3, [r4, 0x26] - ldrh r2, [r4, 0x34] - movs r1, 0xFF - adds r0, r1, 0 - ands r0, r2 - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - ands r1, r2 - cmp r0, r1 - blt _080DAFF0 - ldrh r0, [r4, 0x20] - adds r0, r6 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - strh r7, [r4, 0x24] - strh r7, [r4, 0x26] - mov r0, sp - adds r1, r5, 0 - movs r2, 0x10 - bl memcpy - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - ldrh r0, [r4, 0x22] - lsls r0, 8 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0, 0x6] - lsrs r1, r0, 8 - strh r1, [r5, 0x6] - strh r7, [r5, 0x2] - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r5, 0xA] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _080DAFC0 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFB8 - ldr r0, _080DAFB4 @ =0x00008001 - b _080DAFCE - .align 2, 0 -_080DAFB4: .4byte 0x00008001 -_080DAFB8: - ldr r0, _080DAFBC @ =0x00008002 - b _080DAFCE - .align 2, 0 -_080DAFBC: .4byte 0x00008002 -_080DAFC0: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFCC - movs r0, 0x1 - b _080DAFCE -_080DAFCC: - movs r0, 0x2 -_080DAFCE: - strh r0, [r5, 0x4] - mov r0, sp - ldrh r0, [r0, 0x4] - lsrs r0, 8 - strb r0, [r5, 0xC] - subs r0, 0x2 - strb r0, [r5, 0xD] - mov r0, sp - ldrh r1, [r0, 0xE] - lsls r1, 1 - ldrh r2, [r5, 0xE] - movs r0, 0x1 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r0, _080DAFFC @ =sub_80DA6F0 - str r0, [r4, 0x1C] -_080DAFF0: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAFFC: .4byte sub_80DA6F0 - thumb_func_end sub_80DAF0C - - thumb_func_start sub_80DB000 -sub_80DB000: @ 80DB000 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DB018 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB01C - adds r0, r5, 0 - movs r1, 0 - bl sub_80787B0 - b _080DB024 - .align 2, 0 -_080DB018: .4byte gUnknown_03004B00 -_080DB01C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 -_080DB024: - ldr r4, _080DB08C @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DB03C - ldr r0, _080DB090 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB052 -_080DB03C: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080DB058 - ldr r0, _080DB094 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DB058 -_080DB052: - ldrh r0, [r5, 0x20] - adds r0, 0x8 - strh r0, [r5, 0x20] -_080DB058: - ldr r4, _080DB08C @ =gUnknown_03004B00 - ldrb r1, [r4, 0x8] - adds r0, r5, 0 - bl SeekSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x20 - strh r0, [r5, 0x20] - ldr r0, _080DB098 @ =0x00000ccc - strh r0, [r5, 0x30] - ldrh r1, [r4, 0x8] - movs r0, 0xC - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - strh r1, [r5, 0x2E] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080DB09C @ =sub_80DB0A0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB08C: .4byte gUnknown_03004B00 -_080DB090: .4byte gUnknown_0202F7C8 -_080DB094: .4byte gUnknown_0202F7C9 -_080DB098: .4byte 0x00000ccc -_080DB09C: .4byte sub_80DB0A0 - thumb_func_end sub_80DB000 - - thumb_func_start sub_80DB0A0 -sub_80DB0A0: @ 80DB0A0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080DB0CA - strh r1, [r4, 0x2E] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl StartSpriteAnim -_080DB0CA: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB0E2 - adds r0, r4, 0 - bl move_anim_8072740 -_080DB0E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB0A0 - - thumb_func_start sub_80DB0E8 -sub_80DB0E8: @ 80DB0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080DB180 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x8] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080DB162 - ldr r1, _080DB184 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x8 - ldrsh r0, [r7, r1] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - bl Sin - ldr r4, _080DB188 @ =gUnknown_03004B00 - strh r0, [r4] - movs r1, 0x8 - ldrsh r0, [r7, r1] - adds r1, r5, 0 - bl Cos - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0x6] - ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538 - mov r8, r0 - ldr r5, _080DB190 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x3 - bl CreateSpriteAndAnimate -_080DB162: - ldrh r0, [r7, 0x8] - adds r0, 0x8 - strh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DB176 - adds r0, r6, 0 - bl move_anim_task_del -_080DB176: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB180: .4byte gTasks -_080DB184: .4byte gUnknown_0202F7B2 -_080DB188: .4byte gUnknown_03004B00 -_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 -_080DB190: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80DB0E8 - - thumb_func_start sub_80DB194 -sub_80DB194: @ 80DB194 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DB1A6 - cmp r0, 0x1 - beq _080DB1D8 - b _080DB1EC -_080DB1A6: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB1D4 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB1EC - .align 2, 0 -_080DB1D4: .4byte gSprites -_080DB1D8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DB1EC - adds r0, r4, 0 - bl move_anim_8072740 -_080DB1EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB194 - - thumb_func_start sub_80DB1F4 -sub_80DB1F4: @ 80DB1F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DB22C - cmp r0, 0x1 - bgt _080DB20A - cmp r0, 0 - beq _080DB210 - b _080DB27E -_080DB20A: - cmp r0, 0x2 - beq _080DB240 - b _080DB27E -_080DB210: - ldr r0, _080DB228 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r4, 0x26] - b _080DB238 - .align 2, 0 -_080DB228: .4byte gUnknown_0202F7C9 -_080DB22C: - ldrh r0, [r4, 0x26] - adds r0, 0xA - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080DB27E -_080DB238: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB27E -_080DB240: - ldrh r0, [r4, 0x26] - subs r0, 0xA - strh r0, [r4, 0x26] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DB27E - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB284 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_8072740 -_080DB27E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB284: .4byte gSprites - thumb_func_end sub_80DB1F4 - - thumb_func_start sub_80DB288 -sub_80DB288: @ 80DB288 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DB2C4 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DB2C8 @ =sub_80DB2D0 - str r0, [r4, 0x1C] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r2, _080DB2CC @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB2C4: .4byte gUnknown_03004B00 -_080DB2C8: .4byte sub_80DB2D0 -_080DB2CC: .4byte gSprites - thumb_func_end sub_80DB288 - - thumb_func_start sub_80DB2D0 -sub_80DB2D0: @ 80DB2D0 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080DB2E4 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080DB328 -_080DB2E4: - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB30A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] - b _080DB328 -_080DB30A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DB328 - ldr r0, _080DB32C @ =sub_80DB330 - str r0, [r2, 0x1C] -_080DB328: - pop {r0} - bx r0 - .align 2, 0 -_080DB32C: .4byte sub_80DB330 - thumb_func_end sub_80DB2D0 - - thumb_func_start sub_80DB330 -sub_80DB330: @ 80DB330 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB360 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080DB360: - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080DB36E - adds r0, r2, 0 - bl move_anim_8072740 -_080DB36E: - pop {r0} - bx r0 - thumb_func_end sub_80DB330 - - thumb_func_start sub_80DB374 -sub_80DB374: @ 80DB374 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080DB388 - cmp r0, 0x1 - beq _080DB3E0 - b _080DB44C -_080DB388: - ldr r0, _080DB398 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080DB3A0 - ldr r4, _080DB39C @ =gUnknown_0202F7C8 - b _080DB3A2 - .align 2, 0 -_080DB398: .4byte gUnknown_03004B00 -_080DB39C: .4byte gUnknown_0202F7C8 -_080DB3A0: - ldr r4, _080DB3DC @ =gUnknown_0202F7C9 -_080DB3A2: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - movs r3, 0x80 - lsls r3, 2 - strh r3, [r5, 0x30] - movs r2, 0x80 - lsls r2, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl sub_8078FDC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DB44C - .align 2, 0 -_080DB3DC: .4byte gUnknown_0202F7C9 -_080DB3E0: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0xB - bgt _080DB3EE - ldrh r0, [r5, 0x30] - subs r0, 0x28 - b _080DB3F2 -_080DB3EE: - ldrh r0, [r5, 0x30] - adds r0, 0x28 -_080DB3F2: - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, 0 - bl sub_8078FDC - ldrb r1, [r5, 0x3] - lsls r1, 26 - lsrs r1, 27 - movs r0, 0xF4 - lsls r0, 6 - ldr r2, _080DB454 @ =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0x1 - cmp r1, 0x80 - ble _080DB42C - movs r1, 0x80 -_080DB42C: - movs r0, 0x40 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - strh r1, [r5, 0x26] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x18 - bne _080DB44C - adds r0, r5, 0 - bl sub_8079098 - adds r0, r5, 0 - bl move_anim_8072740 -_080DB44C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB454: .4byte gOamMatrices - thumb_func_end sub_80DB374 - - thumb_func_start sub_80DB458 -sub_80DB458: @ 80DB458 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - ldr r4, _080DB47C @ =0x000001ff - ands r4, r0 - bl Random - movs r1, 0x7F - ands r1, r0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080DB480 - movs r2, 0xB8 - lsls r2, 2 - adds r0, r4, r2 - b _080DB488 - .align 2, 0 -_080DB47C: .4byte 0x000001ff -_080DB480: - movs r2, 0xB8 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r4 -_080DB488: - strh r0, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DB49C - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - adds r0, r1, r0 - b _080DB4A4 -_080DB49C: - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r1 -_080DB4A4: - strh r0, [r5, 0x30] - ldr r2, _080DB4CC @ =gUnknown_03004B00 - ldrh r0, [r2] - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _080DB4C0 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] -_080DB4C0: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080DB4D4 - ldr r4, _080DB4D0 @ =gUnknown_0202F7C8 - b _080DB4D6 - .align 2, 0 -_080DB4CC: .4byte gUnknown_03004B00 -_080DB4D0: .4byte gUnknown_0202F7C8 -_080DB4D4: - ldr r4, _080DB500 @ =gUnknown_0202F7C9 -_080DB4D6: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x22] - ldr r0, _080DB504 @ =sub_80DB508 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB500: .4byte gUnknown_0202F7C9 -_080DB504: .4byte sub_80DB508 - thumb_func_end sub_80DB458 - - thumb_func_start sub_80DB508 -sub_80DB508: @ 80DB508 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DB520 - ldrh r3, [r4, 0x2E] - lsls r0, r3, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - b _080DB52A -_080DB520: - ldrh r3, [r4, 0x2E] - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 -_080DB52A: - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x30] - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - strh r3, [r4, 0x2E] - adds r0, r2, 0 - subs r0, 0x20 - strh r0, [r4, 0x30] - lsls r0, r3, 16 - cmp r0, 0 - bge _080DB54A - movs r0, 0 - strh r0, [r4, 0x2E] -_080DB54A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080DB55E - adds r0, r4, 0 - bl move_anim_8072740 -_080DB55E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB508 - - thumb_func_start sub_80DB564 -sub_80DB564: @ 80DB564 - movs r1, 0 - strh r1, [r0, 0x3A] - movs r1, 0x40 - strh r1, [r0, 0x3C] - ldr r1, _080DB574 @ =sub_80DB578 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DB574: .4byte sub_80DB578 - thumb_func_end sub_80DB564 - - thumb_func_start sub_80DB578 -sub_80DB578: @ 80DB578 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080DB58A - cmp r1, 0x1 - beq _080DB5D8 - b _080DB5DE -_080DB58A: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080DB5DE - strh r1, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DB5DE - ldrb r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DB5DE - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080DB5DE -_080DB5D8: - adds r0, r3, 0 - bl move_anim_8072740 -_080DB5DE: - pop {r0} - bx r0 - thumb_func_end sub_80DB578 - - thumb_func_start sub_80DB5E4 -sub_80DB5E4: @ 80DB5E4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - ldrh r4, [r0, 0x20] - ldrh r5, [r0, 0x22] - ldr r6, _080DB698 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - strh r6, [r2, 0x22] - ldrh r0, [r2, 0x20] - mov r9, r0 - mov r1, r9 - lsls r0, r1, 4 - strh r0, [r2, 0x36] - lsls r0, r6, 4 - strh r0, [r2, 0x38] - lsls r4, 16 - asrs r4, 16 - movs r1, 0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3A] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3C] - mov r0, r9 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - subs r5, r6 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - mov r0, r8 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8078FDC - ldr r0, _080DB69C @ =sub_80DB6A0 - mov r2, r8 - str r0, [r2, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB698: .4byte gUnknown_0202F7C8 -_080DB69C: .4byte sub_80DB6A0 - thumb_func_end sub_80DB5E4 - - thumb_func_start sub_80DB6A0 -sub_80DB6A0: @ 80DB6A0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x3C] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x2D - lsls r0, 16 - movs r1, 0xA5 - lsls r1, 17 - cmp r0, r1 - bhi _080DB6DA - adds r1, r3, 0 - cmp r1, 0x9D - bgt _080DB6DA - movs r0, 0x2D - negs r0, r0 - cmp r1, r0 - bge _080DB6E0 -_080DB6DA: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080DB6E0: - pop {r0} - bx r0 - thumb_func_end sub_80DB6A0 - - thumb_func_start unref_sub_80DB6E4 -unref_sub_80DB6E4: @ 80DB6E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DB714 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB71C - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB718 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - b _080DB73A - .align 2, 0 -_080DB714: .4byte gUnknown_03004B00 -_080DB718: .4byte gSprites -_080DB71C: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB748 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_080DB73A: - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB748: .4byte gSprites - thumb_func_end unref_sub_80DB6E4 - - thumb_func_start sub_80DB74C -sub_80DB74C: @ 80DB74C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, _080DB804 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB768 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DB77E -_080DB768: - ldrb r1, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r1, r6, 0 - adds r1, 0x43 - movs r0, 0xC8 - strb r0, [r1] -_080DB77E: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB7DA - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB7BC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7BC: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r7 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB7DA - movs r0, 0x1 - eors r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7DA: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB810 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080DB810 - ldr r0, _080DB804 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DB808 - movs r0, 0x48 - strh r0, [r6, 0x20] - movs r0, 0x50 - b _080DB84A - .align 2, 0 -_080DB804: .4byte gUnknown_0202F7C8 -_080DB808: - movs r0, 0xB0 - strh r0, [r6, 0x20] - movs r0, 0x28 - b _080DB84A -_080DB810: - ldr r5, _080DB880 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DB826 - ldr r1, _080DB884 @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DB826: - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r4, _080DB884 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 -_080DB84A: - strh r0, [r6, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DB85C - ldrh r0, [r6, 0x22] - adds r0, 0x9 - strh r0, [r6, 0x22] -_080DB85C: - ldr r0, _080DB884 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x2E] - ldr r1, _080DB888 @ =sub_80DB88C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB880: .4byte gUnknown_0202F7C8 -_080DB884: .4byte gUnknown_03004B00 -_080DB888: .4byte sub_80DB88C - thumb_func_end sub_80DB74C - - thumb_func_start sub_80DB88C -sub_80DB88C: @ 80DB88C - push {lr} - adds r3, r0, 0 - ldr r2, _080DB8B0 @ =REG_BLDALPHA - ldrh r1, [r3, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0xD - bne _080DB8B8 - ldr r0, _080DB8B4 @ =sub_80DB8C0 - str r0, [r3, 0x1C] - b _080DB8BC - .align 2, 0 -_080DB8B0: .4byte REG_BLDALPHA -_080DB8B4: .4byte sub_80DB8C0 -_080DB8B8: - adds r0, r1, 0x1 - strh r0, [r3, 0x34] -_080DB8BC: - pop {r0} - bx r0 - thumb_func_end sub_80DB88C - - thumb_func_start sub_80DB8C0 -sub_80DB8C0: @ 80DB8C0 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080DB91E - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r4, [r3, 0x2E] - ldr r1, _080DB924 @ =gPlttBufferFaded - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - movs r5, 0x8 - adds r6, r1, 0 - adds r1, r4, 0x7 - lsls r0, r4, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - lsls r1, 1 - adds r1, r6 -_080DB8F6: - ldrh r0, [r1] - strh r0, [r2] - subs r1, 0x2 - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bgt _080DB8F6 - adds r0, r4, 0x1 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080DB91E - ldr r0, _080DB928 @ =sub_80DB92C - str r0, [r3, 0x1C] -_080DB91E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB924: .4byte gPlttBufferFaded -_080DB928: .4byte sub_80DB92C - thumb_func_end sub_80DB8C0 - - thumb_func_start sub_80DB92C -sub_80DB92C: @ 80DB92C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r2, _080DB9D4 @ =REG_BLDALPHA - ldrh r1, [r5, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB9CC - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DB9BC - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB98E - ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080DB98E: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r6 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DB9BC - ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080DB9BC: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DB9E0 @ =sub_80DB9E4 - str r0, [r5, 0x1C] -_080DB9CC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB9D4: .4byte REG_BLDALPHA -_080DB9D8: .4byte gSprites -_080DB9DC: .4byte gUnknown_02024BE0 -_080DB9E0: .4byte sub_80DB9E4 - thumb_func_end sub_80DB92C - - thumb_func_start sub_80DB9E4 -sub_80DB9E4: @ 80DB9E4 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DBA3C - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DBA22 - adds r0, r5, 0 - bl sub_8076464 -_080DBA22: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DBA3C - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080DBA3C: - ldr r0, _080DBA48 @ =move_anim_8072740 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DBA48: .4byte move_anim_8072740 - thumb_func_end sub_80DB9E4 - - thumb_func_start sub_80DBA4C -sub_80DBA4C: @ 80DBA4C - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DBAD8 - ldr r5, _080DBA98 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r6, 0 - cmp r0, 0 - bne _080DBA66 - movs r6, 0x1 -_080DBA66: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DBAAE - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080DBAAE - ldr r0, _080DBA9C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DBAA0 - ldrh r0, [r5] - movs r1, 0x48 - subs r1, r0 - strh r1, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x50 - strh r0, [r4, 0x22] - b _080DBAD0 - .align 2, 0 -_080DBA98: .4byte gUnknown_03004B00 -_080DBA9C: .4byte gUnknown_0202F7C8 -_080DBAA0: - ldrh r0, [r5] - adds r0, 0xB0 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x28 - strh r0, [r4, 0x22] - b _080DBAD0 -_080DBAAE: - ldr r0, _080DBAC4 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DBAC8 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80787B0 - b _080DBAD0 - .align 2, 0 -_080DBAC4: .4byte gUnknown_03004B00 -_080DBAC8: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8078764 -_080DBAD0: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBAEC -_080DBAD8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080DBAEC - adds r0, r4, 0 - bl move_anim_8074EE0 -_080DBAEC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DBA4C - - thumb_func_start sub_80DBAF4 -sub_80DBAF4: @ 80DBAF4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DBB3C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DBB44 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xA - strh r0, [r5, 0x22] - ldr r0, _080DBB40 @ =0x0000ffff - b _080DBB52 - .align 2, 0 -_080DBB3C: .4byte gUnknown_0202F7C8 -_080DBB40: .4byte 0x0000ffff -_080DBB44: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - subs r0, 0xA - strh r0, [r5, 0x22] - movs r0, 0x1 -_080DBB52: - strh r0, [r5, 0x30] - ldr r1, _080DBB68 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DBB6C @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBB68: .4byte move_anim_8072740 -_080DBB6C: .4byte sub_8078600 - thumb_func_end sub_80DBAF4 - - thumb_func_start sub_80DBB70 -sub_80DBB70: @ 80DBB70 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080DBBF4 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r4, r1, 16 - ldrb r0, [r6] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - negs r1, r1 - lsls r1, 16 - lsrs r7, r1, 16 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DBBB6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080DBBB6: - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080DBBE2 - movs r0, 0x10 - strh r0, [r5, 0x22] -_080DBBE2: - ldr r1, _080DBBF8 @ =sub_80DBC00 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DBBFC @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBBF4: .4byte gUnknown_0202F7C8 -_080DBBF8: .4byte sub_80DBC00 -_080DBBFC: .4byte sub_8078600 - thumb_func_end sub_80DBB70 - - thumb_func_start sub_80DBC00 -sub_80DBC00: @ 80DBC00 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080DBC2C @ =gUnknown_083DA888 - str r0, [r4, 0x10] - movs r0, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldr r0, _080DBC30 @ =sub_80DBC34 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBC2C: .4byte gUnknown_083DA888 -_080DBC30: .4byte sub_80DBC34 - thumb_func_end sub_80DBC00 - - thumb_func_start sub_80DBC34 -sub_80DBC34: @ 80DBC34 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBC46 - cmp r0, 0x1 - beq _080DBC74 - b _080DBC8C -_080DBC46: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DBC8C - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x12 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBC8C -_080DBC74: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DBC8C - adds r0, r4, 0 - bl move_anim_8072740 -_080DBC8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DBC34 - - thumb_func_start sub_80DBC94 -sub_80DBC94: @ 80DBC94 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080DBCC4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080DBCC8 @ =gUnknown_083DA8A4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBCCC @ =sub_80DBCD0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCC4: .4byte gTasks -_080DBCC8: .4byte gUnknown_083DA8A4 -_080DBCCC: .4byte sub_80DBCD0 - thumb_func_end sub_80DBC94 - - thumb_func_start sub_80DBCD0 -sub_80DBCD0: @ 80DBCD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DBCF8 @ =gTasks - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080DBCF0 - adds r0, r4, 0 - bl move_anim_task_del -_080DBCF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCF8: .4byte gTasks - thumb_func_end sub_80DBCD0 - - thumb_func_start sub_80DBCFC -sub_80DBCFC: @ 80DBCFC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBD48 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - ldr r0, _080DBD4C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080DBD30 - movs r1, 0x4 -_080DBD30: - strh r1, [r4, 0xE] - ldrb r1, [r4, 0x8] - ldr r2, _080DBD50 @ =gUnknown_083DA8C4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBD54 @ =sub_80DBD58 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBD48: .4byte gTasks -_080DBD4C: .4byte gUnknown_0202F7C8 -_080DBD50: .4byte gUnknown_083DA8C4 -_080DBD54: .4byte sub_80DBD58 - thumb_func_end sub_80DBCFC - - thumb_func_start sub_80DBD58 -sub_80DBD58: @ 80DBD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DBD78 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBD7C - cmp r0, 0x1 - beq _080DBD98 - b _080DBDF6 - .align 2, 0 -_080DBD78: .4byte gTasks -_080DBD7C: - adds r0, r4, 0 - bl sub_807992C - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080DBDF6 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080DBDF6 -_080DBD98: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBDC0 - ldr r2, _080DBDBC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBDF6 - .align 2, 0 -_080DBDBC: .4byte gSprites -_080DBDC0: - ldr r3, _080DBDFC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - ldrb r0, [r4, 0x8] - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del -_080DBDF6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBDFC: .4byte gSprites - thumb_func_end sub_80DBD58 - - thumb_func_start sub_80DBE00 -sub_80DBE00: @ 80DBE00 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBE84 @ =gTasks - adds r5, r1, r0 - movs r0, 0 - movs r7, 0x10 - strh r7, [r5, 0xE] - strh r0, [r5, 0x10] - ldr r4, _080DBE88 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, r6 - bcs _080DBE6A - adds r1, r6, 0 -_080DBE6A: - strh r1, [r5, 0x20] - ldr r1, _080DBE8C @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DBE90 @ =REG_BLDALPHA - strh r7, [r0] - ldr r0, _080DBE94 @ =sub_80DBE98 - str r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBE84: .4byte gTasks -_080DBE88: .4byte gUnknown_0202F7C8 -_080DBE8C: .4byte REG_BLDCNT -_080DBE90: .4byte REG_BLDALPHA -_080DBE94: .4byte sub_80DBE98 - thumb_func_end sub_80DBE00 - - thumb_func_start sub_80DBE98 -sub_80DBE98: @ 80DBE98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DBEBC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080DBF98 - cmp r1, 0x1 - bgt _080DBEC0 - cmp r1, 0 - beq _080DBECE - b _080DC014 - .align 2, 0 -_080DBEBC: .4byte gTasks -_080DBEC0: - cmp r1, 0x2 - bne _080DBEC6 - b _080DBFF4 -_080DBEC6: - cmp r1, 0x3 - bne _080DBECC - b _080DC004 -_080DBECC: - b _080DC014 -_080DBECE: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bgt _080DBEDE - b _080DC014 -_080DBEDE: - strh r1, [r4, 0xA] - ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xC - ldrsh r1, [r4, r0] - adds r1, 0x8 - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - strh r2, [r0] - cmp r2, 0x40 - beq _080DBF82 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DBF3C - cmp r0, 0x1 - bgt _080DBF20 - cmp r0, 0 - beq _080DBF2A - b _080DBF82 - .align 2, 0 -_080DBF1C: .4byte gSpriteTemplate_83DA8DC -_080DBF20: - cmp r0, 0x2 - beq _080DBF54 - cmp r0, 0x3 - beq _080DBF6C - b _080DBF82 -_080DBF2A: - ldr r0, _080DBF38 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - b _080DBF7A - .align 2, 0 -_080DBF38: .4byte gSprites -_080DBF3C: - ldr r0, _080DBF50 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - b _080DBF80 - .align 2, 0 -_080DBF50: .4byte gSprites -_080DBF54: - ldr r1, _080DBF68 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x26] - b _080DBF82 - .align 2, 0 -_080DBF68: .4byte gSprites -_080DBF6C: - ldr r0, _080DBF94 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF7A: - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF80: - strh r0, [r1, 0x26] -_080DBF82: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080DC014 - b _080DBFF4 - .align 2, 0 -_080DBF94: .4byte gSprites -_080DBF98: - ldrh r0, [r4, 0xA] - ands r1, r0 - cmp r1, 0 - beq _080DBFA8 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBFAE -_080DBFA8: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_080DBFAE: - ldr r2, _080DBFFC @ =REG_BLDALPHA - ldrh r0, [r4, 0x10] - lsls r0, 8 - ldrh r1, [r4, 0xE] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _080DC014 - movs r5, 0x8 - adds r6, r4, 0 - adds r6, 0x8 -_080DBFCE: - lsls r0, r5, 1 - adds r1, r6, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x40 - beq _080DBFEA - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC000 @ =gSprites - adds r0, r1 - bl DestroySprite -_080DBFEA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xC - bls _080DBFCE -_080DBFF4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC014 - .align 2, 0 -_080DBFFC: .4byte REG_BLDALPHA -_080DC000: .4byte gSprites -_080DC004: - ldr r0, _080DC01C @ =REG_BLDALPHA - movs r1, 0 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080DC014: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC01C: .4byte REG_BLDALPHA - thumb_func_end sub_80DBE98 - - thumb_func_start sub_80DC020 -sub_80DC020: @ 80DC020 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - subs r0, 0xA - cmp r1, r0 - ble _080DC04A - ldrh r0, [r4, 0x30] - movs r1, 0x1 - ands r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080DC04A: - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DC05C - adds r0, r4, 0 - bl move_anim_8072740 -_080DC05C: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC020 - - thumb_func_start sub_80DC068 -sub_80DC068: @ 80DC068 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DC0A4 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080DC094 - ldr r4, _080DC0A8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080DC094: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080DC0AC @ =sub_80DC020 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC0A4: .4byte gUnknown_03004B00 -_080DC0A8: .4byte gUnknown_0202F7C8 -_080DC0AC: .4byte sub_80DC020 - thumb_func_end sub_80DC068 - - thumb_func_start sub_80DC0B0 -sub_80DC0B0: @ 80DC0B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC10C @ =gTasks - adds r5, r1, r0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC154 - ldr r0, _080DC110 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC120 - ldr r0, _080DC114 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080DC118 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC11C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC10C: .4byte gTasks -_080DC110: .4byte gUnknown_03004B00 -_080DC114: .4byte 0x0000fff6 -_080DC118: .4byte gUnknown_0202F7C9 -_080DC11C: .4byte gUnknown_0202F7C8 -_080DC120: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC14C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC150 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - b _080DC1D2 - .align 2, 0 -_080DC14C: .4byte gUnknown_0202F7C8 -_080DC150: .4byte gUnknown_0202F7C9 -_080DC154: - ldr r0, _080DC198 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC1A8 - ldr r0, _080DC19C @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080DC1A0 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1A4 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC198: .4byte gUnknown_03004B00 -_080DC19C: .4byte 0x0000fff6 -_080DC1A0: .4byte gUnknown_0202F7C9 -_080DC1A4: .4byte gUnknown_0202F7C8 -_080DC1A8: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC1F0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1F4 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 -_080DC1D2: - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 -_080DC1DE: - strh r0, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0xA] - ldr r0, _080DC1F8 @ =sub_80DC1FC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC1F0: .4byte gUnknown_0202F7C8 -_080DC1F4: .4byte gUnknown_0202F7C9 -_080DC1F8: .4byte sub_80DC1FC - thumb_func_end sub_80DC0B0 - - thumb_func_start sub_80DC1FC -sub_80DC1FC: @ 80DC1FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC21C @ =gTasks - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080DC220 - cmp r1, 0x1 - beq _080DC294 - b _080DC2A8 - .align 2, 0 -_080DC21C: .4byte gTasks -_080DC220: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080DC2A8 - strh r1, [r5, 0xA] - ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC - movs r2, 0x1E - ldrsh r1, [r5, r2] - movs r3, 0x20 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DC274 - ldr r0, _080DC290 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x22] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x36] - ldrh r0, [r5, 0x1C] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldrb r0, [r5, 0xC] - movs r1, 0x3 - ands r1, r0 - adds r0, r4, 0 - bl StartSpriteAffineAnim -_080DC274: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080DC2A8 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC2A8 - .align 2, 0 -_080DC28C: .4byte gSpriteTemplate_83DA9AC -_080DC290: .4byte gSprites -_080DC294: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080DC2A8 - adds r0, r2, 0 - bl move_anim_task_del -_080DC2A8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC1FC - - thumb_func_start sub_80DC2B0 -sub_80DC2B0: @ 80DC2B0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DC2CE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080DC2CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC2B0 - - thumb_func_start sub_80DC2D4 -sub_80DC2D4: @ 80DC2D4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC30C @ =gTasks - adds r4, r1, r0 - ldr r0, _080DC310 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r1, 0 - subs r0, 0x20 - strh r0, [r4, 0x24] - ldr r0, _080DC314 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080DC32A - cmp r0, 0x1 - bgt _080DC318 - cmp r0, 0 - beq _080DC31E - b _080DC346 - .align 2, 0 -_080DC30C: .4byte gTasks -_080DC310: .4byte gUnknown_0202F7C9 -_080DC314: .4byte gUnknown_03004B00 -_080DC318: - cmp r0, 0x2 - beq _080DC336 - b _080DC346 -_080DC31E: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080DC33E -_080DC32A: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0xC0 - b _080DC33E -_080DC336: - movs r0, 0x4 - strh r0, [r4, 0x1E] - strh r0, [r4, 0x20] - movs r0, 0 -_080DC33E: - strh r0, [r4, 0x22] - adds r0, r1, 0 - adds r0, 0x20 - strh r0, [r4, 0x26] -_080DC346: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080DC352 - movs r0, 0 - strh r0, [r4, 0x24] -_080DC352: - ldr r0, _080DC36C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DC378 - ldr r0, _080DC370 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC374 @ =REG_BG1HOFS - b _080DC380 - .align 2, 0 -_080DC36C: .4byte gUnknown_0202F7C9 -_080DC370: .4byte gUnknown_030042C0 -_080DC374: .4byte REG_BG1HOFS -_080DC378: - ldr r0, _080DC3E0 @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC3E4 @ =REG_BG2HOFS -_080DC380: - str r0, [sp] - ldrh r1, [r4, 0x24] - lsls r3, r1, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - bgt _080DC3BA - ldr r5, _080DC3E8 @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DC39A: - asrs r3, 16 - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0x1C] - strh r0, [r1] - adds r3, 0x1 - lsls r3, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - ble _080DC39A -_080DC3BA: - ldr r0, _080DC3EC @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DC3F0 @ =sub_80DC3F4 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC3E0: .4byte gUnknown_03004288 -_080DC3E4: .4byte REG_BG2HOFS -_080DC3E8: .4byte gUnknown_03004DE0 -_080DC3EC: .4byte 0xa2600001 -_080DC3F0: .4byte sub_80DC3F4 - thumb_func_end sub_80DC2D4 - - thumb_func_start sub_80DC3F4 -sub_80DC3F4: @ 80DC3F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC41C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC4CE - cmp r0, 0x1 - bgt _080DC420 - cmp r0, 0 - beq _080DC426 - b _080DC4E6 - .align 2, 0 -_080DC41C: .4byte gTasks -_080DC420: - cmp r0, 0x2 - beq _080DC4E0 - b _080DC4E6 -_080DC426: - ldrh r3, [r5, 0x22] - ldrh r4, [r5, 0x24] - movs r2, 0x24 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r1, r0 - bgt _080DC4BE - ldr r0, _080DC470 @ =gSineTable - mov r9, r0 - movs r7, 0x3 - ldr r1, _080DC474 @ =gUnknown_03004DE0 - mov r12, r1 - movs r2, 0xF0 - lsls r2, 3 - add r2, r12 - mov r8, r2 -_080DC448: - lsls r2, r3, 16 - asrs r0, r2, 15 - add r0, r9 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r3, r0, 16 - adds r6, r2, 0 - cmp r3, 0 - ble _080DC478 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - adds r0, r3, r0 - b _080DC484 - .align 2, 0 -_080DC470: .4byte gSineTable -_080DC474: .4byte gUnknown_03004DE0 -_080DC478: - cmp r3, 0 - bge _080DC488 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - subs r0, r3, r0 -_080DC484: - lsls r0, 16 - lsrs r1, r0, 16 -_080DC488: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - mov r0, r12 - adds r4, r3, r0 - ldrh r0, [r5, 0x1C] - lsls r1, 16 - asrs r1, 16 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, 0x1C] - adds r1, r0 - strh r1, [r3] - asrs r0, r6, 16 - ldrh r1, [r5, 0x1E] - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _080DC448 -_080DC4BE: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _080DC4E6 - b _080DC4D4 -_080DC4CE: - ldr r1, _080DC4DC @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080DC4D4: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC4E6 - .align 2, 0 -_080DC4DC: .4byte gUnknown_03004DC0 -_080DC4E0: - adds r0, r2, 0 - bl move_anim_task_del -_080DC4E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DC3F4 - - thumb_func_start sub_80DC4F4 -sub_80DC4F4: @ 80DC4F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DC528 @ =gTasks - adds r7, r0, r1 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r5 - adds r6, r5, 0 - cmp r6, 0xFF - bne _080DC52C - adds r0, r4, 0 - bl move_anim_task_del - b _080DC5D6 - .align 2, 0 -_080DC528: .4byte gTasks -_080DC52C: - ldr r1, _080DC550 @ =gUnknown_03004B00 - ldrb r0, [r1] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r1, r0, 16 - mov r9, r1 - asrs r0, 16 - cmp r0, 0 - bge _080DC554 - adds r0, r5, 0 - bl FreeOamMatrix - mov r0, r8 - bl move_anim_task_del - b _080DC5D6 - .align 2, 0 -_080DC550: .4byte gUnknown_03004B00 -_080DC554: - ldr r2, _080DC5E4 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r2, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, _080DC5E8 @ =SpriteCallbackDummy - str r1, [r0] - adds r4, r2 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r1, _080DC5EC @ =gUnknown_03004B00 - ldrb r0, [r1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x22] - mov r0, r10 - strh r0, [r7, 0x24] - mov r1, r9 - strh r1, [r7, 0x26] - ldr r0, _080DC5F0 @ =sub_80DC5F4 - str r0, [r7] -_080DC5D6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DC5E4: .4byte gSprites -_080DC5E8: .4byte SpriteCallbackDummy -_080DC5EC: .4byte gUnknown_03004B00 -_080DC5F0: .4byte sub_80DC5F4 - thumb_func_end sub_80DC4F4 - - thumb_func_start sub_80DC5F4 -sub_80DC5F4: @ 80DC5F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DC618 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DC678 - cmp r0, 0x1 - bgt _080DC61C - cmp r0, 0 - beq _080DC626 - b _080DC6F8 - .align 2, 0 -_080DC618: .4byte gTasks -_080DC61C: - cmp r0, 0x2 - beq _080DC6C8 - cmp r0, 0x3 - beq _080DC6E8 - b _080DC6F8 -_080DC626: - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC674 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x30 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC674: .4byte gSineTable -_080DC678: - ldrh r0, [r4, 0xA] - subs r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC6C4 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC6C4: .4byte gSineTable -_080DC6C8: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC6E4 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram -_080DC6DA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC6F8 - .align 2, 0 -_080DC6E4: .4byte gSprites -_080DC6E8: - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl FreeOamMatrix - adds r0, r5, 0 - bl move_anim_task_del -_080DC6F8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC5F4 - - thumb_func_start sub_80DC700 -sub_80DC700: @ 80DC700 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC778 - cmp r0, 0x1 - bgt _080DC716 - cmp r0, 0 - beq _080DC720 - b _080DC818 -_080DC716: - cmp r0, 0x2 - beq _080DC7AA - cmp r0, 0x3 - beq _080DC808 - b _080DC818 -_080DC720: - ldr r4, _080DC76C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC74E - ldrh r0, [r5, 0x22] - adds r0, 0xC - strh r0, [r5, 0x22] -_080DC74E: - movs r0, 0x8 - strh r0, [r5, 0x30] - ldr r1, _080DC770 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080DC774 @ =REG_BLDALPHA - ldrh r1, [r5, 0x30] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - b _080DC7A2 - .align 2, 0 -_080DC76C: .4byte gUnknown_0202F7C8 -_080DC770: .4byte REG_BLDCNT -_080DC774: .4byte REG_BLDALPHA -_080DC778: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DC818 - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCB - bl PlaySE12WithPanning - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_080DC7A2: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DC818 -_080DC7AA: - ldrh r0, [r5, 0x32] - adds r1, r0, 0x1 - strh r1, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DC7E8 - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r1, 0x1 - strh r1, [r5, 0x30] - ldr r2, _080DC804 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DC7E8 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080DC7E8: - movs r0, 0xE0 - lsls r0, 2 - adds r2, r0, 0 - ldrh r1, [r5, 0x34] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r5, 0x26] - subs r0, r1 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r5, 0x34] - b _080DC818 - .align 2, 0 -_080DC804: .4byte REG_BLDALPHA -_080DC808: - ldr r0, _080DC820 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r5, 0 - bl move_anim_8072740 -_080DC818: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC820: .4byte REG_BLDCNT - thumb_func_end sub_80DC700 - - thumb_func_start sub_80DC824 -sub_80DC824: @ 80DC824 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC850 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080DC84C @ =gUnknown_03004B00 - ldrh r1, [r0, 0x4] - negs r1, r1 - strh r1, [r0, 0x4] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] - b _080DC880 - .align 2, 0 -_080DC84C: .4byte gUnknown_03004B00 -_080DC850: - ldr r0, _080DC8E4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DC880 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080DC8E8 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DC880: - ldr r5, _080DC8E4 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC8E8 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080DC8EC @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080DC8F0 @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC8E4: .4byte gUnknown_0202F7C9 -_080DC8E8: .4byte gUnknown_03004B00 -_080DC8EC: .4byte sub_8078B34 -_080DC8F0: .4byte move_anim_8072740 - thumb_func_end sub_80DC824 - - thumb_func_start sub_80DC8F4 -sub_80DC8F4: @ 80DC8F4 - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC918 - ldr r1, _080DC914 @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _080DC934 - .align 2, 0 -_080DC914: .4byte gUnknown_03004B00 -_080DC918: - ldr r0, _080DC990 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DC934 - ldr r0, _080DC994 @ =gUnknown_03004B00 - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] -_080DC934: - ldr r5, _080DC990 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC994 @ =gUnknown_03004B00 - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - ldr r0, _080DC998 @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080DC99C @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC990: .4byte gUnknown_0202F7C9 -_080DC994: .4byte gUnknown_03004B00 -_080DC998: .4byte sub_8078B34 -_080DC99C: .4byte move_anim_8072740 - thumb_func_end sub_80DC8F4 - - thumb_func_start sub_80DC9A0 -sub_80DC9A0: @ 80DC9A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DC9BC - ldr r0, _080DC9FC @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - strh r1, [r0, 0x4] -_080DC9BC: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DC9FC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080DCA04 - ldr r4, _080DCA00 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080DCA16 - .align 2, 0 -_080DC9FC: .4byte gUnknown_03004B00 -_080DCA00: .4byte gUnknown_0202F7C9 -_080DCA04: - ldr r0, _080DCA2C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080DCA16: - adds r0, r5, 0 - bl sub_8078BD4 - ldr r0, _080DCA30 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x38] - ldr r0, _080DCA34 @ =sub_80DCA38 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCA2C: .4byte gUnknown_0202F7C9 -_080DCA30: .4byte gUnknown_03004B00 -_080DCA34: .4byte sub_80DCA38 - thumb_func_end sub_80DC9A0 - - thumb_func_start sub_80DCA38 -sub_80DCA38: @ 80DCA38 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DCA4E - adds r0, r4, 0 - bl move_anim_8072740 - b _080DCA6A -_080DCA4E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0xD - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] -_080DCA6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DCA38 - - thumb_func_start sub_80DCA70 -sub_80DCA70: @ 80DCA70 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCAA0 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldr r0, _080DCAA4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCAAC - ldr r0, _080DCAA8 @ =gUnknown_03004B00 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080DCAB8 - .align 2, 0 -_080DCAA0: .4byte gUnknown_0202F7C9 -_080DCAA4: .4byte gUnknown_0202F7C8 -_080DCAA8: .4byte gUnknown_03004B00 -_080DCAAC: - ldr r1, _080DCAE0 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080DCAB8: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080DCAE4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DCAD4 - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080DCAD4: - ldr r0, _080DCAE8 @ =sub_80DCAEC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCAE0: .4byte gUnknown_03004B00 -_080DCAE4: .4byte gUnknown_0202F7C9 -_080DCAE8: .4byte sub_80DCAEC - thumb_func_end sub_80DCA70 - - thumb_func_start sub_80DCAEC -sub_80DCAEC: @ 80DCAEC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DCB20 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] -_080DCB20: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080DCB34 - adds r0, r3, 0 - bl move_anim_8072740 -_080DCB34: - pop {r0} - bx r0 - thumb_func_end sub_80DCAEC - - thumb_func_start sub_80DCB38 -sub_80DCB38: @ 80DCB38 - ldr r2, _080DCB54 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r1, r3, 0 - strh r1, [r2] - adds r2, 0x2 - movs r1, 0x10 - strh r1, [r2] - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldr r1, _080DCB58 @ =sub_80DCB5C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DCB54: .4byte REG_BLDCNT -_080DCB58: .4byte sub_80DCB5C - thumb_func_end sub_80DCB38 - - thumb_func_start sub_80DCB5C -sub_80DCB5C: @ 80DCB5C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x32] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r0, 0x13 - bgt _080DCB70 - adds r0, r1, 0x1 - strh r0, [r3, 0x32] - b _080DCBA8 -_080DCB70: - ldrh r1, [r3, 0x30] - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DCBA8 - ldrh r1, [r3, 0x2E] - subs r1, 0x1 - strh r1, [r3, 0x2E] - ldr r2, _080DCBAC @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080DCBA8 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DCBB0 @ =sub_80DCBB4 - str r0, [r3, 0x1C] -_080DCBA8: - pop {r0} - bx r0 - .align 2, 0 -_080DCBAC: .4byte REG_BLDALPHA -_080DCBB0: .4byte sub_80DCBB4 - thumb_func_end sub_80DCB5C - - thumb_func_start sub_80DCBB4 -sub_80DCBB4: @ 80DCBB4 - push {lr} - ldr r1, _080DCBC8 @ =REG_BLDCNT - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DCBC8: .4byte REG_BLDCNT - thumb_func_end sub_80DCBB4 - - thumb_func_start sub_80DCBCC -sub_80DCBCC: @ 80DCBCC - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DCBEC - ldr r1, _080DCBE8 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080DCC0E - .align 2, 0 -_080DCBE8: .4byte gUnknown_03004B00 -_080DCBEC: - ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCC0E - ldr r1, _080DCCEC @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080DCC0E: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DCC5E - ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080DCC5E - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - beq _080DCC4C - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DCC5E -_080DCC4C: - ldr r0, _080DCCEC @ =gUnknown_03004B00 - movs r2, 0x4 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0, 0x4] - movs r2, 0 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0] -_080DCC5E: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - ldr r6, _080DCCEC @ =gUnknown_03004B00 - lsrs r4, 24 - ldrh r0, [r6, 0x4] - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r7, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r7, 0x22] - lsrs r5, r1, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r6, 0x8] - strh r0, [r7, 0x2E] - strh r4, [r7, 0x32] - strh r5, [r7, 0x36] - ldr r0, _080DCCF4 @ =sub_8078B34 - str r0, [r7, 0x1C] - ldr r1, _080DCCF8 @ =move_anim_8072740 - adds r0, r7, 0 - bl oamt_set_x3A_32 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCCE8: .4byte gUnknown_0202F7C8 -_080DCCEC: .4byte gUnknown_03004B00 -_080DCCF0: .4byte gUnknown_0202F7C9 -_080DCCF4: .4byte sub_8078B34 -_080DCCF8: .4byte move_anim_8072740 - thumb_func_end sub_80DCBCC - - thumb_func_start sub_80DCCFC -sub_80DCCFC: @ 80DCCFC - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DCD68 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCD1C - ldr r1, _080DCD6C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080DCD1C: - ldr r4, _080DCD6C @ =gUnknown_03004B00 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080DCD70 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080DCD74 @ =sub_80DCD78 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCD68: .4byte gUnknown_0202F7C8 -_080DCD6C: .4byte gUnknown_03004B00 -_080DCD70: .4byte gUnknown_0202F7C9 -_080DCD74: .4byte sub_80DCD78 - thumb_func_end sub_80DCCFC - - thumb_func_start sub_80DCD78 -sub_80DCD78: @ 80DCD78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DCDA4 - adds r0, r4, 0 - bl move_anim_8072740 - b _080DCE34 -_080DCDA4: - movs r0, 0x2E - adds r0, r4 - mov r8, r0 - ldrh r7, [r4, 0x20] - ldrh r5, [r4, 0x24] - ldrh r1, [r4, 0x22] - mov r12, r1 - ldrh r6, [r4, 0x26] - mov r2, r8 - add r1, sp, 0x4 - movs r3, 0x7 -_080DCDBA: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCDBA - adds r0, r7, r5 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r12 - adds r0, r2, r6 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080DCE34 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r1, r2 - lsls r2, r6, 16 - asrs r2, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - add r2, sp, 0x4 - mov r1, r8 - movs r3, 0x7 -_080DCE26: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCE26 -_080DCE34: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DCD78 - - thumb_func_start sub_80DCE40 -sub_80DCE40: @ 80DCE40 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DCE54 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DCE5C - ldr r4, _080DCE58 @ =gUnknown_0202F7C8 - b _080DCE5E - .align 2, 0 -_080DCE54: .4byte gUnknown_03004B00 -_080DCE58: .4byte gUnknown_0202F7C8 -_080DCE5C: - ldr r4, _080DCE90 @ =gUnknown_0202F7C9 -_080DCE5E: - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x12 - strh r0, [r5, 0x22] - ldr r1, _080DCE94 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DCE98 @ =sub_80785E4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCE90: .4byte gUnknown_0202F7C9 -_080DCE94: .4byte move_anim_8074EE0 -_080DCE98: .4byte sub_80785E4 - thumb_func_end sub_80DCE40 - - thumb_func_start sub_80DCE9C -sub_80DCE9C: @ 80DCE9C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DCF08 @ =gUnknown_03004B00 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080DCEBC - ldr r0, _080DCF0C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC -_080DCEBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r4, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xE - strh r0, [r5, 0x22] - ldrb r1, [r6, 0x2] - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - strh r4, [r5, 0x2E] - strh r4, [r5, 0x30] - movs r0, 0x4 - strh r0, [r5, 0x32] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldr r0, _080DCF10 @ =0x0000ffba - strh r0, [r5, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x38] - ldr r1, _080DCF14 @ =sub_80DCF1C - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r1, _080DCF18 @ =sub_8078278 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCF08: .4byte gUnknown_03004B00 -_080DCF0C: .4byte gUnknown_0202F7C9 -_080DCF10: .4byte 0x0000ffba -_080DCF14: .4byte sub_80DCF1C -_080DCF18: .4byte sub_8078278 - thumb_func_end sub_80DCE9C - - thumb_func_start sub_80DCF1C -sub_80DCF1C: @ 80DCF1C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x20] - adds r0, r1, r2 - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x20 - strh r0, [r4, 0x34] - ldr r0, _080DCF54 @ =0x0000ffe8 - strh r0, [r4, 0x36] - ldr r1, _080DCF58 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080DCF5C @ =sub_8078278 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCF54: .4byte 0x0000ffe8 -_080DCF58: .4byte move_anim_8074EE0 -_080DCF5C: .4byte sub_8078278 - thumb_func_end sub_80DCF1C - - thumb_func_start sub_80DCF60 -sub_80DCF60: @ 80DCF60 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DCF88 @ =gUnknown_03004B00 - ldrb r1, [r4, 0xA] - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - ldr r0, _080DCF8C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DCF90 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080DCF96 - .align 2, 0 -_080DCF88: .4byte gUnknown_03004B00 -_080DCF8C: .4byte gUnknown_0202F7C8 -_080DCF90: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080DCF96: - strh r0, [r5, 0x20] - ldr r3, _080DCFD8 @ =gUnknown_03004B00 - ldrh r2, [r3, 0x2] - ldrh r0, [r5, 0x22] - adds r2, r0 - movs r4, 0 - strh r2, [r5, 0x22] - ldrh r0, [r3, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldrh r0, [r3, 0x6] - adds r2, r0 - strh r2, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078A5C - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - ldr r0, _080DCFDC @ =sub_8078394 - str r0, [r5, 0x1C] - ldr r1, _080DCFE0 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCFD8: .4byte gUnknown_03004B00 -_080DCFDC: .4byte sub_8078394 -_080DCFE0: .4byte move_anim_8074EE0 - thumb_func_end sub_80DCF60 - - thumb_func_start sub_80DCFE4 -sub_80DCFE4: @ 80DCFE4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCFFC @ =gUnknown_03004B00 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DD000 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080DD008 - .align 2, 0 -_080DCFFC: .4byte gUnknown_03004B00 -_080DD000: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080DD008: - ldr r1, _080DD024 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080DD028 @ =sub_80DD02C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD024: .4byte gUnknown_03004B00 -_080DD028: .4byte sub_80DD02C - thumb_func_end sub_80DCFE4 - - thumb_func_start sub_80DD02C -sub_80DD02C: @ 80DD02C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DD072 - adds r0, r4, 0 - bl move_anim_8072740 -_080DD072: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD02C - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 80DD078 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _080DD154 @ =REG_BLDCNT - ldr r2, _080DD158 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080DD15C @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DD0C4 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080DD0C4: - ldr r0, _080DD160 @ =gUnknown_030042C0 - strh r5, [r0] - ldr r0, _080DD164 @ =gUnknown_030041B4 - strh r5, [r0] - ldr r0, _080DD168 @ =REG_BG1HOFS - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - str r5, [sp, 0xC] - ldr r2, _080DD16C @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080DD170 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew - bl LZDecompressVram - ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DD120 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080DD120: - ldr r0, _080DD180 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DD13A - ldr r0, _080DD184 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DD13A - movs r5, 0x1 -_080DD13A: - ldr r0, _080DD188 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - strh r5, [r1, 0x8] - ldr r0, _080DD18C @ =sub_80DD190 - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD154: .4byte REG_BLDCNT -_080DD158: .4byte 0x00003f42 -_080DD15C: .4byte REG_BG1CNT -_080DD160: .4byte gUnknown_030042C0 -_080DD164: .4byte gUnknown_030041B4 -_080DD168: .4byte REG_BG1HOFS -_080DD16C: .4byte 0x040000d4 -_080DD170: .4byte 0x85000400 -_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew -_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew -_080DD17C: .4byte gBattleAnimSpritePalette_261 -_080DD180: .4byte gUnknown_03004B00 -_080DD184: .4byte gUnknown_0202F7C8 -_080DD188: .4byte gTasks -_080DD18C: .4byte sub_80DD190 - thumb_func_end do_boulder_dust - - thumb_func_start sub_80DD190 -sub_80DD190: @ 80DD190 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080DD1C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r3, r1, 0 - cmp r0, 0 - bne _080DD1CC - ldr r1, _080DD1C4 @ =gUnknown_030042C0 - ldr r5, _080DD1C8 @ =0x0000fffa - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - b _080DD1D2 - .align 2, 0 -_080DD1C0: .4byte gTasks -_080DD1C4: .4byte gUnknown_030042C0 -_080DD1C8: .4byte 0x0000fffa -_080DD1CC: - ldr r1, _080DD204 @ =gUnknown_030042C0 - ldrh r0, [r1] - adds r0, 0x6 -_080DD1D2: - strh r0, [r1] - adds r4, r1, 0 - ldr r1, _080DD208 @ =gUnknown_030041B4 - ldr r5, _080DD20C @ =0x0000ffff - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r3 - movs r5, 0x20 - ldrsh r0, [r0, r5] - mov r8, r2 - adds r2, r1, 0 - cmp r0, 0x4 - bls _080DD1F8 - b _080DD37C -_080DD1F8: - lsls r0, 2 - ldr r1, _080DD210 @ =_080DD214 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD204: .4byte gUnknown_030042C0 -_080DD208: .4byte gUnknown_030041B4 -_080DD20C: .4byte 0x0000ffff -_080DD210: .4byte _080DD214 - .align 2, 0 -_080DD214: - .4byte _080DD228 - .4byte _080DD270 - .4byte _080DD292 - .4byte _080DD2D4 - .4byte _080DD358 -_080DD228: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080DD242 - b _080DD37C -_080DD242: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD26C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r0, [r3, r2] - cmp r0, 0x7 - beq _080DD260 - b _080DD37C -_080DD260: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD26C: .4byte REG_BLDALPHA -_080DD270: - mov r5, r8 - adds r0, r5, r7 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080DD37C - movs r0, 0x7 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080DD37C -_080DD292: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080DD37C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD2D0 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080DD37C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD2D0: .4byte REG_BLDALPHA -_080DD2D4: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0xC - movs r6, 0 - ldr r1, _080DD38C @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r9, r5 - ldr r0, _080DD390 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r10, r0 -_080DD2F6: - str r6, [sp, 0xC] - mov r0, r9 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080DD2F6 - str r6, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r10 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080DD38C @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080DD394 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080DD344 - ldr r2, _080DD398 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080DD344: - ldr r0, _080DD39C @ =gTasks - mov r5, r8 - adds r1, r5, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r4, _080DD3A0 @ =gUnknown_030042C0 - ldr r2, _080DD3A4 @ =gUnknown_030041B4 -_080DD358: - movs r1, 0 - strh r1, [r4] - strh r1, [r2] - ldr r0, _080DD3A8 @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080DD398 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r7, 0 - bl move_anim_task_del -_080DD37C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD38C: .4byte 0x040000d4 -_080DD390: .4byte 0x85000400 -_080DD394: .4byte 0x85000200 -_080DD398: .4byte REG_BG1CNT -_080DD39C: .4byte gTasks -_080DD3A0: .4byte gUnknown_030042C0 -_080DD3A4: .4byte gUnknown_030041B4 -_080DD3A8: .4byte REG_BLDCNT - thumb_func_end sub_80DD190 - - thumb_func_start sub_80DD3AC -sub_80DD3AC: @ 80DD3AC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD428 - ldr r4, _080DD3F0 @ =gUnknown_03004B00 - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DD3F8 - ldr r0, _080DD3F4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DD3F8 - movs r0, 0x98 - lsls r0, 1 - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - b _080DD3FC - .align 2, 0 -_080DD3F0: .4byte gUnknown_03004B00 -_080DD3F4: .4byte gUnknown_0202F7C8 -_080DD3F8: - ldr r0, _080DD41C @ =0x0000ffc0 - strh r0, [r5, 0x20] -_080DD3FC: - ldr r4, _080DD420 @ =gUnknown_03004B00 - ldrh r0, [r4] - strh r0, [r5, 0x22] - ldr r1, _080DD424 @ =gUnknown_083DAD10 - adds r0, r5, 0 - bl SetSubspriteTables - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DD484 - .align 2, 0 -_080DD41C: .4byte 0x0000ffc0 -_080DD420: .4byte gUnknown_03004B00 -_080DD424: .4byte gUnknown_083DAD10 -_080DD428: - ldrh r1, [r5, 0x30] - ldrh r3, [r5, 0x34] - adds r1, r3 - ldrh r2, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r2, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r3, [r5, 0x24] - adds r0, r3 - strh r0, [r5, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r3, [r5, 0x26] - adds r0, r3 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x34] - ands r2, r0 - strh r2, [r5, 0x36] - movs r1, 0x38 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD46E - movs r2, 0x20 - ldrsh r0, [r5, r2] - movs r3, 0x24 - ldrsh r1, [r5, r3] - adds r0, r1 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - ble _080DD484 - b _080DD480 -_080DD46E: - movs r1, 0x20 - ldrsh r0, [r5, r1] - movs r2, 0x24 - ldrsh r1, [r5, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DD484 -_080DD480: - ldr r0, _080DD48C @ =move_anim_8072740 - str r0, [r5, 0x1C] -_080DD484: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD48C: .4byte move_anim_8072740 - thumb_func_end sub_80DD3AC - - thumb_func_start sub_80DD490 -sub_80DD490: @ 80DD490 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD4C8 @ =gUnknown_03004B00 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _080DD4CC @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080DD4D0 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD4C8: .4byte gUnknown_03004B00 -_080DD4CC: .4byte sub_8078B34 -_080DD4D0: .4byte move_anim_8072740 - thumb_func_end sub_80DD490 - - thumb_func_start sub_80DD4D4 -sub_80DD4D4: @ 80DD4D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DD554 @ =gTasks - adds r6, r1, r0 - ldr r5, _080DD558 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - ldr r4, _080DD55C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xC0 - lsls r2, 13 - adds r0, r2 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080DD544 - mov r8, r7 -_080DD544: - bl sub_80DD8BC - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080DD560 - movs r0, 0x20 - b _080DD566 - .align 2, 0 -_080DD554: .4byte gTasks -_080DD558: .4byte gUnknown_0202F7C8 -_080DD55C: .4byte gUnknown_0202F7C9 -_080DD560: - lsls r1, r5, 3 - movs r0, 0x30 - subs r0, r1 -_080DD566: - strh r0, [r6, 0x18] - movs r4, 0 - strh r4, [r6, 0x8] - strh r4, [r6, 0x1E] - strh r4, [r6, 0x1A] - movs r0, 0x1 - strh r0, [r6, 0x20] - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _080DD57E - adds r0, 0x7 -_080DD57E: - asrs r0, 3 - subs r0, 0x1 - strh r0, [r6, 0x1C] - mov r2, r9 - lsls r0, r2, 3 - strh r0, [r6, 0xC] - lsls r0, r7, 3 - strh r0, [r6, 0xE] - mov r1, r10 - subs r0, r1, r2 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x12] - strh r4, [r6, 0x14] - strh r4, [r6, 0x16] - movs r0, 0x40 - negs r0, r0 - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 8 - lsrs r4, 16 - movs r0, 0x3F - bl sub_8076F98 - lsls r0, 24 - strh r4, [r6, 0x22] - asrs r0, 24 - lsls r4, 16 - asrs r4, 16 - subs r0, r4 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x24] - strh r5, [r6, 0xA] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - ldr r0, _080DD600 @ =sub_80DD604 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD600: .4byte sub_80DD604 - thumb_func_end sub_80DD4D4 - - thumb_func_start sub_80DD604 -sub_80DD604: @ 80DD604 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DD628 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080DD61E - b _080DD76C -_080DD61E: - lsls r0, 2 - ldr r1, _080DD62C @ =_080DD630 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD628: .4byte gTasks -_080DD62C: .4byte _080DD630 - .align 2, 0 -_080DD630: - .4byte _080DD644 - .4byte _080DD6A8 - .4byte _080DD6B0 - .4byte _080DD70C - .4byte _080DD75E -_080DD644: - ldrh r2, [r4, 0x14] - ldrh r0, [r4, 0x10] - subs r2, r0 - strh r2, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - ldr r3, _080DD6A4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 16 - asrs r2, 19 - strh r2, [r0, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080DD694 - movs r0, 0x14 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD694: - ldrh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA2 - bl PlaySE12WithPanning - b _080DD76C - .align 2, 0 -_080DD6A4: .4byte gSprites -_080DD6A8: - ldrh r0, [r4, 0x1E] - subs r0, 0x1 - strh r0, [r4, 0x1E] - b _080DD750 -_080DD6B0: - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _080DD6D0 - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0x14] - adds r0, r2 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - b _080DD6DA -_080DD6D0: - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD6DA: - ldr r2, _080DD708 @ =gSprites - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - b _080DD76C - .align 2, 0 -_080DD708: .4byte gSprites -_080DD70C: - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1C - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080DD74A - movs r0, 0 - strh r0, [r4, 0x1A] - adds r0, r4, 0 - bl sub_80DD774 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xAF - bl PlaySE12WithPanning -_080DD74A: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] -_080DD750: - lsls r0, 16 - cmp r0, 0 - bne _080DD76C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DD76C -_080DD75E: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DD76C - adds r0, r2, 0 - bl move_anim_task_del -_080DD76C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD604 - - thumb_func_start sub_80DD774 -sub_80DD774: @ 80DD774 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bhi _080DD864 - lsls r0, 2 - ldr r1, _080DD790 @ =_080DD794 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD790: .4byte _080DD794 - .align 2, 0 -_080DD794: - .4byte _080DD7A8 - .4byte _080DD7B4 - .4byte _080DD7B4 - .4byte _080DD7C0 - .4byte _080DD7CC -_080DD7A8: - ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78 - movs r5, 0 - b _080DD7D0 - .align 2, 0 -_080DD7B0: .4byte gSpriteTemplate_83DAD78 -_080DD7B4: - ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90 - movs r5, 0x50 - b _080DD7D0 - .align 2, 0 -_080DD7BC: .4byte gSpriteTemplate_83DAD90 -_080DD7C0: - ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90 - movs r5, 0x40 - b _080DD7D0 - .align 2, 0 -_080DD7C8: .4byte gSpriteTemplate_83DAD90 -_080DD7CC: - ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90 - movs r5, 0x30 -_080DD7D0: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0xE] - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - movs r6, 0x20 - ldrsh r0, [r4, r6] - lsls r0, 2 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r0, r3, 0 - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DD85C - ldr r1, _080DD870 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x2E] - movs r2, 0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r2, r6, r2 - movs r6, 0xA - ldrsh r3, [r4, r6] - lsls r1, r3, 1 - adds r1, r3 - adds r2, r1 - strh r2, [r0, 0x32] - strh r7, [r0, 0x36] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r2, 1 - movs r3, 0x10 - negs r3, r3 - adds r1, r3, 0 - subs r1, r2 - strh r1, [r0, 0x38] - ldrh r3, [r0, 0x4] - lsls r2, r3, 22 - lsrs r2, 22 - adds r2, r5 - ldr r5, _080DD874 @ =0x000003ff - adds r1, r5, 0 - ands r2, r1 - ldr r1, _080DD878 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - bl sub_80786EC - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] -_080DD85C: - movs r6, 0x20 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x20] -_080DD864: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD86C: .4byte gSpriteTemplate_83DAD90 -_080DD870: .4byte gSprites -_080DD874: .4byte 0x000003ff -_080DD878: .4byte 0xfffffc00 - thumb_func_end sub_80DD774 - - thumb_func_start sub_80DD87C -sub_80DD87C: @ 80DD87C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DD8AE - ldr r0, _080DD8B4 @ =sub_80DD604 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080DD8A8 - ldr r0, _080DD8B8 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - subs r0, 0x1 - strh r0, [r1, 0x1E] -_080DD8A8: - adds r0, r4, 0 - bl DestroySprite -_080DD8AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD8B4: .4byte sub_80DD604 -_080DD8B8: .4byte gTasks - thumb_func_end sub_80DD87C - - thumb_func_start sub_80DD8BC -sub_80DD8BC: @ 80DD8BC - push {lr} - ldr r0, _080DD8E4 @ =gUnknown_0202F7B4 - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080DD8DE - movs r1, 0x1 -_080DD8DE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DD8E4: .4byte gUnknown_0202F7B4 - thumb_func_end sub_80DD8BC - - thumb_func_start sub_80DD8E8 -sub_80DD8E8: @ 80DD8E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD920 @ =gUnknown_03004B00 - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - ldrh r1, [r5, 0x4] - subs r0, r1 - strh r0, [r4, 0x34] - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DD924 @ =sub_80DD928 - str r0, [r4, 0x1C] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD920: .4byte gUnknown_03004B00 -_080DD924: .4byte sub_80DD928 - thumb_func_end sub_80DD8E8 - - thumb_func_start sub_80DD928 -sub_80DD928: @ 80DD928 - push {lr} - adds r2, r0, 0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, 0x34] - movs r3, 0x34 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080DD960 - ldrh r3, [r2, 0x32] - adds r0, r1, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r1, r0 - strh r1, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r1, 16 - cmp r1, 0 - ble _080DD972 - movs r0, 0 - strh r0, [r2, 0x34] - b _080DD972 -_080DD960: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080DD972 - adds r0, r2, 0 - bl move_anim_8072740 -_080DD972: - pop {r0} - bx r0 - thumb_func_end sub_80DD928 - - thumb_func_start sub_80DD978 -sub_80DD978: @ 80DD978 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DD9A0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DD994 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DD994: - adds r0, r4, 0 - bl sub_807941C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD9A0: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80DD978 - - thumb_func_start sub_80DD9A4 -sub_80DD9A4: @ 80DD9A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD9F0 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DD9F4 @ =gUnknown_03004B00 - ldrh r3, [r2] - ldrh r5, [r4, 0x20] - adds r1, r3, r5 - strh r1, [r4, 0x20] - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r4, 0x22] - strh r3, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x38] - ldrb r1, [r2, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080DD9F8 @ =sub_80DD9FC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD9F0: .4byte gUnknown_0202F7C9 -_080DD9F4: .4byte gUnknown_03004B00 -_080DD9F8: .4byte sub_80DD9FC - thumb_func_end sub_80DD9A4 - - thumb_func_start sub_80DD9FC -sub_80DD9FC: @ 80DD9FC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - ldrh r1, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - subs r1, r0 - strh r1, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8C - ble _080DDA46 - adds r0, r4, 0 - bl move_anim_8072740 -_080DDA46: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD9FC - - thumb_func_start sub_80DDA4C -sub_80DDA4C: @ 80DDA4C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080DDA84 @ =gUnknown_0202F7B8 - ldr r0, [r2] - cmp r0, 0x20 - bgt _080DDA60 - ldr r1, _080DDA88 @ =gUnknown_03004B00 - movs r0, 0 - strh r0, [r1, 0xE] -_080DDA60: - ldr r2, [r2] - adds r0, r2, 0 - subs r0, 0x21 - cmp r0, 0x20 - bhi _080DDA70 - ldr r1, _080DDA88 @ =gUnknown_03004B00 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080DDA70: - cmp r2, 0x41 - ble _080DDA7A - ldr r1, _080DDA88 @ =gUnknown_03004B00 - movs r0, 0x2 - strh r0, [r1, 0xE] -_080DDA7A: - adds r0, r3, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080DDA84: .4byte gUnknown_0202F7B8 -_080DDA88: .4byte gUnknown_03004B00 - thumb_func_end sub_80DDA4C - - thumb_func_start sub_80DDA8C -sub_80DDA8C: @ 80DDA8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080DDAE8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DDAAE - movs r0, 0 - bl sub_80789D4 - movs r0, 0xC8 - strh r0, [r5, 0xA] -_080DDAAE: - ldr r4, _080DDAEC @ =gUnknown_030041B8 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - ldrh r0, [r5, 0xA] - subs r0, 0x3 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _080DDADA - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl move_anim_task_del -_080DDADA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDAE8: .4byte gTasks -_080DDAEC: .4byte gUnknown_030041B8 - thumb_func_end sub_80DDA8C - - thumb_func_start sub_80DDAF0 -sub_80DDAF0: @ 80DDAF0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DDB5C @ =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 _080DDB1C - movs r0, 0 - bl sub_80789D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080DDB60 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r4, 0xC] -_080DDB1C: - ldrh r0, [r4, 0xA] - adds r0, 0x50 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0xA] - ldr r6, _080DDB60 @ =gUnknown_030041B8 - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r0, 0x4 - bl Cos - ldrh r4, [r4, 0xC] - adds r0, r4 - strh r0, [r6] - ldr r0, _080DDB64 @ =gUnknown_03004B00 - movs r2, 0xE - ldrsh r1, [r0, r2] - ldr r0, _080DDB68 @ =0x00000fff - cmp r1, r0 - bne _080DDB54 - movs r0, 0 - strh r0, [r6] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r5, 0 - bl move_anim_task_del -_080DDB54: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDB5C: .4byte gTasks -_080DDB60: .4byte gUnknown_030041B8 -_080DDB64: .4byte gUnknown_03004B00 -_080DDB68: .4byte 0x00000fff - thumb_func_end sub_80DDAF0 - - thumb_func_start sub_80DDB6C -sub_80DDB6C: @ 80DDB6C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DDBC8 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldr r5, _080DDBCC @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078BD4 - ldr r0, _080DDBD0 @ =sub_80DDBD8 - str r0, [r4, 0x1C] - movs r0, 0x10 - strh r0, [r4, 0x3A] - ldr r1, _080DDBD4 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x3A] - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDBC8: .4byte gUnknown_03004B00 -_080DDBCC: .4byte gUnknown_0202F7C9 -_080DDBD0: .4byte sub_80DDBD8 -_080DDBD4: .4byte REG_BLDCNT - thumb_func_end sub_80DDB6C - - thumb_func_start sub_80DDBD8 -sub_80DDBD8: @ 80DDBD8 - push {r4,lr} - adds r4, r0, 0 - bl sub_80DDCC8 - adds r0, r4, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DDBF8 - ldr r0, _080DDBF4 @ =sub_80DDC4C - str r0, [r4, 0x1C] - b _080DDC42 - .align 2, 0 -_080DDBF4: .4byte sub_80DDC4C -_080DDBF8: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080DDC30 - cmp r2, 0xC4 - ble _080DDC42 -_080DDC30: - lsls r0, 16 - cmp r0, 0 - ble _080DDC42 - ldr r0, _080DDC48 @ =gUnknown_0202F7D2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xC4 - bl PlaySE12WithPanning -_080DDC42: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDC48: .4byte gUnknown_0202F7D2 - thumb_func_end sub_80DDBD8 - - thumb_func_start sub_80DDC4C -sub_80DDC4C: @ 80DDC4C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078B5C - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x38] - adds r0, r2, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x38] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080DDC92 - cmp r2, 0xC4 - ble _080DDC9E -_080DDC92: - lsls r0, 16 - cmp r0, 0 - ble _080DDC9E - movs r0, 0xC4 - bl PlaySE -_080DDC9E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DDCBC - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DDCB8 @ =sub_807861C - str r0, [r4, 0x1C] - b _080DDCC2 - .align 2, 0 -_080DDCB8: .4byte sub_807861C -_080DDCBC: - adds r0, r4, 0 - bl sub_80DDCC8 -_080DDCC2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DDC4C - - thumb_func_start sub_80DDCC8 -sub_80DDCC8: @ 80DDCC8 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0xFF - ble _080DDCEC - adds r0, r2, 0x1 - strh r0, [r3, 0x3A] - lsls r0, 16 - ldr r1, _080DDCE8 @ =0x010d0000 - cmp r0, r1 - bne _080DDD4C - movs r0, 0 - b _080DDD4A - .align 2, 0 -_080DDCE8: .4byte 0x010d0000 -_080DDCEC: - ldrh r1, [r3, 0x3C] - adds r4, r1, 0x1 - strh r4, [r3, 0x3C] - movs r0, 0xFF - ands r0, r1 - cmp r0, 0 - bne _080DDD4C - ldr r1, _080DDD10 @ =0xffffff00 - ands r1, r4 - strh r1, [r3, 0x3C] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080DDD14 - adds r0, r2, 0x1 - b _080DDD16 - .align 2, 0 -_080DDD10: .4byte 0xffffff00 -_080DDD14: - subs r0, r2, 0x1 -_080DDD16: - strh r0, [r3, 0x3A] - ldr r2, _080DDD54 @ =REG_BLDALPHA - ldrh r1, [r3, 0x3A] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080DDD32 - cmp r0, 0x10 - bne _080DDD3E -_080DDD32: - ldrh r0, [r3, 0x3C] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r3, 0x3C] -_080DDD3E: - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080DDD4C - movs r0, 0x80 - lsls r0, 1 -_080DDD4A: - strh r0, [r3, 0x3A] -_080DDD4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDD54: .4byte REG_BLDALPHA - thumb_func_end sub_80DDCC8 - - thumb_func_start sub_80DDD58 -sub_80DDD58: @ 80DDD58 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r1, _080DDD74 @ =sub_80DDD78 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DDD74: .4byte sub_80DDD78 - thumb_func_end sub_80DDD58 - - thumb_func_start sub_80DDD78 -sub_80DDD78: @ 80DDD78 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x20 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x8 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x82 - bhi _080DDDAC - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x8 - b _080DDDB6 -_080DDDAC: - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 -_080DDDB6: - orrs r1, r0 - strb r1, [r4, 0x5] - ldrh r0, [r4, 0x2E] - adds r0, 0x13 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x50 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3D - bne _080DDDE8 - adds r0, r4, 0 - bl move_anim_8072740 -_080DDDE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DDD78 - - thumb_func_start sub_80DDDF0 -sub_80DDDF0: @ 80DDDF0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080DDE68 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078E70 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x80 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _080DDE6C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r1, _080DDE70 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x80 - strh r1, [r0, 0x8] - ldr r1, _080DDE74 @ =gUnknown_03004B00 - ldrh r1, [r1] - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x10 - strh r1, [r0, 0xE] - ldr r1, _080DDE78 @ =sub_80DDE7C - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DDE68: .4byte REG_BLDCNT -_080DDE6C: .4byte gSprites -_080DDE70: .4byte gTasks -_080DDE74: .4byte gUnknown_03004B00 -_080DDE78: .4byte sub_80DDE7C - thumb_func_end sub_80DDDF0 - - thumb_func_start sub_80DDE7C -sub_80DDE7C: @ 80DDE7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DDEC4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DDEBE - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0xC] - adds r1, 0x1 - strh r1, [r3, 0xC] - ldrh r0, [r3, 0xE] - subs r0, 0x1 - strh r0, [r3, 0xE] - ldr r2, _080DDEC8 @ =REG_BLDALPHA - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0x9 - bne _080DDEBE - ldr r0, _080DDECC @ =sub_80DDED0 - str r0, [r3] -_080DDEBE: - pop {r0} - bx r0 - .align 2, 0 -_080DDEC4: .4byte gTasks -_080DDEC8: .4byte REG_BLDALPHA -_080DDECC: .4byte sub_80DDED0 - thumb_func_end sub_80DDE7C - - thumb_func_start sub_80DDED0 -sub_80DDED0: @ 80DDED0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DDEF4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DDEF8 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080DDF36 - .align 2, 0 -_080DDEF4: .4byte gTasks -_080DDEF8: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r1, r0, 24 - ldrh r0, [r4, 0x8] - adds r0, 0x8 - movs r6, 0 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - bgt _080DDF22 - movs r0, 0x8 - ldrsh r2, [r4, r0] - adds r0, r1, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - b _080DDF36 -_080DDF22: - adds r0, r1, 0 - bl sub_8078F40 - adds r0, r5, 0 - bl move_anim_task_del - ldr r0, _080DDF3C @ =REG_BLDCNT - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] -_080DDF36: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDF3C: .4byte REG_BLDCNT - thumb_func_end sub_80DDED0 - - thumb_func_start sub_80DDF40 -sub_80DDF40: @ 80DDF40 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r5, [r4, 0x20] - ldrh r6, [r4, 0x22] - ldr r0, _080DDFDC @ =gUnknown_0202F7C8 - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - strh r0, [r4, 0x20] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - mov r1, r9 - strh r1, [r4, 0x2E] - ldr r2, _080DDFE0 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r4, 0x30] - ldrh r1, [r2, 0x2] - strh r1, [r4, 0x32] - ldrh r1, [r2, 0x4] - strh r1, [r4, 0x34] - ldrh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x36] - lsls r0, 4 - strh r0, [r4, 0x38] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x20 - ldrsh r0, [r4, r1] - subs r5, r0 - lsls r5, 4 - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r5, 0 - str r2, [sp] - bl __divsi3 - strh r0, [r4, 0x3A] - lsls r6, 16 - asrs r6, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - subs r6, r0 - lsls r6, 4 - ldr r2, [sp] - movs r0, 0 - ldrsh r1, [r2, r0] - lsls r1, 1 - adds r0, r6, 0 - bl __divsi3 - strh r0, [r4, 0x3C] - ldr r0, _080DDFE4 @ =sub_80DDFE8 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDFDC: .4byte gUnknown_0202F7C8 -_080DDFE0: .4byte gUnknown_03004B00 -_080DDFE4: .4byte sub_80DDFE8 - thumb_func_end sub_80DDF40 - - thumb_func_start sub_80DDFE8 -sub_80DDFE8: @ 80DDFE8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DE032 - cmp r0, 0x1 - bgt _080DDFFE - cmp r0, 0 - beq _080DE008 - b _080DE0F6 -_080DDFFE: - cmp r0, 0x2 - beq _080DE09C - cmp r0, 0x3 - beq _080DE0F0 - b _080DE0F6 -_080DE008: - ldrh r0, [r5, 0x3A] - ldrh r2, [r5, 0x36] - adds r0, r2 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x30] - subs r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - b _080DE0E2 -_080DE032: - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - ldr r4, _080DE098 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x30] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x20] - lsls r0, 4 - strh r0, [r5, 0x36] - ldrh r0, [r5, 0x22] - lsls r0, 4 - strh r0, [r5, 0x38] - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r2, 0x20 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3A] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r2, 0x22 - ldrsh r1, [r5, r2] - subs r0, r1 - lsls r0, 4 - movs r2, 0x34 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0x3C] - b _080DE0E2 - .align 2, 0 -_080DE098: .4byte gUnknown_0202F7C9 -_080DE09C: - ldrh r0, [r5, 0x3A] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r1, [r5, 0x3C] - ldrh r2, [r5, 0x38] - adds r1, r2 - strh r1, [r5, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r5, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - cmp r0, 0 - bgt _080DE0F6 - ldr r4, _080DE0EC @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080DE0E2: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DE0F6 - .align 2, 0 -_080DE0EC: .4byte gUnknown_0202F7C9 -_080DE0F0: - adds r0, r5, 0 - bl move_anim_8074EE0 -_080DE0F6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DDFE8 - - thumb_func_start sub_80DE0FC -sub_80DE0FC: @ 80DE0FC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080DE110 @ =sub_80DE114 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DE110: .4byte sub_80DE114 - thumb_func_end sub_80DE0FC - - thumb_func_start sub_80DE114 -sub_80DE114: @ 80DE114 - push {r4-r6,lr} - adds r3, r0, 0 - movs r5, 0 - movs r6, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DE1AA - adds r1, r3, 0 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x4 - ands r0, r2 - adds r4, r1, 0 - cmp r0, 0 - bne _080DE13E - movs r0, 0x4 - orrs r0, r2 - strb r0, [r4] -_080DE13E: - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _080DE14E - cmp r0, 0x1 - beq _080DE158 - movs r6, 0x1 - b _080DE162 -_080DE14E: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x2 - bne _080DE162 - b _080DE166 -_080DE158: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bne _080DE162 - movs r5, 0x1 -_080DE162: - cmp r5, 0 - beq _080DE198 -_080DE166: - ldrb r2, [r4] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x32] - strh r1, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080DE1AA - strh r1, [r3, 0x32] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080DE1AA -_080DE198: - cmp r6, 0 - beq _080DE1A4 - adds r0, r3, 0 - bl move_anim_8072740 - b _080DE1AA -_080DE1A4: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_080DE1AA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DE114 - - thumb_func_start sub_80DE1B0 -sub_80DE1B0: @ 80DE1B0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DE1DC @ =gTasks - adds r5, r0, r1 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - movs r6, 0 - movs r1, 0 - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080DE1E0 - adds r0, r4, 0 - bl move_anim_task_del - b _080DE2C0 - .align 2, 0 -_080DE1DC: .4byte gTasks -_080DE1E0: - strh r1, [r5, 0xA] - movs r0, 0xF - strh r0, [r5, 0xC] - movs r0, 0x2 - strh r0, [r5, 0xE] - strh r1, [r5, 0x10] - ldr r1, _080DE244 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080DE248 @ =REG_BLDALPHA - ldrh r0, [r5, 0xE] - lsls r0, 8 - ldrh r1, [r5, 0xC] - orrs r0, r1 - strh r0, [r2] - ldr r4, _080DE24C @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x50 - strh r1, [r0, 0x2E] - ldr r0, _080DE250 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DE258 - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE254 @ =0x0000ff70 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x70 - b _080DE276 - .align 2, 0 -_080DE244: .4byte REG_BLDCNT -_080DE248: .4byte REG_BLDALPHA -_080DE24C: .4byte gSprites -_080DE250: .4byte gUnknown_0202F7C9 -_080DE254: .4byte 0x0000ff70 -_080DE258: - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x90 - strh r1, [r0, 0x30] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE2C8 @ =0x0000ff90 -_080DE276: - strh r1, [r0, 0x32] - ldr r4, _080DE2CC @ =gSprites - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x34] - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x36] - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080DE2D0 @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080DE2D4 @ =sub_8078394 - str r1, [r0] - ldr r0, _080DE2D8 @ =sub_80DE2DC - str r0, [r5] -_080DE2C0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DE2C8: .4byte 0x0000ff90 -_080DE2CC: .4byte gSprites -_080DE2D0: .4byte SpriteCallbackDummy -_080DE2D4: .4byte sub_8078394 -_080DE2D8: .4byte sub_80DE2DC - thumb_func_end sub_80DE1B0 - - thumb_func_start sub_80DE2DC -sub_80DE2DC: @ 80DE2DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DE300 @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DE37C - cmp r0, 0x1 - bgt _080DE304 - cmp r0, 0 - beq _080DE30A - b _080DE3A6 - .align 2, 0 -_080DE300: .4byte gTasks -_080DE304: - cmp r0, 0x2 - beq _080DE3A0 - b _080DE3A6 -_080DE30A: - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x3 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0x1 - bne _080DE328 - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DE328 - subs r0, r1, 0x1 - strh r0, [r4, 0xC] -_080DE328: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _080DE33E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DE33E - adds r0, r1, 0x1 - strh r0, [r4, 0xE] -_080DE33E: - ldr r2, _080DE374 @ =REG_BLDALPHA - ldrh r0, [r4, 0xE] - lsls r0, 8 - ldrh r1, [r4, 0xC] - orrs r0, r1 - strh r0, [r2] - ldr r1, [r4, 0xC] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080DE3A6 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x50 - ble _080DE3A6 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DE378 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram - movs r0, 0x1 - strh r0, [r4, 0x10] - b _080DE3A6 - .align 2, 0 -_080DE374: .4byte REG_BLDALPHA -_080DE378: .4byte gSprites -_080DE37C: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DE3A6 - ldr r0, _080DE39C @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - b _080DE3A6 - .align 2, 0 -_080DE39C: .4byte REG_BLDCNT -_080DE3A0: - adds r0, r2, 0 - bl move_anim_task_del -_080DE3A6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DE2DC - - thumb_func_start sub_80DE3AC -sub_80DE3AC: @ 80DE3AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080DE3CC @ =gTasks - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x26] - ldr r2, _080DE3D0 @ =sub_80DE3D4 - str r2, [r1] - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_080DE3CC: .4byte gTasks -_080DE3D0: .4byte sub_80DE3D4 - thumb_func_end sub_80DE3AC - - thumb_func_start sub_80DE3D4 -sub_80DE3D4: @ 80DE3D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DE40C @ =gTasks - adds r5, r0, r1 - ldr r0, _080DE410 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080DE400 - b _080DE604 -_080DE400: - lsls r0, 2 - ldr r1, _080DE414 @ =_080DE418 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DE40C: .4byte gTasks -_080DE410: .4byte gUnknown_0202F7C9 -_080DE414: .4byte _080DE418 - .align 2, 0 -_080DE418: - .4byte _080DE42C - .4byte _080DE500 - .4byte _080DE544 - .4byte _080DE5AC - .4byte _080DE5E0 -_080DE42C: - ldr r7, _080DE460 @ =0x00002771 - adds r0, r7, 0 - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - mov r8, r2 - strh r0, [r5, 0x24] - cmp r0, 0xFF - beq _080DE456 - movs r0, 0x1 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r5, 0x8] - lsls r0, 16 - cmp r0, 0 - bge _080DE464 - adds r0, r7, 0 - bl FreeSpritePaletteByTag -_080DE456: - adds r0, r4, 0 - bl move_anim_task_del - b _080DE60A - .align 2, 0 -_080DE460: .4byte 0x00002771 -_080DE464: - ldr r4, _080DE4E4 @ =gSprites - movs r3, 0x8 - ldrsh r0, [r5, r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r2, [r5, 0x24] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r1, 0x8 - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r2, 0x8 - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - mov r3, r8 - strh r3, [r5, 0xA] - strh r3, [r5, 0xC] - movs r0, 0x10 - strh r0, [r5, 0xE] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x10] - cmp r6, 0x1 - bne _080DE4EC - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE4E8 @ =0x0000fdff - b _080DE4F4 - .align 2, 0 -_080DE4E4: .4byte gSprites -_080DE4E8: .4byte 0x0000fdff -_080DE4EC: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE4FC @ =0x0000fbff -_080DE4F4: - ands r0, r1 - strh r0, [r2] - b _080DE604 - .align 2, 0 -_080DE4FC: .4byte 0x0000fbff -_080DE500: - movs r1, 0x24 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 4 - strh r0, [r5, 0x24] - movs r2, 0x10 - ldrsh r0, [r5, r2] - lsls r0, 1 - ldr r1, _080DE534 @ =gPlttBufferUnfaded - adds r0, r1 - movs r3, 0x24 - ldrsh r1, [r5, r3] - lsls r1, 1 - ldr r2, _080DE538 @ =gPlttBufferFaded - adds r1, r2 - ldr r2, _080DE53C @ =REG_BG0CNT - bl CpuSet - ldrh r0, [r5, 0x10] - ldr r3, _080DE540 @ =0x00003c0d - movs r1, 0x10 - movs r2, 0xA - bl BlendPalette - b _080DE604 - .align 2, 0 -_080DE534: .4byte gPlttBufferUnfaded -_080DE538: .4byte gPlttBufferFaded -_080DE53C: .4byte REG_BG0CNT -_080DE540: .4byte 0x00003c0d -_080DE544: - ldr r2, _080DE580 @ =gSprites - movs r0, 0x22 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - subs r1, 0x20 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r1, 0 - bge _080DE564 - movs r2, 0 -_080DE564: - cmp r6, 0x1 - bne _080DE584 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x4 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - b _080DE59C - .align 2, 0 -_080DE580: .4byte gSprites -_080DE584: - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r2, 0 - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - str r2, [sp] - movs r2, 0x8 - str r2, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] -_080DE59C: - movs r2, 0x2 - movs r3, 0x6 - bl sub_8089944 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x1C] - b _080DE604 -_080DE5AC: - cmp r6, 0x1 - bne _080DE5C0 - ldr r1, _080DE5B8 @ =REG_BLDCNT - ldr r2, _080DE5BC @ =0x00003f42 - adds r0, r2, 0 - b _080DE5C6 - .align 2, 0 -_080DE5B8: .4byte REG_BLDCNT -_080DE5BC: .4byte 0x00003f42 -_080DE5C0: - ldr r1, _080DE5D4 @ =REG_BLDCNT - ldr r3, _080DE5D8 @ =0x00003f44 - adds r0, r3, 0 -_080DE5C6: - strh r0, [r1] - ldr r1, _080DE5DC @ =REG_BLDALPHA - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - b _080DE604 - .align 2, 0 -_080DE5D4: .4byte REG_BLDCNT -_080DE5D8: .4byte 0x00003f44 -_080DE5DC: .4byte REG_BLDALPHA -_080DE5E0: - cmp r6, 0x1 - bne _080DE5F0 - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080DE5FA -_080DE5F0: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080DE5FA: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - ldr r0, _080DE618 @ =sub_80DE61C - str r0, [r5] -_080DE604: - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] -_080DE60A: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE618: .4byte sub_80DE61C - thumb_func_end sub_80DE3D4 - - thumb_func_start sub_80DE61C -sub_80DE61C: @ 80DE61C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DE6A0 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - adds r1, 0x1 - strh r1, [r4, 0xA] - movs r0, 0x1 - ands r0, r1 - strh r0, [r4, 0x12] - cmp r0, 0 - bne _080DE654 - ldr r1, _080DE6A4 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - strh r0, [r4, 0xC] -_080DE654: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _080DE676 - ldr r1, _080DE6A4 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x12 - bl __divsi3 - movs r1, 0x10 - subs r1, r0 - strh r1, [r4, 0xE] -_080DE676: - ldr r2, _080DE6A8 @ =REG_BLDALPHA - ldrh r0, [r4, 0xE] - lsls r0, 8 - ldrh r1, [r4, 0xC] - orrs r0, r1 - strh r0, [r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x80 - bne _080DE698 - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080DE6AC @ =sub_80DE6B0 - str r1, [r4] - adds r0, r5, 0 - bl _call_via_r1 -_080DE698: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DE6A0: .4byte gTasks -_080DE6A4: .4byte gSineTable -_080DE6A8: .4byte REG_BLDALPHA -_080DE6AC: .4byte sub_80DE6B0 - thumb_func_end sub_80DE61C - - thumb_func_start sub_80DE6B0 -sub_80DE6B0: @ 80DE6B0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DE6E0 @ =gTasks - adds r4, r0, r1 - ldr r0, _080DE6E4 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DE72C - cmp r0, 0x1 - bgt _080DE6E8 - cmp r0, 0 - beq _080DE6EE - b _080DE7AA - .align 2, 0 -_080DE6E0: .4byte gTasks -_080DE6E4: .4byte gUnknown_0202F7C9 -_080DE6E8: - cmp r0, 0x2 - beq _080DE740 - b _080DE7AA -_080DE6EE: - ldr r1, _080DE710 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] - movs r0, 0x1 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - cmp r6, 0x1 - bne _080DE718 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE714 @ =0x0000fdff - b _080DE720 - .align 2, 0 -_080DE710: .4byte gUnknown_03004DC0 -_080DE714: .4byte 0x0000fdff -_080DE718: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080DE728 @ =0x0000fbff -_080DE720: - ands r0, r1 - strh r0, [r2] - b _080DE7AA - .align 2, 0 -_080DE728: .4byte 0x0000fbff -_080DE72C: - ldrh r0, [r4, 0x10] - ldr r3, _080DE73C @ =0x00003c0d - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - b _080DE7AA - .align 2, 0 -_080DE73C: .4byte 0x00003c0d -_080DE740: - ldr r3, _080DE788 @ =gSprites - movs r0, 0x24 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl obj_delete_but_dont_free_vram - ldr r0, _080DE78C @ =0x00002771 - bl FreeSpritePaletteByTag - ldr r0, _080DE790 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - cmp r6, 0x1 - bne _080DE794 - subs r0, 0x52 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 2 - b _080DE79E - .align 2, 0 -_080DE788: .4byte gSprites -_080DE78C: .4byte 0x00002771 -_080DE790: .4byte REG_BLDCNT -_080DE794: - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 -_080DE79E: - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del -_080DE7AA: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DE6B0 - - thumb_func_start sub_80DE7B8 -sub_80DE7B8: @ 80DE7B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldr r0, _080DE7F4 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DE800 - ldr r4, _080DE7F8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080DE7FC @ =gUnknown_0202F7C9 - b _080DE824 - .align 2, 0 -_080DE7F4: .4byte gUnknown_03004B00 -_080DE7F8: .4byte gUnknown_0202F7C8 -_080DE7FC: .4byte gUnknown_0202F7C9 -_080DE800: - ldr r4, _080DE8C8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xE0 - lsls r2, 13 - adds r0, r2 - lsrs r5, r0, 16 - ldr r4, _080DE8CC @ =gUnknown_0202F7C8 -_080DE824: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xE0 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - mov r9, r0 - mov r8, r5 - mov r2, r9 - subs r4, r2, r5 - lsls r4, 16 - lsrs r4, 16 - lsls r0, r6, 4 - strh r0, [r7, 0x2E] - lsls r0, r5, 4 - strh r0, [r7, 0x30] - mov r1, r10 - subs r0, r1, r6 - lsls r0, 4 - ldr r5, _080DE8D0 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r7, 0x32] - lsls r4, 16 - asrs r4, 12 - movs r0, 0x2 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r7, 0x34] - ldrh r0, [r5, 0x2] - strh r0, [r7, 0x36] - mov r1, r10 - strh r1, [r7, 0x38] - mov r2, r9 - strh r2, [r7, 0x3A] - movs r1, 0x36 - ldrsh r0, [r7, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r7, 0x3C] - ldrb r1, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x5] - strh r6, [r7, 0x20] - mov r2, r8 - strh r2, [r7, 0x22] - ldr r0, _080DE8D4 @ =sub_80DE8D8 - str r0, [r7, 0x1C] - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DE8C8: .4byte gUnknown_0202F7C9 -_080DE8CC: .4byte gUnknown_0202F7C8 -_080DE8D0: .4byte gUnknown_03004B00 -_080DE8D4: .4byte sub_80DE8D8 - thumb_func_end sub_80DE7B8 - - thumb_func_start sub_80DE8D8 -sub_80DE8D8: @ 80DE8D8 - push {r4,lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x36] - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080DE910 - ldrh r0, [r2, 0x32] - ldrh r4, [r2, 0x2E] - adds r0, r4 - strh r0, [r2, 0x2E] - ldrh r1, [r2, 0x34] - ldrh r4, [r2, 0x30] - adds r1, r4 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r2, 0x22] - subs r0, r3, 0x1 - strh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080DE910 - strh r0, [r2, 0x2E] -_080DE910: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DE8D8 - - thumb_func_start sub_80DE918 -sub_80DE918: @ 80DE918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DEA68 @ =gTasks - adds r1, r0 - str r1, [sp] - ldr r1, _080DEA6C @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - movs r0, 0 - ldr r1, [sp] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - strh r0, [r1, 0x16] - strh r0, [r1, 0x18] - movs r0, 0x10 - strh r0, [r1, 0x1A] - ldr r2, _080DEA70 @ =gUnknown_03004B00 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldr r4, _080DEA74 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DE988 - b _080DEA88 -_080DE988: - movs r4, 0 -_080DE98A: - lsls r1, r4, 16 - asrs r3, r1, 16 - ldr r0, _080DEA74 @ =gUnknown_0202F7C8 - ldrb r2, [r0] - str r1, [sp, 0x10] - cmp r3, r2 - beq _080DEA56 - movs r0, 0x2 - eors r2, r0 - cmp r3, r2 - beq _080DEA56 - lsls r0, r4, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080DEA56 - ldr r6, [sp, 0x4] - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - asrs r7, r0, 16 - ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08 - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080DEA56 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_807A100 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r0, r8 - lsls r5, r0, 4 - add r5, r8 - lsls r5, 2 - ldr r1, _080DEA7C @ =gSprites - adds r4, r5, r1 - lsls r0, r6, 4 - strh r0, [r4, 0x2E] - lsls r0, r7, 4 - strh r0, [r4, 0x30] - mov r2, r10 - subs r0, r2, r6 - lsls r0, 4 - ldr r3, _080DEA70 @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - lsls r0, r3, 16 - asrs r0, 16 - subs r0, r7 - lsls r0, 4 - ldr r2, _080DEA70 @ =gUnknown_03004B00 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080DEA70 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - ldr r0, _080DEA80 @ =gSprites + 0x1C - adds r5, r0 - ldr r0, _080DEA84 @ =sub_80DE8D8 - str r0, [r5] - ldr r2, [sp] - movs r3, 0x20 - ldrsh r1, [r2, r3] - adds r1, 0xD - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1 - mov r1, r8 - strh r1, [r0] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] -_080DEA56: - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080DE98A - b _080DEB0C - .align 2, 0 -_080DEA68: .4byte gTasks -_080DEA6C: .4byte REG_BLDCNT -_080DEA70: .4byte gUnknown_03004B00 -_080DEA74: .4byte gUnknown_0202F7C8 -_080DEA78: .4byte gSpriteTemplate_83DAF08 -_080DEA7C: .4byte gSprites -_080DEA80: .4byte gSprites + 0x1C -_080DEA84: .4byte sub_80DE8D8 -_080DEA88: - ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08 - ldr r7, [sp, 0x4] - ldr r2, [sp, 0x8] - lsls r1, r2, 16 - asrs r1, 16 - str r1, [sp, 0xC] - adds r1, r7, 0 - ldr r2, [sp, 0xC] - movs r3, 0x37 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x40 - beq _080DEB0C - movs r3, 0x30 - mov r10, r3 - movs r0, 0x28 - mov r9, r0 - ldr r6, _080DEB28 @ =gSprites - mov r1, r8 - lsls r5, r1, 4 - add r5, r8 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, r7, 4 - strh r0, [r4, 0x2E] - ldr r2, [sp, 0xC] - lsls r0, r2, 4 - strh r0, [r4, 0x30] - subs r0, r3, r7 - lsls r0, 4 - ldr r3, _080DEB2C @ =gUnknown_03004B00 - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl __divsi3 - strh r0, [r4, 0x32] - mov r3, r9 - ldr r1, [sp, 0xC] - subs r0, r3, r1 - lsls r0, 4 - ldr r2, _080DEB2C @ =gUnknown_03004B00 - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl __divsi3 - strh r0, [r4, 0x34] - ldr r1, _080DEB2C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x36] - mov r2, r10 - strh r2, [r4, 0x38] - mov r3, r9 - strh r3, [r4, 0x3A] - adds r6, 0x1C - adds r5, r6 - ldr r0, _080DEB30 @ =sub_80DE8D8 - str r0, [r5] - mov r1, r8 - ldr r0, [sp] - strh r1, [r0, 0x22] - movs r0, 0x1 - ldr r2, [sp] - strh r0, [r2, 0x20] -_080DEB0C: - ldr r0, _080DEB34 @ =sub_80DEB38 - ldr r3, [sp] - str r0, [r3] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEB24: .4byte gSpriteTemplate_83DAF08 -_080DEB28: .4byte gSprites -_080DEB2C: .4byte gUnknown_03004B00 -_080DEB30: .4byte sub_80DE8D8 -_080DEB34: .4byte sub_80DEB38 - thumb_func_end sub_80DE918 - - thumb_func_start sub_80DEB38 -sub_80DEB38: @ 80DEB38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DEB5C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080DEBEE - cmp r1, 0x1 - bgt _080DEB60 - cmp r1, 0 - beq _080DEB6E - b _080DECA4 - .align 2, 0 -_080DEB5C: .4byte gTasks -_080DEB60: - cmp r1, 0x2 - bne _080DEB66 - b _080DEC80 -_080DEB66: - cmp r1, 0x3 - bne _080DEB6C - b _080DEC94 -_080DEB6C: - b _080DECA4 -_080DEB6E: - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DEBCE - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DEBCE - strh r1, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DEBA4 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DEBB2 - adds r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080DEBB2 -_080DEBA4: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEBB2 - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080DEBB2: - ldr r2, _080DEBE0 @ =REG_BLDALPHA - ldrh r0, [r4, 0x1A] - lsls r0, 8 - ldrh r1, [r4, 0x18] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x16 - ldrsh r0, [r4, r1] - cmp r0, 0x17 - ble _080DEBCE - movs r0, 0 - strh r0, [r4, 0x16] - movs r0, 0x1 - strh r0, [r4, 0x14] -_080DEBCE: - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEBE4 - subs r0, r1, 0x1 - strh r0, [r4, 0x1C] - b _080DECA4 - .align 2, 0 -_080DEBE0: .4byte REG_BLDALPHA -_080DEBE4: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DECA4 - b _080DEC8C -_080DEBEE: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DECA4 - movs r0, 0 - strh r0, [r4, 0x12] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080DEC1E - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DEC2C - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - b _080DEC2C -_080DEC1E: - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DEC2C - adds r0, r1, 0x1 - strh r0, [r4, 0x1A] -_080DEC2C: - ldr r2, _080DEC48 @ =REG_BLDALPHA - ldrh r0, [r4, 0x1A] - lsls r0, 8 - ldrh r1, [r4, 0x18] - orrs r0, r1 - strh r0, [r2] - ldr r1, [r4, 0x18] - movs r0, 0x80 - lsls r0, 13 - cmp r1, r0 - bne _080DECA4 - movs r5, 0 - b _080DEC70 - .align 2, 0 -_080DEC48: .4byte REG_BLDALPHA -_080DEC4C: - adds r1, r5, 0 - adds r1, 0xD - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DEC7C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080DEC70: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r5, r0 - blt _080DEC4C - b _080DEC8C - .align 2, 0 -_080DEC7C: .4byte gSprites -_080DEC80: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - cmp r0, 0 - ble _080DECA4 -_080DEC8C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DECA4 -_080DEC94: - ldr r0, _080DECAC @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080DECA4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DECAC: .4byte REG_BLDCNT - thumb_func_end sub_80DEB38 - - thumb_func_start sub_80DECB0 -sub_80DECB0: @ 80DECB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _080DECF8 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080DECFC @ =gUnknown_03004240 - strh r1, [r0] - ldr r1, _080DED00 @ =REG_WININ - ldr r2, _080DED04 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x20 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x6 - movs r0, 0xC8 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r0, _080DED08 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DECF4 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080DED0C -_080DECF4: - movs r6, 0x28 - b _080DED0E - .align 2, 0 -_080DECF8: .4byte gUnknown_030042C4 -_080DECFC: .4byte gUnknown_03004240 -_080DED00: .4byte REG_WININ -_080DED04: .4byte 0x00003f3f -_080DED08: .4byte gUnknown_0202F7C8 -_080DED0C: - movs r6, 0xC8 -_080DED0E: - ldr r1, _080DED4C @ =gUnknown_030042C4 - lsls r3, r6, 16 - asrs r2, r3, 16 - lsls r0, r2, 8 - orrs r0, r2 - strh r0, [r1] - ldr r1, _080DED50 @ =gUnknown_03004240 - movs r5, 0x28 - ldr r0, _080DED54 @ =0x00002828 - strh r0, [r1] - lsrs r3, 16 - movs r1, 0xF0 - subs r1, r2 - movs r4, 0x48 - ldr r2, _080DED58 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r2 - strh r3, [r0, 0xA] - strh r1, [r0, 0xC] - strh r5, [r0, 0xE] - strh r4, [r0, 0x10] - strh r6, [r0, 0x12] - strh r5, [r0, 0x14] - ldr r1, _080DED5C @ =sub_80DED60 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DED4C: .4byte gUnknown_030042C4 -_080DED50: .4byte gUnknown_03004240 -_080DED54: .4byte 0x00002828 -_080DED58: .4byte gTasks -_080DED5C: .4byte sub_80DED60 - thumb_func_end sub_80DECB0 - - thumb_func_start sub_80DED60 -sub_80DED60: @ 80DED60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DEE80 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - adds r0, r1, 0x1 - strh r0, [r4, 0x8] - ldrh r5, [r4, 0xA] - ldrh r7, [r4, 0xC] - ldrh r0, [r4, 0xE] - mov r10, r0 - ldrh r2, [r4, 0x10] - str r2, [sp, 0xC] - ldrh r0, [r4, 0x12] - ldrh r2, [r4, 0x14] - mov r8, r2 - lsls r1, 16 - asrs r6, r1, 16 - cmp r6, 0xF - ble _080DED9C - b _080DEE8C -_080DED9C: - lsls r0, 16 - asrs r0, 16 - bl __floatsidf - str r0, [sp, 0x10] - str r1, [sp, 0x14] - lsls r0, r5, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 @ =0x3fb00000 - ldr r3, _080DEE88 @ =0x00000000 - bl __muldf3 - adds r5, r1, 0 - adds r4, r0, 0 - adds r0, r6, 0 - bl __floatsidf - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - adds r1, r5, 0 - adds r0, r4, 0 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r0, r7, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 @ =0x3fb00000 - ldr r3, _080DEE88 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - adds r5, r1, 0 - adds r4, r0, 0 - mov r2, r10 - lsls r0, r2, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 @ =0x3fb00000 - ldr r3, _080DEE88 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __subdf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, [sp, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - bl __floatsidf - ldr r2, _080DEE84 @ =0x3fb00000 - ldr r3, _080DEE88 @ =0x00000000 - bl __muldf3 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - bl __muldf3 - adds r3, r1, 0 - adds r2, r0, 0 - adds r1, r5, 0 - adds r0, r4, 0 - bl __adddf3 - bl __fixunsdfsi - lsls r0, 16 - lsrs r5, r0, 16 - b _080DEEBA - .align 2, 0 -_080DEE80: .4byte gTasks -_080DEE84: .4byte 0x3fb00000 -_080DEE88: .4byte 0x00000000 -_080DEE8C: - movs r2, 0 - mov r9, r2 - movs r7, 0xF0 - movs r6, 0 - movs r5, 0x70 - str r6, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_80791A8 - lsls r0, 16 - lsrs r0, 16 - str r6, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080DEEDC @ =sub_80DEEE8 - str r0, [r4] -_080DEEBA: - ldr r1, _080DEEE0 @ =gUnknown_030042C4 - mov r2, r9 - lsls r0, r2, 8 - orrs r7, r0 - strh r7, [r1] - ldr r1, _080DEEE4 @ =gUnknown_03004240 - lsls r0, r6, 8 - orrs r5, r0 - strh r5, [r1] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DEEDC: .4byte sub_80DEEE8 -_080DEEE0: .4byte gUnknown_030042C4 -_080DEEE4: .4byte gUnknown_03004240 - thumb_func_end sub_80DED60 - - thumb_func_start sub_80DEEE8 -sub_80DEEE8: @ 80DEEE8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080DEF28 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080DEF20 - ldr r0, _080DEF2C @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _080DEF30 @ =gUnknown_03004240 - strh r2, [r0] - ldr r0, _080DEF34 @ =REG_WININ - ldr r4, _080DEF38 @ =0x00003f3f - adds r1, r4, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x6 - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - adds r0, r3, 0 - bl move_anim_task_del -_080DEF20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DEF28: .4byte gPaletteFade -_080DEF2C: .4byte gUnknown_030042C4 -_080DEF30: .4byte gUnknown_03004240 -_080DEF34: .4byte REG_WININ -_080DEF38: .4byte 0x00003f3f - thumb_func_end sub_80DEEE8 - - thumb_func_start sub_80DEF3C -sub_80DEF3C: @ 80DEF3C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DEF68 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080DEF70 - movs r2, 0x18 - ldr r3, _080DEF6C @ =0x0000fffe - ldrb r0, [r4, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r4, 0x3] - b _080DEF74 - .align 2, 0 -_080DEF68: .4byte gUnknown_0202F7C8 -_080DEF6C: .4byte 0x0000fffe -_080DEF70: - ldr r2, _080DEF90 @ =0x0000ffe8 - movs r3, 0x2 -_080DEF74: - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r3, [r4, 0x30] - movs r0, 0x3C - strh r0, [r4, 0x2E] - ldr r0, _080DEF94 @ =sub_80DEF98 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DEF90: .4byte 0x0000ffe8 -_080DEF94: .4byte sub_80DEF98 - thumb_func_end sub_80DEF3C - - thumb_func_start sub_80DEF98 -sub_80DEF98: @ 80DEF98 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080DEFAA - subs r0, r1, 0x1 - b _080DF00E -_080DEFAA: - ldrh r0, [r3, 0x30] - ldrh r4, [r3, 0x24] - adds r1, r0, r4 - strh r1, [r3, 0x24] - adds r0, r1, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bls _080DF010 - ldrh r0, [r3, 0x20] - adds r0, r1 - strh r0, [r3, 0x20] - movs r0, 0 - strh r0, [r3, 0x24] - ldrh r2, [r3, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r4, _080DEFFC @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080DF000 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DF00C - movs r0, 0x1E - strh r0, [r3, 0x2E] - ldr r0, _080DF004 @ =sub_80782D8 - str r0, [r3, 0x1C] - ldr r1, _080DF008 @ =sub_80DF018 - adds r0, r3, 0 - bl oamt_set_x3A_32 - b _080DF010 - .align 2, 0 -_080DEFFC: .4byte 0x000003ff -_080DF000: .4byte 0xfffffc00 -_080DF004: .4byte sub_80782D8 -_080DF008: .4byte sub_80DF018 -_080DF00C: - movs r0, 0x28 -_080DF00E: - strh r0, [r3, 0x2E] -_080DF010: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DEF98 - - thumb_func_start sub_80DF018 -sub_80DF018: @ 80DF018 - push {r4,lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _080DF044 - ldr r1, _080DF040 @ =REG_BLDCNT - movs r4, 0xFD - lsls r4, 6 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - strh r2, [r3, 0x32] - b _080DF082 - .align 2, 0 -_080DF040: .4byte REG_BLDCNT -_080DF044: - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - bgt _080DF054 - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080DF082 -_080DF054: - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - ldr r2, _080DF088 @ =REG_BLDALPHA - movs r1, 0x10 - subs r1, r0 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r4, 0x32 - ldrsh r0, [r3, r4] - cmp r0, 0x10 - bne _080DF082 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DF08C @ =sub_80DF090 - str r0, [r3, 0x1C] -_080DF082: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF088: .4byte REG_BLDALPHA -_080DF08C: .4byte sub_80DF090 - thumb_func_end sub_80DF018 - - thumb_func_start sub_80DF090 -sub_80DF090: @ 80DF090 - push {lr} - ldr r1, _080DF0AC @ =REG_BLDCNT - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - ldr r1, _080DF0B0 @ =gUnknown_030042C4 - strh r2, [r1] - ldr r1, _080DF0B4 @ =gUnknown_03004240 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DF0AC: .4byte REG_BLDCNT -_080DF0B0: .4byte gUnknown_030042C4 -_080DF0B4: .4byte gUnknown_03004240 - thumb_func_end sub_80DF090 - - thumb_func_start sub_80DF0B8 -sub_80DF0B8: @ 80DF0B8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xC - bl Sin - strh r0, [r4, 0x24] - ldr r0, _080DF120 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF0DC - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] -_080DF0DC: - ldrh r0, [r4, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _080DF12C - ldr r0, _080DF124 @ =0x0000050b - strh r0, [r4, 0x3A] - ldr r1, _080DF128 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x3A] - strh r0, [r1] - b _080DF17E - .align 2, 0 -_080DF120: .4byte gUnknown_0202F7C8 -_080DF124: .4byte 0x0000050b -_080DF128: .4byte REG_BLDCNT -_080DF12C: - cmp r0, 0x1E - ble _080DF17E - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - lsls r0, r1, 16 - asrs r0, 24 - lsls r0, 16 - movs r2, 0xFF - ands r2, r1 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r3, r0, 16 - cmp r3, 0x10 - bls _080DF150 - movs r3, 0x10 -_080DF150: - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bge _080DF15C - movs r2, 0 -_080DF15C: - ldr r1, _080DF184 @ =REG_BLDALPHA - lsls r0, r3, 8 - orrs r0, r2 - strh r0, [r1] - strh r0, [r4, 0x3A] - cmp r3, 0x10 - bne _080DF17E - cmp r2, 0 - bne _080DF17E - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DF188 @ =sub_80DF18C - str r0, [r4, 0x1C] -_080DF17E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF184: .4byte REG_BLDALPHA -_080DF188: .4byte sub_80DF18C - thumb_func_end sub_80DF0B8 - - thumb_func_start sub_80DF18C -sub_80DF18C: @ 80DF18C - push {lr} - ldr r1, _080DF1A0 @ =REG_BLDCNT - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_080DF1A0: .4byte REG_BLDCNT - thumb_func_end sub_80DF18C - - thumb_func_start sub_80DF1A4 -sub_80DF1A4: @ 80DF1A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080DF23C @ =gTasks - adds r4, r0 - movs r6, 0 - strh r6, [r4, 0x8] - movs r0, 0x10 - mov r8, r0 - mov r2, r8 - strh r2, [r4, 0xA] - ldr r5, _080DF240 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - ldrb r0, [r5] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - adds r1, 0x8 - strh r1, [r4, 0x1E] - strh r6, [r4, 0x16] - ldrb r0, [r5] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x12] - ldrb r0, [r5] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x2 - strh r0, [r4, 0x14] - strh r6, [r4, 0xE] - mov r0, r8 - strh r0, [r4, 0x10] - ldr r1, _080DF244 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0x18] - ldr r0, _080DF248 @ =sub_80DF24C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF23C: .4byte gTasks -_080DF240: .4byte gUnknown_0202F7C8 -_080DF244: .4byte REG_BLDCNT -_080DF248: .4byte sub_80DF24C - thumb_func_end sub_80DF1A4 - - thumb_func_start sub_80DF24C -sub_80DF24C: @ 80DF24C - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _080DF270 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080DF266 - b _080DF3CC -_080DF266: - lsls r0, 2 - ldr r1, _080DF274 @ =_080DF278 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DF270: .4byte gTasks -_080DF274: .4byte _080DF278 - .align 2, 0 -_080DF278: - .4byte _080DF290 - .4byte _080DF300 - .4byte _080DF342 - .4byte _080DF356 - .4byte _080DF3AC - .4byte _080DF3BC -_080DF290: - movs r6, 0 -_080DF292: - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r0, 0x1C - ldrsh r2, [r4, r0] - ldrb r3, [r4, 0x14] - ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DF2E6 - ldr r1, _080DF2F8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r1 - strh r7, [r5, 0x2E] - ldr r0, _080DF2FC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080DF2C8 - movs r1, 0x1 -_080DF2C8: - strh r1, [r5, 0x30] - movs r0, 0x2A - muls r0, r6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x1E] - strh r0, [r5, 0x34] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - strh r0, [r5, 0x38] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] -_080DF2E6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080DF292 - b _080DF3B4 - .align 2, 0 -_080DF2F4: .4byte gSpriteTemplate_83DAF80 -_080DF2F8: .4byte gSprites -_080DF2FC: .4byte gUnknown_0202F7C8 -_080DF300: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DF31E - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0xD - bgt _080DF32C - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080DF32C -_080DF31E: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0x4 - ble _080DF32C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] -_080DF32C: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0xE] - ldrh r2, [r4, 0x10] - cmp r0, 0xE - bne _080DF39C - cmp r2, 0x4 - bne _080DF39C - movs r0, 0 - strh r0, [r4, 0xA] - b _080DF396 -_080DF342: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080DF3CC - movs r0, 0 - strh r0, [r4, 0xA] - b _080DF3B4 -_080DF356: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DF374 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080DF382 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080DF382 -_080DF374: - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF382 - adds r0, r1, 0x1 - strh r0, [r4, 0x10] -_080DF382: - movs r1, 0xE - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0xE] - ldrh r2, [r4, 0x10] - cmp r0, 0 - bne _080DF39C - cmp r2, 0x10 - bne _080DF39C - movs r0, 0x1 - strh r0, [r4, 0x18] -_080DF396: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DF39C: - ldr r1, _080DF3A8 @ =REG_BLDALPHA - lsls r0, r2, 8 - orrs r0, r3 - strh r0, [r1] - b _080DF3CC - .align 2, 0 -_080DF3A8: .4byte REG_BLDALPHA -_080DF3AC: - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DF3CC -_080DF3B4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DF3CC -_080DF3BC: - ldr r0, _080DF3D4 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r7, 0 - bl move_anim_task_del -_080DF3CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF3D4: .4byte REG_BLDCNT - thumb_func_end sub_80DF24C - - thumb_func_start sub_80DF3D8 -sub_80DF3D8: @ 80DF3D8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DF3EA - ldrh r0, [r4, 0x32] - adds r0, 0x2 - b _080DF3EE -_080DF3EA: - ldrh r0, [r4, 0x32] - subs r0, 0x2 -_080DF3EE: - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7E - bhi _080DF430 - ldr r2, _080DF42C @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - b _080DF444 - .align 2, 0 -_080DF42C: .4byte gTasks -_080DF430: - ldr r2, _080DF498 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x3 - ldrb r1, [r0, 0x12] - ands r1, r2 -_080DF444: - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r0, 3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - movs r1, 0x7 - bl Sin - strh r0, [r4, 0x26] - ldr r2, _080DF498 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r1, r0, r2 - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080DF492 - ldrh r0, [r1, 0x16] - subs r0, 0x1 - strh r0, [r1, 0x16] - adds r0, r4, 0 - bl DestroySprite -_080DF492: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF498: .4byte gTasks - thumb_func_end sub_80DF3D8 - - thumb_func_start sub_80DF49C -sub_80DF49C: @ 80DF49C - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldr r2, _080DF4E0 @ =gUnknown_02024BE0 - ldr r1, _080DF4E4 @ =gUnknown_0202F7C8 - ldrb r1, [r1] - adds r1, r2 - ldrb r1, [r1] - strh r1, [r0, 0x38] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0xA - strh r1, [r0, 0x30] - ldr r2, _080DF4E8 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r0, 0x32] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0x34] - ldr r1, _080DF4EC @ =sub_80DF4F4 - str r1, [r0, 0x1C] - ldr r2, _080DF4F0 @ =gSprites - movs r3, 0x38 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080DF4E0: .4byte gUnknown_02024BE0 -_080DF4E4: .4byte gUnknown_0202F7C8 -_080DF4E8: .4byte gUnknown_03004B00 -_080DF4EC: .4byte sub_80DF4F4 -_080DF4F0: .4byte gSprites - thumb_func_end sub_80DF49C - - thumb_func_start sub_80DF4F4 -sub_80DF4F4: @ 80DF4F4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x34] - movs r1, 0x34 - ldrsh r3, [r5, r1] - cmp r3, 0 - beq _080DF55C - subs r0, 0x1 - strh r0, [r5, 0x34] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - ldr r4, _080DF554 @ =gSprites - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Cos - movs r1, 0x38 - ldrsh r2, [r5, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x26] - ldrh r0, [r5, 0x32] - ldrh r2, [r5, 0x2E] - adds r1, r0, r2 - strh r1, [r5, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DF590 - ldr r2, _080DF558 @ =0xffffff00 - adds r0, r1, r2 - strh r0, [r5, 0x2E] - b _080DF590 - .align 2, 0 -_080DF554: .4byte gSprites -_080DF558: .4byte 0xffffff00 -_080DF55C: - ldr r2, _080DF598 @ =gSprites - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x24] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x8 - strh r1, [r0, 0x22] - ldr r0, _080DF59C @ =move_anim_8074EE0 - str r0, [r5, 0x1C] -_080DF590: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF598: .4byte gSprites -_080DF59C: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF4F4 - - thumb_func_start sub_80DF5A0 -sub_80DF5A0: @ 80DF5A0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DF5E8 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF5F0 - ldr r2, _080DF5EC @ =gUnknown_03004B00 - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r2, 0x8] - adds r1, r2, 0 - b _080DF5FA - .align 2, 0 -_080DF5E8: .4byte gUnknown_0202F7C8 -_080DF5EC: .4byte gUnknown_03004B00 -_080DF5F0: - ldr r1, _080DF630 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080DF5FA: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080DF634 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - ldr r0, _080DF638 @ =sub_8078504 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF630: .4byte gUnknown_03004B00 -_080DF634: .4byte move_anim_8074EE0 -_080DF638: .4byte sub_8078504 - thumb_func_end sub_80DF5A0 - - thumb_func_start sub_80DF63C -sub_80DF63C: @ 80DF63C - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8078650 - ldr r4, _080DF694 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080DF698 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF6A0 - ldr r2, _080DF69C @ =gUnknown_03004B00 - ldrh r0, [r5, 0x20] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r1, r0 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x32] - ldrh r1, [r2, 0x4] - subs r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - b _080DF6CA - .align 2, 0 -_080DF694: .4byte gUnknown_0202F7C9 -_080DF698: .4byte gUnknown_0202F7C8 -_080DF69C: .4byte gUnknown_03004B00 -_080DF6A0: - ldr r1, _080DF6E4 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080DF6CA: - ldr r0, _080DF6E4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080DF6E8 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080DF6EC @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF6E4: .4byte gUnknown_03004B00 -_080DF6E8: .4byte sub_8078B34 -_080DF6EC: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF63C - - thumb_func_start sub_80DF6F0 -sub_80DF6F0: @ 80DF6F0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DF704 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DF70C - ldr r4, _080DF708 @ =gUnknown_0202F7C8 - b _080DF70E - .align 2, 0 -_080DF704: .4byte gUnknown_03004B00 -_080DF708: .4byte gUnknown_0202F7C8 -_080DF70C: - ldr r4, _080DF750 @ =gUnknown_0202F7C9 -_080DF70E: - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080DF754 @ =gUnknown_03004B00 - movs r0, 0x2 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, _080DF758 @ =sub_8078600 - str r0, [r5, 0x1C] - ldr r1, _080DF75C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF750: .4byte gUnknown_0202F7C9 -_080DF754: .4byte gUnknown_03004B00 -_080DF758: .4byte sub_8078600 -_080DF75C: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF6F0 - - thumb_func_start sub_80DF760 -sub_80DF760: @ 80DF760 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DF788 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080DF77A - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DF77A: - adds r0, r4, 0 - bl sub_80DF63C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF788: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80DF760 - - thumb_func_start sub_80DF78C -sub_80DF78C: @ 80DF78C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r4, _080DF7E0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r5, [r6, 0x36] - movs r0, 0x1 - strh r0, [r6, 0x38] - ldr r0, _080DF7E4 @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r6, 0x3A] - ldr r4, _080DF7E8 @ =gUnknown_02024C07 - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r7, r0, 16 - lsrs r5, r7, 16 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r5, r0 - bls _080DF7EC - lsrs r0, r7, 17 - b _080DF7EE - .align 2, 0 -_080DF7E0: .4byte gUnknown_0202F7C8 -_080DF7E4: .4byte gUnknown_03004B00 -_080DF7E8: .4byte gUnknown_02024C07 -_080DF7EC: - lsrs r0, r1, 17 -_080DF7EE: - strh r0, [r6, 0x3C] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Cos - strh r0, [r6, 0x24] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - ldr r0, _080DF818 @ =sub_80DF81C - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF818: .4byte sub_80DF81C - thumb_func_end sub_80DF78C - - thumb_func_start sub_80DF81C -sub_80DF81C: @ 80DF81C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080DF82E - cmp r5, 0x1 - beq _080DF89A - b _080DF91E -_080DF82E: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF880 - strh r5, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF880 - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF880 - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF880: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DF91E - movs r0, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DF91E -_080DF89A: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x95 - bgt _080DF8C2 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x95 - ble _080DF8C2 - movs r0, 0x96 - strh r0, [r4, 0x3C] -_080DF8C2: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF90A - movs r0, 0 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF90A - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF90A - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF90A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DF91E - adds r0, r4, 0 - bl move_anim_8072740 -_080DF91E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DF81C - - thumb_func_start sub_80DF924 -sub_80DF924: @ 80DF924 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DF950 @ =gTasks - adds r4, r1, r0 - ldr r0, _080DF954 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DF960 - ldr r0, _080DF958 @ =REG_BG1HOFS - str r0, [sp] - ldr r0, _080DF95C @ =gUnknown_030042C0 - b _080DF966 - .align 2, 0 -_080DF950: .4byte gTasks -_080DF954: .4byte gUnknown_0202F7C8 -_080DF958: .4byte REG_BG1HOFS -_080DF95C: .4byte gUnknown_030042C0 -_080DF960: - ldr r0, _080DF9DC @ =REG_BG2HOFS - str r0, [sp] - ldr r0, _080DF9E0 @ =gUnknown_03004288 -_080DF966: - ldrh r0, [r0] - strh r0, [r4, 0xC] - ldr r0, _080DF9E4 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r5, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r5, [r0, 0x9] - ldr r0, _080DF9E8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0xE] - adds r0, 0x20 - strh r0, [r4, 0x10] - cmp r1, 0 - bge _080DF996 - strh r5, [r4, 0xE] -_080DF996: - ldrh r3, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _080DF9C4 - ldr r5, _080DF9EC @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DF9A8: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080DF9A8 -_080DF9C4: - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DF9F0 @ =sub_80DF9F4 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF9DC: .4byte REG_BG2HOFS -_080DF9E0: .4byte gUnknown_03004288 -_080DF9E4: .4byte 0xa2600001 -_080DF9E8: .4byte gUnknown_0202F7C8 -_080DF9EC: .4byte gUnknown_03004DE0 -_080DF9F0: .4byte sub_80DF9F4 - thumb_func_end sub_80DF924 - - thumb_func_start sub_80DF9F4 -sub_80DF9F4: @ 80DF9F4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080DFA18 @ =gTasks - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _080DFAAA - lsls r0, 2 - ldr r1, _080DFA1C @ =_080DFA20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DFA18: .4byte gTasks -_080DFA1C: .4byte _080DFA20 - .align 2, 0 -_080DFA20: - .4byte _080DFA34 - .4byte _080DFA56 - .4byte _080DFA66 - .4byte _080DFA92 - .4byte _080DFAA4 -_080DFA34: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - adds r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DFA8A - b _080DFA84 -_080DFA56: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DFA8A - b _080DFA84 -_080DFA66: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - subs r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080DFA8A -_080DFA84: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080DFA8A: - adds r0, r2, 0 - bl sub_80DFAB0 - b _080DFAAA -_080DFA92: - ldr r1, _080DFAA0 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080DFAAA - .align 2, 0 -_080DFAA0: .4byte gUnknown_03004DC0 -_080DFAA4: - adds r0, r3, 0 - bl move_anim_task_del -_080DFAAA: - pop {r0} - bx r0 - thumb_func_end sub_80DF9F4 - - thumb_func_start sub_80DFAB0 -sub_80DFAB0: @ 80DFAB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r3, [r5, 0x12] - ldrh r4, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r4, r0 - bgt _080DFB06 - ldr r7, _080DFB1C @ =gUnknown_03004DE0 - mov r12, r7 - ldr r0, _080DFB20 @ =gSineTable - mov r8, r0 - ldr r6, _080DFB24 @ =gUnknown_03004DC0 -_080DFACE: - lsls r2, r4, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - lsls r0, r3, 1 - add r0, r8 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x14 - ldrsh r0, [r5, r7] - muls r0, r1 - asrs r0, 7 - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r2] - adds r3, 0x8 - movs r0, 0xFF - ands r3, r0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _080DFACE -_080DFB06: - ldrh r0, [r5, 0x12] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFB1C: .4byte gUnknown_03004DE0 -_080DFB20: .4byte gSineTable -_080DFB24: .4byte gUnknown_03004DC0 - thumb_func_end sub_80DFAB0 - - thumb_func_start sub_80DFB28 -sub_80DFB28: @ 80DFB28 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080DFBC8 @ =gUnknown_03004B00 - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x5 - bl __divsi3 - adds r6, r0, 0 - ldr r1, _080DFBCC @ =gUnknown_0202F7C8 - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r5, 0x8] - adds r0, r3 - strh r0, [r4, 0x22] - movs r1, 0x2 - ldrsh r0, [r5, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, 0x30] - movs r3, 0x2 - ldrsh r0, [r5, r3] - lsls r6, 16 - asrs r6, 16 - adds r1, r6, 0 - bl Sin - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - ldrh r2, [r5] - adds r3, r2, 0 - muls r3, r1 - adds r1, r3, 0 - ldrh r3, [r4, 0x20] - adds r1, r3 - strh r1, [r4, 0x20] - adds r1, r2, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x34] - ldr r0, _080DFBD0 @ =sub_80DFBD8 - str r0, [r4, 0x1C] - adds r4, 0x2E - ldr r2, _080DFBD4 @ =gUnknown_03000730 - movs r1, 0x6 -_080DFBB0: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080DFBB0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFBC8: .4byte gUnknown_03004B00 -_080DFBCC: .4byte gUnknown_0202F7C8 -_080DFBD0: .4byte sub_80DFBD8 -_080DFBD4: .4byte gUnknown_03000730 - thumb_func_end sub_80DFB28 - - thumb_func_start sub_80DFBD8 -sub_80DFBD8: @ 80DFBD8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080DFC1C - adds r0, r4, 0 - bl move_anim_8072740 -_080DFC1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DFBD8 - - thumb_func_start sub_80DFC24 -sub_80DFC24: @ 80DFC24 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DFC58 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC5C @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r1, 0x8] - ldr r0, _080DFC60 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - movs r2, 0x10 - strh r2, [r1, 0xA] - ldr r1, _080DFC64 @ =REG_BLDALPHA - strh r2, [r1] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFC70 - ldr r1, _080DFC68 @ =REG_BLDCNT - ldr r2, _080DFC6C @ =0x00003f42 - b _080DFC74 - .align 2, 0 -_080DFC58: .4byte gTasks -_080DFC5C: .4byte gUnknown_03004B00 -_080DFC60: .4byte gUnknown_0202F7C8 -_080DFC64: .4byte REG_BLDALPHA -_080DFC68: .4byte REG_BLDCNT -_080DFC6C: .4byte 0x00003f42 -_080DFC70: - ldr r1, _080DFC8C @ =REG_BLDCNT - ldr r2, _080DFC90 @ =0x00003f44 -_080DFC74: - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFC94 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC98 @ =sub_80DFC9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFC8C: .4byte REG_BLDCNT -_080DFC90: .4byte 0x00003f44 -_080DFC94: .4byte gTasks -_080DFC98: .4byte sub_80DFC9C - thumb_func_end sub_80DFC24 - - thumb_func_start sub_80DFC9C -sub_80DFC9C: @ 80DFC9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080DFD04 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0xC - ldrsh r0, [r4, r3] - ldrb r3, [r4, 0x8] - cmp r0, r3 - bne _080DFD18 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r2, 8 - orrs r1, r0 - movs r3, 0 - strh r1, [r4, 0xA] - ldr r0, _080DFD08 @ =REG_BLDALPHA - strh r1, [r0] - strh r3, [r4, 0xC] - cmp r2, 0x10 - bne _080DFD1E - ldr r2, _080DFD0C @ =gSprites - ldr r1, _080DFD10 @ =gUnknown_02024BE0 - ldr r0, _080DFD14 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl move_anim_task_del - b _080DFD1E - .align 2, 0 -_080DFD04: .4byte gTasks -_080DFD08: .4byte REG_BLDALPHA -_080DFD0C: .4byte gSprites -_080DFD10: .4byte gUnknown_02024BE0 -_080DFD14: .4byte gUnknown_0202F7C8 -_080DFD18: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080DFD1E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFC9C - - thumb_func_start sub_80DFD24 -sub_80DFD24: @ 80DFD24 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DFD48 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080DFD4C @ =gUnknown_03004B00 - ldrh r0, [r0] - strh r0, [r1, 0x8] - movs r2, 0x80 - lsls r2, 5 - strh r2, [r1, 0xA] - ldr r0, _080DFD50 @ =sub_80DFD58 - str r0, [r1] - ldr r0, _080DFD54 @ =REG_BLDALPHA - strh r2, [r0] - bx lr - .align 2, 0 -_080DFD48: .4byte gTasks -_080DFD4C: .4byte gUnknown_03004B00 -_080DFD50: .4byte sub_80DFD58 -_080DFD54: .4byte REG_BLDALPHA - thumb_func_end sub_80DFD24 - - thumb_func_start sub_80DFD58 -sub_80DFD58: @ 80DFD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - lsrs r1, r0, 8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0xC - ldrsh r0, [r2, r3] - ldrb r3, [r2, 0x8] - cmp r0, r3 - bne _080DFDB4 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r3, 8 - orrs r1, r0 - movs r0, 0 - strh r1, [r2, 0xA] - ldr r5, _080DFDAC @ =REG_BLDALPHA - strh r1, [r5] - strh r0, [r2, 0xC] - cmp r3, 0 - bne _080DFDBA - ldr r0, _080DFDB0 @ =REG_BLDCNT - strh r3, [r0] - strh r3, [r5] - adds r0, r4, 0 - bl move_anim_task_del - b _080DFDBA - .align 2, 0 -_080DFDA8: .4byte gTasks -_080DFDAC: .4byte REG_BLDALPHA -_080DFDB0: .4byte REG_BLDCNT -_080DFDB4: - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] -_080DFDBA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFD58 - - thumb_func_start sub_80DFDC0 -sub_80DFDC0: @ 80DFDC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDE8 @ =REG_BLDALPHA - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFDEC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFDF8 - ldr r1, _080DFDF0 @ =REG_BLDCNT - ldr r2, _080DFDF4 @ =0x00003f42 - b _080DFDFC - .align 2, 0 -_080DFDE8: .4byte REG_BLDALPHA -_080DFDEC: .4byte gUnknown_0202F7C8 -_080DFDF0: .4byte REG_BLDCNT -_080DFDF4: .4byte 0x00003f42 -_080DFDF8: - ldr r1, _080DFE0C @ =REG_BLDCNT - ldr r2, _080DFE10 @ =0x00003f44 -_080DFDFC: - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFE0C: .4byte REG_BLDCNT -_080DFE10: .4byte 0x00003f44 - thumb_func_end sub_80DFDC0 - - thumb_func_start sub_80DFE14 -sub_80DFE14: @ 80DFE14 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080DFE80 @ =gUnknown_0202F7C9 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldr r5, _080DFE84 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r6] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - movs r0, 0x7E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078A5C - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - negs r0, r0 - strh r0, [r4, 0x36] - ldr r0, _080DFE88 @ =0x0000ffd8 - strh r0, [r4, 0x3A] - ldr r1, _080DFE8C @ =sub_80DFE90 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFE80: .4byte gUnknown_0202F7C9 -_080DFE84: .4byte gUnknown_0202F7C8 -_080DFE88: .4byte 0x0000ffd8 -_080DFE8C: .4byte sub_80DFE90 - thumb_func_end sub_80DFE14 - - thumb_func_start sub_80DFE90 -sub_80DFE90: @ 80DFE90 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r5, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r2, r5, r0 - strh r2, [r4, 0x34] - ldrh r3, [r4, 0x32] - ldrh r6, [r4, 0x36] - adds r1, r3, r6 - strh r1, [r4, 0x36] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - movs r6, 0x3C - ldrsh r0, [r4, r6] - cmp r0, 0 - bne _080DFED2 - adds r0, r2, r5 - strh r0, [r4, 0x34] - adds r1, r3 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] -_080DFED2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, 0x26] - adds r0, r6 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - cmp r0, 0x7F - ble _080DFF02 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x14 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_080DFF02: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080DFF14 - adds r0, r4, 0 - bl move_anim_8072740 -_080DFF14: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DFE90 - - thumb_func_start sub_80DFF1C -sub_80DFF1C: @ 80DFF1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DFF50 @ =gUnknown_03004B00 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080DFF54 @ =sub_80DFF58 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DFF50: .4byte gUnknown_03004B00 -_080DFF54: .4byte sub_80DFF58 - thumb_func_end sub_80DFF1C - - thumb_func_start sub_80DFF58 -sub_80DFF58: @ 80DFF58 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080DFF8E - ldr r0, _080DFF94 @ =sub_80DFF98 - str r0, [r2, 0x1C] -_080DFF8E: - pop {r0} - bx r0 - .align 2, 0 -_080DFF94: .4byte sub_80DFF98 - thumb_func_end sub_80DFF58 - - thumb_func_start sub_80DFF98 -sub_80DFF98: @ 80DFF98 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080DFFCA - adds r0, r3, 0 - bl move_anim_8074EE0 -_080DFFCA: - pop {r0} - bx r0 - thumb_func_end sub_80DFF98 - - thumb_func_start sub_80DFFD0 -sub_80DFFD0: @ 80DFFD0 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080DFFE4 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080DFFEC - ldr r0, _080DFFE8 @ =gUnknown_0202F7C8 - b _080DFFEE - .align 2, 0 -_080DFFE4: .4byte gUnknown_03004B00 -_080DFFE8: .4byte gUnknown_0202F7C8 -_080DFFEC: - ldr r0, _080E001C @ =gUnknown_0202F7C9 -_080DFFEE: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080E0020 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080E0024 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080E004C - cmp r0, 0x1 - bgt _080E0028 - cmp r0, 0 - beq _080E0032 - b _080E00A0 - .align 2, 0 -_080E001C: .4byte gUnknown_0202F7C9 -_080E0020: .4byte 0x000003ff -_080E0024: .4byte 0xfffffc00 -_080E0028: - cmp r0, 0x2 - beq _080E0066 - cmp r0, 0x3 - beq _080E007E - b _080E00A0 -_080E0032: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080E00A0 -_080E004C: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080E00A0 -_080E0066: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080E0094 -_080E007E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 -_080E0094: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080E00A0: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080E00C8 @ =0x0000fff4 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E00CC @ =sub_80E00D0 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E00C8: .4byte 0x0000fff4 -_080E00CC: .4byte sub_80E00D0 - thumb_func_end sub_80DFFD0 - - thumb_func_start sub_80E00D0 -sub_80E00D0: @ 80E00D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E00E4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080E00E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E00D0 - - thumb_func_start sub_80E00EC -sub_80E00EC: @ 80E00EC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E0150 @ =gTasks - adds r5, r1, r0 - ldr r4, _080E0154 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080E015C - ldr r0, _080E0158 @ =0x0000fff4 - b _080E015E - .align 2, 0 -_080E0150: .4byte gTasks -_080E0154: .4byte gUnknown_0202F7C8 -_080E0158: .4byte 0x0000fff4 -_080E015C: - ldr r0, _080E01A8 @ =0x0000ffc0 -_080E015E: - strh r0, [r5, 0x18] - ldr r0, _080E01AC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E01C4 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_8078914 - ldr r0, _080E01B0 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E01B4 @ =REG_BLDCNT - ldr r2, _080E01B8 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E01BC @ =REG_BG1VOFS - str r0, [sp] - movs r7, 0x2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E01C0 @ =gUnknown_03004288 - b _080E01EE - .align 2, 0 -_080E01A8: .4byte 0x0000ffc0 -_080E01AC: .4byte gUnknown_0202F7C8 -_080E01B0: .4byte gUnknown_030041B4 -_080E01B4: .4byte REG_BLDCNT -_080E01B8: .4byte 0x00003f42 -_080E01BC: .4byte REG_BG1VOFS -_080E01C0: .4byte gUnknown_03004288 -_080E01C4: - ldr r0, _080E0278 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E027C @ =REG_BLDCNT - ldr r2, _080E0280 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E0284 @ =REG_BG2VOFS - str r0, [sp] - movs r7, 0x4 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E0288 @ =gUnknown_030042C0 -_080E01EE: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080E01F4: - ldr r0, _080E028C @ =0xa2600001 - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80E08CC - movs r3, 0 - ldr r4, _080E0290 @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080E0220: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E0220 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r1, _080E0294 @ =REG_WINOUT - movs r0, 0x3F - eors r7, r0 - movs r2, 0xFC - lsls r2, 6 - adds r0, r2, 0 - orrs r7, r0 - strh r7, [r1] - subs r1, 0x2 - adds r2, 0x3F - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E0298 @ =gUnknown_030042C4 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E029C @ =gUnknown_03004240 - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080E02A0 @ =sub_80E02A4 - str r0, [r5] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0278: .4byte gUnknown_03004280 -_080E027C: .4byte REG_BLDCNT -_080E0280: .4byte 0x00003f44 -_080E0284: .4byte REG_BG2VOFS -_080E0288: .4byte gUnknown_030042C0 -_080E028C: .4byte 0xa2600001 -_080E0290: .4byte gUnknown_03004DE0 -_080E0294: .4byte REG_WINOUT -_080E0298: .4byte gUnknown_030042C4 -_080E029C: .4byte gUnknown_03004240 -_080E02A0: .4byte sub_80E02A4 - thumb_func_end sub_80E00EC - - thumb_func_start sub_80E02A4 -sub_80E02A4: @ 80E02A4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E02C8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E02BE - b _080E03B6 -_080E02BE: - lsls r0, 2 - ldr r1, _080E02CC @ =_080E02D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E02C8: .4byte gTasks -_080E02CC: .4byte _080E02D0 - .align 2, 0 -_080E02D0: - .4byte _080E02E4 - .4byte _080E0344 - .4byte _080E035E - .4byte _080E039C - .4byte _080E03B0 -_080E02E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E03B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0314 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080E0322 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0322 -_080E0314: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080E0322 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0322: - ldr r2, _080E0340 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080E03B6 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0340: .4byte REG_BLDALPHA -_080E0344: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080E03B6 - b _080E03A2 -_080E035E: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080E0380 - strh r2, [r4, 0x24] -_080E0380: - ldr r3, _080E0398 @ =gUnknown_030042C4 - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0398: .4byte gUnknown_030042C4 -_080E039C: - ldr r1, _080E03AC @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E03A2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E03B6 - .align 2, 0 -_080E03AC: .4byte gUnknown_03004DC0 -_080E03B0: - adds r0, r2, 0 - bl move_anim_task_del -_080E03B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E02A4 - - thumb_func_start sub_80E03BC -sub_80E03BC: @ 80E03BC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080E03E4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080E03D8 - b _080E05F2 -_080E03D8: - lsls r0, 2 - ldr r1, _080E03E8 @ =_080E03EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E03E4: .4byte gTasks -_080E03E8: .4byte _080E03EC - .align 2, 0 -_080E03EC: - .4byte _080E0400 - .4byte _080E048C - .4byte _080E04D0 - .4byte _080E053C - .4byte _080E05A4 -_080E0400: - bl sub_8076BE0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E043C - ldr r0, _080E042C @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0430 @ =gUnknown_03004240 - strh r1, [r0] - ldr r0, _080E0434 @ =REG_WININ - ldr r2, _080E0438 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl move_anim_task_del - b _080E05F2 - .align 2, 0 -_080E042C: .4byte gUnknown_030042C4 -_080E0430: .4byte gUnknown_03004240 -_080E0434: .4byte REG_WININ -_080E0438: .4byte 0x00003f3f -_080E043C: - ldr r0, _080E045C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E046C - ldr r1, _080E0460 @ =REG_BLDCNT - ldr r2, _080E0464 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0468 @ =gUnknown_03004288 - b _080E0476 - .align 2, 0 -_080E045C: .4byte gUnknown_0202F7C9 -_080E0460: .4byte REG_BLDCNT -_080E0464: .4byte 0x00003f42 -_080E0468: .4byte gUnknown_03004288 -_080E046C: - ldr r1, _080E0480 @ =REG_BLDCNT - ldr r2, _080E0484 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0488 @ =gUnknown_030042C0 -_080E0476: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080E0590 - .align 2, 0 -_080E0480: .4byte REG_BLDCNT -_080E0484: .4byte 0x00003f44 -_080E0488: .4byte gUnknown_030042C0 -_080E048C: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E04B4 - mov r0, sp - bl sub_8078914 - ldr r0, _080E04B0 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080E04C4 - .align 2, 0 -_080E04B0: .4byte gUnknown_030041B4 -_080E04B4: - ldr r0, _080E04CC @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080E04C4: - movs r0, 0x3 - bl sub_80E08CC - b _080E0590 - .align 2, 0 -_080E04CC: .4byte gUnknown_03004280 -_080E04D0: - ldr r4, _080E051C @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080E0524 - ldr r0, _080E0520 @ =0x0000fff4 - b _080E0526 - .align 2, 0 -_080E051C: .4byte gUnknown_0202F7C9 -_080E0520: .4byte 0x0000fff4 -_080E0524: - ldr r0, _080E0538 @ =0x0000ffc0 -_080E0526: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080E0590 - .align 2, 0 -_080E0538: .4byte 0x0000ffc0 -_080E053C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _080E054C - ldr r0, _080E0548 @ =REG_BG1VOFS - b _080E054E - .align 2, 0 -_080E0548: .4byte REG_BG1VOFS -_080E054C: - ldr r0, _080E0598 @ =REG_BG2VOFS -_080E054E: - str r0, [sp, 0xC] - movs r3, 0 - add r4, sp, 0xC - ldr r6, _080E059C @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080E055C: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E055C - ldr r1, _080E05A0 @ =0xa2600001 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0xC] - ldr r2, [r4, 0x8] - bl sub_80895F8 -_080E0590: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080E05F2 - .align 2, 0 -_080E0598: .4byte REG_BG2VOFS -_080E059C: .4byte gUnknown_03004DE0 -_080E05A0: .4byte 0xa2600001 -_080E05A4: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E05BC - ldr r1, _080E05B4 @ =REG_WINOUT - ldr r2, _080E05B8 @ =0x00003f3d - b _080E05C0 - .align 2, 0 -_080E05B4: .4byte REG_WINOUT -_080E05B8: .4byte 0x00003f3d -_080E05BC: - ldr r1, _080E05FC @ =REG_WINOUT - ldr r2, _080E0600 @ =0x00003f3b -_080E05C0: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0604 @ =REG_WININ - ldr r2, _080E0608 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E060C @ =gUnknown_030042C4 - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0610 @ =gUnknown_03004240 - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080E0614 @ =REG_BLDALPHA - ldr r2, _080E0618 @ =0x0000080c - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E061C @ =sub_80E0620 - str r0, [r5] -_080E05F2: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E05FC: .4byte REG_WINOUT -_080E0600: .4byte 0x00003f3b -_080E0604: .4byte REG_WININ -_080E0608: .4byte 0x00003f3f -_080E060C: .4byte gUnknown_030042C4 -_080E0610: .4byte gUnknown_03004240 -_080E0614: .4byte REG_BLDALPHA -_080E0618: .4byte 0x0000080c -_080E061C: .4byte sub_80E0620 - thumb_func_end sub_80E03BC - - thumb_func_start sub_80E0620 -sub_80E0620: @ 80E0620 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E0644 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E063A - b _080E0784 -_080E063A: - lsls r0, 2 - ldr r1, _080E0648 @ =_080E064C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0644: .4byte gTasks -_080E0648: .4byte _080E064C - .align 2, 0 -_080E064C: - .4byte _080E0660 - .4byte _080E068C - .4byte _080E06F4 - .4byte _080E0754 - .4byte _080E0768 -_080E0660: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E0676 - strh r2, [r4, 0x12] -_080E0676: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080E068A - b _080E0784 -_080E068A: - b _080E075A -_080E068C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080E06A8 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080E06AC -_080E06A8: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080E06AC: - ldr r2, _080E06F0 @ =gUnknown_030042C4 - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E06CE - strh r2, [r4, 0x10] -_080E06CE: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E0784 - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - b _080E075A - .align 2, 0 -_080E06F0: .4byte gUnknown_030042C4 -_080E06F4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0724 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E0732 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0732 -_080E0724: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080E0732 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0732: - ldr r2, _080E0750 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E0784 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080E0784 - b _080E075A - .align 2, 0 -_080E0750: .4byte REG_BLDALPHA -_080E0754: - ldr r1, _080E0764 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E075A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E0784 - .align 2, 0 -_080E0764: .4byte gUnknown_03004DC0 -_080E0768: - ldr r0, _080E078C @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0790 @ =gUnknown_03004240 - strh r1, [r0] - ldr r0, _080E0794 @ =REG_WININ - ldr r3, _080E0798 @ =0x00003f3f - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl move_anim_task_del -_080E0784: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E078C: .4byte gUnknown_030042C4 -_080E0790: .4byte gUnknown_03004240 -_080E0794: .4byte REG_WININ -_080E0798: .4byte 0x00003f3f - thumb_func_end sub_80E0620 - - thumb_func_start sub_80E079C -sub_80E079C: @ 80E079C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E0890 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080E07FC - ldr r0, _080E0888 @ =gUnknown_03004DE0 - mov r12, r0 - ldr r7, _080E088C @ =gUnknown_03004DC0 -_080E07D0: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080E07D0 -_080E07FC: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080E0846 - ldr r0, _080E0888 @ =gUnknown_03004DE0 - mov r12, r0 - ldr r7, _080E088C @ =gUnknown_03004DC0 -_080E0810: - asrs r4, r3, 16 - cmp r4, 0 - blt _080E0832 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080E0832: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080E0810 -_080E0846: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080E08BE - ldr r7, _080E0888 @ =gUnknown_03004DE0 - ldr r4, _080E088C @ =gUnknown_03004DC0 -_080E085E: - asrs r3, r2, 16 - cmp r3, 0 - blt _080E0876 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080E0876: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080E085E - b _080E08BE - .align 2, 0 -_080E0888: .4byte gUnknown_03004DE0 -_080E088C: .4byte gUnknown_03004DC0 -_080E0890: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080E08C8 @ =gUnknown_03004DE0 - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080E08A2: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080E08A2 -_080E08BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E08C8: .4byte gUnknown_03004DE0 - thumb_func_end sub_80E079C - - thumb_func_start sub_80E08CC -sub_80E08CC: @ 80E08CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080E0914 @ =gSprites - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080E08E2: - lsls r0, r4, 24 - lsrs r0, 24 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080E0902 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080E0902: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E08E2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0914: .4byte gSprites - thumb_func_end sub_80E08CC - - thumb_func_start sub_80E0918 -sub_80E0918: @ 80E0918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080E09B8 @ =gUnknown_0202F7C8 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8076034 - ldr r0, _080E09BC @ =gSprites - mov r9, r0 - ldr r0, _080E09C0 @ =gUnknown_02024BE0 - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E09A2 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8076034 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080E09A2: - mov r0, r10 - bl move_anim_task_del - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E09B8: .4byte gUnknown_0202F7C8 -_080E09BC: .4byte gSprites -_080E09C0: .4byte gUnknown_02024BE0 - thumb_func_end sub_80E0918 - - thumb_func_start sub_80E09C4 -sub_80E09C4: @ 80E09C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080E0A0C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8076464 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E0A00 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080E0A00: - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0A0C: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E09C4 - - thumb_func_start sub_80E0A10 -sub_80E0A10: @ 80E0A10 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E0A40 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080E0A44 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080E0A48 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0A40: .4byte gUnknown_03004B00 -_080E0A44: .4byte sub_8078600 -_080E0A48: .4byte move_anim_8072740 - thumb_func_end sub_80E0A10 - - thumb_func_start sub_80E0A4C -sub_80E0A4C: @ 80E0A4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E0B50 @ =gUnknown_030042C4 - strh r7, [r0] - ldr r0, _080E0B54 @ =gUnknown_03004240 - strh r7, [r0] - ldr r1, _080E0B58 @ =REG_WININ - ldr r2, _080E0B5C @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B60 @ =0x00003f3d - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0B64 @ =REG_BLDCNT - ldr r2, _080E0B68 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B6C @ =0x00000c08 - adds r0, r3, 0 - strh r0, [r1] - ldr r5, _080E0B70 @ =REG_BG1CNT - ldrb r1, [r5] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r5, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r5, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0AC4 - ldrb r0, [r5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r5] -_080E0AC4: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E0B40 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 - ldr r4, _080E0B74 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E0AF4 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 -_080E0AF4: - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E0B40 - ldr r3, _080E0B78 @ =gSprites - ldr r1, _080E0B7C @ =gUnknown_02024BE0 - ldrb r0, [r4] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r5] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - movs r7, 0x1 -_080E0B40: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E0B84 - ldr r0, _080E0B80 @ =0x02019348 - ldrh r5, [r0] - b _080E0BCC - .align 2, 0 -_080E0B50: .4byte gUnknown_030042C4 -_080E0B54: .4byte gUnknown_03004240 -_080E0B58: .4byte REG_WININ -_080E0B5C: .4byte 0x00003f3f -_080E0B60: .4byte 0x00003f3d -_080E0B64: .4byte REG_BLDCNT -_080E0B68: .4byte 0x00003f42 -_080E0B6C: .4byte 0x00000c08 -_080E0B70: .4byte REG_BG1CNT -_080E0B74: .4byte gUnknown_0202F7C8 -_080E0B78: .4byte gSprites -_080E0B7C: .4byte gUnknown_02024BE0 -_080E0B80: .4byte 0x02019348 -_080E0B84: - ldr r4, _080E0BA4 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E0BB0 - ldr r1, _080E0BA8 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0BAC @ =gEnemyParty - b _080E0BC0 - .align 2, 0 -_080E0BA4: .4byte gUnknown_0202F7C8 -_080E0BA8: .4byte gUnknown_02024A6A -_080E0BAC: .4byte gEnemyParty -_080E0BB0: - ldr r1, _080E0C58 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0C5C @ =gPlayerParty -_080E0BC0: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 -_080E0BCC: - movs r0, 0 - bl obj_id_for_side_relative_to_move - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E0C60 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E0C64 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E0C68 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E0C6C @ =gUnknown_08D1D574 - bl LZDecompressVram - ldr r0, _080E0C70 @ =gUnknown_08D1D410 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E0C74 @ =gUnknown_08D1D54C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080E0C78 @ =gUnknown_030042C0 - ldr r0, _080E0C7C @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080E0C80 @ =gUnknown_030041B4 - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080E0C84 @ =gUnknown_03004B00 - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E0C88 - adds r0, r1, 0 - movs r1, 0 - bl sub_8079108 - b _080E0C94 - .align 2, 0 -_080E0C58: .4byte gUnknown_02024A6A -_080E0C5C: .4byte gPlayerParty -_080E0C60: .4byte gUnknown_0202F7C8 -_080E0C64: .4byte 0x040000d4 -_080E0C68: .4byte 0x85000400 -_080E0C6C: .4byte gUnknown_08D1D574 -_080E0C70: .4byte gUnknown_08D1D410 -_080E0C74: .4byte gUnknown_08D1D54C -_080E0C78: .4byte gUnknown_030042C0 -_080E0C7C: .4byte gSprites -_080E0C80: .4byte gUnknown_030041B4 -_080E0C84: .4byte gUnknown_03004B00 -_080E0C88: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080E0C94: - ldr r1, _080E0CC4 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080E0CC8 @ =gUnknown_03004B00 - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r7, [r0, 0x14] - ldr r1, _080E0CCC @ =sub_80E0CD0 - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0CC4: .4byte gTasks -_080E0CC8: .4byte gUnknown_03004B00 -_080E0CCC: .4byte sub_80E0CD0 - thumb_func_end sub_80E0A4C - - thumb_func_start sub_80E0CD0 -sub_80E0CD0: @ 80E0CD0 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080E0DF0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080E0DF4 @ =gUnknown_030042C0 - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - bne _080E0DE8 - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080E0DE8 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E0DF8 @ =gUnknown_030042C4 - strh r5, [r0] - ldr r0, _080E0DFC @ =gUnknown_03004240 - strh r5, [r0] - ldr r0, _080E0E00 @ =REG_WININ - ldr r2, _080E0E04 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E0D40 - ldr r2, _080E0E08 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E0D40: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E0E0C @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080E0E10 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080E0D84 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8079108 -_080E0D84: - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E0E14 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E0E18 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E0DE2 - ldr r2, _080E0E1C @ =gUnknown_02024BE0 - ldr r0, _080E0E20 @ =gUnknown_0202F7C8 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E0DE2: - adds r0, r7, 0 - bl move_anim_task_del -_080E0DE8: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0DF0: .4byte gTasks -_080E0DF4: .4byte gUnknown_030042C0 -_080E0DF8: .4byte gUnknown_030042C4 -_080E0DFC: .4byte gUnknown_03004240 -_080E0E00: .4byte REG_WININ -_080E0E04: .4byte 0x00003f3f -_080E0E08: .4byte REG_BG1CNT -_080E0E0C: .4byte REG_BLDCNT -_080E0E10: .4byte gSprites -_080E0E14: .4byte 0x040000d4 -_080E0E18: .4byte 0x85000200 -_080E0E1C: .4byte gUnknown_02024BE0 -_080E0E20: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E0CD0 - - thumb_func_start sub_80E0E24 -sub_80E0E24: @ 80E0E24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E0E44 @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080E0E88 - lsls r0, r1, 2 - ldr r1, _080E0E48 @ =_080E0E4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0E44: .4byte gUnknown_03004B00 -_080E0E48: .4byte _080E0E4C - .align 2, 0 -_080E0E4C: - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E78 - .4byte _080E0E7C - .4byte _080E0E80 - .4byte _080E0E84 -_080E0E6C: - ldrb r0, [r2] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - b _080E0E8A -_080E0E78: - movs r4, 0 - b _080E0E90 -_080E0E7C: - movs r4, 0x2 - b _080E0E90 -_080E0E80: - movs r4, 0x1 - b _080E0E90 -_080E0E84: - movs r4, 0x3 - b _080E0E90 -_080E0E88: - movs r2, 0xFF -_080E0E8A: - movs r0, 0 - cmp r0, 0 - beq _080E0EB6 -_080E0E90: - adds r0, r4, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E0EB4 - ldr r0, _080E0EB0 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r2, [r0] - b _080E0EB6 - .align 2, 0 -_080E0EB0: .4byte gUnknown_02024BE0 -_080E0EB4: - movs r2, 0xFF -_080E0EB6: - cmp r2, 0xFF - beq _080E0ED2 - ldr r1, _080E0EE0 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080E0EE4 @ =gUnknown_03004B00 - ldrb r1, [r1, 0x2] - bl sub_8079108 -_080E0ED2: - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0EE0: .4byte gSprites -_080E0EE4: .4byte gUnknown_03004B00 - thumb_func_end sub_80E0E24 - - thumb_func_start sub_80E0EE8 -sub_80E0EE8: @ 80E0EE8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E0F14 @ =gUnknown_0202F7C4 - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080E0EFC - ldr r1, _080E0F18 @ =gUnknown_03004B00 - movs r0, 0 - strh r0, [r1, 0xE] -_080E0EFC: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080E0F08 - ldr r1, _080E0F18 @ =gUnknown_03004B00 - movs r0, 0x1 - strh r0, [r1, 0xE] -_080E0F08: - adds r0, r3, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E0F14: .4byte gUnknown_0202F7C4 -_080E0F18: .4byte gUnknown_03004B00 - thumb_func_end sub_80E0EE8 - - thumb_func_start sub_80E0F1C -sub_80E0F1C: @ 80E0F1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E0F74 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r5, _080E0F78 @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080E0F7C @ =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E0F80 @ =sub_80E0F84 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0F74: .4byte gUnknown_0202F7C8 -_080E0F78: .4byte gUnknown_0202F7C9 -_080E0F7C: .4byte 0x0000ffd8 -_080E0F80: .4byte sub_80E0F84 - thumb_func_end sub_80E0F1C - - thumb_func_start sub_80E0F84 -sub_80E0F84: @ 80E0F84 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E0FD8 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r0, 0x14 - strh r0, [r5, 0x2E] - ldr r4, _080E0FE0 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - movs r0, 0x28 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080E0FE4 @ =sub_80E0FE8 - str r0, [r5, 0x1C] -_080E0FD8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0FE0: .4byte gUnknown_0202F7C8 -_080E0FE4: .4byte sub_80E0FE8 - thumb_func_end sub_80E0F84 - - thumb_func_start sub_80E0FE8 -sub_80E0FE8: @ 80E0FE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E0FFC - adds r0, r4, 0 - bl move_anim_8072740 -_080E0FFC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E0FE8 - - thumb_func_start sub_80E1004 -sub_80E1004: @ 80E1004 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080E1064 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E1024 - ldr r1, _080E1068 @ =gUnknown_03004B00 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080E1024: - ldr r4, _080E1068 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080E106C @ =gUnknown_0202F7C9 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080E1070 @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080E1074 @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1064: .4byte gUnknown_0202F7C8 -_080E1068: .4byte gUnknown_03004B00 -_080E106C: .4byte gUnknown_0202F7C9 -_080E1070: .4byte sub_8078B34 -_080E1074: .4byte move_anim_8072740 - thumb_func_end sub_80E1004 - - thumb_func_start sub_80E1078 -sub_80E1078: @ 80E1078 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r4, _080E10F8 @ =gUnknown_0202F7C9 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r7, r0, 24 - bl Random - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - bl Random - ands r4, r0 - adds r1, r5, 0 - cmp r1, 0x10 - ble _080E10C0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 -_080E10C0: - lsls r0, r4, 16 - asrs r1, r0, 16 - cmp r1, 0x10 - ble _080E10D0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 -_080E10D0: - ldr r0, _080E10FC @ =gUnknown_03004B00 - ldrh r0, [r0, 0x4] - strh r0, [r6, 0x2E] - mov r1, r8 - adds r0, r1, r5 - strh r0, [r6, 0x32] - adds r0, r7, r4 - strh r0, [r6, 0x36] - ldr r0, _080E1100 @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080E1104 @ =move_anim_8074EE0 - adds r0, r6, 0 - bl oamt_set_x3A_32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E10F8: .4byte gUnknown_0202F7C9 -_080E10FC: .4byte gUnknown_03004B00 -_080E1100: .4byte sub_8078B34 -_080E1104: .4byte move_anim_8074EE0 - thumb_func_end sub_80E1078 - - thumb_func_start sub_80E1108 -sub_80E1108: @ 80E1108 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x1 - ldr r3, _080E1168 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080E116C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r6, _080E1170 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080E117C - ldr r4, _080E1174 @ =gUnknown_0202F7C8 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x2] - adds r0, r2 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r6, 0x4] - adds r0, r3 - strh r0, [r5, 0x22] - movs r1, 0x2 - ldrsh r0, [r6, r1] - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - ble _080E1162 - movs r1, 0x1 -_080E1162: - strh r1, [r5, 0x2E] - ldr r0, _080E1178 @ =sub_80E1198 - b _080E118A - .align 2, 0 -_080E1168: .4byte 0x000003ff -_080E116C: .4byte 0xfffffc00 -_080E1170: .4byte gUnknown_03004B00 -_080E1174: .4byte gUnknown_0202F7C8 -_080E1178: .4byte sub_80E1198 -_080E117C: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x20] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x22] - negs r0, r0 - strh r0, [r5, 0x26] - ldr r0, _080E1194 @ =sub_80E11D4 -_080E118A: - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1194: .4byte sub_80E11D4 - thumb_func_end sub_80E1108 - - thumb_func_start sub_80E1198 -sub_80E1198: @ 80E1198 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E11B6 - movs r0, 0 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] -_080E11B6: - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E11CE - adds r0, r2, 0 - bl move_anim_8072740 -_080E11CE: - pop {r0} - bx r0 - thumb_func_end sub_80E1198 - - thumb_func_start sub_80E11D4 -sub_80E11D4: @ 80E11D4 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080E11E6 - cmp r1, 0x1 - beq _080E11FC - b _080E123E -_080E11E6: - ldrh r0, [r3, 0x26] - adds r0, 0x4 - strh r0, [r3, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080E123E - strh r1, [r3, 0x26] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080E123E -_080E11FC: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _080E123E - movs r0, 0 - strh r0, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080E123E - adds r0, r3, 0 - bl move_anim_8072740 -_080E123E: - pop {r0} - bx r0 - thumb_func_end sub_80E11D4 - - thumb_func_start sub_80E1244 -sub_80E1244: @ 80E1244 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1264 @ =gTasks - adds r1, r0, r1 - ldr r0, _080E1268 @ =gUnknown_03004B00 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080E1270 - ldr r0, _080E126C @ =sub_80E1284 - b _080E1272 - .align 2, 0 -_080E1264: .4byte gTasks -_080E1268: .4byte gUnknown_03004B00 -_080E126C: .4byte sub_80E1284 -_080E1270: - ldr r0, _080E1280 @ =sub_80E143C -_080E1272: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E1280: .4byte sub_80E143C - thumb_func_end sub_80E1244 - - thumb_func_start sub_80E1284 -sub_80E1284: @ 80E1284 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E12A8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E129E - b _080E1432 -_080E129E: - lsls r0, 2 - ldr r1, _080E12AC @ =_080E12B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E12A8: .4byte gTasks -_080E12AC: .4byte _080E12B0 - .align 2, 0 -_080E12B0: - .4byte _080E12C4 - .4byte _080E134C - .4byte _080E135C - .4byte _080E1400 - .4byte _080E1414 -_080E12C4: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080E12EC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080E12F8 - ldr r0, _080E12F0 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E12F4 @ =gUnknown_030041B4 - b _080E1300 - .align 2, 0 -_080E12EC: .4byte gUnknown_0202F7C8 -_080E12F0: .4byte gUnknown_030042C0 -_080E12F4: .4byte gUnknown_030041B4 -_080E12F8: - ldr r0, _080E133C @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E1340 @ =gUnknown_03004280 -_080E1300: - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080E1344 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - cmp r1, 0 - bge _080E1322 - movs r0, 0 - strh r0, [r4, 0x24] -_080E1322: - ldr r2, _080E1348 @ =gSprites - movs r3, 0x1C - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _080E1406 - .align 2, 0 -_080E133C: .4byte gUnknown_03004288 -_080E1340: .4byte gUnknown_03004280 -_080E1344: .4byte gUnknown_0202F7C8 -_080E1348: .4byte gSprites -_080E134C: - ldrb r0, [r4, 0x1E] - movs r2, 0x24 - ldrsh r1, [r4, r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - bl sub_80E1668 - b _080E1406 -_080E135C: - ldrh r0, [r4, 0xC] - adds r0, 0x6 - movs r1, 0x7F - ands r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E137E - movs r0, 0 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] -_080E137E: - ldr r1, _080E13A0 @ =gSineTable - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - ldrh r3, [r4, 0xE] - adds r2, r0, r3 - strh r2, [r4, 0x12] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E13A8 - ldr r1, _080E13A4 @ =gUnknown_030041B4 - b _080E13AA - .align 2, 0 -_080E13A0: .4byte gSineTable -_080E13A4: .4byte gUnknown_030041B4 -_080E13A8: - ldr r1, _080E13CC @ =gUnknown_03004280 -_080E13AA: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0x3F - ble _080E1432 - ldrh r0, [r4, 0x24] - movs r1, 0x78 - subs r2, r1, r0 - strh r2, [r4, 0x12] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E13D4 - ldr r1, _080E13D0 @ =gUnknown_030041B4 - b _080E13D6 - .align 2, 0 -_080E13CC: .4byte gUnknown_03004280 -_080E13D0: .4byte gUnknown_030041B4 -_080E13D4: - ldr r1, _080E13F8 @ =gUnknown_03004280 -_080E13D6: - ldrh r0, [r4, 0x22] - subs r0, r2 - strh r0, [r1] - ldr r2, _080E13FC @ =gSprites - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x88 - lsls r3, 1 - adds r0, r3, 0 - subs r0, r2 - strh r0, [r1, 0x24] - b _080E1406 - .align 2, 0 -_080E13F8: .4byte gUnknown_03004280 -_080E13FC: .4byte gSprites -_080E1400: - ldr r1, _080E1410 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E1406: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1432 - .align 2, 0 -_080E1410: .4byte gUnknown_03004DC0 -_080E1414: - adds r0, r2, 0 - bl move_anim_task_del - ldr r2, _080E1438 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080E1432: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1438: .4byte gSprites - thumb_func_end sub_80E1284 - - thumb_func_start sub_80E143C -sub_80E143C: @ 80E143C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E147C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r3] - movs r4, 0 - strh r4, [r1, 0x24] - strh r4, [r1, 0x26] - ldr r0, _080E1480 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E1488 - ldr r0, _080E1484 @ =gUnknown_030041B4 - b _080E148A - .align 2, 0 -_080E147C: .4byte gSprites -_080E1480: .4byte gUnknown_0202F7C8 -_080E1484: .4byte gUnknown_030041B4 -_080E1488: - ldr r0, _080E1498 @ =gUnknown_03004280 -_080E148A: - strh r4, [r0] - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1498: .4byte gUnknown_03004280 - thumb_func_end sub_80E143C - - thumb_func_start sub_80E149C -sub_80E149C: @ 80E149C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E14BC @ =gTasks - adds r1, r0, r1 - ldr r0, _080E14C0 @ =gUnknown_03004B00 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bne _080E14C8 - ldr r0, _080E14C4 @ =sub_80E14DC - b _080E14CA - .align 2, 0 -_080E14BC: .4byte gTasks -_080E14C0: .4byte gUnknown_03004B00 -_080E14C4: .4byte sub_80E14DC -_080E14C8: - ldr r0, _080E14D8 @ =sub_80E1560 -_080E14CA: - str r0, [r1] - ldr r1, [r1] - adds r0, r2, 0 - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E14D8: .4byte sub_80E1560 - thumb_func_end sub_80E149C - - thumb_func_start sub_80E14DC -sub_80E14DC: @ 80E14DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E14FC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080E1500 - cmp r5, 0x1 - beq _080E1554 - b _080E155A - .align 2, 0 -_080E14FC: .4byte gTasks -_080E1500: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r3, _080E1550 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r5, [r0, 0x24] - movs r1, 0x1C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x22] - movs r0, 0xA0 - subs r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E155A - .align 2, 0 -_080E1550: .4byte gSprites -_080E1554: - adds r0, r2, 0 - bl move_anim_task_del -_080E155A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E14DC - - thumb_func_start sub_80E1560 -sub_80E1560: @ 80E1560 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1584 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _080E1662 - lsls r0, 2 - ldr r1, _080E1588 @ =_080E158C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E1584: .4byte gTasks -_080E1588: .4byte _080E158C - .align 2, 0 -_080E158C: - .4byte _080E15A0 - .4byte _080E15F4 - .4byte _080E1602 - .4byte _080E161C - .4byte _080E165C -_080E15A0: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1C] - ldr r0, _080E15C4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080E15CC - ldr r0, _080E15C8 @ =gUnknown_030042C0 - b _080E15CE - .align 2, 0 -_080E15C4: .4byte gUnknown_0202F7C8 -_080E15C8: .4byte gUnknown_030042C0 -_080E15CC: - ldr r0, _080E15EC @ =gUnknown_03004288 -_080E15CE: - ldrh r0, [r0] - strh r0, [r4, 0x20] - ldr r0, _080E15F0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0x24] - adds r0, 0x20 - strh r0, [r4, 0x26] - b _080E164A - .align 2, 0 -_080E15EC: .4byte gUnknown_03004288 -_080E15F0: .4byte gUnknown_0202F7C8 -_080E15F4: - ldrb r0, [r4, 0x1E] - movs r1, 0x26 - ldrsh r2, [r4, r1] - movs r1, 0 - bl sub_80E1668 - b _080E164A -_080E1602: - ldr r2, _080E1618 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x60 - strh r1, [r0, 0x26] - b _080E164A - .align 2, 0 -_080E1618: .4byte gSprites -_080E161C: - ldr r2, _080E1654 @ =gSprites - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - movs r0, 0x1C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E1662 - ldr r1, _080E1658 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E164A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1662 - .align 2, 0 -_080E1654: .4byte gSprites -_080E1658: .4byte gUnknown_03004DC0 -_080E165C: - adds r0, r2, 0 - bl move_anim_task_del -_080E1662: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1560 - - thumb_func_start sub_80E1668 -sub_80E1668: @ 80E1668 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - cmp r0, 0x1 - bne _080E168C - ldr r0, _080E1684 @ =gUnknown_030042C0 - ldrh r3, [r0] - ldr r0, _080E1688 @ =REG_BG1HOFS - b _080E1692 - .align 2, 0 -_080E1684: .4byte gUnknown_030042C0 -_080E1688: .4byte REG_BG1HOFS -_080E168C: - ldr r0, _080E1718 @ =gUnknown_03004288 - ldrh r3, [r0] - ldr r0, _080E171C @ =REG_BG2HOFS -_080E1692: - str r0, [sp] - lsls r0, r1, 16 - cmp r0, 0 - bge _080E169C - movs r1, 0 -_080E169C: - lsls r2, r1, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - cmp r2, r0 - bge _080E16C8 - ldr r5, _080E1720 @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080E16AE: - asrs r2, 16 - lsls r1, r2, 1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r6 - strh r3, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r2, r1, 16 - asrs r0, r2, 16 - cmp r0, r4 - blt _080E16AE -_080E16C8: - lsls r1, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080E16F6 - ldr r4, _080E1720 @ =gUnknown_03004DE0 - lsls r0, r3, 16 - asrs r0, 16 - adds r3, r0, 0 - adds r3, 0xF0 - movs r0, 0xF0 - lsls r0, 3 - adds r5, r4, r0 -_080E16E0: - asrs r2, r1, 16 - lsls r1, r2, 1 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080E16E0 -_080E16F6: - ldr r0, _080E1724 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1718: .4byte gUnknown_03004288 -_080E171C: .4byte REG_BG2HOFS -_080E1720: .4byte gUnknown_03004DE0 -_080E1724: .4byte 0xa2600001 - thumb_func_end sub_80E1668 - - thumb_func_start sub_80E1728 -sub_80E1728: @ 80E1728 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _080E173C @ =gUnknown_03004B00 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r7, r0, 0 - cmp r1, 0 - bne _080E1744 - ldr r0, _080E1740 @ =gUnknown_0202F7C8 - b _080E1746 - .align 2, 0 -_080E173C: .4byte gUnknown_03004B00 -_080E1740: .4byte gUnknown_0202F7C8 -_080E1744: - ldr r0, _080E17A8 @ =gUnknown_0202F7C9 -_080E1746: - ldrb r4, [r0] - movs r6, 0x18 - adds r1, r7, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _080E1762 - negs r0, r6 - lsls r0, 16 - lsrs r6, r0, 16 - movs r2, 0x4 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1, 0x4] -_080E1762: - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, r6 - strh r0, [r5, 0x20] - adds r0, r4, 0 - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1E - strh r0, [r5, 0x22] - ldrh r1, [r7, 0xA] - strh r1, [r5, 0x2E] - ldrh r1, [r7, 0x4] - ldrh r2, [r5, 0x20] - adds r1, r2 - strh r1, [r5, 0x32] - ldrh r1, [r7, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r7, 0x8] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080E17AC @ =sub_80E17B0 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E17A8: .4byte gUnknown_0202F7C9 -_080E17AC: .4byte sub_80E17B0 - thumb_func_end sub_80E1728 - - thumb_func_start sub_80E17B0 -sub_80E17B0: @ 80E17B0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E17C4 - adds r0, r4, 0 - bl move_anim_8072740 -_080E17C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E17B0 - - thumb_func_start sub_80E17CC -sub_80E17CC: @ 80E17CC - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080E17E0 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E17E8 - ldr r0, _080E17E4 @ =gUnknown_0202F7C8 - b _080E17EA - .align 2, 0 -_080E17E0: .4byte gUnknown_03004B00 -_080E17E4: .4byte gUnknown_0202F7C8 -_080E17E8: - ldr r0, _080E1848 @ =gUnknown_0202F7C9 -_080E17EA: - ldrb r5, [r0] - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E184C @ =0x0000fff0 - adds r0, r2 - ldr r4, _080E1850 @ =gUnknown_03004B00 - movs r3, 0x2 - ldrsh r1, [r4, r3] - lsls r1, 5 - adds r0, r1 - strh r0, [r6, 0x20] - adds r0, r5, 0 - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r6, 0x22] - ldrh r2, [r6, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x2 - ldrsh r0, [r4, r3] - lsls r0, 3 - adds r1, r0 - ldr r3, _080E1854 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080E1858 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r6, 0x4] - ldr r1, _080E185C @ =move_anim_8072740 - adds r0, r6, 0 - bl oamt_set_x3A_32 - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldr r0, _080E1860 @ =sub_80782D8 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1848: .4byte gUnknown_0202F7C9 -_080E184C: .4byte 0x0000fff0 -_080E1850: .4byte gUnknown_03004B00 -_080E1854: .4byte 0x000003ff -_080E1858: .4byte 0xfffffc00 -_080E185C: .4byte move_anim_8072740 -_080E1860: .4byte sub_80782D8 - thumb_func_end sub_80E17CC - - thumb_func_start sub_80E1864 -sub_80E1864: @ 80E1864 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080E1888 @ =gTasks - adds r4, r0, r1 - ldr r0, _080E188C @ =gUnknown_03004B00 - ldrh r2, [r0, 0x2] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r6, r0, 0 - cmp r1, 0 - beq _080E1890 - adds r0, r2, 0x3 - b _080E189C - .align 2, 0 -_080E1888: .4byte gTasks -_080E188C: .4byte gUnknown_03004B00 -_080E1890: - ldr r0, _080E18BC @ =gUnknown_0202F7BC - ldrh r0, [r0] - movs r1, 0xA - bl __udivsi3 - adds r0, 0x3 -_080E189C: - strh r0, [r4, 0x26] - strh r0, [r4, 0x24] - adds r1, r6, 0 - ldrh r0, [r1, 0x4] - strh r0, [r4, 0xE] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _080E18C8 - cmp r0, 0x5 - bne _080E1908 - ldr r0, _080E18C0 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r4, 0x22] - ldr r0, _080E18C4 @ =sub_80E1934 - b _080E1926 - .align 2, 0 -_080E18BC: .4byte gUnknown_0202F7BC -_080E18C0: .4byte gUnknown_030041B0 -_080E18C4: .4byte sub_80E1934 -_080E18C8: - movs r0, 0 - strh r0, [r4, 0x22] - movs r5, 0 -_080E18CE: - lsls r0, r5, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E18F8 - movs r3, 0x22 - ldrsh r0, [r4, r3] - adds r0, 0x9 - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r0 - ldr r0, _080E1904 @ =gUnknown_02024BE0 - adds r0, r5, r0 - ldrb r0, [r0] - strh r0, [r1] - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_080E18F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E18CE - b _080E1924 - .align 2, 0 -_080E1904: .4byte gUnknown_02024BE0 -_080E1908: - ldrb r0, [r6] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x1A] - cmp r0, 0xFF - bne _080E1920 - adds r0, r5, 0 - bl move_anim_task_del - b _080E1928 -_080E1920: - movs r0, 0x1 - strh r0, [r4, 0x22] -_080E1924: - ldr r0, _080E1930 @ =sub_80E1A2C -_080E1926: - str r0, [r4] -_080E1928: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E1930: .4byte sub_80E1A2C - thumb_func_end sub_80E1864 - - thumb_func_start sub_80E1934 -sub_80E1934: @ 80E1934 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E1958 @ =gTasks - adds r3, r0, r1 - movs r0, 0x8 - ldrsh r1, [r3, r0] - cmp r1, 0x1 - beq _080E19B8 - cmp r1, 0x1 - bgt _080E195C - cmp r1, 0 - beq _080E1962 - b _080E1A24 - .align 2, 0 -_080E1958: .4byte gTasks -_080E195C: - cmp r1, 0x2 - beq _080E1A18 - b _080E1A24 -_080E1962: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1A24 - strh r1, [r3, 0xA] - ldrh r1, [r3, 0xC] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E198C - ldr r1, _080E1988 @ =gUnknown_030041B0 - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080E1996 - .align 2, 0 -_080E1988: .4byte gUnknown_030041B0 -_080E198C: - ldr r0, _080E19B4 @ =gUnknown_030041B0 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x26] - subs r1, r2 - strh r1, [r0] -_080E1996: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _080E1A24 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - b _080E1A0C - .align 2, 0 -_080E19B4: .4byte gUnknown_030041B0 -_080E19B8: - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1A24 - movs r0, 0 - strh r0, [r3, 0xA] - ldrh r0, [r3, 0xC] - ands r1, r0 - cmp r1, 0 - bne _080E19E4 - ldr r1, _080E19E0 @ =gUnknown_030041B0 - ldrh r0, [r3, 0x24] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r1] - b _080E19EE - .align 2, 0 -_080E19E0: .4byte gUnknown_030041B0 -_080E19E4: - ldr r0, _080E1A14 @ =gUnknown_030041B0 - ldrh r1, [r3, 0x22] - ldrh r2, [r3, 0x24] - subs r1, r2 - strh r1, [r0] -_080E19EE: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E1A24 - movs r0, 0 - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x24] - subs r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080E1A24 -_080E1A0C: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080E1A24 - .align 2, 0 -_080E1A14: .4byte gUnknown_030041B0 -_080E1A18: - ldr r1, _080E1A28 @ =gUnknown_030041B0 - ldrh r0, [r3, 0x22] - strh r0, [r1] - adds r0, r2, 0 - bl move_anim_task_del -_080E1A24: - pop {r0} - bx r0 - .align 2, 0 -_080E1A28: .4byte gUnknown_030041B0 - thumb_func_end sub_80E1934 - - thumb_func_start sub_80E1A2C -sub_80E1A2C: @ 80E1A2C - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080E1A50 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080E1A8C - cmp r5, 0x1 - bgt _080E1A54 - cmp r5, 0 - beq _080E1A5A - b _080E1B06 - .align 2, 0 -_080E1A50: .4byte gTasks -_080E1A54: - cmp r5, 0x2 - beq _080E1AC8 - b _080E1B06 -_080E1A5A: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1B06 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80E1B10 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xE - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080E1B06 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - b _080E1AC0 -_080E1A8C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E1B06 - strh r5, [r4, 0xA] - adds r0, r4, 0 - bl sub_80E1B10 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E1B06 - strh r5, [r4, 0xC] - ldrh r0, [r4, 0x24] - subs r0, 0x1 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080E1B06 -_080E1AC0: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E1B06 -_080E1AC8: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r2, r0 - bge _080E1B00 - ldr r0, _080E1B0C @ =gSprites - mov r12, r0 - adds r5, r4, 0 - adds r5, 0x8 - movs r6, 0 -_080E1ADC: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - strh r6, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r2, r0 - blt _080E1ADC -_080E1B00: - adds r0, r3, 0 - bl move_anim_task_del -_080E1B06: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1B0C: .4byte gSprites - thumb_func_end sub_80E1A2C - - thumb_func_start sub_80E1B10 -sub_80E1B10: @ 80E1B10 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xC] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080E1B38 - movs r0, 0x24 - ldrsh r1, [r3, r0] - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - ldrh r2, [r3, 0x24] - adds r0, r4, 0 - ands r0, r2 - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - b _080E1B48 -_080E1B38: - movs r1, 0x24 - ldrsh r0, [r3, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_080E1B48: - movs r2, 0 - movs r7, 0x22 - ldrsh r0, [r3, r7] - cmp r2, r0 - bge _080E1B7C - ldr r6, _080E1B84 @ =gSprites - adds r5, r3, 0 - adds r5, 0x8 -_080E1B58: - adds r0, r2, 0 - adds r0, 0x9 - lsls r0, 1 - adds r0, r5, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r4, [r0, 0x24] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x22 - ldrsh r0, [r3, r1] - cmp r2, r0 - blt _080E1B58 -_080E1B7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1B84: .4byte gSprites - thumb_func_end sub_80E1B10 - - thumb_func_start sub_80E1B88 -sub_80E1B88: @ 80E1B88 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, _080E1BA8 @ =gUnknown_03004B00 - movs r2, 0 - ldr r0, _080E1BAC @ =gUnknown_0202F7BC - ldrh r0, [r0] - cmp r0, 0x63 - bls _080E1B9C - movs r2, 0x1 -_080E1B9C: - strh r2, [r3, 0x1E] - adds r0, r1, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E1BA8: .4byte gUnknown_03004B00 -_080E1BAC: .4byte gUnknown_0202F7BC - thumb_func_end sub_80E1B88 - - thumb_func_start sub_80E1BB0 -sub_80E1BB0: @ 80E1BB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080E1BC8 @ =gUnknown_03004B00 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _080E1BD0 - ldr r0, _080E1BCC @ =gUnknown_0202F7C9 - b _080E1BD2 - .align 2, 0 -_080E1BC8: .4byte gUnknown_03004B00 -_080E1BCC: .4byte gUnknown_0202F7C9 -_080E1BD0: - ldr r0, _080E1C40 @ =gUnknown_0202F7C8 -_080E1BD2: - ldrb r0, [r0] - adds r5, r0, 0 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - ble _080E1BE2 - movs r0, 0x2 - eors r5, r0 -_080E1BE2: - ldr r0, _080E1C44 @ =sub_80E1C58 - ldrb r1, [r6, 0x2] - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080E1C48 @ =gTasks - adds r4, r0 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x20 - subs r1, r0 - ldr r2, _080E1C4C @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - strh r1, [r4, 0xA] - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x40 - subs r1, r0 - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0xC] - ldr r2, _080E1C50 @ =gUnknown_030041B0 - ldrh r0, [r4, 0xA] - strh r0, [r2] - ldr r0, _080E1C54 @ =gUnknown_030041B8 - strh r1, [r0] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0xE] - adds r0, r7, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E1C40: .4byte gUnknown_0202F7C8 -_080E1C44: .4byte sub_80E1C58 -_080E1C48: .4byte gTasks -_080E1C4C: .4byte 0x000001ff -_080E1C50: .4byte gUnknown_030041B0 -_080E1C54: .4byte gUnknown_030041B8 - thumb_func_end sub_80E1BB0 - - thumb_func_start sub_80E1C58 -sub_80E1C58: @ 80E1C58 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080E1C88 @ =gTasks - adds r2, r0, r1 - ldr r0, _080E1C8C @ =gUnknown_03004B00 - movs r4, 0xE - ldrsh r1, [r0, r4] - movs r4, 0xE - ldrsh r0, [r2, r4] - cmp r1, r0 - bne _080E1C98 - ldr r0, _080E1C90 @ =gUnknown_030041B0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E1C94 @ =gUnknown_030041B8 - strh r1, [r0] - adds r0, r3, 0 - bl DestroyTask - b _080E1CA4 - .align 2, 0 -_080E1C88: .4byte gTasks -_080E1C8C: .4byte gUnknown_03004B00 -_080E1C90: .4byte gUnknown_030041B0 -_080E1C94: .4byte gUnknown_030041B8 -_080E1C98: - ldr r1, _080E1CAC @ =gUnknown_030041B0 - ldrh r0, [r2, 0xA] - strh r0, [r1] - ldr r1, _080E1CB0 @ =gUnknown_030041B8 - ldrh r0, [r2, 0xC] - strh r0, [r1] -_080E1CA4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1CAC: .4byte gUnknown_030041B0 -_080E1CB0: .4byte gUnknown_030041B8 - thumb_func_end sub_80E1C58 - - thumb_func_start sub_80E1CB4 -sub_80E1CB4: @ 80E1CB4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E1CEC @ =gUnknown_03004B00 - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080E1CF0 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E1CF4 - ldrh r0, [r5, 0x6] - negs r0, r0 - strh r0, [r4, 0x30] - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080E1D02 - .align 2, 0 -_080E1CEC: .4byte gUnknown_03004B00 -_080E1CF0: .4byte gUnknown_0202F7C8 -_080E1CF4: - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - strh r1, [r4, 0x36] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080E1D02: - ldr r0, _080E1D18 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x34] - ldr r1, _080E1D1C @ =sub_80E1D20 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1D18: .4byte gUnknown_03004B00 -_080E1D1C: .4byte sub_80E1D20 - thumb_func_end sub_80E1CB4 - - thumb_func_start sub_80E1D20 -sub_80E1D20: @ 80E1D20 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x1E - bl Cos - strh r0, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r1, 0xA - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - cmp r0, 0x7F - bhi _080E1D52 - ldrb r0, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080E1D5A -_080E1D52: - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_080E1D5A: - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080E1D7E - adds r0, r4, 0 - bl move_anim_8072740 -_080E1D7E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1D20 - - thumb_func_start sub_80E1D84 -sub_80E1D84: @ 80E1D84 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r4, _080E1DBC @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0x2 - ldrsb r1, [r4, r1] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrh r4, [r4, 0x8] - str r4, [sp] - bl BeginNormalPaletteFade - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080E1DC0 @ =sub_80E1E0C - str r0, [r5, 0x1C] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1DBC: .4byte gUnknown_03004B00 -_080E1DC0: .4byte sub_80E1E0C - thumb_func_end sub_80E1D84 - - thumb_func_start sub_80E1DC4 -sub_80E1DC4: @ 80E1DC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x1 - mov r8, r0 - mov r1, r8 - ands r1, r4 - mov r8, r1 - lsls r0, 16 - asrs r1, r0, 17 - ands r1, r4 - asrs r2, r0, 18 - ands r2, r4 - asrs r3, r0, 19 - ands r3, r4 - asrs r6, r0, 20 - ands r6, r4 - asrs r5, r0, 21 - ands r5, r4 - asrs r0, 22 - ands r0, r4 - str r6, [sp] - str r5, [sp, 0x4] - str r0, [sp, 0x8] - mov r0, r8 - bl sub_80791A8 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E1DC4 - - thumb_func_start sub_80E1E0C -sub_80E1E0C: @ 80E1E0C - push {lr} - adds r2, r0, 0 - ldr r0, _080E1E28 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1E22 - adds r0, r2, 0 - bl move_anim_8072740 -_080E1E22: - pop {r0} - bx r0 - .align 2, 0 -_080E1E28: .4byte gPaletteFade - thumb_func_end sub_80E1E0C - - thumb_func_start sub_80E1E2C -sub_80E1E2C: @ 80E1E2C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E1E78 @ =gUnknown_03004B00 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x2E] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x34] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r4, 0xC] - strh r0, [r5, 0x3A] - ldrh r0, [r4] - strh r0, [r5, 0x3C] - movs r1, 0x3C - ldrsh r0, [r5, r1] - bl sub_80E1DC4 - ldrb r1, [r4, 0x8] - ldrh r2, [r4, 0x6] - bl BlendPalettes - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080E1E7C @ =sub_80E1E80 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1E78: .4byte gUnknown_03004B00 -_080E1E7C: .4byte sub_80E1E80 - thumb_func_end sub_80E1E2C - - thumb_func_start sub_80E1E80 -sub_80E1E80: @ 80E1E80 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080E1E94 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080E1F04 -_080E1E94: - ldr r0, _080E1EB0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1F04 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E1EB8 - ldr r0, _080E1EB4 @ =sub_80E1F0C - str r0, [r4, 0x1C] - b _080E1F04 - .align 2, 0 -_080E1EB0: .4byte gPaletteFade -_080E1EB4: .4byte sub_80E1F0C -_080E1EB8: - movs r2, 0x3C - ldrsh r0, [r4, r2] - bl sub_80E1DC4 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080E1EDE - ldrh r1, [r4, 0x36] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x34] - adds r0, r3, 0 - bl BlendPalettes - b _080E1EEC -_080E1EDE: - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x38] - adds r0, r3, 0 - bl BlendPalettes -_080E1EEC: - ldrh r0, [r4, 0x30] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - eors r0, r1 - strh r0, [r4, 0x30] - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] -_080E1F04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E1E80 - - thumb_func_start sub_80E1F0C -sub_80E1F0C: @ 80E1F0C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E1F38 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E1F32 - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0 - movs r2, 0 - bl BlendPalettes - adds r0, r4, 0 - bl move_anim_8072740 -_080E1F32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1F38: .4byte gPaletteFade - thumb_func_end sub_80E1F0C - - thumb_func_start sub_80E1F3C -sub_80E1F3C: @ 80E1F3C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E1F80 @ =gUnknown_03004B00 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r2, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x8 - strh r0, [r4, 0x32] - movs r0, 0x28 - strh r0, [r4, 0x34] - movs r0, 0x70 - strh r0, [r4, 0x36] - strh r2, [r4, 0x38] - ldr r1, _080E1F84 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r1, _080E1F88 @ =sub_8078174 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E1F80: .4byte gUnknown_03004B00 -_080E1F84: .4byte move_anim_8074EE0 -_080E1F88: .4byte sub_8078174 - thumb_func_end sub_80E1F3C - - thumb_func_start sub_80E1F8C -sub_80E1F8C: @ 80E1F8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E1FD0 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080E1FD4 @ =gUnknown_03004B00 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80E1FDC - ldr r0, _080E1FD8 @ =sub_80E202C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E1FD0: .4byte gTasks -_080E1FD4: .4byte gUnknown_03004B00 -_080E1FD8: .4byte sub_80E202C - thumb_func_end sub_80E1F8C - - thumb_func_start sub_80E1FDC -sub_80E1FDC: @ 80E1FDC - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080E2028 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r2, [r4, 0x12] - str r2, [sp] - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2028: .4byte gTasks - thumb_func_end sub_80E1FDC - - thumb_func_start sub_80E202C -sub_80E202C: @ 80E202C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080E2064 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E208E - ldr r1, _080E2068 @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080E2088 - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E206C - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080E2070 - .align 2, 0 -_080E2064: .4byte gPaletteFade -_080E2068: .4byte gTasks -_080E206C: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080E2070: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080E2080 - movs r2, 0 -_080E2080: - adds r0, r4, 0 - bl sub_80E1FDC - b _080E208E -_080E2088: - adds r0, r4, 0 - bl move_anim_task_del -_080E208E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E202C - - thumb_func_start sub_80E2094 -sub_80E2094: @ 80E2094 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E20D8 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r3, _080E20DC @ =gUnknown_03004B00 - ldrh r1, [r3] - movs r5, 0 - strh r1, [r4, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r4, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r4, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r4, 0xE] - ldrh r2, [r3, 0x8] - strh r2, [r4, 0x10] - ldrh r1, [r3, 0xA] - strh r1, [r4, 0x12] - strh r5, [r4, 0x18] - lsls r2, 24 - lsrs r2, 24 - movs r1, 0 - bl sub_80E20E4 - ldr r0, _080E20E0 @ =sub_80E2140 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E20D8: .4byte gTasks -_080E20DC: .4byte gUnknown_03004B00 -_080E20E0: .4byte sub_80E2140 - thumb_func_end sub_80E2094 - - thumb_func_start sub_80E20E4 -sub_80E20E4: @ 80E20E4 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - ldr r1, _080E213C @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r0, [r4, 0x8] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - movs r1, 0xA - ldrsb r1, [r4, r1] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x18] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x18] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E213C: .4byte gTasks - thumb_func_end sub_80E20E4 - - thumb_func_start sub_80E2140 -sub_80E2140: @ 80E2140 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - ldr r0, _080E2178 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E21A2 - ldr r1, _080E217C @ =gTasks - lsls r2, r3, 2 - adds r0, r2, r3 - lsls r0, 3 - adds r3, r0, r1 - movs r5, 0xC - ldrsh r0, [r3, r5] - adds r6, r1, 0 - adds r5, r2, 0 - cmp r0, 0 - ble _080E219C - movs r1, 0x18 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E2180 - ldrb r1, [r3, 0xE] - ldrb r2, [r3, 0x10] - b _080E2184 - .align 2, 0 -_080E2178: .4byte gPaletteFade -_080E217C: .4byte gTasks -_080E2180: - ldrb r1, [r3, 0x10] - ldrb r2, [r3, 0xE] -_080E2184: - adds r0, r5, r4 - lsls r0, 3 - adds r0, r6 - movs r3, 0xC - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _080E2194 - movs r2, 0 -_080E2194: - adds r0, r4, 0 - bl sub_80E20E4 - b _080E21A2 -_080E219C: - adds r0, r4, 0 - bl move_anim_task_del -_080E21A2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E2140 - - thumb_func_start sub_80E21A8 -sub_80E21A8: @ 80E21A8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E2208 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r5, _080E220C @ =gUnknown_03004B00 - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x8] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0xA] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0xC] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0xE] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x10] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x12] - ldrh r0, [r5, 0xC] - strh r0, [r4, 0x14] - ldrh r0, [r5] - strh r0, [r4, 0x16] - ldrh r0, [r5] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldrb r3, [r5, 0x8] - ldrh r0, [r5, 0x6] - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080E2210 @ =sub_80E2214 - str r0, [r4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2208: .4byte gTasks -_080E220C: .4byte gUnknown_03004B00 -_080E2210: .4byte sub_80E2214 - thumb_func_end sub_80E21A8 - - thumb_func_start sub_80E2214 -sub_80E2214: @ 80E2214 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E2238 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080E223C - subs r0, r1, 0x1 - strh r0, [r4, 0x8] - b _080E22C0 - .align 2, 0 -_080E2238: .4byte gTasks -_080E223C: - ldr r0, _080E2258 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E22C0 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080E2260 - ldr r0, _080E225C @ =sub_80E22CC - str r0, [r4] - b _080E22C0 - .align 2, 0 -_080E2258: .4byte gPaletteFade -_080E225C: .4byte sub_80E22CC -_080E2260: - ldrh r0, [r4, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r2, 0x1 - lsls r2, r0 - ldrh r1, [r4, 0xA] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080E228E - ldrb r3, [r4, 0x10] - ldrh r0, [r4, 0xE] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade - b _080E229E -_080E228E: - ldrb r3, [r4, 0x14] - ldrh r0, [r4, 0x12] - str r0, [sp] - adds r0, r2, 0 - movs r1, 0 - adds r2, r3, 0 - bl BeginNormalPaletteFade -_080E229E: - ldr r0, _080E22C8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - movs r3, 0x80 - lsls r3, 1 - adds r2, r3, 0 - eors r0, r2 - strh r0, [r1, 0xA] - movs r2, 0xFF - ands r0, r2 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] -_080E22C0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E22C8: .4byte gTasks - thumb_func_end sub_80E2214 - - thumb_func_start sub_80E22CC -sub_80E22CC: @ 80E22CC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E231C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080E2312 - ldr r1, _080E2320 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x16] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - str r5, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl move_anim_task_del -_080E2312: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E231C: .4byte gPaletteFade -_080E2320: .4byte gTasks - thumb_func_end sub_80E22CC - - thumb_func_start sub_80E2324 -sub_80E2324: @ 80E2324 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080E239C @ =gUnknown_0202F7C8 - ldrb r6, [r0] - ldr r0, _080E23A0 @ =gUnknown_0202F7C9 - ldrb r7, [r0] - ldr r4, _080E23A4 @ =gUnknown_03004B00 - ldrh r1, [r4] - movs r5, 0x80 - lsls r5, 1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E235E - str r2, [sp] - str r2, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl sub_80791A8 - adds r2, r0, 0 -_080E235E: - ldrh r1, [r4, 0x2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2370 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r6 - orrs r2, r0 -_080E2370: - ldrh r1, [r4, 0x4] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2382 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r7 - orrs r2, r0 -_080E2382: - adds r0, r2, 0 - bl InvertPlttBuffer - mov r0, r8 - bl move_anim_task_del - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E239C: .4byte gUnknown_0202F7C8 -_080E23A0: .4byte gUnknown_0202F7C9 -_080E23A4: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2324 - - thumb_func_start unref_sub_80E23A8 -unref_sub_80E23A8: @ 80E23A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r1, _080E249C @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E23EA - ldr r1, _080E24A0 @ =gUnknown_03004B00 - ldrh r0, [r1] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x10] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xA] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x12] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x14] - ldrh r0, [r1, 0xC] - strh r0, [r4, 0x16] -_080E23EA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080E24A4 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - mov r9, r0 - ldr r0, _080E24A8 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - mov r10, r0 - ldrh r1, [r4, 0xC] - movs r7, 0x80 - lsls r7, 1 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E240C - ldr r5, _080E24AC @ =0x0000ffff -_080E240C: - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080E243C - ldr r2, _080E24B0 @ =gSprites - ldr r0, _080E24B4 @ =gUnknown_03004340 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r1, r6, 0 - lsls r1, r0 - lsls r1, 16 - orrs r5, r1 -_080E243C: - ldrh r1, [r4, 0xE] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2450 - adds r0, r6, 0 - mov r2, r9 - lsls r0, r2 - lsls r0, 16 - orrs r5, r0 -_080E2450: - ldrh r1, [r4, 0x10] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080E2464 - adds r0, r6, 0 - mov r1, r10 - lsls r0, r1 - lsls r0, 16 - orrs r5, r0 -_080E2464: - movs r1, 0x12 - ldrsb r1, [r4, r1] - movs r2, 0x14 - ldrsb r2, [r4, r2] - movs r3, 0x16 - ldrsb r3, [r4, r3] - adds r0, r5, 0 - bl TintPlttBuffer - movs r2, 0x8 - ldrsh r1, [r4, r2] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E248E - adds r0, r5, 0 - bl UnfadePlttBuffer - mov r0, r8 - bl move_anim_task_del -_080E248E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E249C: .4byte gTasks -_080E24A0: .4byte gUnknown_03004B00 -_080E24A4: .4byte gUnknown_0202F7C8 -_080E24A8: .4byte gUnknown_0202F7C9 -_080E24AC: .4byte 0x0000ffff -_080E24B0: .4byte gSprites -_080E24B4: .4byte gUnknown_03004340 - thumb_func_end unref_sub_80E23A8 - - thumb_func_start sub_80E24B8 -sub_80E24B8: @ 80E24B8 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080E24EC @ =gUnknown_03004B00 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x34] - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _080E2500 - cmp r0, 0x1 - bgt _080E24F0 - cmp r0, 0 - beq _080E24F6 - b _080E2518 - .align 2, 0 -_080E24EC: .4byte gUnknown_03004B00 -_080E24F0: - cmp r0, 0x2 - beq _080E2508 - b _080E2518 -_080E24F6: - ldr r1, _080E24FC @ =gUnknown_030041B0 - b _080E250A - .align 2, 0 -_080E24FC: .4byte gUnknown_030041B0 -_080E2500: - ldr r1, _080E2504 @ =gUnknown_030041B8 - b _080E250A - .align 2, 0 -_080E2504: .4byte gUnknown_030041B8 -_080E2508: - ldr r1, _080E2514 @ =gSpriteCoordOffsetX -_080E250A: - adds r0, r4, 0 - bl oamt_set_x3A_32 - b _080E2520 - .align 2, 0 -_080E2514: .4byte gSpriteCoordOffsetX -_080E2518: - ldr r1, _080E2550 @ =gSpriteCoordOffsetY - adds r0, r4, 0 - bl oamt_set_x3A_32 -_080E2520: - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - lsls r0, 16 - orrs r1, r0 - ldr r0, [r1] - strh r0, [r4, 0x36] - ldr r0, _080E2554 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080E2544 - bl sub_80E260C -_080E2544: - ldr r0, _080E2558 @ =sub_80E255C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2550: .4byte gSpriteCoordOffsetY -_080E2554: .4byte gUnknown_03004B00 -_080E2558: .4byte sub_80E255C - thumb_func_end sub_80E24B8 - - thumb_func_start sub_80E255C -sub_80E255C: @ 80E255C - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080E25A0 - subs r0, r1, 0x1 - strh r0, [r3, 0x34] - ldrh r1, [r3, 0x30] - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _080E257E - subs r0, r1, 0x1 - strh r0, [r3, 0x30] - b _080E25FA -_080E257E: - ldrh r0, [r3, 0x32] - strh r0, [r3, 0x30] - movs r0, 0x3A - ldrsh r1, [r3, r0] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x2E - ldrsh r2, [r3, r0] - ldr r0, [r1] - adds r0, r2 - str r0, [r1] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - b _080E25FA -_080E25A0: - movs r2, 0x3A - ldrsh r1, [r3, r2] - movs r2, 0x3C - ldrsh r0, [r3, r2] - lsls r0, 16 - orrs r1, r0 - movs r2, 0x36 - ldrsh r0, [r3, r2] - str r0, [r1] - ldrh r0, [r3, 0x38] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080E25F4 - movs r4, 0 - ldr r5, _080E2600 @ =gUnknown_02024A68 - ldrb r0, [r5] - cmp r4, r0 - bcs _080E25F4 - ldr r2, _080E2604 @ =gSprites - mov r12, r2 - ldr r6, _080E2608 @ =gUnknown_02024BE0 - movs r7, 0x3 - negs r7, r7 -_080E25D2: - adds r0, r4, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - cmp r4, r0 - bcc _080E25D2 -_080E25F4: - adds r0, r3, 0 - bl move_anim_8072740 -_080E25FA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E2600: .4byte gUnknown_02024A68 -_080E2604: .4byte gSprites -_080E2608: .4byte gUnknown_02024BE0 - thumb_func_end sub_80E255C - - thumb_func_start sub_80E260C -sub_80E260C: @ 80E260C - push {r4-r6,lr} - ldr r6, _080E2680 @ =gSprites - ldr r4, _080E2684 @ =gUnknown_02024BE0 - ldr r5, _080E2688 @ =gUnknown_0202F7C8 - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x3 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r3, _080E268C @ =gUnknown_0202F7C9 - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - ldr r0, _080E2690 @ =gUnknown_03004B00 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _080E2694 - ldrb r0, [r5] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - b _080E26B0 - .align 2, 0 -_080E2680: .4byte gSprites -_080E2684: .4byte gUnknown_02024BE0 -_080E2688: .4byte gUnknown_0202F7C8 -_080E268C: .4byte gUnknown_0202F7C9 -_080E2690: .4byte gUnknown_03004B00 -_080E2694: - cmp r0, 0 - bne _080E269C - ldrb r0, [r5] - b _080E269E -_080E269C: - ldrb r0, [r3] -_080E269E: - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 -_080E26B0: - orrs r1, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E260C - - thumb_func_start sub_80E26BC -sub_80E26BC: @ 80E26BC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E26FC @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldr r3, _080E2700 @ =gUnknown_03004B00 - ldrh r1, [r3] - strh r1, [r2, 0x8] - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xA] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x18] - ldr r4, _080E2704 @ =gUnknown_030041B0 - ldrh r1, [r3] - strh r1, [r4] - ldr r4, _080E2708 @ =gUnknown_030041B8 - ldrh r1, [r3, 0x2] - strh r1, [r4] - ldr r1, _080E270C @ =sub_80E2710 - str r1, [r2] - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E26FC: .4byte gTasks -_080E2700: .4byte gUnknown_03004B00 -_080E2704: .4byte gUnknown_030041B0 -_080E2708: .4byte gUnknown_030041B8 -_080E270C: .4byte sub_80E2710 - thumb_func_end sub_80E26BC - - thumb_func_start sub_80E2710 -sub_80E2710: @ 80E2710 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E2740 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r2, [r3, 0xE] - movs r4, 0xE - ldrsh r0, [r3, r4] - mov r12, r1 - cmp r0, 0 - bne _080E2796 - ldr r0, _080E2744 @ =gUnknown_030041B0 - ldrh r2, [r0] - movs r7, 0x8 - ldrsh r1, [r3, r7] - adds r6, r0, 0 - cmp r2, r1 - bne _080E2748 - ldrh r0, [r3, 0x8] - negs r0, r0 - b _080E274A - .align 2, 0 -_080E2740: .4byte gTasks -_080E2744: .4byte gUnknown_030041B0 -_080E2748: - ldrh r0, [r3, 0x8] -_080E274A: - strh r0, [r6] - ldr r2, _080E2768 @ =gUnknown_030041B8 - ldrh r3, [r2] - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - mov r7, r12 - adds r4, r0, r7 - movs r7, 0xA - ldrsh r0, [r4, r7] - cmn r3, r0 - bne _080E276C - movs r0, 0 - b _080E2770 - .align 2, 0 -_080E2768: .4byte gUnknown_030041B8 -_080E276C: - ldrh r0, [r4, 0xA] - negs r0, r0 -_080E2770: - strh r0, [r2] - adds r0, r1, r5 - lsls r0, 3 - add r0, r12 - ldrh r1, [r0, 0x18] - strh r1, [r0, 0xE] - ldrh r1, [r0, 0xC] - subs r1, 0x1 - strh r1, [r0, 0xC] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0 - bne _080E279A - strh r1, [r6] - strh r1, [r2] - adds r0, r5, 0 - bl move_anim_task_del - b _080E279A -_080E2796: - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_080E279A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E2710 - - thumb_func_start sub_80E27A0 -sub_80E27A0: @ 80E27A0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E27C0 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E27C4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E27CC - .align 2, 0 -_080E27C0: .4byte gUnknown_03004B00 -_080E27C4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E27CC: - ldr r0, _080E27E0 @ =sub_80785E4 - str r0, [r5, 0x1C] - ldr r1, _080E27E4 @ =move_anim_8072740 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E27E0: .4byte sub_80785E4 -_080E27E4: .4byte move_anim_8072740 - thumb_func_end sub_80E27A0 - - thumb_func_start sub_80E27E8 -sub_80E27E8: @ 80E27E8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E2808 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E280C - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E2814 - .align 2, 0 -_080E2808: .4byte gUnknown_03004B00 -_080E280C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E2814: - ldr r0, _080E282C @ =gUnknown_03004B00 - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080E2830 @ =sub_80785E4 - str r0, [r5, 0x1C] - ldr r1, _080E2834 @ =sub_80DA48C - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E282C: .4byte gUnknown_03004B00 -_080E2830: .4byte sub_80785E4 -_080E2834: .4byte sub_80DA48C - thumb_func_end sub_80E27E8 - - thumb_func_start sub_80E2838 -sub_80E2838: @ 80E2838 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E2868 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E285C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E285C - ldr r1, _080E286C @ =gUnknown_03004B00 - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] -_080E285C: - adds r0, r4, 0 - bl sub_80E27A0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2868: .4byte gUnknown_0202F7C8 -_080E286C: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2838 - - thumb_func_start sub_80E2870 -sub_80E2870: @ 80E2870 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E28A8 @ =gUnknown_03004B00 - movs r0, 0x2 - ldrsh r1, [r5, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080E288C - bl Random - movs r1, 0x3 - ands r1, r0 - strh r1, [r5, 0x2] -_080E288C: - ldrb r1, [r5, 0x2] - adds r0, r4, 0 - bl StartSpriteAffineAnim - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080E28AC - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080E28B4 - .align 2, 0 -_080E28A8: .4byte gUnknown_03004B00 -_080E28AC: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080E28B4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x30 - bl __umodsi3 - ldr r1, _080E28F8 @ =0x0000ffe8 - adds r0, r1 - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x18 - bl __umodsi3 - ldr r1, _080E28FC @ =0x0000fff4 - adds r0, r1 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r1, _080E2900 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E2904 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E28F8: .4byte 0x0000ffe8 -_080E28FC: .4byte 0x0000fff4 -_080E2900: .4byte move_anim_8074EE0 -_080E2904: .4byte sub_80785E4 - thumb_func_end sub_80E2870 - - thumb_func_start sub_80E2908 -sub_80E2908: @ 80E2908 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080E2968 @ =gUnknown_03004B00 - ldrb r0, [r5] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - ldr r2, _080E296C @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - strh r1, [r4, 0x20] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x26] - ldrb r1, [r5, 0x6] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldr r1, _080E2970 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E2974 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2968: .4byte gUnknown_03004B00 -_080E296C: .4byte gSprites -_080E2970: .4byte move_anim_8074EE0 -_080E2974: .4byte sub_80785E4 - thumb_func_end sub_80E2908 - - thumb_func_start sub_80E2978 -sub_80E2978: @ 80E2978 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080E2990 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E2994 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E299C - .align 2, 0 -_080E2990: .4byte gUnknown_03004B00 -_080E2994: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 -_080E299C: - ldr r0, _080E29B4 @ =gUnknown_03004B00 - ldrh r0, [r0, 0x6] - strh r0, [r4, 0x2E] - ldr r1, _080E29B8 @ =move_anim_8072740 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _080E29BC @ =sub_80782D8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E29B4: .4byte gUnknown_03004B00 -_080E29B8: .4byte move_anim_8072740 -_080E29BC: .4byte sub_80782D8 - thumb_func_end sub_80E2978 - - thumb_func_start sub_80E29C0 -sub_80E29C0: @ 80E29C0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080E29E0 @ =gUnknown_03004B00 - ldrb r1, [r4, 0x6] - bl StartSpriteAffineAnim - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E29E4 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080E29EC - .align 2, 0 -_080E29E0: .4byte gUnknown_03004B00 -_080E29E4: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080E29EC: - ldr r0, _080E29F8 @ =sub_80E29FC - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E29F8: .4byte sub_80E29FC - thumb_func_end sub_80E29C0 - - thumb_func_start sub_80E29FC -sub_80E29FC: @ 80E29FC - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r1, r0, 0x1 - strh r1, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - ble _080E2A32 - adds r0, r3, 0 - bl move_anim_8072740 -_080E2A32: - pop {r0} - bx r0 - thumb_func_end sub_80E29FC - - thumb_func_start sub_80E2A38 -sub_80E2A38: @ 80E2A38 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080E2A78 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r4, r1] - bl sub_80E1DC4 - adds r6, r0, 0 - ldrh r3, [r4] - lsls r3, 16 - asrs r0, r3, 23 - movs r4, 0x1 - ands r0, r4 - asrs r1, r3, 24 - ands r1, r4 - asrs r2, r3, 25 - ands r2, r4 - asrs r3, 26 - ands r3, r4 - bl sub_80792C0 - orrs r6, r0 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80E2C8C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E2A78: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2A38 - - thumb_func_start sub_80E2A7C -sub_80E2A7C: @ 80E2A7C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x1] - movs r0, 0x1 - bl sub_80E1DC4 - adds r5, r0, 0 - ldr r0, _080E2AA8 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - bhi _080E2B26 - lsls r0, 2 - ldr r1, _080E2AAC @ =_080E2AB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E2AA8: .4byte gUnknown_03004B00 -_080E2AAC: .4byte _080E2AB0 - .align 2, 0 -_080E2AB0: - .4byte _080E2AD2 - .4byte _080E2ADE - .4byte _080E2AD0 - .4byte _080E2ADC - .4byte _080E2AEC - .4byte _080E2B04 - .4byte _080E2B0C - .4byte _080E2B18 -_080E2AD0: - movs r5, 0 -_080E2AD2: - mov r0, sp - ldr r1, _080E2AD8 @ =gUnknown_0202F7C8 - b _080E2AE2 - .align 2, 0 -_080E2AD8: .4byte gUnknown_0202F7C8 -_080E2ADC: - movs r5, 0 -_080E2ADE: - mov r0, sp - ldr r1, _080E2AE8 @ =gUnknown_0202F7C9 -_080E2AE2: - ldrb r1, [r1] - strb r1, [r0] - b _080E2B26 - .align 2, 0 -_080E2AE8: .4byte gUnknown_0202F7C9 -_080E2AEC: - mov r1, sp - ldr r0, _080E2AFC @ =gUnknown_0202F7C8 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080E2B00 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - strb r0, [r1, 0x1] - b _080E2B26 - .align 2, 0 -_080E2AFC: .4byte gUnknown_0202F7C8 -_080E2B00: .4byte gUnknown_0202F7C9 -_080E2B04: - mov r1, sp - movs r0, 0xFF - strb r0, [r1] - b _080E2B26 -_080E2B0C: - movs r5, 0 - mov r2, sp - ldr r0, _080E2B14 @ =gUnknown_0202F7C8 - b _080E2B1E - .align 2, 0 -_080E2B14: .4byte gUnknown_0202F7C8 -_080E2B18: - movs r5, 0 - mov r2, sp - ldr r0, _080E2B70 @ =gUnknown_0202F7C9 -_080E2B1E: - ldrb r0, [r0] - movs r1, 0x2 - eors r0, r1 - strb r0, [r2] -_080E2B26: - movs r4, 0 - mov r6, sp -_080E2B2A: - ldrb r0, [r6] - cmp r4, r0 - beq _080E2B54 - ldrb r0, [r6, 0x1] - cmp r4, r0 - beq _080E2B54 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E2B54 - adds r0, r4, 0 - bl sub_80793A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - orrs r5, r1 -_080E2B54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080E2B2A - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80E2C8C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E2B70: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80E2A7C - - thumb_func_start sub_80E2B74 -sub_80E2B74: @ 80E2B74 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E2B98 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80E1DC4 - adds r2, r0, 0 - ldr r0, _080E2B9C @ =gUnknown_0300428C - ldrb r0, [r0] - cmp r0, 0x9 - bhi _080E2C4A - lsls r0, 2 - ldr r1, _080E2BA0 @ =_080E2BA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E2B98: .4byte gUnknown_03004B00 -_080E2B9C: .4byte gUnknown_0300428C -_080E2BA0: .4byte _080E2BA4 - .align 2, 0 -_080E2BA4: - .4byte _080E2BCC - .4byte _080E2BDC - .4byte _080E2BE8 - .4byte _080E2BF8 - .4byte _080E2C04 - .4byte _080E2C14 - .4byte _080E2C24 - .4byte _080E2C34 - .4byte _080E2C44 - .4byte _080E2C44 -_080E2BCC: - ldr r1, _080E2BD4 @ =gUnknown_03004B00 - ldr r0, _080E2BD8 @ =0x00000b0c - b _080E2C48 - .align 2, 0 -_080E2BD4: .4byte gUnknown_03004B00 -_080E2BD8: .4byte 0x00000b0c -_080E2BDC: - ldr r1, _080E2BE4 @ =gUnknown_03004B00 - movs r0, 0x9E - lsls r0, 4 - b _080E2C48 - .align 2, 0 -_080E2BE4: .4byte gUnknown_03004B00 -_080E2BE8: - ldr r1, _080E2BF0 @ =gUnknown_03004B00 - ldr r0, _080E2BF4 @ =0x00002f1e - b _080E2C48 - .align 2, 0 -_080E2BF0: .4byte gUnknown_03004B00 -_080E2BF4: .4byte 0x00002f1e -_080E2BF8: - ldr r1, _080E2C00 @ =gUnknown_03004B00 - movs r0, 0x90 - lsls r0, 7 - b _080E2C48 - .align 2, 0 -_080E2C00: .4byte gUnknown_03004B00 -_080E2C04: - ldr r1, _080E2C0C @ =gUnknown_03004B00 - ldr r0, _080E2C10 @ =0x00007ecb - b _080E2C48 - .align 2, 0 -_080E2C0C: .4byte gUnknown_03004B00 -_080E2C10: .4byte 0x00007ecb -_080E2C14: - ldr r1, _080E2C1C @ =gUnknown_03004B00 - ldr r0, _080E2C20 @ =0x00007ecb - b _080E2C48 - .align 2, 0 -_080E2C1C: .4byte gUnknown_03004B00 -_080E2C20: .4byte 0x00007ecb -_080E2C24: - ldr r1, _080E2C2C @ =gUnknown_03004B00 - ldr r0, _080E2C30 @ =0x00002a16 - b _080E2C48 - .align 2, 0 -_080E2C2C: .4byte gUnknown_03004B00 -_080E2C30: .4byte 0x00002a16 -_080E2C34: - ldr r1, _080E2C3C @ =gUnknown_03004B00 - ldr r0, _080E2C40 @ =0x00000d2e - b _080E2C48 - .align 2, 0 -_080E2C3C: .4byte gUnknown_03004B00 -_080E2C40: .4byte 0x00000d2e -_080E2C44: - ldr r1, _080E2C58 @ =gUnknown_03004B00 - ldr r0, _080E2C5C @ =0x00007fff -_080E2C48: - strh r0, [r1, 0x8] -_080E2C4A: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80E2C8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2C58: .4byte gUnknown_03004B00 -_080E2C5C: .4byte 0x00007fff - thumb_func_end sub_80E2B74 - - thumb_func_start sub_80E2C60 -sub_80E2C60: @ 80E2C60 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E2C88 @ =gUnknown_03004B00 - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - adds r0, r4, 0 - bl sub_80E2C8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2C88: .4byte gUnknown_03004B00 - thumb_func_end sub_80E2C60 - - thumb_func_start sub_80E2C8C -sub_80E2C8C: @ 80E2C8C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080E2CC4 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - strh r1, [r2, 0x8] - lsrs r1, 16 - strh r1, [r2, 0xA] - ldr r3, _080E2CC8 @ =gUnknown_03004B00 - ldrh r1, [r3, 0x2] - strh r1, [r2, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0xE] - ldrh r1, [r3, 0x6] - strh r1, [r2, 0x10] - ldrh r1, [r3, 0x8] - strh r1, [r2, 0x12] - ldrh r1, [r3, 0x4] - strh r1, [r2, 0x1C] - ldr r1, _080E2CCC @ =sub_80E2CD0 - str r1, [r2] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080E2CC4: .4byte gTasks -_080E2CC8: .4byte gUnknown_03004B00 -_080E2CCC: .4byte sub_80E2CD0 - thumb_func_end sub_80E2C8C - - thumb_func_start sub_80E2CD0 -sub_80E2CD0: @ 80E2CD0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - ldr r2, _080E2D50 @ =gTasks - lsls r5, r7, 2 - adds r0, r5, r7 - lsls r0, 3 - adds r3, r0, r2 - ldrh r0, [r3, 0x1A] - mov r8, r0 - movs r4, 0x1A - ldrsh r1, [r3, r4] - movs r4, 0xC - ldrsh r0, [r3, r4] - mov r9, r2 - cmp r1, r0 - bne _080E2D66 - strh r6, [r3, 0x1A] - movs r0, 0x8 - ldrsh r4, [r3, r0] - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r0, 16 - orrs r4, r0 - mov r8, r5 - cmp r4, 0 - beq _080E2D32 - adds r5, r3, 0 -_080E2D10: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080E2D24 - ldrb r2, [r5, 0x1C] - ldrh r3, [r5, 0x12] - adds r0, r6, 0 - movs r1, 0x10 - bl BlendPalette -_080E2D24: - adds r0, r6, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r4, 1 - cmp r4, 0 - bne _080E2D10 -_080E2D32: - mov r4, r8 - adds r0, r4, r7 - lsls r0, 3 - mov r1, r9 - adds r2, r0, r1 - ldrh r0, [r2, 0x1C] - movs r4, 0x1C - ldrsh r3, [r2, r4] - movs r4, 0x10 - ldrsh r1, [r2, r4] - cmp r3, r1 - bge _080E2D54 - adds r0, 0x1 - strh r0, [r2, 0x1C] - b _080E2D6C - .align 2, 0 -_080E2D50: .4byte gTasks -_080E2D54: - cmp r3, r1 - ble _080E2D5E - subs r0, 0x1 - strh r0, [r2, 0x1C] - b _080E2D6C -_080E2D5E: - adds r0, r7, 0 - bl move_anim_task_del - b _080E2D6C -_080E2D66: - mov r0, r8 - adds r0, 0x1 - strh r0, [r3, 0x1A] -_080E2D6C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E2CD0 - - thumb_func_start sub_80E2D78 -sub_80E2D78: @ 80E2D78 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080E2DAC @ =gUnknown_03004B00 - ldrb r0, [r4] - ldrb r1, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - ldrb r4, [r4, 0x8] - str r4, [sp] - bl BeginHardwarePaletteFade - ldr r1, _080E2DB0 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080E2DB4 @ =sub_80E2DB8 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E2DAC: .4byte gUnknown_03004B00 -_080E2DB0: .4byte gTasks -_080E2DB4: .4byte sub_80E2DB8 - thumb_func_end sub_80E2D78 - - thumb_func_start sub_80E2DB8 -sub_80E2DB8: @ 80E2DB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080E2DD4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E2DD0 - adds r0, r2, 0 - bl move_anim_task_del -_080E2DD0: - pop {r0} - bx r0 - .align 2, 0 -_080E2DD4: .4byte gPaletteFade - thumb_func_end sub_80E2DB8 - - thumb_func_start sub_80E2DD8 -sub_80E2DD8: @ 80E2DD8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E2E04 @ =gTasks - adds r1, r0 - ldr r2, _080E2E08 @ =gUnknown_03004B00 - ldrh r0, [r2] - movs r3, 0 - strh r0, [r1, 0x8] - strh r3, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x4] - strh r0, [r1, 0xE] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0x10] - strh r3, [r1, 0x12] - ldr r0, _080E2E0C @ =sub_80E2E10 - str r0, [r1] - bx lr - .align 2, 0 -_080E2E04: .4byte gTasks -_080E2E08: .4byte gUnknown_03004B00 -_080E2E0C: .4byte sub_80E2E10 - thumb_func_end sub_80E2DD8 - - thumb_func_start sub_80E2E10 -sub_80E2E10: @ 80E2E10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080E2E3C @ =gTasks - adds r4, r0, r1 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E2ED4 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E2E40 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _080E2EE2 - .align 2, 0 -_080E2E3C: .4byte gTasks -_080E2E40: - ldrb r0, [r4, 0x8] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - strh r0, [r4, 0x14] - lsls r0, 16 - cmp r0, 0 - blt _080E2EBE - ldr r6, _080E2ECC @ =gSprites - movs r1, 0x14 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r6 - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x2 - cmp r0, 0 - beq _080E2E68 - movs r2, 0x1 -_080E2E68: - lsls r2, 2 - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x5] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r4, 0xE] - strh r1, [r0, 0x2E] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x30] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strh r1, [r0, 0x32] - movs r2, 0x14 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080E2ED0 @ =sub_80E2EE8 - str r1, [r0] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_080E2EBE: - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - strh r0, [r4, 0xA] - b _080E2EE2 - .align 2, 0 -_080E2ECC: .4byte gSprites -_080E2ED0: .4byte sub_80E2EE8 -_080E2ED4: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E2EE2 - adds r0, r2, 0 - bl move_anim_task_del -_080E2EE2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E2E10 - - thumb_func_start sub_80E2EE8 -sub_80E2EE8: @ 80E2EE8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E2EFC - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - b _080E2F20 -_080E2EFC: - ldr r3, _080E2F28 @ =gTasks - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x30 - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r0, r4, 0 - bl obj_delete_but_dont_free_vram -_080E2F20: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E2F28: .4byte gTasks - thumb_func_end sub_80E2EE8 - - thumb_func_start sub_80E2F2C -sub_80E2F2C: @ 80E2F2C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E3038 @ =gUnknown_030042C4 - strh r7, [r0] - ldr r0, _080E303C @ =gUnknown_03004240 - strh r7, [r0] - ldr r1, _080E3040 @ =REG_WININ - ldr r2, _080E3044 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E3048 @ =0x00003f3d - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E304C @ =REG_BLDCNT - ldr r2, _080E3050 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E3054 @ =0x00000c08 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E3058 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E2FAC - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E2FAC: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E3028 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3028 - ldr r5, _080E305C @ =gUnknown_0202F7C8 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E2FDC - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E3028 -_080E2FDC: - ldrb r0, [r5] - movs r6, 0x2 - eors r0, r6 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E3028 - ldr r3, _080E3060 @ =gSprites - ldr r1, _080E3064 @ =gUnknown_02024BE0 - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - movs r7, 0x1 -_080E3028: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E306C - ldr r0, _080E3068 @ =0x02019348 - ldrh r4, [r0] - b _080E30B4 - .align 2, 0 -_080E3038: .4byte gUnknown_030042C4 -_080E303C: .4byte gUnknown_03004240 -_080E3040: .4byte REG_WININ -_080E3044: .4byte 0x00003f3f -_080E3048: .4byte 0x00003f3d -_080E304C: .4byte REG_BLDCNT -_080E3050: .4byte 0x00003f42 -_080E3054: .4byte 0x00000c08 -_080E3058: .4byte REG_BG1CNT -_080E305C: .4byte gUnknown_0202F7C8 -_080E3060: .4byte gSprites -_080E3064: .4byte gUnknown_02024BE0 -_080E3068: .4byte 0x02019348 -_080E306C: - ldr r4, _080E308C @ =gUnknown_0202F7C8 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3098 - ldr r1, _080E3090 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3094 @ =gEnemyParty - b _080E30A8 - .align 2, 0 -_080E308C: .4byte gUnknown_0202F7C8 -_080E3090: .4byte gUnknown_02024A6A -_080E3094: .4byte gEnemyParty -_080E3098: - ldr r1, _080E3160 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3164 @ =gPlayerParty -_080E30A8: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E30B4: - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E3168 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E316C @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E3170 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E3174 @ =gUnknown_08D20A30 - bl LZDecompressVram - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3106 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3106: - ldr r0, _080E3178 @ =gUnknown_08D20A14 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E317C @ =gUnknown_083DB568 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - adds r1, 0x1 - movs r2, 0x2 - bl LoadPalette - ldr r2, _080E3180 @ =gUnknown_030042C0 - ldr r0, _080E3184 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r2, _080E3188 @ =gUnknown_030041B4 - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldr r1, _080E318C @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x8] - strh r7, [r0, 0x14] - ldr r1, _080E3190 @ =sub_80E3194 - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3160: .4byte gUnknown_02024A6A -_080E3164: .4byte gPlayerParty -_080E3168: .4byte gUnknown_0202F7C8 -_080E316C: .4byte 0x040000d4 -_080E3170: .4byte 0x85000400 -_080E3174: .4byte gUnknown_08D20A30 -_080E3178: .4byte gUnknown_08D20A14 -_080E317C: .4byte gUnknown_083DB568 -_080E3180: .4byte gUnknown_030042C0 -_080E3184: .4byte gSprites -_080E3188: .4byte gUnknown_030041B4 -_080E318C: .4byte gTasks -_080E3190: .4byte sub_80E3194 - thumb_func_end sub_80E2F2C - - thumb_func_start sub_80E3194 -sub_80E3194: @ 80E3194 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E32AC @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r7, _080E32B0 @ =gUnknown_030041B4 - ldrh r2, [r7] - subs r1, r2, 0x4 - strh r1, [r7] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - bne _080E329E - strh r5, [r4, 0x1C] - adds r0, r2, 0 - adds r0, 0x3C - strh r0, [r7] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080E329E - movs r0, 0 - bl sub_8076464 - ldr r0, _080E32B4 @ =gUnknown_030042C4 - strh r5, [r0] - ldr r0, _080E32B8 @ =gUnknown_03004240 - strh r5, [r0] - ldr r0, _080E32BC @ =REG_WININ - ldr r2, _080E32C0 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3208 - ldr r2, _080E32C4 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E3208: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E32C8 @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl obj_id_for_side_relative_to_move - ldr r0, _080E32CC @ =gSprites - mov r8, r0 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E32D0 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E32D4 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E3288 - ldr r2, _080E32D8 @ =gUnknown_02024BE0 - ldr r0, _080E32DC @ =gUnknown_0202F7C8 - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E3288: - ldr r2, _080E32C4 @ =REG_BG1CNT - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - movs r0, 0 - strh r0, [r7] - adds r0, r6, 0 - bl move_anim_task_del -_080E329E: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E32AC: .4byte gTasks -_080E32B0: .4byte gUnknown_030041B4 -_080E32B4: .4byte gUnknown_030042C4 -_080E32B8: .4byte gUnknown_03004240 -_080E32BC: .4byte REG_WININ -_080E32C0: .4byte 0x00003f3f -_080E32C4: .4byte REG_BG1CNT -_080E32C8: .4byte REG_BLDCNT -_080E32CC: .4byte gSprites -_080E32D0: .4byte 0x040000d4 -_080E32D4: .4byte 0x85000200 -_080E32D8: .4byte gUnknown_02024BE0 -_080E32DC: .4byte gUnknown_0202F7C8 - thumb_func_end sub_80E3194 - - thumb_func_start sub_80E32E0 -sub_80E32E0: @ 80E32E0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _080E332C @ =gTasks - mov r12, r0 - ldr r1, _080E3330 @ =sub_80E3338 - mov r8, r1 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r4, r0, 3 - mov r7, r12 - adds r7, 0x8 - adds r5, r1, 0 - ldr r6, _080E3334 @ =gUnknown_03004B00 -_080E3302: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r1, r7 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _080E3302 - adds r0, r5, r3 - lsls r0, 3 - add r0, r12 - mov r1, r8 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E332C: .4byte gTasks -_080E3330: .4byte sub_80E3338 -_080E3334: .4byte gUnknown_03004B00 - thumb_func_end sub_80E32E0 - - thumb_func_start sub_80E3338 -sub_80E3338: @ 80E3338 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - str r0, [sp, 0x1C] - movs r1, 0 - str r1, [sp, 0x20] - add r7, sp, 0xC - ldr r2, _080E3388 @ =gTasks - mov r3, r9 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - mov r10, r1 - adds r1, r2, 0 - adds r1, 0x8 - adds r1, r0, r1 - adds r3, r7, 0 - movs r4, 0 - movs r2, 0x7 -_080E336C: - ldrh r0, [r1] - strh r0, [r3] - strh r4, [r1] - adds r1, 0x2 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080E336C - movs r1, 0x4 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E3390 - ldr r0, _080E338C @ =gUnknown_0202F7C8 - b _080E3392 - .align 2, 0 -_080E3388: .4byte gTasks -_080E338C: .4byte gUnknown_0202F7C8 -_080E3390: - ldr r0, _080E34B4 @ =gUnknown_0202F7C9 -_080E3392: - ldrb r5, [r0] - movs r0, 0x2 - mov r8, r5 - mov r2, r8 - eors r2, r0 - mov r8, r2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E33BC - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r0, 0 - beq _080E33C0 - mov r0, r8 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080E33C0 -_080E33BC: - movs r0, 0 - strh r0, [r7, 0x6] -_080E33C0: - ldr r0, _080E34B8 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E34BC @ =gUnknown_03004240 - strh r1, [r0] - ldr r1, _080E34C0 @ =REG_WININ - ldr r2, _080E34C4 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E34C8 @ =0x00003f3d - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E34CC @ =REG_BLDCNT - ldr r2, _080E34D0 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E34D4 @ =REG_BG1CNT - ldrb r1, [r4] - movs r6, 0x4 - negs r6, r6 - adds r0, r6, 0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3432 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E3432: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080E34A4 - movs r1, 0x6 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E34A4 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E345E - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080E34A4 -_080E345E: - mov r0, r8 - bl b_side_obj__get_some_boolean - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E34A4 - ldr r1, _080E34D8 @ =gSprites - ldr r0, _080E34DC @ =gUnknown_02024BE0 - add r0, r8 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r4] - adds r0, r6, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - movs r2, 0x1 - str r2, [sp, 0x20] -_080E34A4: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E34E4 - ldr r0, _080E34E0 @ =0x02019348 - ldrh r4, [r0] - b _080E3522 - .align 2, 0 -_080E34B4: .4byte gUnknown_0202F7C9 -_080E34B8: .4byte gUnknown_030042C4 -_080E34BC: .4byte gUnknown_03004240 -_080E34C0: .4byte REG_WININ -_080E34C4: .4byte 0x00003f3f -_080E34C8: .4byte 0x00003f3d -_080E34CC: .4byte REG_BLDCNT -_080E34D0: .4byte 0x00003f42 -_080E34D4: .4byte REG_BG1CNT -_080E34D8: .4byte gSprites -_080E34DC: .4byte gUnknown_02024BE0 -_080E34E0: .4byte 0x02019348 -_080E34E4: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3508 - ldr r1, _080E3500 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3504 @ =gEnemyParty - b _080E3516 - .align 2, 0 -_080E3500: .4byte gUnknown_02024A6A -_080E3504: .4byte gEnemyParty -_080E3508: - ldr r1, _080E3568 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E356C @ =gPlayerParty -_080E3516: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E3522: - ldr r6, _080E3570 @ =gUnknown_02024BE0 - adds r0, r5, r6 - ldrb r1, [r0] - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r0, 0 - beq _080E3550 - mov r1, r8 - adds r0, r1, r6 - ldrb r1, [r0] - mov r0, r8 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] -_080E3550: - mov r0, sp - bl sub_8078914 - movs r2, 0 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080E3578 - ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram - b _080E3580 - .align 2, 0 -_080E3568: .4byte gUnknown_02024A6A -_080E356C: .4byte gPlayerParty -_080E3570: .4byte gUnknown_02024BE0 -_080E3574: .4byte gBattleStatMask1_Tilemap -_080E3578: - ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap - ldr r1, [sp, 0x4] - bl LZDecompressVram -_080E3580: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3598 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3598: - ldr r0, _080E35B4 @ =gBattleStatMask_Gfx - ldr r1, [sp] - bl LZDecompressVram - ldrh r0, [r7, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _080E35BC - ldr r0, _080E35B8 @ =gBattleStatMask2_Pal - b _080E35FE - .align 2, 0 -_080E35B0: .4byte gBattleStatMask2_Tilemap -_080E35B4: .4byte gBattleStatMask_Gfx -_080E35B8: .4byte gBattleStatMask2_Pal -_080E35BC: - cmp r0, 0x1 - bne _080E35C8 - ldr r0, _080E35C4 @ =gBattleStatMask1_Pal - b _080E35FE - .align 2, 0 -_080E35C4: .4byte gBattleStatMask1_Pal -_080E35C8: - cmp r0, 0x2 - bne _080E35D4 - ldr r0, _080E35D0 @ =gBattleStatMask3_Pal - b _080E35FE - .align 2, 0 -_080E35D0: .4byte gBattleStatMask3_Pal -_080E35D4: - cmp r0, 0x3 - bne _080E35E0 - ldr r0, _080E35DC @ =gBattleStatMask4_Pal - b _080E35FE - .align 2, 0 -_080E35DC: .4byte gBattleStatMask4_Pal -_080E35E0: - cmp r0, 0x4 - bne _080E35EC - ldr r0, _080E35E8 @ =gBattleStatMask6_Pal - b _080E35FE - .align 2, 0 -_080E35E8: .4byte gBattleStatMask6_Pal -_080E35EC: - cmp r0, 0x5 - bne _080E35F8 - ldr r0, _080E35F4 @ =gBattleStatMask7_Pal - b _080E35FE - .align 2, 0 -_080E35F4: .4byte gBattleStatMask7_Pal -_080E35F8: - cmp r0, 0x6 - bne _080E3610 - ldr r0, _080E360C @ =gBattleStatMask8_Pal -_080E35FE: - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _080E361E - .align 2, 0 -_080E360C: .4byte gBattleStatMask8_Pal -_080E3610: - ldr r0, _080E3644 @ =gBattleStatMask5_Pal - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_080E361E: - ldr r2, _080E3648 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r2] - ldr r0, _080E364C @ =gUnknown_030041B4 - strh r1, [r0] - movs r3, 0 - ldrsh r0, [r7, r3] - cmp r0, 0x1 - bne _080E3658 - movs r0, 0x40 - strh r0, [r2] - ldr r2, _080E3650 @ =gTasks - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - ldr r1, _080E3654 @ =0x0000fffd - strh r1, [r0, 0xA] - b _080E3668 - .align 2, 0 -_080E3644: .4byte gBattleStatMask5_Pal -_080E3648: .4byte gUnknown_030042C0 -_080E364C: .4byte gUnknown_030041B4 -_080E3650: .4byte gTasks -_080E3654: .4byte 0x0000fffd -_080E3658: - ldr r0, _080E3680 @ =gTasks - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - movs r2, 0x3 - strh r2, [r1, 0xA] - adds r2, r0, 0 -_080E3668: - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E3684 - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - movs r1, 0xA - strh r1, [r0, 0x10] - movs r1, 0x14 - b _080E3692 - .align 2, 0 -_080E3680: .4byte gTasks -_080E3684: - mov r0, r10 - add r0, r9 - lsls r0, 3 - adds r0, r2 - movs r1, 0xD - strh r1, [r0, 0x10] - movs r1, 0x1E -_080E3692: - strh r1, [r0, 0x12] - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - ldrh r0, [r7, 0x6] - strh r0, [r1, 0xC] - mov r2, sp - ldrh r2, [r2, 0x1C] - strh r2, [r1, 0xE] - mov r3, sp - ldrh r3, [r3, 0x20] - strh r3, [r1, 0x14] - ldr r0, _080E36D8 @ =gUnknown_02024BE0 - add r0, r8 - ldrb r0, [r0] - strh r0, [r1, 0x16] - ldr r0, _080E36DC @ =sub_80E3704 - str r0, [r1] - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _080E36E0 - movs r0, 0x40 - negs r0, r0 - bl sub_8077094 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xEF - bl PlaySE12WithPanning - b _080E36F4 - .align 2, 0 -_080E36D8: .4byte gUnknown_02024BE0 -_080E36DC: .4byte sub_80E3704 -_080E36E0: - movs r0, 0x40 - negs r0, r0 - bl sub_8077094 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xF5 - bl PlaySE12WithPanning -_080E36F4: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E3338 - - thumb_func_start sub_80E3704 -sub_80E3704: @ 80E3704 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080E3730 @ =gUnknown_030041B4 - ldr r1, _080E3734 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - movs r3, 0x26 - ldrsh r2, [r4, r3] - cmp r2, 0x1 - beq _080E3774 - cmp r2, 0x1 - bgt _080E3738 - cmp r2, 0 - beq _080E373E - b _080E3866 - .align 2, 0 -_080E3730: .4byte gUnknown_030041B4 -_080E3734: .4byte gTasks -_080E3738: - cmp r2, 0x2 - beq _080E378E - b _080E3866 -_080E373E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - cmp r0, 0 - bgt _080E374C - b _080E3866 -_080E374C: - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _080E3770 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E3866 - b _080E3786 - .align 2, 0 -_080E3770: .4byte REG_BLDALPHA -_080E3774: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080E3866 -_080E3786: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _080E3866 -_080E378E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - cmp r0, 0 - ble _080E3866 - movs r0, 0 - strh r0, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r7, _080E386C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r7] - movs r0, 0x20 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080E3866 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E3870 @ =gUnknown_030042C4 - strh r5, [r0] - ldr r0, _080E3874 @ =gUnknown_03004240 - strh r5, [r0] - ldr r0, _080E3878 @ =REG_WININ - ldr r2, _080E387C @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E37E8 - ldr r2, _080E3880 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E37E8: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E3884 @ =REG_BLDCNT - strh r5, [r0] - strh r5, [r7] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080E3888 @ =gSprites - adds r0, r5 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3828 - movs r2, 0xE - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_080E3828: - movs r3, 0x14 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080E3854 - movs r1, 0x16 - ldrsh r0, [r4, r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r5 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E3854: - ldr r2, _080E3880 @ =REG_BG1CNT - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - adds r0, r6, 0 - bl move_anim_task_del -_080E3866: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E386C: .4byte REG_BLDALPHA -_080E3870: .4byte gUnknown_030042C4 -_080E3874: .4byte gUnknown_03004240 -_080E3878: .4byte REG_WININ -_080E387C: .4byte 0x00003f3f -_080E3880: .4byte REG_BG1CNT -_080E3884: .4byte REG_BLDCNT -_080E3888: .4byte gSprites - thumb_func_end sub_80E3704 - - thumb_func_start sub_80E388C -sub_80E388C: @ 80E388C - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x1 - bl sub_80792C0 - adds r6, r0, 0 - movs r1, 0 - bl sub_80E39BC - ldr r0, _080E38EC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - lsrs r0, r6, 16 - movs r5, 0 - strh r0, [r4, 0x24] - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r6, r0, 0 - ldr r1, _080E38F0 @ =0x0000ffff - ands r6, r1 - adds r0, r6, 0 - bl sub_80E39BC - strh r6, [r4, 0x26] - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - ldr r0, _080E38F4 @ =sub_80E38F8 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E38EC: .4byte gTasks -_080E38F0: .4byte 0x0000ffff -_080E38F4: .4byte sub_80E38F8 - thumb_func_end sub_80E388C - - thumb_func_start sub_80E38F8 -sub_80E38F8: @ 80E38F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E391C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080E393C - cmp r1, 0x1 - bgt _080E3920 - cmp r1, 0 - beq _080E3926 - b _080E39B6 - .align 2, 0 -_080E391C: .4byte gTasks -_080E3920: - cmp r1, 0x2 - beq _080E39B0 - b _080E39B6 -_080E3926: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080E39B6 - strh r1, [r4, 0xA] - movs r0, 0x10 - strh r0, [r4, 0xC] - b _080E39A4 -_080E393C: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E39B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - movs r5, 0 - movs r6, 0x1 -_080E3958: - movs r1, 0x26 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080E3972 - lsls r0, r5, 20 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - ldr r3, _080E39AC @ =0x0000ffff - bl BlendPalette -_080E3972: - movs r1, 0x24 - ldrsh r0, [r4, r1] - asrs r0, r5 - ands r0, r6 - cmp r0, 0 - beq _080E3992 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldrb r2, [r4, 0xC] - movs r1, 0x10 - movs r3, 0 - bl BlendPalette -_080E3992: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xF - bls _080E3958 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E39B6 -_080E39A4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E39B6 - .align 2, 0 -_080E39AC: .4byte 0x0000ffff -_080E39B0: - adds r0, r2, 0 - bl move_anim_task_del -_080E39B6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E38F8 - - thumb_func_start sub_80E39BC -sub_80E39BC: @ 80E39BC - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r2, 0 -_080E39C6: - movs r0, 0x1 - ands r0, r3 - lsrs r4, r3, 1 - adds r5, r2, 0x1 - cmp r0, 0 - beq _080E39F2 - lsls r0, r2, 20 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x10 - cmp r2, r0 - bge _080E39F2 - ldr r1, _080E3A04 @ =gPlttBufferFaded - adds r3, r0, 0 -_080E39E2: - lsls r0, r2, 1 - adds r0, r1 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - blt _080E39E2 -_080E39F2: - adds r3, r4, 0 - lsls r0, r5, 16 - lsrs r2, r0, 16 - cmp r2, 0x1F - bls _080E39C6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3A04: .4byte gPlttBufferFaded - thumb_func_end sub_80E39BC - - thumb_func_start sub_80E3A08 -sub_80E3A08: @ 80E3A08 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r2, 0 - ldr r0, _080E3A50 @ =gUnknown_0202F7C8 - ldrb r3, [r0] - movs r5, 0x1 -_080E3A18: - cmp r3, r2 - beq _080E3A26 - adds r1, r2, 0 - adds r1, 0x10 - adds r0, r5, 0 - lsls r0, r1 - orrs r4, r0 -_080E3A26: - adds r2, 0x1 - cmp r2, 0x3 - bls _080E3A18 - movs r2, 0x5 - ldr r0, _080E3A54 @ =gUnknown_03004B00 - adds r1, r0, 0 - adds r1, 0x8 -_080E3A34: - ldrh r0, [r1] - strh r0, [r1, 0x2] - subs r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E3A34 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80E2C8C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3A50: .4byte gUnknown_0202F7C8 -_080E3A54: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3A08 - - thumb_func_start sub_80E3A58 -sub_80E3A58: @ 80E3A58 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - bl sub_80789D4 - ldr r0, _080E3AC0 @ =sub_80E3AD0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080E3AC4 @ =gUnknown_03004B00 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3A94 - ldr r0, _080E3AC8 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3A94 - ldrh r0, [r4] - negs r0, r0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] -_080E3A94: - ldr r0, _080E3ACC @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r2, _080E3AC4 @ =gUnknown_03004B00 - ldrh r0, [r2] - strh r0, [r1, 0xA] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0xC] - ldrh r0, [r2, 0x6] - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - adds r0, r6, 0 - bl move_anim_task_del - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E3AC0: .4byte sub_80E3AD0 -_080E3AC4: .4byte gUnknown_03004B00 -_080E3AC8: .4byte gUnknown_0202F7C8 -_080E3ACC: .4byte gTasks - thumb_func_end sub_80E3A58 - - thumb_func_start sub_80E3AD0 -sub_80E3AD0: @ 80E3AD0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E3B3C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0xA] - ldrh r0, [r1, 0x1C] - adds r3, r0 - movs r4, 0 - mov r12, r4 - strh r3, [r1, 0x1C] - ldrh r2, [r1, 0xC] - ldrh r7, [r1, 0x1E] - adds r2, r7 - strh r2, [r1, 0x1E] - ldr r6, _080E3B40 @ =gUnknown_030041B0 - lsls r0, r3, 16 - asrs r0, 24 - ldrh r4, [r6] - adds r0, r4 - strh r0, [r6] - ldr r4, _080E3B44 @ =gUnknown_030041B8 - lsls r0, r2, 16 - asrs r0, 24 - ldrh r7, [r4] - adds r0, r7 - strh r0, [r4] - movs r0, 0xFF - ands r3, r0 - strh r3, [r1, 0x1C] - ands r2, r0 - strh r2, [r1, 0x1E] - ldr r0, _080E3B48 @ =gUnknown_03004B00 - movs r3, 0xE - ldrsh r2, [r0, r3] - movs r7, 0xE - ldrsh r0, [r1, r7] - cmp r2, r0 - bne _080E3B36 - mov r0, r12 - strh r0, [r6] - strh r0, [r4] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r5, 0 - bl DestroyTask -_080E3B36: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3B3C: .4byte gTasks -_080E3B40: .4byte gUnknown_030041B0 -_080E3B44: .4byte gUnknown_030041B8 -_080E3B48: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3AD0 - - thumb_func_start sub_80E3B4C -sub_80E3B4C: @ 80E3B4C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E3B70 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, _080E3B74 @ =gUnknown_03004B00 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E3B70: .4byte gUnknown_0202F7C8 -_080E3B74: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3B4C - - thumb_func_start sub_80E3B78 -sub_80E3B78: @ 80E3B78 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E3B9C @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - ldr r1, _080E3BA0 @ =gUnknown_03004B00 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0xE] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E3B9C: .4byte gUnknown_0202F7C9 -_080E3BA0: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3B78 - - thumb_func_start sub_80E3BA4 -sub_80E3BA4: @ 80E3BA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r5, _080E3BD0 @ =gUnknown_03004B00 - movs r4, 0 - ldr r0, _080E3BD4 @ =gUnknown_0202F7C8 - ldrb r2, [r0] - movs r0, 0x2 - ldr r1, _080E3BD8 @ =gUnknown_0202F7C9 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bne _080E3BC0 - movs r4, 0x1 -_080E3BC0: - strh r4, [r5, 0xE] - adds r0, r3, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E3BD0: .4byte gUnknown_03004B00 -_080E3BD4: .4byte gUnknown_0202F7C8 -_080E3BD8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_80E3BA4 - - thumb_func_start sub_80E3BDC -sub_80E3BDC: @ 80E3BDC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r6, _080E3C3C @ =gSprites -_080E3BE6: - ldr r0, _080E3C40 @ =gUnknown_0202F7C8 - ldrb r0, [r0] - cmp r4, r0 - beq _080E3C24 - lsls r0, r4, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080E3C24 - ldr r0, _080E3C44 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldr r1, _080E3C48 @ =gUnknown_03004B00 - adds r2, 0x3E - movs r0, 0x1 - ldrb r3, [r1] - ands r3, r0 - lsls r3, 2 - ldrb r0, [r2] - movs r7, 0x5 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E3C24: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E3BE6 - adds r0, r5, 0 - bl move_anim_task_del - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3C3C: .4byte gSprites -_080E3C40: .4byte gUnknown_0202F7C8 -_080E3C44: .4byte gUnknown_02024BE0 -_080E3C48: .4byte gUnknown_03004B00 - thumb_func_end sub_80E3BDC - - thumb_func_start sub_80E3C4C -sub_80E3C4C: @ 80E3C4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r1, [sp, 0x3C] - ldr r4, [sp, 0x40] - ldr r5, [sp, 0x44] - ldr r6, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x10] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x14] - lsls r6, 24 - lsrs r6, 24 - mov r10, r6 - movs r0, 0 - str r0, [sp, 0x18] - movs r0, 0x2 - adds r6, r7, 0 - eors r6, r0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3CAE - mov r1, r8 - cmp r1, 0 - beq _080E3CB2 - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080E3CB2 -_080E3CAE: - movs r2, 0 - mov r8, r2 -_080E3CB2: - ldr r0, _080E3D34 @ =gUnknown_030042C4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E3D38 @ =gUnknown_03004240 - strh r1, [r0] - ldr r1, _080E3D3C @ =REG_WININ - ldr r3, _080E3D40 @ =0x00003f3f - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E3D44 @ =0x00003f3d - adds r0, r2, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E3D48 @ =REG_BLDCNT - ldr r2, _080E3D4C @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r4, _080E3D50 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3D22 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080E3D22: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3D58 - ldr r0, _080E3D54 @ =0x02019348 - ldrh r4, [r0] - b _080E3D96 - .align 2, 0 -_080E3D34: .4byte gUnknown_030042C4 -_080E3D38: .4byte gUnknown_03004240 -_080E3D3C: .4byte REG_WININ -_080E3D40: .4byte 0x00003f3f -_080E3D44: .4byte 0x00003f3d -_080E3D48: .4byte REG_BLDCNT -_080E3D4C: .4byte 0x00003f42 -_080E3D50: .4byte REG_BG1CNT -_080E3D54: .4byte 0x02019348 -_080E3D58: - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080E3D7C - ldr r1, _080E3D74 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3D78 @ =gEnemyParty - b _080E3D8A - .align 2, 0 -_080E3D74: .4byte gUnknown_02024A6A -_080E3D78: .4byte gEnemyParty -_080E3D7C: - ldr r1, _080E3E48 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E3E4C @ =gPlayerParty -_080E3D8A: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_080E3D96: - ldr r5, _080E3E50 @ =gUnknown_02024BE0 - adds r0, r7, r5 - ldrb r1, [r0] - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r8 - cmp r0, 0 - beq _080E3DC0 - adds r0, r6, r5 - ldrb r1, [r0] - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] -_080E3DC0: - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - ldr r0, [sp, 0x50] - bl LZDecompressVram - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E3DE6 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080E3DE6: - ldr r1, [sp] - ldr r0, [sp, 0x4C] - bl LZDecompressVram - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - ldr r0, [sp, 0x54] - movs r2, 0x20 - bl LoadCompressedPalette - ldr r0, _080E3E54 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E3E58 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r1, _080E3E5C @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r3, sp - ldrh r3, [r3, 0xC] - strh r3, [r0, 0xA] - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x10] - mov r2, r10 - strh r2, [r0, 0x12] - mov r3, sp - ldrh r3, [r3, 0x14] - strh r3, [r0, 0x14] - strh r7, [r0, 0x8] - mov r1, r8 - strh r1, [r0, 0xC] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0xE] - ldr r1, _080E3E60 @ =sub_80E3E64 - str r1, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3E48: .4byte gUnknown_02024A6A -_080E3E4C: .4byte gPlayerParty -_080E3E50: .4byte gUnknown_02024BE0 -_080E3E54: .4byte gUnknown_030042C0 -_080E3E58: .4byte gUnknown_030041B4 -_080E3E5C: .4byte gTasks -_080E3E60: .4byte sub_80E3E64 - thumb_func_end sub_80E3C4C - - thumb_func_start sub_80E3E64 -sub_80E3E64: @ 80E3E64 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E3E9C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r1 - movs r0, 0xA - ldrsh r2, [r3, r0] - adds r5, r1, 0 - cmp r2, 0 - bge _080E3E80 - negs r2, r2 -_080E3E80: - ldrh r0, [r3, 0x22] - adds r4, r0, r2 - strh r4, [r3, 0x22] - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bge _080E3EA4 - ldr r2, _080E3EA0 @ =gUnknown_030041B4 - lsls r1, r4, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - b _080E3EB0 - .align 2, 0 -_080E3E9C: .4byte gTasks -_080E3EA0: .4byte gUnknown_030041B4 -_080E3EA4: - ldr r1, _080E3ED4 @ =gUnknown_030041B4 - lsls r0, r4, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] -_080E3EB0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r5 - ldrh r1, [r4, 0x22] - movs r0, 0xFF - ands r0, r1 - movs r2, 0 - strh r0, [r4, 0x22] - movs r3, 0x26 - ldrsh r0, [r4, r3] - cmp r0, 0x1 - beq _080E3F18 - cmp r0, 0x1 - bgt _080E3ED8 - cmp r0, 0 - beq _080E3EDE - b _080E3FE2 - .align 2, 0 -_080E3ED4: .4byte gUnknown_030041B4 -_080E3ED8: - cmp r0, 0x2 - beq _080E3F32 - b _080E3FE2 -_080E3EDE: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E3FE2 - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _080E3F14 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E3FE2 - b _080E3F2A - .align 2, 0 -_080E3F14: .4byte REG_BLDALPHA -_080E3F18: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080E3FE2 -_080E3F2A: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _080E3FE2 -_080E3F32: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E3FE2 - strh r2, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r7, _080E3FE8 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r7] - movs r0, 0x20 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _080E3FE2 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E3FEC @ =gUnknown_030042C4 - strh r5, [r0] - ldr r0, _080E3FF0 @ =gUnknown_03004240 - strh r5, [r0] - ldr r0, _080E3FF4 @ =REG_WININ - ldr r2, _080E3FF8 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080E3F90 - ldr r2, _080E3FFC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E3F90: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E4000 @ =REG_BLDCNT - strh r5, [r0] - strh r5, [r7] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080E4004 @ =gSprites - adds r0, r5 - bl DestroySprite - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080E3FD0 - movs r2, 0xE - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_080E3FD0: - ldr r2, _080E3FFC @ =REG_BG1CNT - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - adds r0, r6, 0 - bl move_anim_task_del -_080E3FE2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E3FE8: .4byte REG_BLDALPHA -_080E3FEC: .4byte gUnknown_030042C4 -_080E3FF0: .4byte gUnknown_03004240 -_080E3FF4: .4byte REG_WININ -_080E3FF8: .4byte 0x00003f3f -_080E3FFC: .4byte REG_BG1CNT -_080E4000: .4byte REG_BLDCNT -_080E4004: .4byte gSprites - thumb_func_end sub_80E3E64 - - thumb_func_start sub_80E4008 -sub_80E4008: @ 80E4008 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4020 @ =gUnknown_03004B00 - ldr r1, _080E4024 @ =gUnknown_0300428C - ldrb r1, [r1] - strh r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E4020: .4byte gUnknown_03004B00 -_080E4024: .4byte gUnknown_0300428C - thumb_func_end sub_80E4008 - - thumb_func_start sub_80E4028 -sub_80E4028: @ 80E4028 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _080E4068 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E406C - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E4084 - movs r2, 0x1 -_080E405A: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E405A - b _080E4084 - .align 2, 0 -_080E4068: .4byte gUnknown_03004B00 -_080E406C: - cmp r0, 0x1 - bne _080E4078 - ldr r0, _080E4074 @ =gUnknown_0202F7C8 - b _080E407E - .align 2, 0 -_080E4074: .4byte gUnknown_0202F7C8 -_080E4078: - cmp r0, 0x2 - bne _080E4084 - ldr r0, _080E409C @ =gUnknown_0202F7C9 -_080E407E: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E4084: - ldr r0, _080E40A0 @ =gUnknown_03004B00 - movs r1, 0x2 - ldrsh r0, [r0, r1] - lsls r5, r0, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E40A8 - ldr r0, _080E40A4 @ =0x02014800 - b _080E40AA - .align 2, 0 -_080E409C: .4byte gUnknown_0202F7C9 -_080E40A0: .4byte gUnknown_03004B00 -_080E40A4: .4byte 0x02014800 -_080E40A8: - ldr r0, _080E40C8 @ =0x02018000 -_080E40AA: - adds r2, r5, r0 - lsls r1, r4, 5 - ldr r0, _080E40CC @ =gPlttBufferUnfaded - adds r1, r0 - adds r0, r2, 0 - movs r2, 0x20 - bl memcpy - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E40C8: .4byte 0x02018000 -_080E40CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_80E4028 - - thumb_func_start sub_80E40D0 -sub_80E40D0: @ 80E40D0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _080E4110 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E4114 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E412C - movs r2, 0x1 -_080E4102: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E4102 - b _080E412C - .align 2, 0 -_080E4110: .4byte gUnknown_03004B00 -_080E4114: - cmp r0, 0x1 - bne _080E4120 - ldr r0, _080E411C @ =gUnknown_0202F7C8 - b _080E4126 - .align 2, 0 -_080E411C: .4byte gUnknown_0202F7C8 -_080E4120: - cmp r0, 0x2 - bne _080E412C - ldr r0, _080E4148 @ =gUnknown_0202F7C9 -_080E4126: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E412C: - lsls r1, r4, 5 - ldr r0, _080E414C @ =gPlttBufferUnfaded - adds r5, r1, r0 - ldr r0, _080E4150 @ =gUnknown_03004B00 - movs r1, 0x2 - ldrsh r0, [r0, r1] - lsls r4, r0, 5 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E4158 - ldr r0, _080E4154 @ =0x02014800 - b _080E415A - .align 2, 0 -_080E4148: .4byte gUnknown_0202F7C9 -_080E414C: .4byte gPlttBufferUnfaded -_080E4150: .4byte gUnknown_03004B00 -_080E4154: .4byte 0x02014800 -_080E4158: - ldr r0, _080E4174 @ =0x02018000 -_080E415A: - adds r1, r4, r0 - adds r0, r5, 0 - movs r2, 0x20 - bl memcpy - adds r0, r6, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E4174: .4byte 0x02018000 - thumb_func_end sub_80E40D0 - - thumb_func_start sub_80E4178 -sub_80E4178: @ 80E4178 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E41B8 @ =gUnknown_03004B00 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080E41BC - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080E41D4 - movs r2, 0x1 -_080E41AA: - lsrs r1, 1 - adds r4, 0x1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _080E41AA - b _080E41D4 - .align 2, 0 -_080E41B8: .4byte gUnknown_03004B00 -_080E41BC: - cmp r0, 0x1 - bne _080E41C8 - ldr r0, _080E41C4 @ =gUnknown_0202F7C8 - b _080E41CE - .align 2, 0 -_080E41C4: .4byte gUnknown_0202F7C8 -_080E41C8: - cmp r0, 0x2 - bne _080E41D4 - ldr r0, _080E41F4 @ =gUnknown_0202F7C9 -_080E41CE: - ldrb r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 -_080E41D4: - lsls r1, r4, 5 - ldr r0, _080E41F8 @ =gPlttBufferUnfaded - adds r0, r1, r0 - ldr r2, _080E41FC @ =gPlttBufferFaded - adds r1, r2 - movs r2, 0x20 - bl memcpy - adds r0, r5, 0 - bl move_anim_task_del - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E41F4: .4byte gUnknown_0202F7C9 -_080E41F8: .4byte gPlttBufferUnfaded -_080E41FC: .4byte gPlttBufferFaded - thumb_func_end sub_80E4178 - - thumb_func_start sub_80E4200 -sub_80E4200: @ 80E4200 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E4220 - ldr r1, _080E421C @ =gUnknown_03004B00 - movs r0, 0x1 - strh r0, [r1, 0xE] - b _080E4224 - .align 2, 0 -_080E421C: .4byte gUnknown_03004B00 -_080E4220: - ldr r0, _080E4230 @ =gUnknown_03004B00 - strh r1, [r0, 0xE] -_080E4224: - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4230: .4byte gUnknown_03004B00 - thumb_func_end sub_80E4200 - - thumb_func_start sub_80E4234 -sub_80E4234: @ 80E4234 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4254 @ =gUnknown_0202F7C8 - ldr r1, _080E4258 @ =gUnknown_02024C08 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080E425C @ =gUnknown_0202F7C9 - ldr r1, _080E4260 @ =gUnknown_02024C0A - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E4254: .4byte gUnknown_0202F7C8 -_080E4258: .4byte gUnknown_02024C08 -_080E425C: .4byte gUnknown_0202F7C9 -_080E4260: .4byte gUnknown_02024C0A - thumb_func_end sub_80E4234 - - thumb_func_start sub_80E4264 -sub_80E4264: @ 80E4264 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E428C @ =gUnknown_0202F7C8 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r0, _080E4290 @ =gUnknown_0202F7C9 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080E4298 - ldr r1, _080E4294 @ =gUnknown_03004B00 - movs r0, 0x1 - b _080E429C - .align 2, 0 -_080E428C: .4byte gUnknown_0202F7C8 -_080E4290: .4byte gUnknown_0202F7C9 -_080E4294: .4byte gUnknown_03004B00 -_080E4298: - ldr r1, _080E42AC @ =gUnknown_03004B00 - movs r0, 0 -_080E429C: - strh r0, [r1, 0xE] - adds r0, r5, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E42AC: .4byte gUnknown_03004B00 - thumb_func_end sub_80E4264 - - thumb_func_start sub_80E42B0 -sub_80E42B0: @ 80E42B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E42C8 @ =gUnknown_0202F7C9 - ldr r1, _080E42CC @ =gUnknown_02024C08 - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E42C8: .4byte gUnknown_0202F7C9 -_080E42CC: .4byte gUnknown_02024C08 - thumb_func_end sub_80E42B0 - - thumb_func_start sub_80E42D0 -sub_80E42D0: @ 80E42D0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E42F0 @ =gUnknown_0202F7C8 - ldr r1, _080E42F4 @ =gUnknown_02024C07 - ldrb r1, [r1] - strb r1, [r2] - ldr r2, _080E42F8 @ =gUnknown_0202F7C9 - ldr r1, _080E42FC @ =gUnknown_02024C0A - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_080E42F0: .4byte gUnknown_0202F7C8 -_080E42F4: .4byte gUnknown_02024C07 -_080E42F8: .4byte gUnknown_0202F7C9 -_080E42FC: .4byte gUnknown_02024C0A - thumb_func_end sub_80E42D0 - - thumb_func_start sub_80E4300 -sub_80E4300: @ 80E4300 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080E4318 - adds r0, r4, 0 - bl move_anim_task_del - b _080E434E -_080E4318: - ldr r0, _080E4354 @ =gTasks - lsls r3, r4, 2 - adds r3, r4 - lsls r3, 3 - adds r3, r0 - ldr r1, _080E4358 @ =gUnknown_0202F7C8 - ldrb r0, [r1] - lsls r0, 2 - ldr r2, _080E435C @ =0x02017800 - adds r0, r2 - ldr r0, [r0] - lsls r0, 31 - lsrs r0, 31 - strh r0, [r3, 0x8] - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, _080E4360 @ =sub_80E4368 - str r0, [r3] - ldr r1, _080E4364 @ =gUnknown_0202F7B2 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080E434E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4354: .4byte gTasks -_080E4358: .4byte gUnknown_0202F7C8 -_080E435C: .4byte 0x02017800 -_080E4360: .4byte sub_80E4368 -_080E4364: .4byte gUnknown_0202F7B2 - thumb_func_end sub_80E4300 - - thumb_func_start sub_80E4368 -sub_80E4368: @ 80E4368 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E43B0 @ =gUnknown_03004B00 - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 5 - cmp r1, r0 - bne _080E43A8 - ldr r0, _080E43B4 @ =gUnknown_0202F7C8 - ldrb r3, [r0] - lsls r3, 2 - ldr r0, _080E43B8 @ =0x02017800 - adds r3, r0 - ldr r1, _080E43BC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask -_080E43A8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E43B0: .4byte gUnknown_03004B00 -_080E43B4: .4byte gUnknown_0202F7C8 -_080E43B8: .4byte 0x02017800 -_080E43BC: .4byte gTasks - thumb_func_end sub_80E4368 - - thumb_func_start sub_80E43C0 -sub_80E43C0: @ 80E43C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E43D8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E43E0 - ldr r0, _080E43DC @ =sub_80E4C34 - b _080E4408 - .align 2, 0 -_080E43D8: .4byte gUnknown_020239F8 -_080E43DC: .4byte sub_80E4C34 -_080E43E0: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _080E4400 - ldr r0, _080E43F8 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - beq _080E4400 - movs r4, 0x3 - ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8 - b _080E4408 - .align 2, 0 -_080E43F8: .4byte gGameVersion -_080E43FC: .4byte task00_battle_intro_80BC6C8 -_080E4400: - ldr r1, _080E4434 @ =gUnknown_083DB56C - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] -_080E4408: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080E4438 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r0, [r1, 0x10] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4434: .4byte gUnknown_083DB56C -_080E4438: .4byte gTasks - thumb_func_end sub_80E43C0 - - thumb_func_start sub_80E443C -sub_80E443C: @ 80E443C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _080E4474 @ =gUnknown_030042C0 - movs r1, 0 - strh r1, [r0] - ldr r0, _080E4478 @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _080E447C @ =gUnknown_03004288 - strh r1, [r0] - ldr r0, _080E4480 @ =gUnknown_03004280 - strh r1, [r0] - ldr r0, _080E4484 @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xC - ldr r2, _080E4488 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E4474: .4byte gUnknown_030042C0 -_080E4478: .4byte gUnknown_030041B4 -_080E447C: .4byte gUnknown_03004288 -_080E4480: .4byte gUnknown_03004280 -_080E4484: .4byte REG_BLDCNT -_080E4488: .4byte 0x00003f3f - thumb_func_end sub_80E443C - - thumb_func_start task_battle_intro_80BC47C -task_battle_intro_80BC47C: @ 80E448C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E44C4 @ =gUnknown_030042C0 - ldrh r0, [r1] - adds r0, 0x6 - strh r0, [r1] - ldr r1, _080E44C8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x4 - bls _080E44B8 - b _080E46BE -_080E44B8: - lsls r0, 2 - ldr r1, _080E44CC @ =_080E44D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E44C4: .4byte gUnknown_030042C0 -_080E44C8: .4byte gTasks -_080E44CC: .4byte _080E44D0 - .align 2, 0 -_080E44D0: - .4byte _080E44E4 - .4byte _080E4514 - .4byte _080E4540 - .4byte _080E4588 - .4byte _080E46B8 -_080E44E4: - ldr r0, _080E44FC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4500 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x10 - b _080E450A - .align 2, 0 -_080E44FC: .4byte gUnknown_020239F8 -_080E4500: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x1 -_080E450A: - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E46BE -_080E4514: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E452C - b _080E46BE -_080E452C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E453C @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E453C: .4byte REG_WININ -_080E4540: - ldr r1, _080E457C @ =gUnknown_03004240 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4558 - b _080E46BE -_080E4558: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4580 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4584 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E46BE - .align 2, 0 -_080E457C: .4byte gUnknown_03004240 -_080E4580: .4byte gUnknown_02024DE8 -_080E4584: .4byte 0x0000fffe -_080E4588: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r5, 0xE - ldrsh r1, [r2, r5] - mov r12, r0 - cmp r1, 0 - beq _080E45A4 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E45D2 -_080E45A4: - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080E45C4 - ldr r2, _080E45BC @ =gUnknown_030041B4 - ldrh r1, [r2] - ldr r0, _080E45C0 @ =0x0000ffb0 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x2 - b _080E45D0 - .align 2, 0 -_080E45BC: .4byte gUnknown_030041B4 -_080E45C0: .4byte 0x0000ffb0 -_080E45C4: - ldr r2, _080E4690 @ =gUnknown_030041B4 - ldrh r1, [r2] - ldr r0, _080E4694 @ =0x0000ffc8 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x1 -_080E45D0: - strh r0, [r2] -_080E45D2: - ldr r2, _080E4698 @ =gUnknown_03004240 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E45E6 - ldr r3, _080E469C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E45E6: - mov r5, r12 - adds r0, r5, r4 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E45FE - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E45FE: - movs r3, 0 - ldr r5, _080E46A0 @ =gUnknown_03004DC0 - mov r9, r5 - ldr r7, _080E46A4 @ =gUnknown_03004DE0 - mov r6, r9 - adds r5, r1, 0 -_080E460A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E460A - cmp r3, 0x9F - bgt _080E464E - ldr r7, _080E46A4 @ =gUnknown_03004DE0 - ldr r6, _080E46A0 @ =gUnknown_03004DC0 - ldr r1, _080E46A8 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4634: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4634 -_080E464E: - mov r3, r12 - adds r0, r3, r4 - lsls r0, 3 - mov r5, r8 - adds r1, r0, r5 - movs r0, 0xC - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _080E46BE - movs r0, 0x3 - mov r3, r9 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E46AC @ =0x0600e000 - ldr r2, _080E46B0 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E46B4 @ =REG_BG1CNT - movs r5, 0x9C - lsls r5, 8 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E4690: .4byte gUnknown_030041B4 -_080E4694: .4byte 0x0000ffc8 -_080E4698: .4byte gUnknown_03004240 -_080E469C: .4byte 0xfffffc04 -_080E46A0: .4byte gUnknown_03004DC0 -_080E46A4: .4byte gUnknown_03004DE0 -_080E46A8: .4byte gTasks -_080E46AC: .4byte 0x0600e000 -_080E46B0: .4byte 0x05000200 -_080E46B4: .4byte REG_BG1CNT -_080E46B8: - adds r0, r4, 0 - bl sub_80E443C -_080E46BE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_battle_intro_80BC47C - - thumb_func_start task00_battle_intro_80BC6C8 -task00_battle_intro_80BC6C8: @ 80E46CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E46F8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x3 - beq _080E470C - cmp r0, 0x3 - bgt _080E46FC - cmp r0, 0x2 - beq _080E4700 - b _080E4714 - .align 2, 0 -_080E46F8: .4byte gTasks -_080E46FC: - cmp r0, 0x4 - bne _080E4714 -_080E4700: - ldr r1, _080E4708 @ =gUnknown_030042C0 - ldrh r0, [r1] - adds r0, 0x8 - b _080E4712 - .align 2, 0 -_080E4708: .4byte gUnknown_030042C0 -_080E470C: - ldr r1, _080E4750 @ =gUnknown_030042C0 - ldrh r0, [r1] - adds r0, 0x6 -_080E4712: - strh r0, [r1] -_080E4714: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r4, r1, r2 - movs r3, 0xA - ldrsh r1, [r4, r3] - adds r6, r0, 0 - cmp r1, 0x4 - bne _080E4778 - ldr r7, _080E4754 @ =gUnknown_030041B4 - ldrh r0, [r4, 0x14] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080E473A - ldr r1, _080E4758 @ =0x000001ff - adds r0, r1 -_080E473A: - asrs r0, 9 - subs r0, 0x8 - strh r0, [r7] - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0xB3 - bgt _080E475C - adds r0, r1, 0x4 - b _080E475E - .align 2, 0 -_080E4750: .4byte gUnknown_030042C0 -_080E4754: .4byte gUnknown_030041B4 -_080E4758: .4byte 0x000001ff -_080E475C: - adds r0, r1, 0x6 -_080E475E: - strh r0, [r4, 0x14] - ldr r2, _080E4794 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r4, 0x14 - ldrsh r1, [r3, r4] - movs r0, 0xB4 - lsls r0, 1 - cmp r1, r0 - bne _080E4778 - movs r0, 0 - strh r0, [r3, 0x14] -_080E4778: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _080E4788 - b _080E4996 -_080E4788: - lsls r0, 2 - ldr r1, _080E4798 @ =_080E479C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4794: .4byte gTasks -_080E4798: .4byte _080E479C - .align 2, 0 -_080E479C: - .4byte _080E47B0 - .4byte _080E47E0 - .4byte _080E480C - .4byte _080E485C - .4byte _080E4990 -_080E47B0: - ldr r1, _080E47CC @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x10 - strh r3, [r2, 0x10] - ldr r0, _080E47D0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E47D4 - strh r3, [r2, 0xC] - b _080E47D8 - .align 2, 0 -_080E47CC: .4byte gTasks -_080E47D0: .4byte gUnknown_020239F8 -_080E47D4: - movs r0, 0x1 - strh r0, [r2, 0xC] -_080E47D8: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080E4996 -_080E47E0: - ldr r0, _080E4804 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E47F6 - b _080E4996 -_080E47F6: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4808 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4804: .4byte gTasks -_080E4808: .4byte REG_WININ -_080E480C: - ldr r1, _080E484C @ =gUnknown_03004240 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4824 - b _080E4996 -_080E4824: - ldr r0, _080E4850 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4854 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4858 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4996 - .align 2, 0 -_080E484C: .4byte gUnknown_03004240 -_080E4850: .4byte gTasks -_080E4854: .4byte gUnknown_02024DE8 -_080E4858: .4byte 0x0000fffe -_080E485C: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r3, [r1, 0xE] - movs r4, 0xE - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _080E4898 - subs r0, r3, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080E48B8 - ldr r1, _080E488C @ =REG_BLDCNT - ldr r4, _080E4890 @ =0x00001842 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xF - strh r0, [r1] - ldr r0, _080E4894 @ =REG_BLDY - strh r3, [r0] - b _080E48B8 - .align 2, 0 -_080E488C: .4byte REG_BLDCNT -_080E4890: .4byte 0x00001842 -_080E4894: .4byte REG_BLDY -_080E4898: - ldrh r3, [r1, 0x10] - movs r0, 0x1F - ands r0, r3 - cmp r0, 0 - beq _080E48B8 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E48B8 - adds r0, r3, 0 - adds r0, 0xFF - strh r0, [r1, 0x10] - movs r0, 0x4 - strh r0, [r1, 0x12] -_080E48B8: - ldr r3, _080E4970 @ =gUnknown_03004240 - ldrh r1, [r3] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E48CC - ldr r4, _080E4974 @ =0xfffffc04 - adds r0, r1, r4 - strh r0, [r3] -_080E48CC: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E48E0 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E48E0: - movs r3, 0 - ldr r4, _080E4978 @ =gUnknown_03004DC0 - mov r8, r4 - ldr r0, _080E497C @ =gUnknown_03004DE0 - mov r12, r0 - mov r7, r8 - adds r4, r1, 0 -_080E48EE: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E48EE - cmp r3, 0x9F - bgt _080E4932 - ldr r1, _080E497C @ =gUnknown_03004DE0 - mov r12, r1 - ldr r7, _080E4978 @ =gUnknown_03004DC0 - ldr r1, _080E4980 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r1 -_080E4918: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4918 -_080E4932: - ldr r1, _080E4980 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4996 - movs r0, 0x3 - mov r4, r8 - strb r0, [r4, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4984 @ =0x0600e000 - ldr r2, _080E4988 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E498C @ =REG_BG1CNT - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4970: .4byte gUnknown_03004240 -_080E4974: .4byte 0xfffffc04 -_080E4978: .4byte gUnknown_03004DC0 -_080E497C: .4byte gUnknown_03004DE0 -_080E4980: .4byte gTasks -_080E4984: .4byte 0x0600e000 -_080E4988: .4byte 0x05000200 -_080E498C: .4byte REG_BG1CNT -_080E4990: - adds r0, r5, 0 - bl sub_80E443C -_080E4996: - ldr r0, _080E49B8 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r2, r1, r0 - movs r4, 0x8 - ldrsh r0, [r2, r4] - cmp r0, 0x4 - beq _080E49AC - ldr r1, _080E49BC @ =REG_BLDALPHA - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E49AC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E49B8: .4byte gTasks -_080E49BC: .4byte REG_BLDALPHA - thumb_func_end task00_battle_intro_80BC6C8 - - thumb_func_start task_battle_intro_anim -task_battle_intro_anim: @ 80E49C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E49F4 @ =gUnknown_030042C0 - ldrh r0, [r1] - adds r0, 0x8 - strh r0, [r1] - ldr r1, _080E49F8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0x4 - bls _080E49EA - b _080E4C06 -_080E49EA: - lsls r0, 2 - ldr r1, _080E49FC @ =_080E4A00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E49F4: .4byte gUnknown_030042C0 -_080E49F8: .4byte gTasks -_080E49FC: .4byte _080E4A00 - .align 2, 0 -_080E4A00: - .4byte _080E4A14 - .4byte _080E4A6C - .4byte _080E4A9C - .4byte _080E4AEC - .4byte _080E4C00 -_080E4A14: - ldr r1, _080E4A48 @ =REG_BLDCNT - ldr r3, _080E4A4C @ =0x00001842 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080E4A50 @ =REG_BLDALPHA - ldr r6, _080E4A54 @ =0x00000808 - adds r2, r6, 0 - strh r2, [r0] - adds r1, 0x4 - movs r0, 0 - strh r0, [r1] - ldr r1, _080E4A58 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - strh r2, [r3, 0x10] - ldr r0, _080E4A5C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4A60 - movs r0, 0x10 - b _080E4A62 - .align 2, 0 -_080E4A48: .4byte REG_BLDCNT -_080E4A4C: .4byte 0x00001842 -_080E4A50: .4byte REG_BLDALPHA -_080E4A54: .4byte 0x00000808 -_080E4A58: .4byte gTasks -_080E4A5C: .4byte gUnknown_020239F8 -_080E4A60: - movs r0, 0x1 -_080E4A62: - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080E4C06 -_080E4A6C: - ldr r0, _080E4A94 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4A84 - b _080E4C06 -_080E4A84: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4A98 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4A94: .4byte gTasks -_080E4A98: .4byte REG_WININ -_080E4A9C: - ldr r1, _080E4ADC @ =gUnknown_03004240 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4AB4 - b _080E4C06 -_080E4AB4: - ldr r0, _080E4AE0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4AE4 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4AE8 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4C06 - .align 2, 0 -_080E4ADC: .4byte gUnknown_03004240 -_080E4AE0: .4byte gTasks -_080E4AE4: .4byte gUnknown_02024DE8 -_080E4AE8: .4byte 0x0000fffe -_080E4AEC: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r6, 0xE - ldrsh r1, [r2, r6] - mov r12, r0 - cmp r1, 0 - beq _080E4B06 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E4B26 -_080E4B06: - ldrh r1, [r2, 0x10] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080E4B26 - ldrh r0, [r2, 0x12] - subs r0, 0x1 - strh r0, [r2, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E4B26 - adds r0, r1, 0 - adds r0, 0xFF - strh r0, [r2, 0x10] - movs r0, 0x6 - strh r0, [r2, 0x12] -_080E4B26: - ldr r2, _080E4BE0 @ =gUnknown_03004240 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4B3A - ldr r3, _080E4BE4 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E4B3A: - mov r6, r12 - adds r0, r6, r4 - lsls r0, 3 - adds r1, r0, r5 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4B50 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4B50: - movs r3, 0 - ldr r6, _080E4BE8 @ =gUnknown_03004DC0 - mov r8, r6 - ldr r7, _080E4BEC @ =gUnknown_03004DE0 - adds r5, r1, 0 -_080E4B5A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4B5A - cmp r3, 0x9F - bgt _080E4B9E - ldr r7, _080E4BEC @ =gUnknown_03004DE0 - ldr r6, _080E4BE8 @ =gUnknown_03004DC0 - ldr r1, _080E4BF0 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4B84: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4B84 -_080E4B9E: - ldr r1, _080E4BF0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4C06 - movs r0, 0x3 - mov r6, r8 - strb r0, [r6, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4BF4 @ =0x0600e000 - ldr r2, _080E4BF8 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E4BFC @ =REG_BG1CNT - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4BE0: .4byte gUnknown_03004240 -_080E4BE4: .4byte 0xfffffc04 -_080E4BE8: .4byte gUnknown_03004DC0 -_080E4BEC: .4byte gUnknown_03004DE0 -_080E4BF0: .4byte gTasks -_080E4BF4: .4byte 0x0600e000 -_080E4BF8: .4byte 0x05000200 -_080E4BFC: .4byte REG_BG1CNT -_080E4C00: - adds r0, r4, 0 - bl sub_80E443C -_080E4C06: - ldr r0, _080E4C2C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r6, 0x8 - ldrsh r0, [r2, r6] - cmp r0, 0x4 - beq _080E4C1E - ldr r1, _080E4C30 @ =REG_BLDALPHA - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E4C1E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4C2C: .4byte gTasks -_080E4C30: .4byte REG_BLDALPHA - thumb_func_end task_battle_intro_anim - - thumb_func_start sub_80E4C34 -sub_80E4C34: @ 80E4C34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E4C80 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - ble _080E4CAA - movs r2, 0x10 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080E4CAA - ldr r2, _080E4C84 @ =gUnknown_030042C0 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080E4C72 - cmp r1, 0x4F - bhi _080E4C8C -_080E4C72: - adds r0, r1, 0x3 - strh r0, [r2] - ldr r1, _080E4C88 @ =gUnknown_03004288 - ldrh r0, [r1] - subs r0, 0x3 - strh r0, [r1] - b _080E4CAA - .align 2, 0 -_080E4C80: .4byte gTasks -_080E4C84: .4byte gUnknown_030042C0 -_080E4C88: .4byte gUnknown_03004288 -_080E4C8C: - str r5, [sp] - ldr r1, _080E4CCC @ =0x0600e000 - ldr r4, _080E4CD0 @ =0x05000200 - mov r0, sp - adds r2, r4, 0 - bl CpuSet - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080E4CD4 @ =0x0600f000 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x1 - strh r0, [r7, 0x10] -_080E4CAA: - ldr r0, _080E4CD8 @ =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - mov r12, r0 - adds r5, r2, 0 - cmp r1, 0x4 - bls _080E4CC2 - b _080E4EBA -_080E4CC2: - lsls r0, r1, 2 - ldr r1, _080E4CDC @ =_080E4CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4CCC: .4byte 0x0600e000 -_080E4CD0: .4byte 0x05000200 -_080E4CD4: .4byte 0x0600f000 -_080E4CD8: .4byte gTasks -_080E4CDC: .4byte _080E4CE0 - .align 2, 0 -_080E4CE0: - .4byte _080E4CF4 - .4byte _080E4D06 - .4byte _080E4DA8 - .4byte _080E4DEC - .4byte _080E4EB4 -_080E4CF4: - adds r0, r5, r6 - lsls r0, 3 - add r0, r12 - movs r1, 0x10 - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E4EBA -_080E4D06: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4D1C - b _080E4EBA -_080E4D1C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r5, _080E4D8C @ =gSprites - ldr r4, _080E4D90 @ =0x02000000 - ldr r3, _080E4D94 @ =0x0001608a - adds r6, r4, r3 - ldrb r0, [r6] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x8 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1, 0x1] - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r5, 0 - adds r6, 0x1C - adds r0, r6 - ldr r3, _080E4D98 @ =sub_800FE20 - str r3, [r0] - ldr r0, _080E4D9C @ =0x0001608b - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r2, r1 - mov r1, r8 - orrs r2, r1 - strb r2, [r0, 0x1] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - str r3, [r0] - ldr r1, _080E4DA0 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E4DA4 @ =0x00003f06 - b _080E4E94 - .align 2, 0 -_080E4D8C: .4byte gSprites -_080E4D90: .4byte 0x02000000 -_080E4D94: .4byte 0x0001608a -_080E4D98: .4byte sub_800FE20 -_080E4D9C: .4byte 0x0001608b -_080E4DA0: .4byte REG_WININ -_080E4DA4: .4byte 0x00003f06 -_080E4DA8: - ldr r1, _080E4DE0 @ =gUnknown_03004240 - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4DC0 - b _080E4EBA -_080E4DC0: - adds r1, r5, r6 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4DE4 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4DE8 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4EBA - .align 2, 0 -_080E4DE0: .4byte gUnknown_03004240 -_080E4DE4: .4byte gUnknown_02024DE8 -_080E4DE8: .4byte 0x0000fffe -_080E4DEC: - ldr r2, _080E4E9C @ =gUnknown_03004240 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4E00 - ldr r3, _080E4EA0 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E4E00: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4E16 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4E16: - movs r3, 0 - ldr r0, _080E4EA4 @ =gUnknown_03004DC0 - mov r9, r0 - ldr r2, _080E4EA8 @ =gUnknown_03004DE0 - mov r8, r2 - mov r7, r9 - adds r4, r1, 0 -_080E4E24: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4E24 - cmp r3, 0x9F - bgt _080E4E68 - ldr r0, _080E4EA8 @ =gUnknown_03004DE0 - mov r8, r0 - ldr r7, _080E4EA4 @ =gUnknown_03004DC0 - ldr r1, _080E4EAC @ =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r4, r0, r1 -_080E4E4E: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4E4E -_080E4E68: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080E4EBA - movs r0, 0x3 - mov r2, r9 - strb r0, [r2, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4EB0 @ =REG_BG1CNT - movs r3, 0x9C - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 -_080E4E94: - adds r0, r2, 0 - strh r0, [r1] - b _080E4EBA - .align 2, 0 -_080E4E9C: .4byte gUnknown_03004240 -_080E4EA0: .4byte 0xfffffc04 -_080E4EA4: .4byte gUnknown_03004DC0 -_080E4EA8: .4byte gUnknown_03004DE0 -_080E4EAC: .4byte gTasks -_080E4EB0: .4byte REG_BG1CNT -_080E4EB4: - adds r0, r6, 0 - bl sub_80E443C -_080E4EBA: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E4C34 - - thumb_func_start unref_sub_80E4EC8 -unref_sub_80E4EC8: @ 80E4EC8 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0x80 - lsls r4, 7 - str r4, [sp] - movs r4, 0x1E - str r4, [sp, 0x4] - movs r4, 0x1 - str r4, [sp, 0x8] - bl sub_80E4EF8 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80E4EC8 - - thumb_func_start sub_80E4EF8 -sub_80E4EF8: @ 80E4EF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r1 - adds r4, r2, 0 - ldr r1, [sp, 0x24] - mov r8, r1 - ldr r1, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r7, r9 - lsls r7, 24 - adds r0, r7, 0 - lsrs r0, 24 - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsrs r6, r3, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4FCC @ =0x040000d4 - ldr r1, _080E4FD0 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r4, r1 - ldr r1, _080E4FD4 @ =gUnknown_02024E84 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 11 - ldr r0, [r4] - adds r0, r1 - str r0, [r2] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r2, 0x4] - ldr r0, _080E4FD8 @ =0x80000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - mov r0, r8 - lsrs r0, 21 - lsls r5, 9 - subs r5, r0, r5 - mov r0, r9 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E4FBC - mov r9, r1 - mov r1, r10 - lsls r1, 1 - mov r8, r1 - lsls r7, 11 - mov r12, r7 -_080E4F86: - mov r2, r10 - adds r4, r2, 0 - adds r4, 0x8 - adds r1, r0, 0x1 - cmp r2, r4 - bge _080E4FB6 - ldr r3, [sp] - lsls r6, r3, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - add r0, r12 - mov r7, r8 - adds r3, r7, r0 - subs r2, r4, r2 -_080E4FA6: - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r3] - adds r5, 0x1 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E4FA6 -_080E4FB6: - adds r0, r1, 0 - cmp r0, r9 - blt _080E4F86 -_080E4FBC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4FCC: .4byte 0x040000d4 -_080E4FD0: .4byte gUnknown_081FAF4C -_080E4FD4: .4byte gUnknown_02024E84 -_080E4FD8: .4byte 0x80000400 - thumb_func_end sub_80E4EF8 - - thumb_func_start unref_sub_80E4FDC -unref_sub_80E4FDC: @ 80E4FDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - mov r8, r5 - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - mov r9, r6 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - mov r7, r8 - lsls r7, 16 - lsrs r6, r7, 16 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r0, 24 - mov r9, r0 - ldr r4, _080E509C @ =0x040000d4 - ldr r0, _080E50A0 @ =gUnknown_081FAF4C - lsrs r2, 22 - adds r2, r0 - lsrs r3, 13 - ldr r0, [r2] - adds r0, r3 - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r4, 0x4] - ldr r0, _080E50A4 @ =0x80000400 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, r7, 0 - lsrs r2, 21 - mov r6, r9 - lsrs r6, 15 - subs r4, r2, r6 - lsrs r0, r1, 24 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E508C - mov r9, r1 - mov r7, r12 - lsls r7, 1 - mov r8, r7 - lsls r5, 11 - str r5, [sp] -_080E5054: - mov r2, r12 - adds r3, r2, 0 - adds r3, 0x8 - adds r5, r0, 0x1 - cmp r2, r3 - bge _080E5086 - mov r1, r10 - lsls r6, r1, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_080E5076: - adds r0, r4, 0 - orrs r0, r6 - strh r0, [r1] - adds r4, 0x1 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E5076 -_080E5086: - adds r0, r5, 0 - cmp r0, r9 - blt _080E5054 -_080E508C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E509C: .4byte 0x040000d4 -_080E50A0: .4byte gUnknown_081FAF4C -_080E50A4: .4byte 0x80000400 - thumb_func_end unref_sub_80E4FDC - - thumb_func_start MovePlayerOnBike -MovePlayerOnBike: @ 80E50A8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, _080E50CC @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E50D0 - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnMachBike - b _080E50D8 - .align 2, 0 -_080E50CC: .4byte gPlayerAvatar -_080E50D0: - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnAcroBike -_080E50D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MovePlayerOnBike - - thumb_func_start MovePlayerOnMachBike -MovePlayerOnMachBike: @ 80E50E0 - push {r4,lr} - sub sp, 0x4 - mov r1, sp - strb r0, [r1] - ldr r4, _080E510C @ =gUnknown_083DB594 - mov r0, sp - bl CheckMovementInputMachBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E510C: .4byte gUnknown_083DB594 - thumb_func_end MovePlayerOnMachBike - - thumb_func_start CheckMovementInputMachBike -CheckMovementInputMachBike: @ 80E5110 - push {r4,lr} - adds r4, r0, 0 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldrb r1, [r4] - cmp r1, 0 - bne _080E5138 - strb r0, [r4] - ldr r2, _080E5134 @ =gPlayerAvatar - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _080E514C - strb r1, [r2, 0x2] - movs r0, 0 - b _080E5160 - .align 2, 0 -_080E5134: .4byte gPlayerAvatar -_080E5138: - ldr r2, _080E5154 @ =gPlayerAvatar - cmp r1, r3 - beq _080E515C - ldrb r0, [r2, 0x2] - cmp r0, 0x2 - beq _080E515C - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _080E5158 - strb r3, [r4] -_080E514C: - movs r0, 0x2 - strb r0, [r2, 0x2] - movs r0, 0x3 - b _080E5160 - .align 2, 0 -_080E5154: .4byte gPlayerAvatar -_080E5158: - movs r0, 0x1 - b _080E515E -_080E515C: - movs r0, 0x2 -_080E515E: - strb r0, [r2, 0x2] -_080E5160: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputMachBike - - thumb_func_start sub_80E5168 -sub_80E5168: @ 80E5168 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - bl sub_80E6024 - pop {r0} - bx r0 - thumb_func_end sub_80E5168 - - thumb_func_start sub_80E517C -sub_80E517C: @ 80E517C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E51AC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E51B0 @ =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - beq _080E51B4 - adds r0, r5, 0 - bl PlayerTurnInPlace - bl sub_80E6024 - b _080E51BE - .align 2, 0 -_080E51AC: .4byte gPlayerAvatar -_080E51B0: .4byte gMapObjects -_080E51B4: - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_80E5168 -_080E51BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E517C - - thumb_func_start sub_80E51C4 -sub_80E51C4: @ 80E51C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r6, _080E51F8 @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E51FC @ =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E520A - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _080E5200 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80E5270 - b _080E5266 - .align 2, 0 -_080E51F8: .4byte gPlayerAvatar -_080E51FC: .4byte gMapObjects -_080E5200: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80E5168 - b _080E5266 -_080E520A: - adds r0, r5, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5242 - cmp r4, 0x6 - bne _080E522C - adds r0, r5, 0 - bl PlayerJumpLedge - b _080E5266 -_080E522C: - bl sub_80E6024 - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E5266 - adds r0, r5, 0 - bl PlayerOnBikeCollide - b _080E5266 -_080E5242: - ldr r1, _080E526C @ =gUnknown_083DB5A4 - ldrb r0, [r6, 0xA] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl _call_via_r1 - ldrb r2, [r6, 0xA] - lsls r0, r2, 24 - lsrs r1, r0, 24 - lsrs r0, 25 - adds r0, r2, r0 - strb r0, [r6, 0xB] - cmp r1, 0x1 - bhi _080E5266 - adds r0, r2, 0x1 - strb r0, [r6, 0xA] -_080E5266: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E526C: .4byte gUnknown_083DB5A4 - thumb_func_end sub_80E51C4 - - thumb_func_start sub_80E5270 -sub_80E5270: @ 80E5270 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r6, _080E52A8 @ =gPlayerAvatar - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _080E5286 - subs r0, 0x1 - strb r0, [r6, 0xB] - strb r0, [r6, 0xA] -_080E5286: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E52C2 - cmp r5, 0x6 - bne _080E52AC - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E52D2 - .align 2, 0 -_080E52A8: .4byte gPlayerAvatar -_080E52AC: - bl sub_80E6024 - subs r0, r5, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E52D2 - adds r0, r4, 0 - bl PlayerOnBikeCollide - b _080E52D2 -_080E52C2: - ldr r0, _080E52D8 @ =gUnknown_083DB5A4 - ldrb r1, [r6, 0xA] - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r7, 0 - bl _call_via_r1 -_080E52D2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E52D8: .4byte gUnknown_083DB5A4 - thumb_func_end sub_80E5270 - - thumb_func_start MovePlayerOnAcroBike -MovePlayerOnAcroBike: @ 80E52DC - push {r4,lr} - sub sp, 0x4 - mov r3, sp - strb r0, [r3] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E5310 @ =gUnknown_083DB5B0 - mov r0, sp - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5310: .4byte gUnknown_083DB5B0 - thumb_func_end MovePlayerOnAcroBike - - thumb_func_start CheckMovementInputAcroBike -CheckMovementInputAcroBike: @ 80E5314 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E5338 @ =gUnknown_083DB5E4 - ldr r3, _080E533C @ =gPlayerAvatar - ldrb r3, [r3, 0x8] - lsls r3, 2 - adds r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E5338: .4byte gUnknown_083DB5E4 -_080E533C: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBike - - thumb_func_start CheckMovementInputAcroBikeNormal -CheckMovementInputAcroBikeNormal: @ 80E5340 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E5374 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r2, 0xA] - ldrb r1, [r4] - cmp r1, 0 - bne _080E5380 - movs r0, 0x2 - ands r0, r6 - cmp r0, 0 - beq _080E5378 - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0x2 - strb r0, [r2, 0x8] - movs r0, 0x3 - b _080E53D4 - .align 2, 0 -_080E5374: .4byte gPlayerAvatar -_080E5378: - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0 - b _080E53D4 -_080E5380: - cmp r1, r3 - bne _080E53A6 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080E539E - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _080E539E - adds r0, 0x1 - strb r0, [r2, 0xB] - movs r0, 0x4 - strb r0, [r2, 0x8] - movs r0, 0xB - b _080E53D4 -_080E539E: - ldrb r0, [r4] - ldr r2, _080E53CC @ =gPlayerAvatar - cmp r0, r3 - beq _080E53D0 -_080E53A6: - ldr r0, _080E53CC @ =gPlayerAvatar - ldrb r1, [r0, 0x2] - adds r2, r0, 0 - cmp r1, 0x2 - beq _080E53D0 - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - ldrb r0, [r4] - strb r0, [r2, 0x9] - strb r1, [r2, 0x2] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E53D4 - .align 2, 0 -_080E53CC: .4byte gPlayerAvatar -_080E53D0: - movs r0, 0x2 - strb r0, [r2, 0x2] -_080E53D4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeNormal - - thumb_func_start CheckMovementInputAcroBikeChangingDirection -CheckMovementInputAcroBikeChangingDirection: @ 80E53DC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080E5404 @ =gPlayerAvatar - ldrb r0, [r4, 0x9] - strb r0, [r5] - ldrb r0, [r4, 0xA] - adds r0, 0x1 - strb r0, [r4, 0xA] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bls _080E5408 - movs r0, 0x1 - strb r0, [r4, 0x2] - movs r0, 0 - strb r0, [r4, 0x8] - bl sub_80E6024 - movs r0, 0x1 - b _080E544E - .align 2, 0 -_080E5404: .4byte gPlayerAvatar -_080E5408: - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_80E5C2C - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080E544A - bl sub_80E6024 - movs r0, 0x1 - strb r0, [r4, 0xB] - adds r0, r6, 0 - bl GetOppositeDirection - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _080E543E - movs r0, 0x6 - strb r0, [r4, 0x8] - movs r0, 0x9 - b _080E544E -_080E543E: - movs r0, 0x2 - strb r0, [r4, 0x2] - movs r0, 0x5 - strb r0, [r4, 0x8] - movs r0, 0x8 - b _080E544E -_080E544A: - strb r6, [r5] - movs r0, 0 -_080E544E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeChangingDirection - - thumb_func_start CheckMovementInputAcroBikeStandingWheelie -CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080E54A0 @ =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E54A4 @ =gMapObjects - adds r1, r0, r1 - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x2 - ands r4, r0 - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0 - bne _080E54A8 - strb r4, [r5, 0xA] - ldrb r0, [r1, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080E54AE - strb r6, [r7] - strb r0, [r5, 0x8] - bl sub_80E6024 - movs r0, 0x4 - b _080E54EC - .align 2, 0 -_080E54A0: .4byte gPlayerAvatar -_080E54A4: .4byte gMapObjects -_080E54A8: - ldrb r0, [r5, 0xA] - adds r0, 0x1 - strb r0, [r5, 0xA] -_080E54AE: - ldr r1, _080E54C4 @ =gPlayerAvatar - ldrb r0, [r1, 0xA] - cmp r0, 0x27 - bls _080E54C8 - strb r6, [r7] - movs r0, 0x3 - strb r0, [r1, 0x8] - bl sub_80E6024 - movs r0, 0x6 - b _080E54EC - .align 2, 0 -_080E54C4: .4byte gPlayerAvatar -_080E54C8: - ldrb r0, [r7] - cmp r0, r6 - bne _080E54DE - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_80E6024 - movs r0, 0xA - b _080E54EC -_080E54DE: - cmp r0, 0 - beq _080E54E8 - movs r0, 0x1 - strb r0, [r1, 0x2] - b _080E54EA -_080E54E8: - strb r6, [r7] -_080E54EA: - movs r0, 0x5 -_080E54EC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeStandingWheelie - - thumb_func_start CheckMovementInputAcroBikeBunnyHop -CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, _080E5554 @ =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5558 @ =gMapObjects - adds r7, r0, r1 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080E5566 - bl sub_80E6024 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080E555C - movs r0, 0x2 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E558A - .align 2, 0 -_080E5554: .4byte gPlayerAvatar -_080E5558: .4byte gMapObjects -_080E555C: - strb r5, [r6] - strb r0, [r4, 0x2] - strb r0, [r4, 0x8] - movs r0, 0x4 - b _080E558A -_080E5566: - ldrb r0, [r6] - cmp r0, 0 - bne _080E5570 - strb r5, [r6] - b _080E557C -_080E5570: - cmp r0, r2 - beq _080E5582 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E5582 - movs r0, 0x1 -_080E557C: - strb r0, [r4, 0x2] - movs r0, 0x6 - b _080E558A -_080E5582: - ldr r1, _080E5598 @ =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x7 -_080E558A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E5598: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeBunnyHop - - thumb_func_start CheckMovementInputAcroBikeMovingWheelie -CheckMovementInputAcroBikeMovingWheelie: @ 80E559C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, _080E55F8 @ =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E55FC @ =gMapObjects - adds r7, r0, r1 - movs r0, 0x2 - mov r9, r0 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080E5634 - bl sub_80E6024 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080E5620 - strb r1, [r4, 0x8] - ldrb r0, [r6] - cmp r0, 0 - bne _080E5600 - strb r5, [r6] - b _080E560A - .align 2, 0 -_080E55F8: .4byte gPlayerAvatar -_080E55FC: .4byte gMapObjects -_080E5600: - cmp r0, r5 - beq _080E5610 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E5610 -_080E560A: - strb r1, [r4, 0x2] - movs r0, 0x4 - b _080E5664 -_080E5610: - ldr r1, _080E561C @ =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xC - b _080E5664 - .align 2, 0 -_080E561C: .4byte gPlayerAvatar -_080E5620: - mov r0, r9 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r10 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _080E5664 -_080E5634: - ldrb r0, [r6] - cmp r0, 0 - bne _080E564A - strb r5, [r6] - mov r1, r9 - strb r1, [r4, 0x8] - strb r0, [r4, 0x2] - bl sub_80E6024 - movs r0, 0x5 - b _080E5664 -_080E564A: - cmp r2, r0 - beq _080E565C - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080E565C - movs r0, 0 - strb r0, [r4, 0x2] - movs r0, 0x5 - b _080E5664 -_080E565C: - ldr r1, _080E5674 @ =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xA -_080E5664: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E5674: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeMovingWheelie - - thumb_func_start CheckMovementInputAcroBikeUnknownMode5 -CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _080E56CC @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E56D0 @ =gMapObjects - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r0, 0x18] - lsls r1, 28 - lsrs r1, 28 - bl FieldObjectSetDirection - movs r0, 0 - strb r0, [r6, 0x8] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080E56CC: .4byte gPlayerAvatar -_080E56D0: .4byte gMapObjects - thumb_func_end CheckMovementInputAcroBikeUnknownMode5 - - thumb_func_start CheckMovementInputAcroBikeUnknownMode6 -CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080E56F4 @ =gPlayerAvatar - movs r3, 0 - strb r3, [r4, 0x8] - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E56F4: .4byte gPlayerAvatar - thumb_func_end CheckMovementInputAcroBikeUnknownMode6 - - thumb_func_start sub_80E56F8 -sub_80E56F8: @ 80E56F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - pop {r0} - bx r0 - thumb_func_end sub_80E56F8 - - thumb_func_start sub_80E5708 -sub_80E5708: @ 80E5708 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E573C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5740 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E572E - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E572E: - adds r0, r4, 0 - bl PlayerFaceDirection - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E573C: .4byte gPlayerAvatar -_080E5740: .4byte gMapObjects - thumb_func_end sub_80E5708 - - thumb_func_start sub_80E5744 -sub_80E5744: @ 80E5744 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r0, _080E5774 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5778 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E577C - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_80E56F8 - b _080E57B6 - .align 2, 0 -_080E5774: .4byte gPlayerAvatar -_080E5778: .4byte gMapObjects -_080E577C: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E57B0 - cmp r1, 0x6 - bne _080E579E - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E57B6 -_080E579E: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E57B6 - adds r0, r4, 0 - bl PlayerOnBikeCollide - b _080E57B6 -_080E57B0: - adds r0, r6, 0 - bl npc_use_some_d2s -_080E57B6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E5744 - - thumb_func_start sub_80E57BC -sub_80E57BC: @ 80E57BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E57F0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E57F4 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E57E2 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E57E2: - adds r0, r4, 0 - bl sub_805951C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E57F0: .4byte gPlayerAvatar -_080E57F4: .4byte gMapObjects - thumb_func_end sub_80E57BC - - thumb_func_start sub_80E57F8 -sub_80E57F8: @ 80E57F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E582C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5830 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E581E - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E581E: - adds r0, r4, 0 - bl sub_8059534 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E582C: .4byte gPlayerAvatar -_080E5830: .4byte gMapObjects - thumb_func_end sub_80E57F8 - - thumb_func_start sub_80E5834 -sub_80E5834: @ 80E5834 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E5868 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E586C @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E585A - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E585A: - adds r0, r4, 0 - bl sub_8059504 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5868: .4byte gPlayerAvatar -_080E586C: .4byte gMapObjects - thumb_func_end sub_80E5834 - - thumb_func_start sub_80E5870 -sub_80E5870: @ 80E5870 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E58A4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E58A8 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5896 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_080E5896: - adds r0, r4, 0 - bl sub_805954C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E58A4: .4byte gPlayerAvatar -_080E58A8: .4byte gMapObjects - thumb_func_end sub_80E5870 - - thumb_func_start sub_80E58AC -sub_80E58AC: @ 80E58AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E58D8 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E58DC @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E58E0 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_80E5870 - b _080E591A - .align 2, 0 -_080E58D8: .4byte gPlayerAvatar -_080E58DC: .4byte gMapObjects -_080E58E0: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080E5914 - cmp r1, 0x9 - beq _080E5914 - cmp r1, 0x6 - bne _080E58FE - adds r0, r4, 0 - bl sub_8059594 - b _080E591A -_080E58FE: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E591A - cmp r1, 0xB - bhi _080E5914 - adds r0, r4, 0 - bl sub_80E5870 - b _080E591A -_080E5914: - adds r0, r4, 0 - bl sub_8059570 -_080E591A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E58AC - - thumb_func_start sub_80E5920 -sub_80E5920: @ 80E5920 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - beq _080E5954 - cmp r0, 0x7 - beq _080E5980 - cmp r0, 0x9 - bls _080E594C - adds r0, r1, 0 - adds r1, r5, 0 - bl sub_80E5EC0 - lsls r0, 24 - cmp r0, 0 - bne _080E5954 -_080E594C: - adds r0, r5, 0 - bl sub_80E5708 - b _080E5980 -_080E5954: - ldr r0, _080E5988 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080E598C @ =gMapObjects - adds r4, r0 - movs r0, 0x22 - bl PlaySE - ldrb r0, [r4, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_80608A4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc -_080E5980: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E5988: .4byte gPlayerAvatar -_080E598C: .4byte gMapObjects - thumb_func_end sub_80E5920 - - thumb_func_start sub_80E5990 -sub_80E5990: @ 80E5990 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80595B8 - pop {r0} - bx r0 - thumb_func_end sub_80E5990 - - thumb_func_start sub_80E59A0 -sub_80E59A0: @ 80E59A0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, _080E59D0 @ =gPlayerAvatar - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E59D4 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E59D8 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_8059504 - b _080E5A28 - .align 2, 0 -_080E59D0: .4byte gPlayerAvatar -_080E59D4: .4byte gMapObjects -_080E59D8: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5A1E - cmp r1, 0x6 - bne _080E59FA - adds r0, r4, 0 - bl sub_8059594 - b _080E5A28 -_080E59FA: - cmp r1, 0x9 - beq _080E5A0E - cmp r1, 0x4 - bhi _080E5A28 - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5A16 -_080E5A0E: - adds r0, r4, 0 - bl sub_8059504 - b _080E5A28 -_080E5A16: - adds r0, r4, 0 - bl sub_80595DC - b _080E5A28 -_080E5A1E: - adds r0, r6, 0 - bl sub_8059618 - movs r0, 0x2 - strb r0, [r7, 0x2] -_080E5A28: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E59A0 - - thumb_func_start sub_80E5A30 -sub_80E5A30: @ 80E5A30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, _080E5A60 @ =gPlayerAvatar - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5A64 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5A68 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_805951C - b _080E5AB8 - .align 2, 0 -_080E5A60: .4byte gPlayerAvatar -_080E5A64: .4byte gMapObjects -_080E5A68: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5AAE - cmp r1, 0x6 - bne _080E5A8A - adds r0, r4, 0 - bl sub_8059594 - b _080E5AB8 -_080E5A8A: - cmp r1, 0x9 - beq _080E5A9E - cmp r1, 0x4 - bhi _080E5AB8 - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5AA6 -_080E5A9E: - adds r0, r4, 0 - bl sub_8059504 - b _080E5AB8 -_080E5AA6: - adds r0, r4, 0 - bl sub_80595DC - b _080E5AB8 -_080E5AAE: - adds r0, r6, 0 - bl sub_8059600 - movs r0, 0x2 - strb r0, [r7, 0x2] -_080E5AB8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E5A30 - - thumb_func_start sub_80E5AC0 -sub_80E5AC0: @ 80E5AC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r0, _080E5AF0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E5AF4 @ =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_80E5E70 - lsls r0, 24 - cmp r0, 0 - bne _080E5AF8 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_8059534 - b _080E5B32 - .align 2, 0 -_080E5AF0: .4byte gPlayerAvatar -_080E5AF4: .4byte gMapObjects -_080E5AF8: - adds r0, r4, 0 - bl sub_80E5D34 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _080E5B2C - cmp r1, 0x6 - bne _080E5B1A - adds r0, r4, 0 - bl PlayerJumpLedge - b _080E5B32 -_080E5B1A: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _080E5B32 - adds r0, r4, 0 - bl sub_8059534 - b _080E5B32 -_080E5B2C: - adds r0, r6, 0 - bl sub_8059630 -_080E5B32: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E5AC0 - - thumb_func_start sub_80E5B38 -sub_80E5B38: @ 80E5B38 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - ldr r0, _080E5B5C @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E5B56 - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_80E5B60 -_080E5B56: - pop {r0} - bx r0 - .align 2, 0 -_080E5B5C: .4byte gPlayerAvatar - thumb_func_end sub_80E5B38 - - thumb_func_start sub_80E5B60 -sub_80E5B60: @ 80E5B60 - push {r4,r5,lr} - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r5, 0 - bl sub_80E5CF4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, _080E5B88 @ =gPlayerAvatar - ldr r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _080E5B8C - ldrb r0, [r4, 0x14] - cmp r0, 0xFE - bhi _080E5B96 - adds r0, 0x1 - strb r0, [r4, 0x14] - b _080E5B96 - .align 2, 0 -_080E5B88: .4byte gPlayerAvatar -_080E5B8C: - adds r0, r2, 0 - bl sub_80E5C7C - movs r0, 0 - strb r0, [r4, 0xB] -_080E5B96: - movs r0, 0xF - adds r2, r5, 0 - ands r2, r0 - ldr r4, _080E5BB4 @ =gPlayerAvatar - ldr r0, [r4, 0x10] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _080E5BB8 - ldrb r0, [r4, 0x1C] - cmp r0, 0xFE - bhi _080E5BC2 - adds r0, 0x1 - strb r0, [r4, 0x1C] - b _080E5BC2 - .align 2, 0 -_080E5BB4: .4byte gPlayerAvatar -_080E5BB8: - adds r0, r2, 0 - bl sub_80E5CB8 - movs r0, 0 - strb r0, [r4, 0xB] -_080E5BC2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80E5B60 - - thumb_func_start sub_80E5BC8 -sub_80E5BC8: @ 80E5BC8 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - movs r2, 0 - ldrb r0, [r3] - cmp r0, 0 - beq _080E5BF2 - ldr r5, _080E5C0C @ =gUnknown_0202E86C -_080E5BD8: - adds r0, r2, r5 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _080E5C08 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080E5BD8 -_080E5BF2: - movs r2, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _080E5C22 - ldr r3, _080E5C10 @ =gUnknown_0202E874 -_080E5BFC: - adds r0, r2, r3 - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _080E5C14 -_080E5C08: - movs r0, 0 - b _080E5C24 - .align 2, 0 -_080E5C0C: .4byte gUnknown_0202E86C -_080E5C10: .4byte gUnknown_0202E874 -_080E5C14: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080E5BFC -_080E5C22: - movs r0, 0x1 -_080E5C24: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5BC8 - - thumb_func_start sub_80E5C2C -sub_80E5C2C: @ 80E5C2C - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_080E5C32: - ldr r0, _080E5C64 @ =gUnknown_083DB608 - adds r4, r5, r0 - ldr r0, _080E5C68 @ =gPlayerAvatar - ldr r1, [r0, 0xC] - ldr r2, [r0, 0x10] - ldr r0, [r4, 0x8] - ands r1, r0 - ldr r0, [r4, 0xC] - ands r2, r0 - ldr r0, [r4] - cmp r1, r0 - bne _080E5C6C - ldr r0, [r4, 0x4] - cmp r2, r0 - bne _080E5C6C - ldr r0, [r4, 0x10] - ldr r1, [r4, 0x14] - bl sub_80E5BC8 - lsls r0, 24 - cmp r0, 0 - beq _080E5C6C - ldrb r0, [r4, 0x18] - b _080E5C76 - .align 2, 0 -_080E5C64: .4byte gUnknown_083DB608 -_080E5C68: .4byte gPlayerAvatar -_080E5C6C: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - bls _080E5C32 - movs r0, 0 -_080E5C76: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E5C2C - - thumb_func_start sub_80E5C7C -sub_80E5C7C: @ 80E5C7C - push {r4,lr} - lsls r0, 24 - ldr r3, _080E5CB4 @ =gPlayerAvatar - ldr r2, [r3, 0xC] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0xC] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x14 -_080E5C98: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080E5C98 - movs r0, 0x1 - strb r0, [r4, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5CB4: .4byte gPlayerAvatar - thumb_func_end sub_80E5C7C - - thumb_func_start sub_80E5CB8 -sub_80E5CB8: @ 80E5CB8 - push {r4,lr} - lsls r0, 24 - ldr r3, _080E5CF0 @ =gPlayerAvatar - ldr r2, [r3, 0x10] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0x10] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x1C -_080E5CD4: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080E5CD4 - movs r0, 0x1 - strb r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5CF0: .4byte gPlayerAvatar - thumb_func_end sub_80E5CB8 - - thumb_func_start sub_80E5CF4 -sub_80E5CF4: @ 80E5CF4 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E5D08 - movs r0, 0x2 - b _080E5D2E -_080E5D08: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E5D14 - movs r0, 0x1 - b _080E5D2E -_080E5D14: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080E5D20 - movs r0, 0x3 - b _080E5D2E -_080E5D20: - movs r0, 0x10 - ands r2, r0 - cmp r2, 0 - bne _080E5D2C - movs r0, 0 - b _080E5D2E -_080E5D2C: - movs r0, 0x4 -_080E5D2E: - pop {r1} - bx r1 - thumb_func_end sub_80E5CF4 - - thumb_func_start sub_80E5D34 -sub_80E5D34: @ 80E5D34 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _080E5D98 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080E5D9C @ =gMapObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl sub_80E5DA0 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080E5D98: .4byte gPlayerAvatar -_080E5D9C: .4byte gMapObjects - thumb_func_end sub_80E5D34 - - thumb_func_start sub_80E5DA0 -sub_80E5DA0: @ 80E5DA0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r5, r4, 0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - str r5, [sp] - bl CheckForFieldObjectCollision - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bhi _080E5DE0 - cmp r4, 0 - bne _080E5DDC - adds r0, r5, 0 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - beq _080E5DD8 - movs r4, 0x2 -_080E5DD8: - cmp r4, 0 - beq _080E5DE0 -_080E5DDC: - bl sub_80E5E4C -_080E5DE0: - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5DA0 - - thumb_func_start sub_80E5DEC -sub_80E5DEC: @ 80E5DEC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _080E5E04 - ldr r0, _080E5E08 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x8 - bne _080E5E0C -_080E5E04: - movs r0, 0x1 - b _080E5E0E - .align 2, 0 -_080E5E08: .4byte gMapHeader -_080E5E0C: - movs r0, 0 -_080E5E0E: - pop {r1} - bx r1 - thumb_func_end sub_80E5DEC - - thumb_func_start IsRunningDisallowedByMetatile -IsRunningDisallowedByMetatile: @ 80E5E14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsRunningDisallowed - lsls r0, 24 - cmp r0, 0 - bne _080E5E3E - adds r0, r4, 0 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - cmp r0, 0 - beq _080E5E42 - bl PlayerGetZCoord - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080E5E42 -_080E5E3E: - movs r0, 0x1 - b _080E5E44 -_080E5E42: - movs r0, 0 -_080E5E44: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsRunningDisallowedByMetatile - - thumb_func_start sub_80E5E4C -sub_80E5E4C: @ 80E5E4C - push {lr} - ldr r0, _080E5E68 @ =gUnknown_02039250 - ldrb r0, [r0] - cmp r0, 0 - beq _080E5E62 - ldr r1, _080E5E6C @ =gUnknown_02039251 - ldrb r0, [r1] - cmp r0, 0x63 - bhi _080E5E62 - adds r0, 0x1 - strb r0, [r1] -_080E5E62: - pop {r0} - bx r0 - .align 2, 0 -_080E5E68: .4byte gUnknown_02039250 -_080E5E6C: .4byte gUnknown_02039251 - thumb_func_end sub_80E5E4C - - thumb_func_start sub_80E5E70 -sub_80E5E70: @ 80E5E70 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - movs r1, 0xFD - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080E5E9A - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - cmp r0, 0 - bne _080E5EB2 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - b _080E5EAC -_080E5E9A: - adds r0, r5, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - cmp r0, 0 - bne _080E5EB2 - adds r0, r5, 0 - bl MetatileBehavior_IsHorizontalRail -_080E5EAC: - lsls r0, 24 - cmp r0, 0 - beq _080E5EB6 -_080E5EB2: - movs r0, 0 - b _080E5EB8 -_080E5EB6: - movs r0, 0x1 -_080E5EB8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80E5E70 - - thumb_func_start sub_80E5EC0 -sub_80E5EC0: @ 80E5EC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - movs r3, 0xFF - lsls r3, 24 - adds r1, r3 - lsrs r1, 24 - cmp r1, 0x1 - bhi _080E5EE0 - cmp r0, 0xA - beq _080E5EE8 - cmp r0, 0xC - bne _080E5EEC - b _080E5EE8 -_080E5EE0: - cmp r2, 0xB - beq _080E5EE8 - cmp r2, 0xD - bne _080E5EEC -_080E5EE8: - movs r0, 0 - b _080E5EEE -_080E5EEC: - movs r0, 0x1 -_080E5EEE: - pop {r1} - bx r1 - thumb_func_end sub_80E5EC0 - - thumb_func_start sub_80E5EF4 -sub_80E5EF4: @ 80E5EF4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080E5F30 @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - bne _080E5F34 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _080E5F34 - movs r0, 0 - b _080E5F36 - .align 2, 0 -_080E5F30: .4byte gPlayerAvatar -_080E5F34: - movs r0, 0x1 -_080E5F36: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E5EF4 - - thumb_func_start player_should_look_direction_be_enforced_upon_movement -player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080E5F74 - ldr r2, _080E5F6C @ =gMapObjects - ldr r0, _080E5F70 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E5F74 - movs r0, 0 - b _080E5F76 - .align 2, 0 -_080E5F6C: .4byte gMapObjects -_080E5F70: .4byte gPlayerAvatar -_080E5F74: - movs r0, 0x1 -_080E5F76: - pop {r1} - bx r1 - thumb_func_end player_should_look_direction_be_enforced_upon_movement - - thumb_func_start GetOnOffBike -GetOnOffBike: @ 80E5F7C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080E5FA4 @ =gUnknown_0202E854 - movs r0, 0 - strb r0, [r1] - ldr r0, _080E5FA8 @ =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _080E5FAC - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - bl sav1_reset_battle_music_maybe - bl sub_8053E90 - b _080E5FC0 - .align 2, 0 -_080E5FA4: .4byte gUnknown_0202E854 -_080E5FA8: .4byte gPlayerAvatar -_080E5FAC: - adds r0, r2, 0 - bl SetPlayerAvatarTransitionFlags - ldr r4, _080E5FC8 @ =0x00000193 - adds r0, r4, 0 - bl sav1_set_battle_music_maybe - adds r0, r4, 0 - bl sub_8053FB0 -_080E5FC0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E5FC8: .4byte 0x00000193 - thumb_func_end GetOnOffBike - - thumb_func_start sub_80E5FCC -sub_80E5FCC: @ 80E5FCC - push {lr} - ldr r2, _080E6008 @ =gPlayerAvatar - movs r3, 0 - strb r3, [r2, 0x8] - strb r3, [r2, 0x9] - strb r3, [r2, 0xA] - strb r3, [r2, 0xB] - str r0, [r2, 0xC] - str r1, [r2, 0x10] - movs r1, 0 - adds r2, 0x14 -_080E5FE2: - adds r0, r1, r2 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _080E5FE2 - movs r1, 0 - ldr r3, _080E600C @ =gUnknown_0202E874 - movs r2, 0 -_080E5FF6: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _080E5FF6 - pop {r0} - bx r0 - .align 2, 0 -_080E6008: .4byte gPlayerAvatar -_080E600C: .4byte gUnknown_0202E874 - thumb_func_end sub_80E5FCC - - thumb_func_start sub_80E6010 -sub_80E6010: @ 80E6010 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E6020 @ =gPlayerAvatar - strb r0, [r2, 0xA] - lsrs r1, r0, 1 - adds r0, r1 - strb r0, [r2, 0xB] - bx lr - .align 2, 0 -_080E6020: .4byte gPlayerAvatar - thumb_func_end sub_80E6010 - - thumb_func_start sub_80E6024 -sub_80E6024: @ 80E6024 - ldr r1, _080E6030 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0xA] - strb r0, [r1, 0xB] - bx lr - .align 2, 0 -_080E6030: .4byte gPlayerAvatar - thumb_func_end sub_80E6024 - - thumb_func_start sub_80E6034 -sub_80E6034: @ 80E6034 - push {lr} - sub sp, 0x8 - ldr r1, _080E605C @ =gUnknown_083DB600 - mov r0, sp - movs r2, 0x6 - bl memcpy - ldr r2, _080E6060 @ =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6064 - ldrb r0, [r2, 0xA] - lsls r0, 1 - add r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - b _080E607E - .align 2, 0 -_080E605C: .4byte gUnknown_083DB600 -_080E6060: .4byte gPlayerAvatar -_080E6064: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E6070 - movs r0, 0x3 - b _080E607E -_080E6070: - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _080E607C - movs r0, 0x1 - b _080E607E -_080E607C: - movs r0, 0x2 -_080E607E: - add sp, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_80E6034 - - thumb_func_start sub_80E6084 -sub_80E6084: @ 80E6084 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080E60D4 @ =gPlayerAvatar - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E60CC - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _080E60CC - movs r0, 0x2 - strb r0, [r5, 0x8] - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_8059C94 -_080E60CC: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E60D4: .4byte gPlayerAvatar - thumb_func_end sub_80E6084 - - thumb_func_start sub_80E60D8 -sub_80E60D8: @ 80E60D8 - push {r4-r7,lr} - movs r4, 0x3 - ldr r0, _080E60F4 @ =gUnknown_0202E8CC - ldrh r1, [r0] - adds r7, r0, 0 - cmp r1, 0xD - bls _080E60E8 - b _080E6284 -_080E60E8: - lsls r0, r1, 2 - ldr r1, _080E60F8 @ =_080E60FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E60F4: .4byte gUnknown_0202E8CC -_080E60F8: .4byte _080E60FC - .align 2, 0 -_080E60FC: - .4byte _080E6134 - .4byte _080E613C - .4byte _080E6144 - .4byte _080E614C - .4byte _080E6154 - .4byte _080E619C - .4byte _080E616C - .4byte _080E61BC - .4byte _080E61E0 - .4byte _080E61FC - .4byte _080E6200 - .4byte _080E6214 - .4byte _080E623C - .4byte _080E6260 -_080E6134: - ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C - b _080E624C - .align 2, 0 -_080E6138: .4byte gSaveBlock1 + 0x2B1C -_080E613C: - ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 - b _080E6276 - .align 2, 0 -_080E6140: .4byte gSaveBlock1 + 0x2B28 -_080E6144: - ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 - b _080E624C - .align 2, 0 -_080E6148: .4byte gSaveBlock1 + 0x2B34 -_080E614C: - ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 - b _080E6276 - .align 2, 0 -_080E6150: .4byte gSaveBlock1 + 0x2B40 -_080E6154: - ldr r0, _080E6164 @ =gUnknown_0202E8CE - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C - adds r1, r0, r1 - b _080E624C - .align 2, 0 -_080E6164: .4byte gUnknown_0202E8CE -_080E6168: .4byte gSaveBlock1 + 0x2B4C -_080E616C: - ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - ldr r1, _080E6198 @ =sub_80546B8 - mov r12, r1 - adds r3, r0, 0 - adds r3, 0xE - adds r5, r0, 0x2 - adds r6, r3, 0 -_080E617C: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080E617C - adds r1, r6, 0 - b _080E627A - .align 2, 0 -_080E6194: .4byte gSaveBlock1 + 0x2D94 -_080E6198: .4byte sub_80546B8 -_080E619C: - ldr r0, _080E61B0 @ =gUnknown_0202E8CE - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C - adds r1, r0, r1 - ldr r0, _080E61B8 @ =gUnknown_0202E8D0 - ldrb r4, [r0] - b _080E6276 - .align 2, 0 -_080E61B0: .4byte gUnknown_0202E8CE -_080E61B4: .4byte gSaveBlock1 + 0x273C -_080E61B8: .4byte gUnknown_0202E8D0 -_080E61BC: - ldr r0, _080E61D4 @ =gUnknown_0202E8CE - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 - adds r1, r0 - ldr r0, _080E61DC @ =gUnknown_0202E8D0 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - b _080E624A - .align 2, 0 -_080E61D4: .4byte gUnknown_0202E8CE -_080E61D8: .4byte gSaveBlock1 + 0x2754 -_080E61DC: .4byte gUnknown_0202E8D0 -_080E61E0: - ldr r0, _080E61F4 @ =gUnknown_0202E8CE - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A - adds r1, r0, r1 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E61F4: .4byte gUnknown_0202E8CE -_080E61F8: .4byte gSaveBlock1 + 0x273A -_080E61FC: - movs r1, 0 - b _080E624C -_080E6200: - ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 - ldr r2, _080E6210 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - b _080E624A - .align 2, 0 -_080E620C: .4byte gSaveBlock1 + 0x2B16 -_080E6210: .4byte 0x0000ffff -_080E6214: - ldr r0, _080E6230 @ =gUnknown_0202E8CE - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C - adds r1, r0 - ldr r0, _080E6238 @ =gUnknown_0202E8D0 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E6230: .4byte gUnknown_0202E8CE -_080E6234: .4byte gSaveBlock1 + 0x273C -_080E6238: .4byte gUnknown_0202E8D0 -_080E623C: - ldr r0, _080E6254 @ =gUnknown_0202E8CE - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 - adds r1, r0, r1 -_080E624A: - movs r4, 0x1 -_080E624C: - ldr r0, _080E625C @ =sub_80546B8 - mov r12, r0 - b _080E627A - .align 2, 0 -_080E6254: .4byte gUnknown_0202E8CE -_080E6258: .4byte gSaveBlock1 + 0x2750 -_080E625C: .4byte sub_80546B8 -_080E6260: - ldr r1, _080E628C @ =0x02001000 - ldr r0, _080E6290 @ =0x00009c7c - adds r2, r1, r0 - ldr r0, _080E6294 @ =0x0000ffff - strh r0, [r2] - ldr r0, _080E6298 @ =0x00009c7e - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - adds r1, r2, 0 -_080E6276: - ldr r2, _080E629C @ =sub_80546B8 - mov r12, r2 -_080E627A: - ldrb r0, [r7] - mov r2, r12 - adds r3, r4, 0 - bl sub_80E62A0 -_080E6284: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E628C: .4byte 0x02001000 -_080E6290: .4byte 0x00009c7c -_080E6294: .4byte 0x0000ffff -_080E6298: .4byte 0x00009c7e -_080E629C: .4byte sub_80546B8 - thumb_func_end sub_80E60D8 - - thumb_func_start sub_80E62A0 -sub_80E62A0: @ 80E62A0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080E62DC @ =0x02001000 - str r2, [r4] - str r1, [r4, 0x4] - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r0, 0x9 - bne _080E62D0 - ldr r0, _080E62E0 @ =0x00009c7c - adds r2, r4, r0 - str r2, [r4, 0x4] - ldr r0, _080E62E4 @ =gSaveBlock1 - ldr r3, _080E62E8 @ =0x00002dd8 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2] - ldr r1, _080E62EC @ =0x00002dda - adds r0, r1 - ldrh r1, [r0] - ldr r2, _080E62F0 @ =0x00009c7e - adds r0, r4, r2 - strh r1, [r0] -_080E62D0: - ldr r0, _080E62F4 @ =sub_80E62F8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E62DC: .4byte 0x02001000 -_080E62E0: .4byte 0x00009c7c -_080E62E4: .4byte gSaveBlock1 -_080E62E8: .4byte 0x00002dd8 -_080E62EC: .4byte 0x00002dda -_080E62F0: .4byte 0x00009c7e -_080E62F4: .4byte sub_80E62F8 - thumb_func_end sub_80E62A0 - - thumb_func_start sub_80E62F8 -sub_80E62F8: @ 80E62F8 - push {lr} - sub sp, 0x4 - ldr r0, _080E6314 @ =gMain - ldr r1, _080E6318 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080E6344 - lsls r0, 2 - ldr r1, _080E631C @ =_080E6320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6314: .4byte gMain -_080E6318: .4byte 0x0000043c -_080E631C: .4byte _080E6320 - .align 2, 0 -_080E6320: - .4byte _080E6344 - .4byte _080E6380 - .4byte _080E638C - .4byte _080E63A8 - .4byte _080E63AE - .4byte _080E63B4 - .4byte _080E63BE - .4byte _080E63D8 - .4byte _080E63EA -_080E6344: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl dp12_8087EA4 - bl remove_some_task - bl sub_80EAD08 - ldr r2, _080E637C @ =gUnknown_083DB698 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80895F8 - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080E6402 - .align 2, 0 -_080E637C: .4byte gUnknown_083DB698 -_080E6380: - ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 - bl SetUpWindowConfig - b _080E6402 - .align 2, 0 -_080E6388: .4byte gWindowConfig_81E6DA8 -_080E638C: - ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 - bl InitMenuWindow - ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080E6402 - .align 2, 0 -_080E63A0: .4byte gWindowConfig_81E6D54 -_080E63A4: .4byte gWindowConfig_81E6DA8 -_080E63A8: - bl sub_80E6424 - b _080E6402 -_080E63AE: - bl sub_80E8DD8 - b _080E6402 -_080E63B4: - bl sub_80E8218 - bl sub_80E8CEC - b _080E6402 -_080E63BE: - bl sub_80E69F8 - ldr r0, _080E63D0 @ =sub_80E6AA8 - bl sub_80E682C - ldr r0, _080E63D4 @ =sub_80E6A6C - bl SetVBlankCallback - b _080E6402 - .align 2, 0 -_080E63D0: .4byte sub_80E6AA8 -_080E63D4: .4byte sub_80E6A6C -_080E63D8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080E6402 -_080E63EA: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E6414 @ =sub_80E6A88 - bl SetMainCallback2 - ldr r0, _080E6418 @ =0x00000805 - bl FlagSet -_080E6402: - ldr r1, _080E641C @ =gMain - ldr r0, _080E6420 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080E6414: .4byte sub_80E6A88 -_080E6418: .4byte 0x00000805 -_080E641C: .4byte gMain -_080E6420: .4byte 0x0000043c - thumb_func_end sub_80E62F8 - - thumb_func_start sub_80E6424 -sub_80E6424: @ 80E6424 - push {lr} - ldr r2, _080E6444 @ =0x02001000 - ldr r0, _080E6448 @ =gUnknown_083DB6A4 - ldrb r1, [r2, 0x8] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0x9] - ldrb r0, [r2, 0x9] - adds r3, r2, 0 - cmp r0, 0x5 - bhi _080E6512 - lsls r0, 2 - ldr r1, _080E644C @ =_080E6450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6444: .4byte 0x02001000 -_080E6448: .4byte gUnknown_083DB6A4 -_080E644C: .4byte _080E6450 - .align 2, 0 -_080E6450: - .4byte _080E64A0 - .4byte _080E64B8 - .4byte _080E64DA - .4byte _080E64F6 - .4byte _080E6468 - .4byte _080E6480 -_080E6468: - movs r2, 0x4 - strb r2, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - movs r1, 0x2 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x5 - b _080E64D0 -_080E6480: - movs r1, 0x4 - strb r1, [r3, 0xA] - adds r2, r3, 0 - adds r2, 0x83 - movs r0, 0x1 - strb r0, [r2] - adds r0, r3, 0 - adds r0, 0x84 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - b _080E6510 -_080E64A0: - movs r0, 0x6 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x84 - movs r2, 0x3 - strb r2, [r0] - adds r1, 0x5 - b _080E64CE -_080E64B8: - movs r2, 0 - movs r0, 0x9 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x5 - strb r0, [r1] - adds r1, 0x4 -_080E64CE: - movs r0, 0x4 -_080E64D0: - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8A - strh r2, [r0] - b _080E6512 -_080E64DA: - movs r1, 0x1 - strb r1, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - b _080E6510 -_080E64F6: - movs r0, 0x2 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3 -_080E6510: - strh r0, [r1] -_080E6512: - adds r1, r3, 0 - adds r1, 0x86 - movs r0, 0 - strb r0, [r1] - subs r1, 0x1 - strb r0, [r1] - adds r1, 0x2 - strb r0, [r1] - subs r1, 0x61 - strb r0, [r1] - movs r2, 0xDD - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - movs r0, 0xDF - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80E6554 - bl sub_80EAECC - bl sub_80EB040 - bl sub_80E7E50 - bl sub_80E6630 - bl sub_80E6690 - pop {r0} - bx r0 - thumb_func_end sub_80E6424 - - thumb_func_start sub_80E6554 -sub_80E6554: @ 80E6554 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - movs r7, 0 - ldr r0, _080E6564 @ =0x02001000 - mov r12, r0 - b _080E656E - .align 2, 0 -_080E6564: .4byte 0x02001000 -_080E6568: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080E656E: - movs r5, 0 - lsls r3, r7, 1 - mov r6, r12 - adds r6, 0x2A - adds r2, r3, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - beq _080E65A6 -_080E6586: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bhi _080E65A2 - adds r2, r5, r3 - adds r2, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - bne _080E6586 -_080E65A2: - cmp r4, 0x11 - bne _080E6568 -_080E65A6: - movs r0, 0x11 - mov r1, r12 - strh r0, [r1, 0x28] - cmp r4, 0x15 - bhi _080E6612 - mov r6, r12 - adds r2, r6, 0 - adds r2, 0x78 -_080E65B6: - lsls r0, r4, 24 - lsrs r0, 24 - str r2, [sp] - bl sub_80EAD7C - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [sp] - cmp r1, 0 - beq _080E65FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E65DC - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 -_080E65DC: - lsls r0, r7, 1 - adds r0, r5, r0 - adds r1, r6, 0 - adds r1, 0x2A - adds r0, r1 - strb r4, [r0] - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r6, 0x28] - adds r0, 0x1 - strh r0, [r6, 0x28] - mov r12, r6 - b _080E6608 -_080E65FC: - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - strb r1, [r0] - ldr r0, _080E662C @ =0x02001000 - mov r12, r0 -_080E6608: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x15 - bls _080E65B6 -_080E6612: - mov r1, r12 - ldrh r0, [r1, 0x28] - adds r0, 0x1 - asrs r0, 1 - movs r1, 0xDB - lsls r1, 1 - add r1, r12 - strb r0, [r1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E662C: .4byte 0x02001000 - thumb_func_end sub_80E6554 - - thumb_func_start sub_80E6630 -sub_80E6630: @ 80E6630 - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080E6664 @ =gUnknown_083DB6B2 - mov r12, r0 -_080E6638: - lsls r0, r1, 4 - mov r2, r12 - adds r5, r0, r2 - movs r3, 0 - ldrb r0, [r5] - adds r7, r1, 0x1 - cmp r0, 0xFF - beq _080E6680 - lsls r0, r1, 3 - subs r0, r1 - lsls r4, r0, 1 - ldr r6, _080E6668 @ =0x02001040 -_080E6650: - adds r0, r5, r3 - ldrb r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _080E666C - adds r0, r3, r4 - adds r0, r6 - adds r1, 0x46 - strb r1, [r0] - b _080E6672 - .align 2, 0 -_080E6664: .4byte gUnknown_083DB6B2 -_080E6668: .4byte 0x02001040 -_080E666C: - adds r0, r3, r4 - adds r0, r6 - strb r2, [r0] -_080E6672: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6650 -_080E6680: - lsls r0, r7, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080E6638 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E6630 - - thumb_func_start sub_80E6690 -sub_80E6690: @ 80E6690 - push {r4-r6,lr} - sub sp, 0x10 - mov r0, sp - ldr r1, _080E66E0 @ =gUnknown_083DB7DC - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - ldr r6, _080E66E4 @ =gUnknown_083DB7C0 -_080E66A4: - ldr r0, _080E66E8 @ =0x02001000 - ldrb r0, [r0, 0x8] - lsls r0, 1 - adds r0, r5, r0 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E66EC @ =gUnknown_083DB6F4 - adds r4, r0, r1 - lsls r0, r5, 3 - add r0, sp - ldr r0, [r0] - ldr r1, [r4] - bl StringCopy - adds r3, r0, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _080E66F0 - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r4, 0x4] - bl StringCopy - b _080E670A - .align 2, 0 -_080E66E0: .4byte gUnknown_083DB7DC -_080E66E4: .4byte gUnknown_083DB7C0 -_080E66E8: .4byte 0x02001000 -_080E66EC: .4byte gUnknown_083DB6F4 -_080E66F0: - strb r0, [r3] - adds r3, 0x1 - ldr r1, [r4, 0x4] - adds r0, r3, 0 - bl StringCopy - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_080E670A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E66A4 - movs r5, 0 - ldr r3, _080E6758 @ =0x02001000 - ldr r0, _080E675C @ =0x00009da4 - adds r2, r3, r0 - movs r1, 0 -_080E671E: - adds r0, r5, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x23 - bls _080E671E - ldr r1, _080E675C @ =0x00009da4 - adds r0, r3, r1 - adds r0, r5, r0 - movs r4, 0x1 - negs r4, r4 - adds r2, r4, 0 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _080E6760 @ =0x00009f6e - adds r3, r0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x11 - strb r0, [r3, 0x1] - movs r0, 0xE0 - strb r0, [r3, 0x2] - strb r2, [r3, 0x3] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E6758: .4byte 0x02001000 -_080E675C: .4byte 0x00009da4 -_080E6760: .4byte 0x00009f6e - thumb_func_end sub_80E6690 - - thumb_func_start sub_80E6764 -sub_80E6764: @ 80E6764 - push {r4-r6,lr} - movs r3, 0 - ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C - ldr r2, _080E6810 @ =gUnknown_083DB7EC -_080E676C: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080E676C - movs r3, 0 - ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 - ldr r2, _080E6818 @ =gUnknown_083DB7F4 -_080E6786: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E6786 - movs r3, 0 - ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 - ldr r0, _080E6820 @ =0x0000ffff - adds r4, r0, 0 - adds r6, r5, 0 - adds r6, 0xC -_080E67A6: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r2] - orrs r0, r4 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E67A6 - movs r3, 0 - ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C - ldr r0, _080E6820 @ =0x0000ffff - adds r5, r0, 0 -_080E67CA: - movs r2, 0 - lsls r0, r3, 3 - adds r0, r3 - lsls r4, r0, 2 -_080E67D2: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x8 - bls _080E67D2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080E67CA - movs r3, 0 - ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C - movs r1, 0 -_080E67F8: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080E67F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E680C: .4byte gSaveBlock1 + 0x2B1C -_080E6810: .4byte gUnknown_083DB7EC -_080E6814: .4byte gSaveBlock1 + 0x2B28 -_080E6818: .4byte gUnknown_083DB7F4 -_080E681C: .4byte gSaveBlock1 + 0x2B34 -_080E6820: .4byte 0x0000ffff -_080E6824: .4byte gSaveBlock1 + 0x2B4C -_080E6828: .4byte gSaveBlock1 + 0x2D8C - thumb_func_end sub_80E6764 - - thumb_func_start sub_80E682C -sub_80E682C: @ 80E682C - ldr r1, _080E6838 @ =0x02001000 - str r0, [r1, 0x20] - movs r0, 0 - strh r0, [r1, 0x24] - bx lr - .align 2, 0 -_080E6838: .4byte 0x02001000 - thumb_func_end sub_80E682C - - thumb_func_start sub_80E683C -sub_80E683C: @ 80E683C - push {r4,r5,lr} - ldr r1, _080E6890 @ =0x02001000 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0 - bne _080E6898 - movs r1, 0 - movs r0, 0xDB - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - bge _080E6876 - movs r0, 0xD5 - lsls r0, 1 - adds r5, r2, r0 - movs r4, 0x2 -_080E6864: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - blt _080E6864 -_080E6876: - adds r0, r2, r1 - ldr r1, _080E6894 @ =0x000001a9 - adds r3, r0, r1 - ldrh r0, [r2, 0x28] - movs r1, 0x1 - ands r0, r1 - strb r0, [r3] - cmp r0, 0 - bne _080E68B8 - movs r0, 0x2 - strb r0, [r3] - b _080E68B8 - .align 2, 0 -_080E6890: .4byte 0x02001000 -_080E6894: .4byte 0x000001a9 -_080E6898: - movs r3, 0xD5 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x7 - strb r0, [r1] - ldr r1, _080E68E0 @ =0x000001ab - adds r3, r2, r1 - movs r1, 0x6 - strb r1, [r3] - movs r3, 0xD6 - lsls r3, 1 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x1 - adds r1, r2, r3 - strb r0, [r1] -_080E68B8: - movs r0, 0xD4 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080E68E4 @ =0x000001a9 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0xC - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x2 - adds r1, r2, r3 - strb r0, [r1] - bl sub_80E9A4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E68E0: .4byte 0x000001ab -_080E68E4: .4byte 0x000001a9 - thumb_func_end sub_80E683C - - thumb_func_start sub_80E68E8 -sub_80E68E8: @ 80E68E8 - push {r4-r6,lr} - bl sub_80EB0B0 - ldr r3, _080E694C @ =0x02001000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E695C - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E6950 @ =0x00004178 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E6954 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E693A - ldr r3, _080E6958 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E6928: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E6928 -_080E693A: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E6958 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E6950 @ =0x00004178 - b _080E69AC - .align 2, 0 -_080E694C: .4byte 0x02001000 -_080E6950: .4byte 0x00004178 -_080E6954: .4byte 0x00009a28 -_080E6958: .4byte 0x000099a6 -_080E695C: - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E69E0 @ =0x00004142 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E69E4 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E699C - ldr r3, _080E69E8 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E698A: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E698A -_080E699C: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E69E8 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E69E0 @ =0x00004142 -_080E69AC: - adds r1, r5, r3 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - cmp r0, 0 - bne _080E69C0 - movs r0, 0x2 - strb r0, [r2] -_080E69C0: - ldr r1, _080E69EC @ =0x000099a4 - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080E69F0 @ =0x000099a5 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _080E69F4 @ =0x00009a29 - adds r0, r5, r3 - strb r1, [r0] - bl sub_80E9A4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E69E0: .4byte 0x00004142 -_080E69E4: .4byte 0x00009a28 -_080E69E8: .4byte 0x000099a6 -_080E69EC: .4byte 0x000099a4 -_080E69F0: .4byte 0x000099a5 -_080E69F4: .4byte 0x00009a29 - thumb_func_end sub_80E68E8 - - thumb_func_start sub_80E69F8 -sub_80E69F8: @ 80E69F8 - push {r4,lr} - ldr r0, _080E6A10 @ =0x02001000 - ldrb r1, [r0, 0x8] - adds r4, r0, 0 - cmp r1, 0xD - bhi _080E6A50 - lsls r0, r1, 2 - ldr r1, _080E6A14 @ =_080E6A18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6A10: .4byte 0x02001000 -_080E6A14: .4byte _080E6A18 - .align 2, 0 -_080E6A18: - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 -_080E6A50: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - b _080E6A66 -_080E6A58: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - bl sub_80E8BF4 -_080E6A66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E69F8 - - thumb_func_start sub_80E6A6C -sub_80E6A6C: @ 80E6A6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80EAC5C - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80E6A6C - - thumb_func_start sub_80E6A88 -sub_80E6A88: @ 80E6A88 - push {lr} - ldr r0, _080E6AA4 @ =0x02001000 - ldr r0, [r0, 0x20] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl sub_80EAD08 - pop {r0} - bx r0 - .align 2, 0 -_080E6AA4: .4byte 0x02001000 - thumb_func_end sub_80E6A88 - - thumb_func_start sub_80E6AA8 -sub_80E6AA8: @ 80E6AA8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E6ABA - ldr r0, _080E6AC0 @ =sub_80E6AC4 - bl sub_80E682C -_080E6ABA: - pop {r0} - bx r0 - .align 2, 0 -_080E6AC0: .4byte sub_80E6AC4 - thumb_func_end sub_80E6AA8 - - thumb_func_start sub_80E6AC4 -sub_80E6AC4: @ 80E6AC4 - push {lr} - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8398 - movs r0, 0 - bl sub_80E91D4 - ldr r0, _080E6AE0 @ =sub_80E6AE4 - bl sub_80E682C - pop {r0} - bx r0 - .align 2, 0 -_080E6AE0: .4byte sub_80E6AE4 - thumb_func_end sub_80E6AC4 - - thumb_func_start sub_80E6AE4 -sub_80E6AE4: @ 80E6AE4 - push {r4,r5,lr} - bl sub_80E75D8 - ldr r4, _080E6B44 @ =0x02001000 - adds r1, r4, 0 - adds r1, 0x87 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - movs r0, 0x5 - bl PlaySE -_080E6AFE: - ldr r2, _080E6B48 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _080E6BA4 - movs r0, 0x5 - bl PlaySE - adds r1, r4, 0 - adds r1, 0x86 - adds r0, r4, 0 - adds r0, 0x84 - ldrb r2, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E6B78 - adds r0, r4, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080E6B60 - cmp r0, 0x1 - bgt _080E6B4C - cmp r0, 0 - beq _080E6B52 - b _080E6BA4 - .align 2, 0 -_080E6B44: .4byte 0x02001000 -_080E6B48: .4byte gMain -_080E6B4C: - cmp r0, 0x2 - beq _080E6B6C - b _080E6BA4 -_080E6B52: - ldr r0, _080E6B5C @ =sub_80E6BC0 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B5C: .4byte sub_80E6BC0 -_080E6B60: - ldr r0, _080E6B68 @ =sub_80E6C84 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B68: .4byte sub_80E6C84 -_080E6B6C: - ldr r0, _080E6B74 @ =sub_80E6D7C - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B74: .4byte sub_80E6D7C -_080E6B78: - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x85 - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x27 - strb r0, [r1] - bl sub_80E7574 - ldr r0, _080E6BA0 @ =sub_80E6F68 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6BA0: .4byte sub_80E6F68 -_080E6BA4: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6BB4 - ldr r0, _080E6BBC @ =sub_80E6C84 - bl sub_80E682C -_080E6BB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6BBC: .4byte sub_80E6C84 - thumb_func_end sub_80E6AE4 - - thumb_func_start sub_80E6BC0 -sub_80E6BC0: @ 80E6BC0 - push {r4,lr} - ldr r4, _080E6BD4 @ =0x02001000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6C12 - cmp r0, 0x1 - bgt _080E6BD8 - cmp r0, 0 - beq _080E6BE2 - b _080E6C76 - .align 2, 0 -_080E6BD4: .4byte 0x02001000 -_080E6BD8: - cmp r0, 0x2 - beq _080E6C54 - cmp r0, 0x64 - beq _080E6C64 - b _080E6C76 -_080E6BE2: - movs r0, 0x2 - bl sub_80E8398 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6BFA - movs r0, 0x6 - bl sub_80E91D4 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6BFA: - movs r0, 0x2 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - b _080E6C3E -_080E6C12: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6C32 - cmp r1, 0 - bgt _080E6C2C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6C46 - b _080E6C76 -_080E6C2C: - cmp r1, 0x1 - beq _080E6C46 - b _080E6C76 -_080E6C32: - bl sub_80E7D6C - bl sub_80E98C4 - bl sub_80E95A4 -_080E6C3E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6C46: - ldr r1, _080E6C50 @ =0x02001000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6C76 - .align 2, 0 -_080E6C50: .4byte 0x02001000 -_080E6C54: - bl sub_80E81FC - ldr r0, _080E6C60 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6C76 - .align 2, 0 -_080E6C60: .4byte sub_80E6AC4 -_080E6C64: - ldr r0, _080E6C7C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6C76 - ldr r0, _080E6C80 @ =sub_80E6AC4 - bl sub_80E682C -_080E6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6C7C: .4byte gMain -_080E6C80: .4byte sub_80E6AC4 - thumb_func_end sub_80E6BC0 - - thumb_func_start sub_80E6C84 -sub_80E6C84: @ 80E6C84 - push {r4,lr} - ldr r4, _080E6C98 @ =0x02001000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6CF4 - cmp r0, 0x1 - bgt _080E6C9C - cmp r0, 0 - beq _080E6CA6 - b _080E6D72 - .align 2, 0 -_080E6C98: .4byte 0x02001000 -_080E6C9C: - cmp r0, 0x2 - beq _080E6D24 - cmp r0, 0xFF - beq _080E6D64 - b _080E6D72 -_080E6CA6: - movs r0, 0x2 - bl sub_80E8398 - movs r0, 0x3 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - ldrb r0, [r4, 0x8] - cmp r0, 0x9 - beq _080E6CE8 - cmp r0, 0x4 - beq _080E6CE8 - cmp r0, 0x7 - beq _080E6CE8 - cmp r0, 0x8 - beq _080E6CE8 - cmp r0, 0xA - beq _080E6CE8 - cmp r0, 0xB - beq _080E6CE8 - cmp r0, 0xC - beq _080E6CE8 - cmp r0, 0x5 - beq _080E6CE8 - cmp r0, 0xD - bne _080E6D1C -_080E6CE8: - ldr r1, _080E6CF0 @ =0x02001000 - movs r0, 0x2 - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6CF0: .4byte 0x02001000 -_080E6CF4: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D06 - cmp r1, 0 - ble _080E6D34 - b _080E6D3E -_080E6D06: - movs r0, 0x4 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor -_080E6D1C: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6D72 -_080E6D24: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D44 - cmp r1, 0 - bgt _080E6D3E -_080E6D34: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6D58 - b _080E6D72 -_080E6D3E: - cmp r1, 0x1 - beq _080E6D58 - b _080E6D72 -_080E6D44: - ldr r0, _080E6D50 @ =gScriptResult - strh r1, [r0] - ldr r0, _080E6D54 @ =sub_80E752C - bl sub_80E682C - b _080E6D72 - .align 2, 0 -_080E6D50: .4byte gScriptResult -_080E6D54: .4byte sub_80E752C -_080E6D58: - ldr r1, _080E6D60 @ =0x02001000 - movs r0, 0xFF - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6D60: .4byte 0x02001000 -_080E6D64: - bl sub_8072DEC - bl sub_80E81FC - ldr r0, _080E6D78 @ =sub_80E6AC4 - bl sub_80E682C -_080E6D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6D78: .4byte sub_80E6AC4 - thumb_func_end sub_80E6C84 - - thumb_func_start sub_80E6D7C -sub_80E6D7C: @ 80E6D7C - push {r4-r7,lr} - ldr r5, _080E6D98 @ =0x02001000 - ldrh r0, [r5, 0x24] - cmp r0, 0xA - bne _080E6D88 - b _080E6F06 -_080E6D88: - cmp r0, 0xA - bgt _080E6D9C - cmp r0, 0 - beq _080E6DB6 - cmp r0, 0x1 - beq _080E6E3C - b _080E6F5E - .align 2, 0 -_080E6D98: .4byte 0x02001000 -_080E6D9C: - cmp r0, 0x65 - bne _080E6DA2 - b _080E6F30 -_080E6DA2: - cmp r0, 0x65 - bgt _080E6DAE - cmp r0, 0x64 - bne _080E6DAC - b _080E6F24 -_080E6DAC: - b _080E6F5E -_080E6DAE: - cmp r0, 0x66 - bne _080E6DB4 - b _080E6F50 -_080E6DB4: - b _080E6F5E -_080E6DB6: - movs r0, 0x2 - bl sub_80E8398 - bl sub_80E8054 - lsls r0, 24 - cmp r0, 0 - beq _080E6DCA - movs r0, 0x5 - b _080E6DEE -_080E6DCA: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6DFC - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6DDE - movs r0, 0x8 - b _080E6DEE -_080E6DDE: - ldrh r0, [r5, 0xC] - ldr r1, _080E6DF8 @ =0x0000ffff - cmp r0, r1 - beq _080E6DEC - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6DFC -_080E6DEC: - movs r0, 0x9 -_080E6DEE: - bl sub_80E91D4 - movs r0, 0xA - strh r0, [r5, 0x24] - b _080E6F5E - .align 2, 0 -_080E6DF8: .4byte 0x0000ffff -_080E6DFC: - ldr r0, _080E6E18 @ =0x02001000 - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - bne _080E6E20 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6E20 - ldr r0, _080E6E1C @ =sub_80E6C84 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6E18: .4byte 0x02001000 -_080E6E1C: .4byte sub_80E6C84 -_080E6E20: - movs r0, 0x1 - bl sub_80E91D4 - bl sub_80E9744 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - b _080E6F3C -_080E6E3C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _080E6E5C - cmp r6, 0 - bgt _080E6E56 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _080E6EDC - b _080E6F5E -_080E6E56: - cmp r6, 0x1 - beq _080E6EDC - b _080E6F5E -_080E6E5C: - ldr r7, _080E6EC8 @ =gScriptResult - bl sub_80E7FA8 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - strh r0, [r7] - bl sub_80E7D9C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080E6E82 - ldr r4, _080E6ECC @ =gUnknown_0202E8CC - bl sub_80E8094 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E82: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6E9C - bl sub_80E81C0 - ldr r4, _080E6ECC @ =gUnknown_0202E8CC - ldr r1, _080E6ED0 @ =0x00009c7c - adds r0, r5, r1 - bl sub_80FA364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E9C: - ldrb r0, [r5, 0x8] - cmp r0, 0xD - bne _080E6EBE - ldrh r0, [r5, 0xC] - ldr r1, _080E6ED4 @ =0x0000ffff - cmp r0, r1 - beq _080E6EB0 - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6EB2 -_080E6EB0: - strh r6, [r7] -_080E6EB2: - ldr r4, _080E6ECC @ =gUnknown_0202E8CC - bl sub_80E810C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6EBE: - ldr r0, _080E6ED8 @ =sub_80E752C - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6EC8: .4byte gScriptResult -_080E6ECC: .4byte gUnknown_0202E8CC -_080E6ED0: .4byte 0x00009c7c -_080E6ED4: .4byte 0x0000ffff -_080E6ED8: .4byte sub_80E752C -_080E6EDC: - bl sub_8072DEC - bl sub_80E81FC - ldr r4, _080E6EFC @ =0x02001000 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6F00 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6F00 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6F5E - .align 2, 0 -_080E6EFC: .4byte 0x02001000 -_080E6F00: - bl sub_80E95A4 - b _080E6F12 -_080E6F06: - ldr r0, _080E6F1C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F12: - ldr r0, _080E6F20 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6F1C: .4byte gMain -_080E6F20: .4byte sub_80E6AC4 -_080E6F24: - movs r0, 0x7 - bl sub_80E91D4 - ldrh r0, [r5, 0x24] - adds r0, 0x1 - strh r0, [r5, 0x24] -_080E6F30: - ldr r0, _080E6F48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F3C: - ldr r1, _080E6F4C @ =0x02001000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6F5E - .align 2, 0 -_080E6F48: .4byte gMain -_080E6F4C: .4byte 0x02001000 -_080E6F50: - bl sub_80E7E50 - bl sub_80E95A4 - ldr r0, _080E6F64 @ =sub_80E6AC4 - bl sub_80E682C -_080E6F5E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F64: .4byte sub_80E6AC4 - thumb_func_end sub_80E6D7C - - thumb_func_start sub_80E6F68 -sub_80E6F68: @ 80E6F68 - push {r4,lr} - ldr r4, _080E6F78 @ =0x02001000 - ldrh r0, [r4, 0x24] - cmp r0, 0 - beq _080E6F7C - cmp r0, 0x1 - beq _080E6F9C - b _080E6FBC - .align 2, 0 -_080E6F78: .4byte 0x02001000 -_080E6F7C: - movs r0, 0x1 - bl sub_80E8398 - movs r0, 0xA - bl sub_80E91D4 - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6FBC -_080E6F9C: - bl sub_80E9EA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6FBC - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E6FC4 @ =sub_80E6FC8 - bl sub_80E682C -_080E6FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6FC4: .4byte sub_80E6FC8 - thumb_func_end sub_80E6F68 - - thumb_func_start sub_80E6FC8 -sub_80E6FC8: @ 80E6FC8 - push {r4,lr} - bl sub_80E77C8 - adds r1, r0, 0 - ldr r4, _080E7000 @ =0x02001000 - adds r0, r4, 0 - adds r0, 0x96 - strb r1, [r0] - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E700C - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E7004 @ =sub_80E6FC8 - str r1, [r0] - ldr r0, _080E7008 @ =sub_80E7458 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E7000: .4byte 0x02001000 -_080E7004: .4byte sub_80E6FC8 -_080E7008: .4byte sub_80E7458 -_080E700C: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E7018 - movs r0, 0x5 - bl PlaySE -_080E7018: - ldr r0, _080E7054 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E70E8 - ldr r2, _080E7058 @ =0x000001b7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7090 - movs r0, 0x5 - bl PlaySE - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - beq _080E7070 - cmp r0, 0x2 - bgt _080E705C - cmp r0, 0x1 - beq _080E7062 - b _080E710A - .align 2, 0 -_080E7054: .4byte gMain -_080E7058: .4byte 0x000001b7 -_080E705C: - cmp r0, 0x3 - beq _080E70F0 - b _080E710A -_080E7062: - ldr r0, _080E706C @ =sub_80E718C - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E706C: .4byte sub_80E718C -_080E7070: - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - beq _080E710A - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - ldr r1, _080E708C @ =0x0000ffff - bl sub_80E7F00 - bl sub_80E7574 - bl sub_80E95A4 - b _080E710A - .align 2, 0 -_080E708C: .4byte 0x0000ffff -_080E7090: - adds r0, r4, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - beq _080E70CA - ldr r2, _080E70DC @ =0x000001a9 - adds r0, r4, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 1 - ldr r2, _080E70E0 @ =0x00004142 - adds r1, r4, r2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080E710A -_080E70CA: - movs r0, 0x5 - bl PlaySE - bl sub_80E7AD4 - ldr r0, _080E70E4 @ =sub_80E7218 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70DC: .4byte 0x000001a9 -_080E70E0: .4byte 0x00004142 -_080E70E4: .4byte sub_80E7218 -_080E70E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E70FC -_080E70F0: - ldr r0, _080E70F8 @ =sub_80E7114 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70F8: .4byte sub_80E7114 -_080E70FC: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E710A - ldr r0, _080E7110 @ =sub_80E718C - bl sub_80E682C -_080E710A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7110: .4byte sub_80E718C - thumb_func_end sub_80E6FC8 - - thumb_func_start sub_80E7114 -sub_80E7114: @ 80E7114 - push {lr} - ldr r0, _080E712C @ =0x02001000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7182 - lsls r0, r1, 2 - ldr r1, _080E7130 @ =_080E7134 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E712C: .4byte 0x02001000 -_080E7130: .4byte _080E7134 - .align 2, 0 -_080E7134: - .4byte _080E7148 - .4byte _080E715C - .4byte _080E715C - .4byte _080E7164 - .4byte _080E717C -_080E7148: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8D8C - b _080E716E -_080E715C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E7182 -_080E7164: - bl sub_80E9F50 - lsls r0, 24 - cmp r0, 0 - beq _080E7182 -_080E716E: - ldr r1, _080E7178 @ =0x02001000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7182 - .align 2, 0 -_080E7178: .4byte 0x02001000 -_080E717C: - ldr r0, _080E7188 @ =sub_80E6AC4 - bl sub_80E682C -_080E7182: - pop {r0} - bx r0 - .align 2, 0 -_080E7188: .4byte sub_80E6AC4 - thumb_func_end sub_80E7114 - - thumb_func_start sub_80E718C -sub_80E718C: @ 80E718C - push {r4,lr} - ldr r0, _080E71A4 @ =0x02001000 - ldrh r1, [r0, 0x24] - adds r4, r0, 0 - cmp r1, 0x1 - beq _080E71C6 - cmp r1, 0x1 - bgt _080E71A8 - cmp r1, 0 - beq _080E71AE - b _080E71EC - .align 2, 0 -_080E71A4: .4byte 0x02001000 -_080E71A8: - cmp r1, 0x8 - beq _080E71F4 - b _080E71EC -_080E71AE: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - bl sub_80E8D54 - b _080E720E -_080E71C6: - bl sub_80E9FD4 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - movs r2, 0 - adds r1, r4, 0 - adds r1, 0x26 - ldrb r0, [r1] - cmp r0, 0 - bne _080E71DE - movs r2, 0x1 -_080E71DE: - strb r2, [r1] - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 -_080E71EC: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E720E -_080E71F4: - bl sub_80EA014 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E7214 @ =sub_80E6FC8 - bl sub_80E682C -_080E720E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7214: .4byte sub_80E6FC8 - thumb_func_end sub_80E718C - - thumb_func_start sub_80E7218 -sub_80E7218: @ 80E7218 - push {r4,lr} - ldr r4, _080E7230 @ =0x02001000 - ldrh r0, [r4, 0x24] - adds r1, r4, 0 - cmp r0, 0x9 - beq _080E7260 - cmp r0, 0x9 - bgt _080E7234 - cmp r0, 0x8 - beq _080E7244 - b _080E723C - .align 2, 0 -_080E7230: .4byte 0x02001000 -_080E7234: - cmp r0, 0xA - beq _080E7276 - cmp r0, 0xB - beq _080E7288 -_080E723C: - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7288 -_080E7244: - movs r0, 0 - bl sub_80E8D8C - bl sub_80E8504 - bl sub_80E9AD4 - bl sub_80E68E8 - bl sub_80E88F0 - bl sub_80E9E98 - b _080E726E -_080E7260: - bl sub_80EA050 - lsls r0, 24 - cmp r0, 0 - beq _080E7288 - bl sub_80E9C94 -_080E726E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7288 -_080E7276: - movs r0, 0x1 - bl sub_80E87CC - movs r0, 0x1 - bl sub_80E8958 - ldr r0, _080E7290 @ =sub_80E7294 - bl sub_80E682C -_080E7288: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7290: .4byte sub_80E7294 - thumb_func_end sub_80E7218 - - thumb_func_start sub_80E7294 -sub_80E7294: @ 80E7294 - push {r4,lr} - bl sub_80E7B40 - adds r1, r0, 0 - ldr r4, _080E72CC @ =0x02001000 - ldr r2, _080E72D0 @ =0x000001b9 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E72DC - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E72D4 @ =sub_80E7294 - str r1, [r0] - ldr r0, _080E72D8 @ =sub_80E7458 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E72CC: .4byte 0x02001000 -_080E72D0: .4byte 0x000001b9 -_080E72D4: .4byte sub_80E7294 -_080E72D8: .4byte sub_80E7458 -_080E72DC: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E72E8 - movs r0, 0x5 - bl PlaySE -_080E72E8: - ldr r0, _080E7304 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E730C - movs r0, 0x5 - bl PlaySE - ldr r0, _080E7308 @ =sub_80E7324 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E7304: .4byte gMain -_080E7308: .4byte sub_80E7324 -_080E730C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E731A - ldr r0, _080E7320 @ =sub_80E73D0 - bl sub_80E682C -_080E731A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte sub_80E73D0 - thumb_func_end sub_80E7294 - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {lr} - ldr r0, _080E733C @ =0x02001000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E73C6 - lsls r0, r1, 2 - ldr r1, _080E7340 @ =_080E7344 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E733C: .4byte 0x02001000 -_080E7340: .4byte _080E7344 - .align 2, 0 -_080E7344: - .4byte _080E7358 - .4byte _080E737C - .4byte _080E7384 - .4byte _080E738A - .4byte _080E73A4 -_080E7358: - bl sub_80E7DD0 - lsls r0, 24 - cmp r0, 0 - bne _080E7370 - ldr r0, _080E736C @ =sub_80E7294 - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E736C: .4byte sub_80E7294 -_080E7370: - bl sub_80E88F0 - movs r0, 0 - bl sub_80E87CC - b _080E7394 -_080E737C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E73C6 -_080E7384: - bl sub_80E9E98 - b _080E7394 -_080E738A: - bl sub_80EA184 - lsls r0, 24 - cmp r0, 0 - beq _080E73C6 -_080E7394: - ldr r1, _080E73A0 @ =0x02001000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E73C6 - .align 2, 0 -_080E73A0: .4byte 0x02001000 -_080E73A4: - ldrb r0, [r2, 0x8] - cmp r0, 0x6 - bne _080E73C0 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E73C0 - ldr r0, _080E73BC @ =sub_80E6D7C - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E73BC: .4byte sub_80E6D7C -_080E73C0: - ldr r0, _080E73CC @ =sub_80E6AC4 - bl sub_80E682C -_080E73C6: - pop {r0} - bx r0 - .align 2, 0 -_080E73CC: .4byte sub_80E6AC4 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E73D0 -sub_80E73D0: @ 80E73D0 - push {lr} - ldr r0, _080E73E4 @ =0x02001000 - ldrh r0, [r0, 0x24] - cmp r0, 0x4 - bhi _080E744E - lsls r0, 2 - ldr r1, _080E73E8 @ =_080E73EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E73E4: .4byte 0x02001000 -_080E73E8: .4byte _080E73EC - .align 2, 0 -_080E73EC: - .4byte _080E7400 - .4byte _080E740C - .4byte _080E7416 - .4byte _080E742C - .4byte _080E7444 -_080E7400: - movs r0, 0 - bl sub_80E87CC - bl sub_80E88F0 - b _080E7436 -_080E740C: - bl sub_80E9AD4 - bl sub_80E9E98 - b _080E7436 -_080E7416: - bl sub_80EA0E4 - lsls r0, 24 - cmp r0, 0 - beq _080E744E - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E9A14 - b _080E7436 -_080E742C: - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 -_080E7436: - ldr r1, _080E7440 @ =0x02001000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E744E - .align 2, 0 -_080E7440: .4byte 0x02001000 -_080E7444: - bl sub_80E9974 - ldr r0, _080E7454 @ =sub_80E6FC8 - bl sub_80E682C -_080E744E: - pop {r0} - bx r0 - .align 2, 0 -_080E7454: .4byte sub_80E6FC8 - thumb_func_end sub_80E73D0 - - thumb_func_start sub_80E7458 -sub_80E7458: @ 80E7458 - push {r4,r5,lr} - ldr r4, _080E7468 @ =0x02001000 - ldrh r5, [r4, 0x24] - cmp r5, 0 - beq _080E746C - cmp r5, 0x1 - beq _080E74A4 - b _080E7518 - .align 2, 0 -_080E7468: .4byte 0x02001000 -_080E746C: - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E7480 @ =sub_80E6FC8 - cmp r1, r0 - bne _080E7484 - bl sub_80E9D7C - b _080E7488 - .align 2, 0 -_080E7480: .4byte sub_80E6FC8 -_080E7484: - bl sub_80E9D00 -_080E7488: - ldr r4, _080E74A0 @ =0x02001000 - movs r2, 0xDF - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80E9E08 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7518 - .align 2, 0 -_080E74A0: .4byte 0x02001000 -_080E74A4: - bl sub_80E9E54 - lsls r0, 24 - cmp r0, 0 - beq _080E7518 - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E74DC @ =sub_80E6FC8 - cmp r1, r0 - bne _080E74E4 - bl sub_80E9D7C - ldr r2, _080E74E0 @ =0x000001b5 - adds r1, r4, r2 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7A98 - adds r0, r4, 0 - adds r0, 0x96 - b _080E74FE - .align 2, 0 -_080E74DC: .4byte sub_80E6FC8 -_080E74E0: .4byte 0x000001b5 -_080E74E4: - ldr r0, _080E7520 @ =0x00009a29 - adds r1, r4, r0 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7D30 - ldr r1, _080E7524 @ =0x000001b9 - adds r0, r4, r1 -_080E74FE: - strb r5, [r0] - ldr r1, _080E7528 @ =0x02001000 - movs r0, 0xDF - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0x2 - strb r0, [r2] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - bl sub_80E682C -_080E7518: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7520: .4byte 0x00009a29 -_080E7524: .4byte 0x000001b9 -_080E7528: .4byte 0x02001000 - thumb_func_end sub_80E7458 - - thumb_func_start sub_80E752C -sub_80E752C: @ 80E752C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080E7540 @ =0x02001000 - ldrh r1, [r4, 0x24] - cmp r1, 0 - beq _080E7544 - cmp r1, 0x1 - beq _080E755C - b _080E756C - .align 2, 0 -_080E7540: .4byte 0x02001000 -_080E7544: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E756C -_080E755C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E756C - ldr r0, [r4] - bl SetMainCallback2 -_080E756C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E752C - - thumb_func_start sub_80E7574 -sub_80E7574: @ 80E7574 - push {r4,r5,lr} - ldr r4, _080E75B8 @ =0x02001000 - ldrb r5, [r4, 0x8] - cmp r5, 0x1 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r4, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - lsls r0, 1 - subs r1, 0x72 - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - beq _080E75BC - adds r0, r4, 0 - adds r0, 0x7D - strb r5, [r0] - adds r1, r4, 0 - b _080E75C6 - .align 2, 0 -_080E75B8: .4byte 0x02001000 -_080E75BC: - ldr r1, _080E75D4 @ =0x02001000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0 - strb r0, [r2] -_080E75C6: - adds r1, 0x7D - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E75D4: .4byte 0x02001000 - thumb_func_end sub_80E7574 - - thumb_func_start sub_80E75D8 -sub_80E75D8: @ 80E75D8 - push {r4-r6,lr} - movs r4, 0 - ldr r2, _080E75FC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7604 - ldr r1, _080E7600 @ =0x02001000 - adds r0, r1, 0 - adds r0, 0x84 - ldrb r0, [r0] - adds r2, r1, 0 - adds r2, 0x86 - strb r0, [r2] - adds r1, 0x85 - movs r0, 0x2 - b _080E768E - .align 2, 0 -_080E75FC: .4byte gMain -_080E7600: .4byte 0x02001000 -_080E7604: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E7630 - ldr r2, _080E762C @ =0x02001000 - adds r1, r2, 0 - adds r1, 0x86 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E765C - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - strb r0, [r1] - b _080E765C - .align 2, 0 -_080E762C: .4byte 0x02001000 -_080E7630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E7658 - ldr r0, _080E7684 @ =0x02001000 - adds r3, r0, 0 - adds r3, 0x86 - ldrb r1, [r3] - adds r1, 0x1 - strb r1, [r3] - adds r0, 0x84 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - ble _080E7656 - strb r4, [r3] -_080E7656: - movs r4, 0x1 -_080E7658: - cmp r4, 0 - beq _080E76EA -_080E765C: - ldr r2, _080E7684 @ =0x02001000 - ldrb r3, [r2, 0x9] - cmp r3, 0x2 - bne _080E7692 - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7688 - adds r0, r2, 0 - adds r0, 0x85 - strb r3, [r0] - b _080E77BC - .align 2, 0 -_080E7684: .4byte 0x02001000 -_080E7688: - adds r1, r2, 0 - adds r1, 0x85 - movs r0, 0 -_080E768E: - strb r0, [r1] - b _080E77BC -_080E7692: - movs r0, 0x85 - adds r0, r2 - mov r12, r0 - adds r4, r2, 0 - adds r4, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrb r3, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r1, r0 - blt _080E76B0 - subs r0, r3, 0x1 - mov r1, r12 - strb r0, [r1] -_080E76B0: - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r3, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - beq _080E77BC - ldrb r0, [r4] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, 0 - mov r5, r12 - ldrb r5, [r5] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 - mov r6, r12 - strb r0, [r6] - b _080E77BC -_080E76EA: - ldrh r2, [r2, 0x30] - movs r0, 0x20 - ands r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E7744 - ldr r2, _080E7728 @ =0x02001000 - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bge _080E77BC - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r4, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E772C - movs r0, 0x2 - b _080E77BA - .align 2, 0 -_080E7728: .4byte 0x02001000 -_080E772C: - adds r0, r2, 0 - adds r0, 0x83 - ldrb r0, [r0] - subs r1, r0, 0x1 - strb r1, [r3] - adds r5, r4, 0 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0 - lsls r1, 24 - lsrs r0, r1, 24 - b _080E77B2 -_080E7744: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080E77C0 - ldr r2, _080E777C @ =0x02001000 - adds r5, r2, 0 - adds r5, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - movs r1, 0 - ldrsb r1, [r5, r1] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7780 - adds r1, r2, 0 - adds r1, 0x85 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - ble _080E77BC - strb r4, [r1] - b _080E77BC - .align 2, 0 -_080E777C: .4byte 0x02001000 -_080E7780: - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r6, 0x83 - adds r6, r2 - mov r12, r6 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - blt _080E779E - strb r4, [r3] -_080E779E: - ldrb r1, [r5] - mov r4, r12 - ldrb r0, [r4] - adds r5, r0, 0 - muls r5, r1 - adds r0, r5, 0 - ldrb r6, [r3] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 -_080E77B2: - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 -_080E77BA: - strb r0, [r3] -_080E77BC: - movs r0, 0x1 - b _080E77C2 -_080E77C0: - movs r0, 0 -_080E77C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E75D8 - - thumb_func_start sub_80E77C8 -sub_80E77C8: @ 80E77C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r1, _080E780C @ =0x02001000 - ldr r2, _080E7810 @ =0x000001b7 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r3, r1, 0 - cmp r0, 0 - beq _080E783E - ldr r1, _080E7814 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7818 - movs r4, 0xD4 - lsls r4, 1 - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - ble _080E7806 - b _080E7948 -_080E7806: - movs r0, 0x3 - strb r0, [r1] - b _080E7948 - .align 2, 0 -_080E780C: .4byte 0x02001000 -_080E7810: .4byte 0x000001b7 -_080E7814: .4byte gMain -_080E7818: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - bne _080E7822 - b _080E7950 -_080E7822: - movs r5, 0xD4 - lsls r5, 1 - adds r1, r3, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080E7838 - b _080E7948 -_080E7838: - movs r0, 0x1 - strb r0, [r1] - b _080E7948 -_080E783E: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E789A - movs r4, 0 - ldr r1, _080E7870 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7874 - movs r6, 0xD4 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E7944 - movs r0, 0x3 - strb r0, [r1] - b _080E7944 - .align 2, 0 -_080E7870: .4byte gMain -_080E7874: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E7894 - movs r0, 0xD4 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E7892 - strb r7, [r1] -_080E7892: - movs r4, 0x1 -_080E7894: - cmp r4, 0 - beq _080E7950 - b _080E7944 -_080E789A: - movs r4, 0 - movs r1, 0xE0 - lsls r1, 1 - adds r5, r3, r1 - strb r7, [r5] - ldr r1, _080E78E0 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E78E8 - movs r2, 0xD4 - lsls r2, 1 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E78C4 - b _080E7A88 -_080E78C4: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E78E4 @ =0x000001b5 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7932 - movs r0, 0xFF - strb r0, [r5] - b _080E7932 - .align 2, 0 -_080E78E0: .4byte gMain -_080E78E4: .4byte 0x000001b5 -_080E78E8: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E792E - movs r0, 0xD4 - lsls r0, 1 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - movs r4, 0xDB - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E790E - b _080E7A88 -_080E790E: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E794C @ =0x000001b5 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x3 - cmp r1, r0 - ble _080E792C - movs r0, 0x1 - strb r0, [r5] -_080E792C: - movs r4, 0x1 -_080E792E: - cmp r4, 0 - beq _080E7950 -_080E7932: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7944 - b _080E7A88 -_080E7944: - bl sub_80E7A98 -_080E7948: - movs r0, 0x1 - b _080E7A8A - .align 2, 0 -_080E794C: .4byte 0x000001b5 -_080E7950: - ldrh r1, [r6, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080E7992 - ldr r5, _080E7974 @ =0x000001a9 - adds r2, r3, r5 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080E7978 - subs r0, r1, 0x1 - strb r0, [r2] - b _080E79E6 - .align 2, 0 -_080E7974: .4byte 0x000001a9 -_080E7978: - movs r6, 0xD4 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r4, 0xD5 - lsls r4, 1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - b _080E79E6 -_080E7992: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E79E2 - ldr r5, _080E79D4 @ =0x000001b7 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E79CC - ldr r0, _080E79D8 @ =0x000001a9 - adds r4, r3, r0 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD5 - lsls r2, 1 - adds r0, r3, r2 - adds r1, r0 - ldrb r5, [r4] - movs r2, 0 - ldrsb r2, [r4, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E79DC -_080E79CC: - ldr r4, _080E79D8 @ =0x000001a9 - adds r0, r3, r4 - strb r6, [r0] - b _080E79E0 - .align 2, 0 -_080E79D4: .4byte 0x000001b7 -_080E79D8: .4byte 0x000001a9 -_080E79DC: - adds r0, r5, 0x1 - strb r0, [r4] -_080E79E0: - movs r7, 0x1 -_080E79E2: - cmp r7, 0 - beq _080E7A88 -_080E79E6: - adds r2, r3, 0 - ldr r5, _080E7A48 @ =0x000001b7 - adds r7, r2, r5 - ldrb r6, [r7] - mov r9, r6 - movs r1, 0 - ldr r0, _080E7A4C @ =0x000001a9 - adds r0, r2 - mov r12, r0 - subs r5, 0xF - adds r4, r2, r5 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r6, 0xD5 - lsls r6, 1 - adds r6, r2 - mov r8, r6 - add r0, r8 - mov r6, r12 - movs r5, 0 - ldrsb r5, [r6, r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E7A1C - movs r1, 0x1 -_080E7A1C: - strb r1, [r7] - cmp r1, 0 - beq _080E7A58 - ldr r0, _080E7A50 @ =0x000001b5 - adds r1, r2, r0 - ldrb r0, [r4] - ldrb r1, [r1] - subs r0, r1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - beq _080E7A36 - b _080E7948 -_080E7A36: - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080E7A54 @ =0x000001ab - adds r0, r2, r1 - ldrb r0, [r0] - mov r2, r12 - strb r0, [r2] - b _080E7948 - .align 2, 0 -_080E7A48: .4byte 0x000001b7 -_080E7A4C: .4byte 0x000001a9 -_080E7A50: .4byte 0x000001b5 -_080E7A54: .4byte 0x000001ab -_080E7A58: - mov r6, r9 - cmp r6, 0 - bne _080E7A60 - b _080E7948 -_080E7A60: - ldr r1, _080E7A84 @ =0x000001b5 - adds r0, r3, r1 - ldrb r0, [r0] - ldrb r2, [r4] - adds r0, r2 - strb r0, [r4] - cmp r5, 0 - bne _080E7A72 - b _080E7948 -_080E7A72: - movs r0, 0 - ldrsb r0, [r4, r0] - add r0, r8 - ldrb r0, [r0] - subs r0, 0x1 - mov r4, r12 - strb r0, [r4] - b _080E7948 - .align 2, 0 -_080E7A84: .4byte 0x000001b5 -_080E7A88: - movs r0, 0 -_080E7A8A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E77C8 - - thumb_func_start sub_80E7A98 -sub_80E7A98: @ 80E7A98 - push {lr} - ldr r1, _080E7ACC @ =0x02001000 - ldr r0, _080E7AD0 @ =0x000001a9 - adds r3, r1, r0 - movs r2, 0xD4 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0x2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080E7AC6 - subs r0, r2, 0x1 - strb r0, [r3] -_080E7AC6: - pop {r0} - bx r0 - .align 2, 0 -_080E7ACC: .4byte 0x02001000 -_080E7AD0: .4byte 0x000001a9 - thumb_func_end sub_80E7A98 - - thumb_func_start sub_80E7AD4 -sub_80E7AD4: @ 80E7AD4 - push {lr} - ldr r3, _080E7B08 @ =0x02001000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7B10 - ldr r1, _080E7B0C @ =0x000001a9 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD4 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2A - adds r1, r0 - ldrb r1, [r1] - adds r2, 0x10 - b _080E7B34 - .align 2, 0 -_080E7B08: .4byte 0x02001000 -_080E7B0C: .4byte 0x000001a9 -_080E7B10: - ldr r1, _080E7B3C @ =0x000001a9 - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r1, 0x1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r3, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r1, [r2] - movs r2, 0xDC - lsls r2, 1 -_080E7B34: - adds r0, r3, r2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E7B3C: .4byte 0x000001a9 - thumb_func_end sub_80E7AD4 - - thumb_func_start sub_80E7B40 -sub_80E7B40: @ 80E7B40 - push {r4-r7,lr} - movs r5, 0 - ldr r2, _080E7B8C @ =0x02001000 - movs r0, 0xE0 - lsls r0, 1 - adds r6, r2, r0 - strb r5, [r6] - ldr r1, _080E7B90 @ =gMain - ldrh r4, [r1, 0x30] - movs r0, 0x40 - ands r0, r4 - adds r3, r2, 0 - adds r7, r1, 0 - cmp r0, 0 - beq _080E7B9C - ldr r2, _080E7B94 @ =0x000099a4 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E7B6E - b _080E7D1A -_080E7B6E: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E7B98 @ =0x00009a29 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7BF2 - movs r0, 0xFF - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7B8C: .4byte 0x02001000 -_080E7B90: .4byte gMain -_080E7B94: .4byte 0x000099a4 -_080E7B98: .4byte 0x00009a29 -_080E7B9C: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080E7BEE - ldr r0, _080E7BE0 @ =0x000099a4 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r4, _080E7BE4 @ =0x00009a28 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E7BBE - b _080E7D1A -_080E7BBE: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E7BE8 @ =0x00009a29 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - cmp r1, r0 - blt _080E7BEC - movs r0, 0x1 - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7BE0: .4byte 0x000099a4 -_080E7BE4: .4byte 0x00009a28 -_080E7BE8: .4byte 0x00009a29 -_080E7BEC: - movs r5, 0x1 -_080E7BEE: - cmp r5, 0 - beq _080E7BFA -_080E7BF2: - bl sub_80E7D30 -_080E7BF6: - movs r0, 0x1 - b _080E7D1C -_080E7BFA: - ldrh r1, [r7, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080E7C38 - ldr r4, _080E7C30 @ =0x000099a5 - adds r2, r3, r4 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bge _080E7BF6 - ldr r6, _080E7C34 @ =0x000099a4 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, 0x1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r2] - b _080E7BF6 - .align 2, 0 -_080E7C30: .4byte 0x000099a5 -_080E7C34: .4byte 0x000099a4 -_080E7C38: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7C70 - ldr r6, _080E7C68 @ =0x000099a5 - adds r4, r3, r6 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r2, _080E7C6C @ =0x000099a4 - adds r1, r3, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r6, 0x1 - adds r1, r3, r6 - adds r2, r1 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - cmp r0, r1 - blt _080E7BF6 - strb r5, [r4] - b _080E7BF6 - .align 2, 0 -_080E7C68: .4byte 0x000099a5 -_080E7C6C: .4byte 0x000099a4 -_080E7C70: - ldrh r1, [r7, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7CC4 - ldr r1, _080E7CBC @ =0x00009a29 - adds r0, r3, r1 - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7CA2 - negs r0, r1 - movs r4, 0xE0 - lsls r4, 1 - adds r2, r3, r4 - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E7CA2 - strb r1, [r2] -_080E7CA2: - ldr r6, _080E7CC0 @ =0x000099a4 - adds r1, r3, r6 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - ldrb r4, [r1] - adds r0, r4 - strb r0, [r1] - movs r6, 0xDF - lsls r6, 1 - adds r1, r3, r6 - b _080E7D16 - .align 2, 0 -_080E7CBC: .4byte 0x00009a29 -_080E7CC0: .4byte 0x000099a4 -_080E7CC4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E7D1A - ldr r0, _080E7D24 @ =0x00009a29 - adds r4, r3, r0 - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r6, _080E7D28 @ =0x00009a28 - adds r2, r3, r6 - movs r0, 0 - ldrsb r0, [r2, r0] - subs r0, 0x4 - cmp r1, r0 - bge _080E7CFE - ldrb r1, [r4] - adds r1, 0x4 - ldrb r0, [r2] - subs r0, r1 - movs r2, 0xE0 - lsls r2, 1 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080E7CFE - movs r0, 0x4 - strb r0, [r1] -_080E7CFE: - ldr r4, _080E7D2C @ =0x000099a4 - adds r1, r3, r4 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - movs r4, 0xDF - lsls r4, 1 - adds r1, r3, r4 -_080E7D16: - movs r0, 0x4 - strb r0, [r1] -_080E7D1A: - movs r0, 0 -_080E7D1C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E7D24: .4byte 0x00009a29 -_080E7D28: .4byte 0x00009a28 -_080E7D2C: .4byte 0x000099a4 - thumb_func_end sub_80E7B40 - - thumb_func_start sub_80E7D30 -sub_80E7D30: @ 80E7D30 - push {r4,lr} - ldr r0, _080E7D60 @ =0x02001000 - ldr r1, _080E7D64 @ =0x000099a5 - adds r4, r0, r1 - ldr r2, _080E7D68 @ =0x000099a4 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r2, 0x2 - adds r0, r2 - adds r1, r0 - movs r2, 0 - ldrsb r2, [r4, r2] - ldrb r3, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _080E7D5A - subs r0, r3, 0x1 - strb r0, [r4] -_080E7D5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7D60: .4byte 0x02001000 -_080E7D64: .4byte 0x000099a5 -_080E7D68: .4byte 0x000099a4 - thumb_func_end sub_80E7D30 - - thumb_func_start sub_80E7D6C -sub_80E7D6C: @ 80E7D6C - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080E7D94 @ =0x02001000 - ldrb r1, [r0, 0xA] - cmp r4, r1 - bcs _080E7D8E - adds r5, r0, 0 -_080E7D7A: - adds r0, r4, 0 - ldr r1, _080E7D98 @ =0x0000ffff - bl sub_80E7F00 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5, 0xA] - cmp r4, r0 - bcc _080E7D7A -_080E7D8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7D94: .4byte 0x02001000 -_080E7D98: .4byte 0x0000ffff - thumb_func_end sub_80E7D6C - - thumb_func_start sub_80E7D9C -sub_80E7D9C: @ 80E7D9C - push {r4,r5,lr} - movs r2, 0 - ldr r0, _080E7DCC @ =0x02001000 - ldrb r1, [r0, 0xA] - cmp r2, r1 - bcs _080E7DC6 - adds r3, r0, 0 - ldr r4, [r3, 0x4] - adds r5, r3, 0 - adds r5, 0xC -_080E7DB0: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r3, 0xA] - cmp r2, r0 - bcc _080E7DB0 -_080E7DC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7DCC: .4byte 0x02001000 - thumb_func_end sub_80E7D9C - - thumb_func_start sub_80E7DD0 -sub_80E7DD0: @ 80E7DD0 - push {r4,lr} - ldr r2, _080E7E28 @ =0x02001000 - ldr r1, _080E7E2C @ =0x000099a5 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r3, _080E7E30 @ =0x000099a4 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0 - adds r3, 0x86 - adds r0, r2, r3 - adds r1, r0 - ldrh r4, [r1] - adds r0, r2, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E7E34 - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r2, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080E7E34 - adds r0, r4, 0 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bne _080E7E34 - movs r0, 0 - b _080E7E46 - .align 2, 0 -_080E7E28: .4byte 0x02001000 -_080E7E2C: .4byte 0x000099a5 -_080E7E30: .4byte 0x000099a4 -_080E7E34: - ldr r0, _080E7E4C @ =0x02001000 - adds r0, 0x27 - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80E7F00 - bl sub_80E95A4 - movs r0, 0x1 -_080E7E46: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E7E4C: .4byte 0x02001000 - thumb_func_end sub_80E7DD0 - - thumb_func_start sub_80E7E50 -sub_80E7E50: @ 80E7E50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r5, 0 - movs r2, 0 - ldr r1, _080E7EF0 @ =0x02001000 - adds r3, r1, 0 - adds r3, 0x84 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r2, r0 - bge _080E7EDE - mov r8, r1 - adds r0, r1, 0 - str r0, [sp] -_080E7E74: - mov r0, r8 - adds r0, 0x7E - adds r0, r2, r0 - movs r1, 0 - strb r1, [r0] - movs r3, 0 - ldr r6, _080E7EF4 @ =0x02001083 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r1, r2, 0x1 - str r1, [sp, 0x4] - cmp r3, r0 - bge _080E7ECE - ldr r6, [sp] - mov r12, r6 - movs r0, 0 - mov r10, r0 - ldr r1, _080E7EF4 @ =0x02001083 - mov r9, r1 - ldr r7, _080E7EF8 @ =0x0200100c - lsls r4, r2, 1 -_080E7E9E: - lsls r1, r5, 1 - adds r2, r1, r7 - mov r6, r12 - ldr r0, [r6, 0x4] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, r4 - mov r1, r12 - adds r1, 0x8C - adds r0, r1 - mov r1, r10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r6, r9 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r3, r0 - blt _080E7E9E -_080E7ECE: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r6, _080E7EFC @ =0x02001084 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080E7E74 -_080E7EDE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7EF0: .4byte 0x02001000 -_080E7EF4: .4byte 0x02001083 -_080E7EF8: .4byte 0x0200100c -_080E7EFC: .4byte 0x02001084 - thumb_func_end sub_80E7E50 - - thumb_func_start sub_80E7F00 -sub_80E7F00: @ 80E7F00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r7, _080E7F68 @ =0x02001000 - adds r0, r7, 0 - adds r0, 0x83 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, r6, 1 - adds r1, r7, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r9 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, 0x7 - bne _080E7F6C - cmp r3, 0x7 - beq _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - subs r0, 0x1 - b _080E7F7A - .align 2, 0 -_080E7F68: .4byte 0x02001000 -_080E7F6C: - cmp r3, 0x7 - bne _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, 0x1 -_080E7F7A: - strb r0, [r1] -_080E7F7C: - movs r3, 0 - ldr r2, _080E7FA4 @ =0x02001000 - lsls r0, r5, 1 - add r0, r8 - adds r1, r2, 0 - adds r1, 0x8C - adds r0, r1 - strb r3, [r0] - lsls r0, r6, 1 - adds r2, 0xC - adds r0, r2 - mov r1, r9 - strh r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7FA4: .4byte 0x02001000 - thumb_func_end sub_80E7F00 - - thumb_func_start sub_80E7FA8 -sub_80E7FA8: @ 80E7FA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r0, _080E8040 @ =0x02001000 - ldrb r1, [r0, 0xA] - cmp r8, r1 - bcs _080E802E - ldr r3, _080E8044 @ =0x00009e14 - adds r6, r0, r3 - ldr r1, _080E8048 @ =0x00009e41 - adds r1, r0 - mov r9, r1 -_080E7FC8: - ldr r3, _080E804C @ =0xffff61ec - adds r7, r6, r3 - ldr r0, [r7, 0x4] - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r1, _080E8050 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0 - bl sub_80EB218 - adds r1, r6, 0 - mov r2, r9 - ldrb r0, [r1] - adds r4, r5, 0x1 - ldrb r3, [r2] - cmp r0, r3 - bne _080E8018 - adds r3, r7, 0 - cmp r0, 0xFF - beq _080E8010 -_080E8000: - adds r1, 0x1 - adds r2, 0x1 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bne _080E8018 - cmp r0, 0xFF - bne _080E8000 -_080E8010: - ldrb r0, [r1] - ldrb r2, [r2] - cmp r0, r2 - beq _080E8024 -_080E8018: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r3, _080E8040 @ =0x02001000 -_080E8024: - lsls r0, r4, 16 - lsrs r5, r0, 16 - ldrb r3, [r3, 0xA] - cmp r5, r3 - bcc _080E7FC8 -_080E802E: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8040: .4byte 0x02001000 -_080E8044: .4byte 0x00009e14 -_080E8048: .4byte 0x00009e41 -_080E804C: .4byte 0xffff61ec -_080E8050: .4byte 0xffff61f8 - thumb_func_end sub_80E7FA8 - - thumb_func_start sub_80E8054 -sub_80E8054: @ 80E8054 - push {r4,lr} - movs r1, 0 - ldr r2, _080E8078 @ =0x02001000 - ldrb r0, [r2, 0xA] - cmp r1, r0 - bcs _080E808A - adds r4, r2, 0 - adds r4, 0xC - ldr r3, _080E807C @ =0x0000ffff - adds r2, r0, 0 -_080E8068: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _080E8080 - movs r0, 0 - b _080E808C - .align 2, 0 -_080E8078: .4byte 0x02001000 -_080E807C: .4byte 0x0000ffff -_080E8080: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080E8068 -_080E808A: - movs r0, 0x1 -_080E808C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E8054 - - thumb_func_start sub_80E8094 -sub_80E8094: @ 80E8094 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _080E80C4 @ =0x0200ae14 - adds r7, r6, 0 - adds r7, 0x2D -_080E809E: - lsls r4, r5, 1 - ldr r1, _080E80C8 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r0, _080E80CC @ =gMysteryEventPhrase - adds r4, r0 - ldrh r1, [r4] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - adds r3, r6, 0 - adds r4, r7, 0 - b _080E80D8 - .align 2, 0 -_080E80C4: .4byte 0x0200ae14 -_080E80C8: .4byte 0xffff61f8 -_080E80CC: .4byte gMysteryEventPhrase -_080E80D0: - adds r4, 0x1 - adds r3, 0x1 - cmp r2, r1 - bne _080E80F4 -_080E80D8: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _080E80EE - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080E80D0 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E80F4 -_080E80EE: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080E80F8 -_080E80F4: - movs r0, 0 - b _080E8104 -_080E80F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E809E - movs r0, 0x1 -_080E8104: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E8094 - - thumb_func_start sub_80E810C -sub_80E810C: @ 80E810C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080E8198 @ =0x0200ae6e - ldr r0, _080E819C @ =0xffff6192 - adds r0, r6 - mov r9, r0 - movs r1, 0 - mov r8, r1 - adds r7, r6, 0 - adds r7, 0x80 - ldr r2, _080E81A0 @ =gBerryMasterWifePhrases - mov r10, r2 -_080E812C: - mov r0, r9 - ldrh r1, [r0, 0xC] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - mov r1, r8 - strb r1, [r0] - adds r0, 0x1 - mov r2, r9 - ldrh r1, [r2, 0xE] - movs r2, 0 - bl sub_80EB218 - lsls r4, r5, 2 - mov r1, r10 - adds r0, r4, r1 - ldrh r1, [r0] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - mov r2, r8 - strb r2, [r0] - adds r0, 0x1 - ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - adds r0, r6, 0 - adds r3, r7, 0 - adds r4, r5, 0x1 -_080E8170: - ldrb r2, [r0] - cmp r2, 0xFF - beq _080E818A - ldrb r1, [r3] - cmp r1, 0xFF - beq _080E8184 - adds r3, 0x1 - adds r0, 0x1 - cmp r2, r1 - beq _080E8170 -_080E8184: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E81A8 -_080E818A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E81A8 - lsls r0, r4, 24 - lsrs r0, 24 - b _080E81B2 - .align 2, 0 -_080E8198: .4byte 0x0200ae6e -_080E819C: .4byte 0xffff6192 -_080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 -_080E81A8: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080E812C - movs r0, 0 -_080E81B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E810C - - thumb_func_start sub_80E81C0 -sub_80E81C0: @ 80E81C0 - push {r4,lr} - ldr r0, _080E81EC @ =gStringVar2 - ldr r4, _080E81F0 @ =0x02001000 - ldr r2, _080E81F4 @ =0x00009c7c - adds r1, r4, r2 - ldrh r1, [r1] - movs r2, 0 - bl sub_80EB218 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _080E81F8 @ =0x00009c7e - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E81EC: .4byte gStringVar2 -_080E81F0: .4byte 0x02001000 -_080E81F4: .4byte 0x00009c7c -_080E81F8: .4byte 0x00009c7e - thumb_func_end sub_80E81C0 - - thumb_func_start sub_80E81FC -sub_80E81FC: @ 80E81FC - push {lr} - movs r0, 0x5 - bl PlaySE - bl sub_80E95A4 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80E81FC - - thumb_func_start sub_80E8218 -sub_80E8218: @ 80E8218 - push {r4,r5,lr} - sub sp, 0x40 - mov r1, sp - ldr r0, _080E8260 @ =gSpriteSheets_Interview - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldr r0, [r0] - str r0, [r1] - add r4, sp, 0x28 - adds r1, r4, 0 - ldr r0, _080E8264 @ =gSpritePalettes_Interview - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - bl sub_80E8268 - bl sub_80E8818 - bl sub_80E8A7C - add sp, 0x40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8260: .4byte gSpriteSheets_Interview -_080E8264: .4byte gSpritePalettes_Interview - thumb_func_end sub_80E8218 - - thumb_func_start sub_80E8268 -sub_80E8268: @ 80E8268 - push {lr} - ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E82B4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080E82B8 @ =gUnknown_083DB694 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x8A - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x8 - movs r2, 0 - strh r0, [r1, 0x22] - adds r0, r3, 0 - adds r0, 0x88 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r0, r3, 0 - adds r0, 0x98 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E82B0: .4byte gSpriteTemplate_83DBBFC -_080E82B4: .4byte gSprites -_080E82B8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8268 - - thumb_func_start sub_80E82BC -sub_80E82BC: @ 80E82BC - push {r4-r7,lr} - adds r3, r0, 0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E838C - ldr r0, _080E8334 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x87 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _080E836C - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0 - movs r1, 0 - cmp r7, r4 - bcs _080E8316 - lsls r6, r5, 1 - adds r2, 0x8C -_080E8300: - adds r0, r1, r6 - adds r0, r2, r0 - ldrb r0, [r0] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _080E8300 -_080E8316: - mov r0, r12 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E8338 - movs r0, 0x60 - strh r0, [r3, 0x22] - lsls r0, r4, 3 - subs r0, r4 - adds r0, 0x3 - b _080E8356 - .align 2, 0 -_080E8334: .4byte gUnknown_083DB694 -_080E8338: - adds r1, r2, 0 - adds r1, 0x8A - lsls r0, r5, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r0, 0x8 - strh r0, [r3, 0x22] - adds r0, r2, 0 - adds r0, 0x88 - ldrh r0, [r0] - adds r0, r7 - movs r1, 0xB - muls r1, r4 - adds r0, r1 -_080E8356: - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3, 0x20] - movs r1, 0 - ldr r0, _080E8368 @ =0x0000fffa - strh r0, [r3, 0x24] - strh r1, [r3, 0x2E] - b _080E838C - .align 2, 0 -_080E8368: .4byte 0x0000fffa -_080E836C: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E838C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x24] - adds r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E838C - ldr r0, _080E8394 @ =0x0000fffa - strh r0, [r3, 0x24] -_080E838C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8394: .4byte 0x0000fffa - thumb_func_end sub_80E82BC - - thumb_func_start sub_80E8398 -sub_80E8398: @ 80E8398 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - beq _080E83D4 - cmp r3, 0x1 - bgt _080E83AC - cmp r3, 0 - beq _080E83B2 - b _080E8416 -_080E83AC: - cmp r3, 0x2 - beq _080E83F8 - b _080E8416 -_080E83B2: - ldr r0, _080E83D0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0x98 - ldr r1, [r0] - strh r3, [r1, 0x30] - ldr r1, [r0] - strh r3, [r1, 0x24] - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83D0: .4byte gUnknown_083DB694 -_080E83D4: - ldr r0, _080E83F4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r0, [r1] - movs r2, 0 - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83F4: .4byte gUnknown_083DB694 -_080E83F8: - ldr r0, _080E841C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_080E8414: - strb r0, [r1] -_080E8416: - pop {r0} - bx r0 - .align 2, 0 -_080E841C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8398 - - thumb_func_start sub_80E8420 -sub_80E8420: @ 80E8420 - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E84E4 @ =gUnknown_083DB694 - ldr r7, [r1] - adds r5, r7, 0 - adds r5, 0x9C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _080E84E8 @ =gSprites - adds r1, r4 - str r1, [r5] - ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C - str r0, [sp, 0x8] - ldr r0, _080E84F0 @ =sub_80E872C - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r6, r7, 0 - adds r6, 0xA0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r6] - ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C - str r0, [sp, 0x8] - ldr r0, _080E84F8 @ =sub_80E8760 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r2, r7, 0 - adds r2, 0xA4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r2] - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r0, [r6] - strh r1, [r0, 0x2E] - ldr r0, [r2] - strh r1, [r0, 0x2E] - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 20 - ldr r2, _080E84FC @ =0x00000101 - adds r0, r2 - strh r0, [r1, 0x34] - bl sub_80E8534 - adds r1, r7, 0 - adds r1, 0x96 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080E8500 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E84E0: .4byte gSpriteTemplate_83DBCAC -_080E84E4: .4byte gUnknown_083DB694 -_080E84E8: .4byte gSprites -_080E84EC: .4byte gSpriteAnimTable_83DBC8C -_080E84F0: .4byte sub_80E872C -_080E84F4: .4byte gSpriteAnimTable_83DBC9C -_080E84F8: .4byte sub_80E8760 -_080E84FC: .4byte 0x00000101 -_080E8500: .4byte REG_BLDCNT - thumb_func_end sub_80E8420 - - thumb_func_start sub_80E8504 -sub_80E8504: @ 80E8504 - push {r4,lr} - ldr r0, _080E8530 @ =gUnknown_083DB694 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x9C - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA4 - ldr r0, [r0] - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8530: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8504 - - thumb_func_start sub_80E8534 -sub_80E8534: @ 80E8534 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080E8554 @ =gUnknown_083DB694 - ldr r3, [r1] - ldr r2, _080E8558 @ =0x000001b7 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r1, 0 - cmp r0, 0 - beq _080E8560 - ldr r1, _080E855C @ =gUnknown_020388AC - movs r0, 0x1 - b _080E8598 - .align 2, 0 -_080E8554: .4byte gUnknown_083DB694 -_080E8558: .4byte 0x000001b7 -_080E855C: .4byte gUnknown_020388AC -_080E8560: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r2, [r0] - cmp r2, 0 - bne _080E8578 - ldr r0, _080E8574 @ =gUnknown_020388AC - strb r2, [r0] - adds r7, r0, 0 - b _080E859C - .align 2, 0 -_080E8574: .4byte gUnknown_020388AC -_080E8578: - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 3 - cmp r1, r0 - bne _080E8594 - ldr r1, _080E8590 @ =gUnknown_020388AC - movs r0, 0x2 - b _080E8598 - .align 2, 0 -_080E8590: .4byte gUnknown_020388AC -_080E8594: - ldr r1, _080E85F4 @ =gUnknown_020388AC - movs r0, 0x3 -_080E8598: - strb r0, [r1] - adds r7, r1, 0 -_080E859C: - ldr r2, [r4] - adds r4, r2, 0 - adds r4, 0x9C - ldr r1, [r4] - ldrb r0, [r7] - movs r3, 0 - mov r8, r3 - strh r0, [r1, 0x32] - adds r5, r2, 0 - adds r5, 0xA0 - ldr r1, [r5] - ldrb r0, [r7] - strh r0, [r1, 0x32] - adds r6, r2, 0 - adds r6, 0xA4 - ldr r1, [r6] - ldrb r0, [r7] - strh r0, [r1, 0x32] - ldr r0, [r4] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r5] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r6] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x38] - ldr r0, [r4] - strh r1, [r0, 0x3A] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85F4: .4byte gUnknown_020388AC - thumb_func_end sub_80E8534 - - thumb_func_start sub_80E85F8 -sub_80E85F8: @ 80E85F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E8624 - ldr r1, _080E8620 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - adds r0, 0x8 - strh r0, [r5, 0x38] - b _080E863A - .align 2, 0 -_080E8620: .4byte gSineTable -_080E8624: - ldr r1, _080E8688 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - movs r0, 0x8 - subs r0, r1 - strh r0, [r5, 0x3A] -_080E863A: - ldrh r0, [r5, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x30] - ldr r2, _080E868C @ =REG_BLDALPHA - ldrh r0, [r5, 0x3A] - lsls r0, 8 - ldrh r1, [r5, 0x38] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080E8690 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E871A - bl sub_80E8534 - adds r1, r6, 0 - adds r1, 0x9C - ldr r0, [r1] - movs r2, 0x8 - strh r2, [r0, 0x38] - ldr r0, [r1] - strh r2, [r0, 0x3A] - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0x30] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080E86C4 - cmp r0, 0x1 - bgt _080E8694 - cmp r0, 0 - beq _080E869E - b _080E871A - .align 2, 0 -_080E8688: .4byte gSineTable -_080E868C: .4byte REG_BLDALPHA -_080E8690: .4byte gUnknown_083DB694 -_080E8694: - cmp r0, 0x2 - beq _080E86D6 - cmp r0, 0x3 - beq _080E86DE - b _080E871A -_080E869E: - ldr r2, _080E86C0 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x20 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0xC - b _080E870A - .align 2, 0 -_080E86C0: .4byte 0x000001a9 -_080E86C4: - movs r0, 0xD8 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080E8714 -_080E86D6: - movs r0, 0x97 - strh r0, [r5, 0x20] - movs r0, 0x60 - b _080E8718 -_080E86DE: - ldr r4, _080E8720 @ =gUnknown_083DBCC4 - ldr r2, _080E8724 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD4 - lsls r0, 1 - adds r3, r6, r0 - movs r2, 0 - ldrsb r2, [r3, r2] - lsls r0, r2, 3 - subs r0, r2 - adds r1, r0 - adds r1, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 3 - adds r0, 0x1F - strh r0, [r5, 0x20] - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, _080E8728 @ =0x000001b5 -_080E870A: - adds r1, r6, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 -_080E8714: - lsls r0, 4 - adds r0, 0x60 -_080E8718: - strh r0, [r5, 0x22] -_080E871A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8720: .4byte gUnknown_083DBCC4 -_080E8724: .4byte 0x000001a9 -_080E8728: .4byte 0x000001b5 - thumb_func_end sub_80E85F8 - - thumb_func_start sub_80E872C -sub_80E872C: @ 80E872C - push {lr} - adds r2, r0, 0 - ldr r0, _080E875C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8756 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E8756 - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E8756: - pop {r0} - bx r0 - .align 2, 0 -_080E875C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E872C - - thumb_func_start sub_80E8760 -sub_80E8760: @ 80E8760 - push {lr} - adds r2, r0, 0 - ldr r0, _080E8780 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E879E - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080E8784 - cmp r0, 0x2 - beq _080E878E - b _080E879E - .align 2, 0 -_080E8780: .4byte gUnknown_083DB694 -_080E8784: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x40 - b _080E8796 -_080E878E: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x15 -_080E8796: - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E879E: - pop {r0} - bx r0 - thumb_func_end sub_80E8760 - - thumb_func_start sub_80E87A4 -sub_80E87A4: @ 80E87A4 - push {r4,lr} - lsls r0, 24 - ldr r1, _080E87C8 @ =gUnknown_083DB694 - ldr r1, [r1] - adds r2, r1, 0 - adds r2, 0xA8 - ldr r3, [r2] - movs r4, 0 - cmp r0, 0 - bne _080E87BA - movs r4, 0x1 -_080E87BA: - movs r1, 0 - strh r4, [r3, 0x30] - ldr r0, [r2] - strh r1, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E87C8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E87A4 - - thumb_func_start sub_80E87CC -sub_80E87CC: @ 80E87CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E8810 @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0xA8 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _080E87E6 - movs r3, 0x1 -_080E87E6: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - adds r0, r4, 0 - bl sub_80E87A4 - cmp r4, 0 - beq _080E880A - ldr r0, _080E8814 @ =0x000001b9 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] -_080E880A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8810: .4byte gUnknown_083DB694 -_080E8814: .4byte 0x000001b9 - thumb_func_end sub_80E87CC - - thumb_func_start sub_80E8818 -sub_80E8818: @ 80E8818 - push {lr} - ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E8854 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - ldr r0, _080E8858 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xA8 - str r1, [r0] - ldr r0, _080E885C @ =sub_80E8860 - str r0, [r1, 0x1C] - movs r0, 0 - bl sub_80E87CC - pop {r0} - bx r0 - .align 2, 0 -_080E8850: .4byte gSpriteTemplate_83DBBFC -_080E8854: .4byte gSprites -_080E8858: .4byte gUnknown_083DB694 -_080E885C: .4byte sub_80E8860 - thumb_func_end sub_80E8818 - - thumb_func_start sub_80E8860 -sub_80E8860: @ 80E8860 - push {r4,r5,lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r4, [r2, r0] - cmp r4, 0 - bne _080E88E4 - ldr r0, _080E88B0 @ =gUnknown_083DB694 - ldr r3, [r0] - ldr r1, _080E88B4 @ =0x000001b9 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080E88C4 - ldr r5, _080E88B8 @ =0x000099a5 - adds r0, r3, r5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x2C - strh r0, [r2, 0x20] - ldr r1, _080E88BC @ =0x000099a4 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r5, 0x84 - adds r1, r3, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 4 - adds r0, 0x60 - strh r0, [r2, 0x22] - ldr r0, _080E88C0 @ =0x0000fffa - strh r0, [r2, 0x24] - strh r4, [r2, 0x2E] - b _080E88E4 - .align 2, 0 -_080E88B0: .4byte gUnknown_083DB694 -_080E88B4: .4byte 0x000001b9 -_080E88B8: .4byte 0x000099a5 -_080E88BC: .4byte 0x000099a4 -_080E88C0: .4byte 0x0000fffa -_080E88C4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E88E4 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E88E4 - ldr r0, _080E88EC @ =0x0000fffa - strh r0, [r2, 0x24] -_080E88E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88EC: .4byte 0x0000fffa - thumb_func_end sub_80E8860 - - thumb_func_start sub_80E88F0 -sub_80E88F0: @ 80E88F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r0, _080E8950 @ =gUnknown_083DB694 - mov r8, r0 - ldr r0, [r0] - movs r6, 0x4 - movs r5, 0 - movs r1, 0xB4 - adds r1, r0 - mov r12, r1 - adds r7, r0, 0 - adds r7, 0xAC -_080E890C: - lsls r2, r4, 2 - adds r3, r7, r2 - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r3] - strh r5, [r0, 0x30] - add r2, r12 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r2] - strh r5, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E890C - mov r1, r8 - ldr r0, [r1] - ldr r1, _080E8954 @ =0x00009c70 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8950: .4byte gUnknown_083DB694 -_080E8954: .4byte 0x00009c70 - thumb_func_end sub_80E88F0 - - thumb_func_start sub_80E8958 -sub_80E8958: @ 80E8958 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _080E89B4 - movs r0, 0x64 - mov r9, r0 - ldr r0, _080E8998 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E899C @ =0x00009c6c - adds r1, r2, r3 - ldr r3, _080E89A0 @ =0x000001b5 - adds r0, r2, r3 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E89A8 - movs r1, 0xDB - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E89A4 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - b _080E8A00 - .align 2, 0 -_080E8998: .4byte gUnknown_083DB694 -_080E899C: .4byte 0x00009c6c -_080E89A0: .4byte 0x000001b5 -_080E89A4: .4byte 0x00009c71 -_080E89A8: - ldr r1, _080E89B0 @ =0x00009c71 - adds r0, r2, r1 - strb r7, [r0] - b _080E8A00 - .align 2, 0 -_080E89B0: .4byte 0x00009c71 -_080E89B4: - movs r3, 0x78 - mov r9, r3 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8A68 @ =0x00009c6c - adds r1, r2, r0 - ldr r3, _080E8A6C @ =0x00009a29 - adds r0, r2, r3 - str r0, [r1] - ldr r1, _080E8A70 @ =0x00009a28 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - adds r5, 0xB4 - movs r0, 0x5 - negs r0, r0 - mov r12, r0 - movs r6, 0x1 -_080E89E2: - lsls r3, r4, 2 - adds r3, r5, r3 - ldr r1, [r3] - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - strh r6, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E89E2 -_080E8A00: - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E8A14 - movs r0, 0 - strb r0, [r1] -_080E8A14: - movs r4, 0 - adds r6, r2, 0 - adds r6, 0xAC - movs r0, 0x5 - negs r0, r0 - mov r8, r0 -_080E8A20: - lsls r2, r4, 2 - adds r2, r6, r2 - ldr r0, [r2] - mov r1, r9 - strh r1, [r0, 0x20] - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - ands r0, r3 - strb r0, [r1] - ldr r0, [r2] - movs r5, 0x1 - strh r5, [r0, 0x30] - ldr r0, [r2] - adds r1, r7, 0 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E8A20 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8A78 @ =0x00009c70 - adds r0, r1 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8A64: .4byte gUnknown_083DB694 -_080E8A68: .4byte 0x00009c6c -_080E8A6C: .4byte 0x00009a29 -_080E8A70: .4byte 0x00009a28 -_080E8A74: .4byte 0x00009c71 -_080E8A78: .4byte 0x00009c70 - thumb_func_end sub_80E8958 - - thumb_func_start sub_80E8A7C -sub_80E8A7C: @ 80E8A7C - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r5, 0 -_080E8A8E: - lsls r2, r5, 3 - adds r2, r5 - lsls r2, 19 - movs r0, 0xA8 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - mov r0, sp - movs r1, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - lsls r0, r5, 2 - adds r2, 0xAC - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - adds r3, 0x3F - movs r0, 0x1 - adds r2, r5, 0 - ands r2, r0 - lsls r2, 1 - ldrb r0, [r3] - movs r4, 0x3 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8A8E - mov r0, sp - movs r1, 0x3 - strh r1, [r0] - ldr r0, _080E8B74 @ =gUnknown_083DBD10 - str r0, [sp, 0x8] - movs r5, 0 - movs r7, 0x3F - movs r6, 0x40 -_080E8AF6: - lsls r4, r5, 2 - adds r1, r4, r5 - lsls r1, 19 - movs r0, 0x8E - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - adds r2, 0xB4 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - ldrb r1, [r3, 0x1] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x1] - ldr r3, [r2] - ldrb r1, [r3, 0x3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x3] - ldr r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8AF6 - movs r0, 0 - bl sub_80E8958 - bl sub_80E88F0 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8B68: .4byte gSpriteTemplate_83DBD18 -_080E8B6C: .4byte gUnknown_083DB694 -_080E8B70: .4byte gSprites -_080E8B74: .4byte gUnknown_083DBD10 - thumb_func_end sub_80E8A7C - - thumb_func_start sub_80E8B78 -sub_80E8B78: @ 80E8B78 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080E8BB0 @ =gUnknown_083DB694 - ldr r1, [r0] - ldr r2, _080E8BB4 @ =0x00009c70 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _080E8BBC - movs r4, 0 - ldr r2, _080E8BB8 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E8BD6 - b _080E8BD4 - .align 2, 0 -_080E8BB0: .4byte gUnknown_083DB694 -_080E8BB4: .4byte 0x00009c70 -_080E8BB8: .4byte 0x00009c6c -_080E8BBC: - movs r4, 0 - ldr r2, _080E8BF0 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x5 - adds r1, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E8BD6 -_080E8BD4: - movs r4, 0x1 -_080E8BD6: - adds r2, r3, 0 - adds r2, 0x3E - lsls r3, r4, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E8BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8BF0: .4byte 0x00009c6c - thumb_func_end sub_80E8B78 - - thumb_func_start sub_80E8BF4 -sub_80E8BF4: @ 80E8BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, _080E8C28 @ =gUnknown_083DBD30 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - ldr r0, _080E8C2C @ =gUnknown_083DBD38 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - cmp r2, 0x2 - beq _080E8C20 - cmp r2, 0x5 - beq _080E8C30 -_080E8C20: - movs r4, 0x40 - movs r5, 0x28 - b _080E8C34 - .align 2, 0 -_080E8C28: .4byte gUnknown_083DBD30 -_080E8C2C: .4byte gUnknown_083DBD38 -_080E8C30: - movs r4, 0x24 - movs r5, 0x30 -_080E8C34: - cmp r3, 0 - beq _080E8C3C - cmp r3, 0x1 - beq _080E8C40 -_080E8C3C: - movs r0, 0x43 - b _080E8C42 -_080E8C40: - movs r0, 0x44 -_080E8C42: - mov r8, r0 - add r0, sp, 0x4 - bl LoadCompressedObjectPic - add r0, sp, 0xC - bl LoadSpritePalette - ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - ldr r0, _080E8CE0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _080E8C68 - movs r1, 0x64 -_080E8C68: - ldr r7, _080E8CE4 @ =SpriteCallbackDummy - adds r2, r4, 0 - subs r2, 0xC - movs r6, 0 - str r6, [sp] - adds r0, r1, 0 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8C9E - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_080E8C9E: - adds r2, r4, 0 - adds r2, 0xC - str r6, [sp] - mov r0, r8 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8CD0 - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_080E8CD0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8CDC: .4byte gSpriteTemplate_83DBD48 -_080E8CE0: .4byte gSaveBlock2 -_080E8CE4: .4byte SpriteCallbackDummy -_080E8CE8: .4byte gSprites - thumb_func_end sub_80E8BF4 - - thumb_func_start sub_80E8CEC -sub_80E8CEC: @ 80E8CEC - push {lr} - ldr r0, _080E8D24 @ =gUnknown_083DBD60 - bl LoadCompressedObjectPic - ldr r0, _080E8D28 @ =gUnknown_083DBD68 - bl LoadSpritePalette - ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 - movs r1, 0xE0 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080E8D3C - ldr r0, _080E8D30 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8D34 @ =0x00009c74 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8D38 @ =gSprites - adds r0, r1 - str r0, [r2] - b _080E8D48 - .align 2, 0 -_080E8D24: .4byte gUnknown_083DBD60 -_080E8D28: .4byte gUnknown_083DBD68 -_080E8D2C: .4byte gSpriteTemplate_83DBDE4 -_080E8D30: .4byte gUnknown_083DB694 -_080E8D34: .4byte 0x00009c74 -_080E8D38: .4byte gSprites -_080E8D3C: - ldr r0, _080E8D4C @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8D50 @ =0x00009c74 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_080E8D48: - pop {r0} - bx r0 - .align 2, 0 -_080E8D4C: .4byte gUnknown_083DB694 -_080E8D50: .4byte 0x00009c74 - thumb_func_end sub_80E8CEC - - thumb_func_start sub_80E8D54 -sub_80E8D54: @ 80E8D54 - push {lr} - ldr r0, _080E8D78 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8D7C @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8D88 - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8D80 - adds r0, r1, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _080E8D88 - .align 2, 0 -_080E8D78: .4byte gUnknown_083DB694 -_080E8D7C: .4byte 0x00009c74 -_080E8D80: - adds r0, r1, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080E8D88: - pop {r0} - bx r0 - thumb_func_end sub_80E8D54 - - thumb_func_start sub_80E8D8C -sub_80E8D8C: @ 80E8D8C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080E8DB8 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8DBC @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8DD2 - cmp r3, 0 - beq _080E8DCA - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8DC0 - adds r0, r1, 0 - movs r1, 0x3 - bl StartSpriteAnim - b _080E8DD2 - .align 2, 0 -_080E8DB8: .4byte gUnknown_083DB694 -_080E8DBC: .4byte 0x00009c74 -_080E8DC0: - adds r0, r1, 0 - movs r1, 0x4 - bl StartSpriteAnim - b _080E8DD2 -_080E8DCA: - adds r0, r1, 0 - movs r1, 0x5 - bl StartSpriteAnim -_080E8DD2: - pop {r0} - bx r0 - thumb_func_end sub_80E8D8C - - thumb_func_start sub_80E8DD8 -sub_80E8DD8: @ 80E8DD8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _080E8F2C @ =REG_BG0HOFS - movs r6, 0 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - subs r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r1, _080E8F30 @ =REG_BG0CNT - movs r2, 0x8B - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E8F34 @ =0x00000d09 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E8F38 @ =gUnknown_08E945D0 - ldr r1, _080E8F3C @ =gUnknown_083DB694 - ldr r1, [r1] - mov r8, r1 - movs r4, 0xE4 - lsls r4, 1 - add r4, r8 - movs r5, 0xA0 - lsls r5, 2 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F40 @ =gUnknown_08E953D0 - movs r1, 0xD9 - lsls r1, 3 - add r1, r8 - bl LZ77UnCompWram - ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx - ldr r1, _080E8F48 @ =0x06008000 - bl LZ77UnCompVram - ldr r1, _080E8F4C @ =0x06006800 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r1, _080E8F54 @ =REG_BG2CNT - ldr r2, _080E8F58 @ =0x00000e02 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F5C @ =0x06007000 - movs r5, 0x80 - lsls r5, 4 - mov r0, sp - strh r6, [r0] - ldr r4, _080E8F60 @ =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r0, r5, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F64 @ =gUnknown_08E9AB00 - ldr r2, _080E8F68 @ =0x06006000 - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _080E8F6C @ =0x80000020 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F70 @ =gUnknown_08E9AB60 - bl LZ77UnCompVram - ldr r0, _080E8F74 @ =gUnknown_08E9AB40 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F78 @ =gUnknown_083DBDFC - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080E8F7C @ =REG_BG3CNT - ldr r2, _080E8F80 @ =0x00000f0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F84 @ =0x06007800 - movs r0, 0 - mov r9, r0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r5, 2 - movs r0, 0x85 - lsls r0, 24 - orrs r5, r0 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F88 @ =gUnknown_083DBE40 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F8C @ =gPlttBufferUnfaded - adds r1, r0, 0 - adds r1, 0x7E - ldr r3, _080E8F90 @ =0x00007fff - strh r3, [r1] - subs r1, 0x1C - ldr r2, _080E8F94 @ =0x00006f5b - strh r2, [r1] - adds r0, 0x70 - ldr r1, _080E8F98 @ =0x0000739c - strh r1, [r0] - ldr r0, _080E8F9C @ =gPlttBufferFaded - adds r4, r0, 0 - adds r4, 0x7E - strh r3, [r4] - adds r3, r0, 0 - adds r3, 0x62 - strh r2, [r3] - adds r0, 0x70 - strh r1, [r0] - movs r1, 0xBC - add r8, r1 - mov r2, r8 - strb r6, [r2] - bl sub_80E8FA4 - bl sub_80E948C - movs r0, 0xA - bl sub_80E9198 - movs r0, 0 - bl sub_80E91D4 - bl sub_80E95A4 - ldr r0, _080E8FA0 @ =REG_BLDCNT - mov r1, r9 - strh r1, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8F2C: .4byte REG_BG0HOFS -_080E8F30: .4byte REG_BG0CNT -_080E8F34: .4byte 0x00000d09 -_080E8F38: .4byte gUnknown_08E945D0 -_080E8F3C: .4byte gUnknown_083DB694 -_080E8F40: .4byte gUnknown_08E953D0 -_080E8F44: .4byte gMenuWordGroupFrame_Gfx -_080E8F48: .4byte 0x06008000 -_080E8F4C: .4byte 0x06006800 -_080E8F50: .4byte gMenuWordGroupFrame1_Pal -_080E8F54: .4byte REG_BG2CNT -_080E8F58: .4byte 0x00000e02 -_080E8F5C: .4byte 0x06007000 -_080E8F60: .4byte 0x040000d4 -_080E8F64: .4byte gUnknown_08E9AB00 -_080E8F68: .4byte 0x06006000 -_080E8F6C: .4byte 0x80000020 -_080E8F70: .4byte gUnknown_08E9AB60 -_080E8F74: .4byte gUnknown_08E9AB40 -_080E8F78: .4byte gUnknown_083DBDFC -_080E8F7C: .4byte REG_BG3CNT -_080E8F80: .4byte 0x00000f0f -_080E8F84: .4byte 0x06007800 -_080E8F88: .4byte gUnknown_083DBE40 -_080E8F8C: .4byte gPlttBufferUnfaded -_080E8F90: .4byte 0x00007fff -_080E8F94: .4byte 0x00006f5b -_080E8F98: .4byte 0x0000739c -_080E8F9C: .4byte gPlttBufferFaded -_080E8FA0: .4byte REG_BLDCNT - thumb_func_end sub_80E8DD8 - - thumb_func_start sub_80E8FA4 -sub_80E8FA4: @ 80E8FA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x24] - add r2, sp, 0xC - mov r12, r2 -_080E8FBE: - mov r3, r9 - lsls r1, r3, 1 - ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2 - adds r0, r1, r4 - ldrh r2, [r0] - movs r0, 0x1F - ands r0, r2 - lsls r0, 8 - str r0, [sp] - ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8 - adds r1, r5 - ldrh r1, [r1] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0xC] - lsls r2, 16 - lsrs r0, r2, 21 - movs r3, 0x1F - ands r0, r3 - lsls r0, 8 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r3 - lsls r0, 8 - mov r4, r12 - str r0, [r4, 0x4] - lsrs r2, 26 - ands r2, r3 - lsls r2, 8 - str r2, [sp, 0x8] - lsrs r1, 26 - ands r1, r3 - lsls r1, 8 - str r1, [r4, 0x8] - movs r3, 0 - mov r5, r9 - lsls r5, 3 - mov r10, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x28] - ldr r4, [sp, 0x24] -_080E9016: - lsls r0, r3, 2 - adds r2, r4, r0 - mov r5, r12 - adds r1, r5, r0 - add r0, sp - ldr r1, [r1] - ldr r0, [r0] - subs r0, r1, r0 - cmp r0, 0 - bge _080E902C - adds r0, 0x7 -_080E902C: - asrs r0, 3 - str r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9016 - movs r4, 0 - ldr r0, _080E90FC @ =gUnknown_083DB694 - ldr r1, [r0] - mov r0, r10 - add r0, r9 - lsls r0, 1 - mov r8, r0 - movs r5, 0x1F - ldr r6, [sp, 0x24] - ldr r0, _080E9100 @ =0x00009c34 - adds r7, r1, r0 -_080E9050: - lsls r2, r4, 1 - add r2, r8 - adds r2, r7, r2 - ldr r1, [sp, 0x8] - asrs r1, 8 - ands r1, r5 - lsls r1, 10 - ldr r0, [sp, 0x4] - asrs r0, 8 - ands r0, r5 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp] - asrs r0, 8 - ands r0, r5 - orrs r1, r0 - strh r1, [r2] - movs r3, 0 - adds r4, 0x1 -_080E9076: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - adds r0, r6, r0 - ldr r1, [r2] - ldr r0, [r0] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9076 - lsls r0, r4, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080E9050 - ldr r2, _080E90FC @ =gUnknown_083DB694 - ldr r3, [r2] - mov r0, r10 - add r0, r9 - adds r0, r4 - lsls r0, 1 - ldr r4, _080E9100 @ =0x00009c34 - adds r2, r3, r4 - adds r2, r0 - mov r5, r12 - ldr r1, [r5, 0x8] - asrs r1, 8 - movs r0, 0x1F - ands r1, r0 - lsls r1, 10 - ldr r0, [r5, 0x4] - asrs r0, 8 - movs r4, 0x1F - ands r0, r4 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp, 0xC] - asrs r0, 8 - ands r0, r4 - orrs r1, r0 - strh r1, [r2] - ldr r5, [sp, 0x28] - lsls r0, r5, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x2 - bhi _080E90DA - b _080E8FBE -_080E90DA: - ldr r0, _080E9104 @ =0x00009c32 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 -_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 -_080E90FC: .4byte gUnknown_083DB694 -_080E9100: .4byte 0x00009c34 -_080E9104: .4byte 0x00009c32 - thumb_func_end sub_80E8FA4 - - thumb_func_start sub_80E9108 -sub_80E9108: @ 80E9108 - push {r4-r7,lr} - lsls r0, 24 - ldr r1, _080E9164 @ =gUnknown_083DB694 - ldr r2, [r1] - ldr r3, _080E9168 @ =0x00009c32 - adds r1, r2, r3 - lsrs r0, 24 - ldrb r3, [r1] - adds r0, r3 - strb r0, [r1] - movs r4, 0 - ldr r0, _080E916C @ =gPlttBufferUnfaded - mov r12, r0 - adds r6, r1, 0 - ldr r3, _080E9170 @ =0x00009c34 - adds r5, r2, r3 - ldr r7, _080E9174 @ =gPlttBufferFaded -_080E912A: - adds r2, r4, 0 - adds r2, 0x51 - lsls r2, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r0, [r6] - lsls r0, 1 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r3] - adds r2, r7 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080E912A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9164: .4byte gUnknown_083DB694 -_080E9168: .4byte 0x00009c32 -_080E916C: .4byte gPlttBufferUnfaded -_080E9170: .4byte 0x00009c34 -_080E9174: .4byte gPlttBufferFaded - thumb_func_end sub_80E9108 - - thumb_func_start sub_80E9178 -sub_80E9178: @ 80E9178 - push {lr} - ldr r0, _080E9190 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9194 @ =0x00009c32 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - bl sub_80E9108 - pop {r0} - bx r0 - .align 2, 0 -_080E9190: .4byte gUnknown_083DB694 -_080E9194: .4byte 0x00009c32 - thumb_func_end sub_80E9178 - - thumb_func_start sub_80E9198 -sub_80E9198: @ 80E9198 - ldr r1, _080E91A0 @ =gUnknown_03000740 - strb r0, [r1] - bx lr - .align 2, 0 -_080E91A0: .4byte gUnknown_03000740 - thumb_func_end sub_80E9198 - - thumb_func_start sub_80E91A4 -sub_80E91A4: @ 80E91A4 - ldr r0, _080E91AC @ =gUnknown_03000740 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E91AC: .4byte gUnknown_03000740 - thumb_func_end sub_80E91A4 - - thumb_func_start sub_80E91B0 -sub_80E91B0: @ 80E91B0 - push {lr} - sub sp, 0x8 - lsls r2, 24 - lsls r1, 27 - lsrs r1, 24 - lsrs r2, 21 - lsls r3, 27 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xB0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80E91B0 - - thumb_func_start sub_80E91D4 -sub_80E91D4: @ 80E91D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - cmp r4, 0xA - bne _080E9200 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0xA - bl sub_80E9198 - b _080E935C - .align 2, 0 -_080E91FC: .4byte gWindowConfig_81E6DA8 -_080E9200: - bl sub_80E91A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _080E9218 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow -_080E9218: - adds r0, r4, 0 - bl sub_80E9198 - cmp r4, 0x9 - bls _080E9224 - b _080E935C -_080E9224: - lsls r0, r4, 2 - ldr r1, _080E9230 @ =_080E9234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9230: .4byte _080E9234 - .align 2, 0 -_080E9234: - .4byte _080E925C - .4byte _080E9284 - .4byte _080E92AC - .4byte _080E92C4 - .4byte _080E92F0 - .4byte _080E9308 - .4byte _080E9310 - .4byte _080E9318 - .4byte _080E933C - .4byte _080E9350 -_080E925C: - ldr r0, _080E9278 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E927C @ =0x00009c80 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9280 @ =0x00009cc9 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E9278: .4byte gUnknown_083DB694 -_080E927C: .4byte 0x00009c80 -_080E9280: .4byte 0x00009cc9 -_080E9284: - ldr r0, _080E92A0 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E92A4 @ =0x00009d12 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92A8 @ =0x00009d5b - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E92A0: .4byte gUnknown_083DB694 -_080E92A4: .4byte 0x00009d12 -_080E92A8: .4byte 0x00009d5b -_080E92AC: - ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 - b _080E9326 - .align 2, 0 -_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 -_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 -_080E92C4: - ldr r0, _080E92D8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - beq _080E92E0 - cmp r0, 0x9 - bne _080E92E8 - ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo - b _080E933E - .align 2, 0 -_080E92D8: .4byte gUnknown_083DB694 -_080E92DC: .4byte gOtherText_QuitGivingInfo -_080E92E0: - ldr r0, _080E92E4 @ =gOtherText_StopGivingMail - b _080E933E - .align 2, 0 -_080E92E4: .4byte gOtherText_StopGivingMail -_080E92E8: - ldr r0, _080E92EC @ =gOtherText_QuitEditing - b _080E933E - .align 2, 0 -_080E92EC: .4byte gOtherText_QuitEditing -_080E92F0: - ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 - b _080E9326 - .align 2, 0 -_080E9300: .4byte gOtherText_EditedTextNoSavePage1 -_080E9304: .4byte gOtherText_EditedTextNoSavePage2 -_080E9308: - ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord - b _080E933E - .align 2, 0 -_080E930C: .4byte gOtherText_EnterAPhraseOrWord -_080E9310: - ldr r0, _080E9314 @ =gOtherText_TextNoDelete - b _080E933E - .align 2, 0 -_080E9314: .4byte gOtherText_TextNoDelete -_080E9318: - ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored -_080E9326: - movs r1, 0x4 - movs r2, 0x11 - movs r3, 0x2 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E9334: .4byte gOtherText_OnlyOnePhrase -_080E9338: .4byte gOtherText_OriginalSongRestored -_080E933C: - ldr r0, _080E934C @ =gOtherText_TrendyAlready -_080E933E: - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E934C: .4byte gOtherText_TrendyAlready -_080E9350: - ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 -_080E935C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9364: .4byte gOtherText_CombineTwoPhrases - thumb_func_end sub_80E91D4 - - thumb_func_start sub_80E9368 -sub_80E9368: @ 80E9368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080E93F8 - lsls r0, 2 - ldr r1, _080E937C @ =_080E9380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E937C: .4byte _080E9380 - .align 2, 0 -_080E9380: - .4byte _080E93B8 - .4byte _080E93C0 - .4byte _080E93C8 - .4byte _080E93D0 - .4byte _080E93F8 - .4byte _080E93E8 - .4byte _080E93D8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E0 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93F0 -_080E93B8: - ldr r4, _080E93BC @ =gOtherText_Profile - b _080E93FA - .align 2, 0 -_080E93BC: .4byte gOtherText_Profile -_080E93C0: - ldr r4, _080E93C4 @ =gOtherText_AtBattleStart - b _080E93FA - .align 2, 0 -_080E93C4: .4byte gOtherText_AtBattleStart -_080E93C8: - ldr r4, _080E93CC @ =gOtherText_UponWinningBattle - b _080E93FA - .align 2, 0 -_080E93CC: .4byte gOtherText_UponWinningBattle -_080E93D0: - ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle - b _080E93FA - .align 2, 0 -_080E93D4: .4byte gOtherText_UponLosingBattle -_080E93D8: - ldr r4, _080E93DC @ =gOtherText_TheBardsSong - b _080E93FA - .align 2, 0 -_080E93DC: .4byte gOtherText_TheBardsSong -_080E93E0: - ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening - b _080E93FA - .align 2, 0 -_080E93E4: .4byte gOtherText_WhatsHipHappening -_080E93E8: - ldr r4, _080E93EC @ =gOtherText_Interview - b _080E93FA - .align 2, 0 -_080E93EC: .4byte gOtherText_Interview -_080E93F0: - ldr r4, _080E93F4 @ =gOtherText_GoodSaying - b _080E93FA - .align 2, 0 -_080E93F4: .4byte gOtherText_GoodSaying -_080E93F8: - movs r4, 0 -_080E93FA: - ldr r0, _080E943C @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9440 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E9444 @ =0x00009f8e - adds r5, r2, r0 - movs r3, 0xFC - strb r3, [r5] - adds r0, 0x1 - adds r1, r2, r0 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080E9448 @ =0x00009f90 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - cmp r4, 0 - beq _080E9450 - ldr r1, _080E944C @ =0x00009f91 - adds r0, r2, r1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - b _080E9476 - .align 2, 0 -_080E943C: .4byte gWindowConfig_81E6D8C -_080E9440: .4byte gUnknown_083DB694 -_080E9444: .4byte 0x00009f8e -_080E9448: .4byte 0x00009f90 -_080E944C: .4byte 0x00009f91 -_080E9450: - ldr r0, _080E9484 @ =0x00009f91 - adds r1, r2, r0 - strb r3, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0 - bl MenuPrint -_080E9476: - ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9484: .4byte 0x00009f91 -_080E9488: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9368 - - thumb_func_start sub_80E948C -sub_80E948C: @ 80E948C - push {lr} - sub sp, 0x10 - ldr r0, _080E94A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bls _080E949C - b _080E9594 -_080E949C: - lsls r0, 2 - ldr r1, _080E94AC @ =_080E94B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E94A8: .4byte gUnknown_083DB694 -_080E94AC: .4byte _080E94B0 - .align 2, 0 -_080E94B0: - .4byte _080E9508 - .4byte _080E9530 - .4byte _080E9554 - .4byte _080E9578 - .4byte _080E94C8 - .4byte _080E94E8 -_080E94C8: - ldr r0, _080E94E0 @ =0x06006800 - ldr r3, _080E94E4 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x1A - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x6 - str r1, [sp, 0xC] - movs r1, 0x3 - b _080E9568 - .align 2, 0 -_080E94E0: .4byte 0x06006800 -_080E94E4: .4byte gUnknown_08E94AD0 -_080E94E8: - ldr r0, _080E9500 @ =0x06006800 - ldr r3, _080E9504 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0xD - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0xE - b _080E951E - .align 2, 0 -_080E9500: .4byte 0x06006800 -_080E9504: .4byte gUnknown_08E94AD0 -_080E9508: - ldr r0, _080E9528 @ =0x06006800 - ldr r3, _080E952C @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0x2 -_080E951E: - movs r2, 0x2 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9528: .4byte 0x06006800 -_080E952C: .4byte gUnknown_08E94AD0 -_080E9530: - ldr r0, _080E954C @ =0x06006800 - ldr r3, _080E9550 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0xA - str r1, [sp, 0xC] - movs r1, 0x2 - movs r2, 0 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E954C: .4byte 0x06006800 -_080E9550: .4byte gUnknown_08E94AD0 -_080E9554: - ldr r0, _080E9570 @ =0x06006800 - ldr r3, _080E9574 @ =gUnknown_08E94AD0 - movs r2, 0xD - str r2, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0xE -_080E9568: - movs r2, 0x3 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9570: .4byte 0x06006800 -_080E9574: .4byte gUnknown_08E94AD0 -_080E9578: - ldr r0, _080E959C @ =0x06006800 - ldr r3, _080E95A0 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0x3 - movs r2, 0x2 - bl sub_809D104 -_080E9594: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E959C: .4byte 0x06006800 -_080E95A0: .4byte gUnknown_08E94AD0 - thumb_func_end sub_80E948C - - thumb_func_start sub_80E95A4 -sub_80E95A4: @ 80E95A4 - push {lr} - ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E95C4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9612 - lsls r0, 2 - ldr r1, _080E95C8 @ =_080E95CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E95C0: .4byte gWindowConfig_81E6D8C -_080E95C4: .4byte gUnknown_083DB694 -_080E95C8: .4byte _080E95CC - .align 2, 0 -_080E95CC: - .4byte _080E95F2 - .4byte _080E95F6 - .4byte _080E9600 - .4byte _080E960A - .4byte _080E95E4 - .4byte _080E95EE -_080E95E4: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E9620 - b _080E9612 -_080E95EE: - movs r0, 0x2 - b _080E9602 -_080E95F2: - movs r0, 0x3 - b _080E95F8 -_080E95F6: - movs r0, 0 -_080E95F8: - movs r1, 0x5 - bl sub_80E9620 - b _080E9612 -_080E9600: - movs r0, 0x4 -_080E9602: - movs r1, 0x11 - bl sub_80E9620 - b _080E9612 -_080E960A: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E9620 -_080E9612: - ldr r0, _080E961C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E961C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E95A4 - - thumb_func_start sub_80E9620 -sub_80E9620: @ 80E9620 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r1, 0 - mov r10, r1 - lsrs r7, r0, 16 - mov r9, r1 - ldr r0, _080E9644 @ =gUnknown_083DB694 - ldr r0, [r0] - b _080E971A - .align 2, 0 -_080E9644: .4byte gUnknown_083DB694 -_080E9648: - ldr r6, [sp, 0x14] - movs r2, 0 - mov r8, r2 - adds r0, r7, 0x2 - str r0, [sp, 0x1C] - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x18] - b _080E96E4 -_080E965A: - mov r2, r10 - lsls r0, r2, 1 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - ldr r2, _080E9690 @ =0x0000ffff - cmp r0, r2 - bne _080E969C - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - ldr r0, _080E9694 @ =0x06007000 - adds r1, r6, 0 - adds r2, r7, 0 - ldr r3, _080E9698 @ =gUnknown_083DBE1C - bl sub_8095C8C - adds r0, r6, 0 - adds r0, 0xB - b _080E96CC - .align 2, 0 -_080E9690: .4byte 0x0000ffff -_080E9694: .4byte 0x06007000 -_080E9698: .4byte gUnknown_083DBE1C -_080E969C: - ldr r0, _080E9738 @ =0x00009e14 - adds r4, r5, r0 - ldrh r1, [r1] - adds r0, r4, 0 - movs r2, 0xB - bl sub_80EB218 - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - mov r1, r9 - lsls r0, r1, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x8C - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xB - ldrb r1, [r1] - adds r0, r1 -_080E96CC: - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E96E4: - ldr r0, _080E973C @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080E970A - ldrb r2, [r5, 0xA] - cmp r10, r2 - bcc _080E965A - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - ldr r0, _080E9740 @ =gUnknown_083DBEA8 - bl MenuPrint -_080E970A: - ldr r1, [sp, 0x1C] - lsls r0, r1, 16 - lsrs r7, r0, 16 - ldr r2, [sp, 0x18] - lsls r0, r2, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 -_080E971A: - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r9, r0 - blt _080E9648 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9738: .4byte 0x00009e14 -_080E973C: .4byte gUnknown_083DB694 -_080E9740: .4byte gUnknown_083DBEA8 - thumb_func_end sub_80E9620 - - thumb_func_start sub_80E9744 -sub_80E9744: @ 80E9744 - push {lr} - ldr r0, _080E9760 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9764 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E97B2 - lsls r0, 2 - ldr r1, _080E9768 @ =_080E976C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9760: .4byte gWindowConfig_81E6D8C -_080E9764: .4byte gUnknown_083DB694 -_080E9768: .4byte _080E976C - .align 2, 0 -_080E976C: - .4byte _080E9792 - .4byte _080E9796 - .4byte _080E97A0 - .4byte _080E97AA - .4byte _080E9784 - .4byte _080E978E -_080E9784: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E97C0 - b _080E97B2 -_080E978E: - movs r0, 0x2 - b _080E97A2 -_080E9792: - movs r0, 0x3 - b _080E9798 -_080E9796: - movs r0, 0 -_080E9798: - movs r1, 0x5 - bl sub_80E97C0 - b _080E97B2 -_080E97A0: - movs r0, 0x4 -_080E97A2: - movs r1, 0x11 - bl sub_80E97C0 - b _080E97B2 -_080E97AA: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E97C0 -_080E97B2: - ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E97BC: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9744 - - thumb_func_start sub_80E97C0 -sub_80E97C0: @ 80E97C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r7, 0 - movs r3, 0 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080E98A6 -_080E97EA: - ldr r1, [r1] - ldr r0, _080E98BC @ =0x00009e6e - adds r2, r1, r0 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r4, [sp] - lsls r4, 24 - mov r8, r4 - lsls r4, r5, 24 - mov r9, r4 - adds r5, 0x2 - mov r10, r5 - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r6, r0 - bge _080E985E - ldrb r1, [r1, 0xA] - cmp r7, r1 - bcs _080E985E - ldr r0, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r5, _080E98C0 @ =0x0000ffff -_080E981E: - lsls r0, r7, 1 - adds r1, r4, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080E983E - adds r1, r0, 0 - adds r0, r2, 0 - movs r2, 0 - bl sub_80EB218 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 -_080E983E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E985E - ldrb r0, [r4, 0xA] - cmp r7, r0 - bcc _080E981E -_080E985E: - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r1] - adds r0, r4, 0 - adds r0, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xB - muls r1, r0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - lsls r1, 3 - strb r1, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _080E98BC @ =0x00009e6e - adds r0, r4, r2 - mov r3, r8 - lsrs r1, r3, 24 - mov r3, r9 - lsrs r2, r3, 24 - bl MenuPrint - mov r1, r10 - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0x4] - lsls r0, r2, 24 - lsrs r3, r0, 24 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - adds r4, 0x84 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r3, r0 - blt _080E97EA -_080E98A6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E98B8: .4byte gUnknown_083DB694 -_080E98BC: .4byte 0x00009e6e -_080E98C0: .4byte 0x0000ffff - thumb_func_end sub_80E97C0 - - thumb_func_start sub_80E98C4 -sub_80E98C4: @ 80E98C4 - push {lr} - ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E98E4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9936 - lsls r0, 2 - ldr r1, _080E98E8 @ =_080E98EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E98E0: .4byte gWindowConfig_81E6D8C -_080E98E4: .4byte gUnknown_083DB694 -_080E98E8: .4byte _080E98EC - .align 2, 0 -_080E98EC: - .4byte _080E990A - .4byte _080E9910 - .4byte _080E9916 - .4byte _080E991A - .4byte _080E9904 - .4byte _080E990A -_080E9904: - movs r1, 0x4 - movs r3, 0x2 - b _080E991E -_080E990A: - movs r1, 0x3 - movs r3, 0x2 - b _080E991E -_080E9910: - movs r1, 0x1 - movs r3, 0x3 - b _080E991E -_080E9916: - movs r1, 0x4 - b _080E991C -_080E991A: - movs r1, 0x3 -_080E991C: - movs r3, 0x1 -_080E991E: - lsls r3, 1 - adds r3, r1, r3 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - movs r2, 0x1B - bl MenuFillWindowRectWithBlankTile - ldr r0, _080E993C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow -_080E9936: - pop {r0} - bx r0 - .align 2, 0 -_080E993C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E98C4 - - thumb_func_start sub_80E9940 -sub_80E9940: @ 80E9940 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - movs r4, 0x7 - ands r4, r5 - lsls r3, r4, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0x2 - movs r2, 0x1F - bl MenuFillWindowRectWithBlankTile - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80E9A7C - lsls r4, 1 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_80E9A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9940 - - thumb_func_start sub_80E9974 -sub_80E9974: @ 80E9974 - push {r4-r6,lr} - ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E99C8 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E99D4 - ldr r1, _080E99CC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 16 - lsrs r4, r1, 16 - adds r0, 0x4 - cmp r4, r0 - bge _080E9A08 - adds r5, r2, 0 - ldr r2, _080E99CC @ =0x000001b5 - adds r6, r5, r2 -_080E99A4: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E99D0 @ =0x00009dc9 - adds r0, r5, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, 0x4 - cmp r4, r0 - blt _080E99A4 - b _080E9A08 - .align 2, 0 -_080E99C4: .4byte gWindowConfig_81E6D54 -_080E99C8: .4byte gUnknown_083DB694 -_080E99CC: .4byte 0x000001b5 -_080E99D0: .4byte 0x00009dc9 -_080E99D4: - bl sub_80E9AD4 - ldr r4, _080E9A10 @ =gUnknown_083DBEAC - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x20 - movs r1, 0x2 - movs r2, 0x2 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x40 - movs r1, 0x2 - movs r2, 0x4 - bl sub_80E9A60 - adds r4, 0x60 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x6 - bl sub_80E9A60 -_080E9A08: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9A10: .4byte gUnknown_083DBEAC - thumb_func_end sub_80E9974 - - thumb_func_start sub_80E9A14 -sub_80E9A14: @ 80E9A14 - push {lr} - bl sub_80E9A4C - ldr r0, _080E9A44 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E9A40 - movs r0, 0xDD - lsls r0, 1 - adds r2, r1, r0 - ldr r3, _080E9A48 @ =0x000001b5 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] -_080E9A40: - pop {r0} - bx r0 - .align 2, 0 -_080E9A44: .4byte gUnknown_083DB694 -_080E9A48: .4byte 0x000001b5 - thumb_func_end sub_80E9A14 - - thumb_func_start sub_80E9A4C -sub_80E9A4C: @ 80E9A4C - ldr r0, _080E9A5C @ =gUnknown_083DB694 - ldr r0, [r0] - movs r2, 0xDD - lsls r2, 1 - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080E9A5C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A4C - - thumb_func_start sub_80E9A60 -sub_80E9A60: @ 80E9A60 - push {lr} - lsls r2, 16 - movs r3, 0xF0 - lsls r3, 12 - ands r3, r2 - lsls r1, 24 - lsrs r1, 24 - lsrs r3, 16 - adds r2, r3, 0 - bl MenuPrint - pop {r0} - bx r0 - thumb_func_end sub_80E9A60 - - thumb_func_start sub_80E9A7C -sub_80E9A7C: @ 80E9A7C - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r0, r7, 17 - lsrs r5, r0, 16 - movs r4, 0 - ldr r0, _080E9AD0 @ =gUnknown_083DB694 - ldr r6, [r0] -_080E9A8E: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x58 - muls r0, r4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r1, r7, 1 - adds r1, r4, r1 - adds r0, r6, 0 - adds r0, 0x2A - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0xB - bl sub_80EAD64 - adds r2, r0, 0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r6, 0x28] - cmp r5, r0 - bcs _080E9ACA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E9A8E -_080E9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9AD0: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A7C - - thumb_func_start sub_80E9AD4 -sub_80E9AD4: @ 80E9AD4 - push {r4,lr} - ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r4, 0 -_080E9ADE: - adds r0, r4, 0 - bl sub_80E9C74 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080E9ADE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9AF4: .4byte gWindowConfig_81E6D54 - thumb_func_end sub_80E9AD4 - - thumb_func_start sub_80E9AF8 -sub_80E9AF8: @ 80E9AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - bl sub_80E9C74 - ldr r4, _080E9B7C @ =gUnknown_083DB694 - ldr r5, [r4] - ldr r0, _080E9B80 @ =0x00009e14 - adds r0, r5 - mov r8, r0 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - ldr r2, _080E9B84 @ =0x00009e17 - adds r2, r5 - mov r8, r2 - adds r0, r5, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E9BF4 - movs r6, 0 - ldr r3, _080E9B88 @ =0x000099a6 - adds r0, r5, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - blt _080E9B4A - b _080E9C52 -_080E9B4A: - lsls r0, r7, 2 - mov r9, r0 - ldr r1, _080E9B8C @ =0x00009a2a - adds r1, r5, r1 - str r1, [sp] - lsls r2, r7, 17 - mov r10, r2 -_080E9B58: - lsls r4, r6, 1 - mov r3, r9 - adds r0, r4, r3 - ldr r1, [sp] - adds r0, r1, r0 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x7 - bne _080E9B94 - ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 - bl BasicInitMenuWindow - b _080E9B9A - .align 2, 0 -_080E9B7C: .4byte gUnknown_083DB694 -_080E9B80: .4byte 0x00009e14 -_080E9B84: .4byte 0x00009e17 -_080E9B88: .4byte 0x000099a6 -_080E9B8C: .4byte 0x00009a2a -_080E9B90: .4byte gWindowConfig_81E6D70 -_080E9B94: - ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow -_080E9B9A: - ldr r2, _080E9BE4 @ =gUnknown_083DB694 - ldr r4, [r2] - mov r3, r9 - adds r1, r5, r3 - ldr r2, _080E9BE8 @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - ldr r3, _080E9BEC @ =0x00009e14 - adds r0, r4, r3 - movs r1, 0xB - muls r1, r6 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - mov r3, r10 - lsrs r2, r3, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080E9BF0 @ =0x000099a6 - adds r4, r0 - adds r4, r7 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r6, r0 - blt _080E9B58 - b _080E9C52 - .align 2, 0 -_080E9BE0: .4byte gWindowConfig_81E6D54 -_080E9BE4: .4byte gUnknown_083DB694 -_080E9BE8: .4byte 0x00009a2a -_080E9BEC: .4byte 0x00009e14 -_080E9BF0: .4byte 0x000099a6 -_080E9BF4: - ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r6, 0 - ldr r1, _080E9C68 @ =0x000099a6 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E9C52 - adds r4, r5, 0 - adds r0, r4, r1 - adds r0, r7 - mov r9, r0 - lsls r5, r7, 17 -_080E9C16: - lsls r1, r6, 1 - lsls r0, r7, 2 - adds r1, r0 - ldr r2, _080E9C6C @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _080E9C70 @ =0x00009e14 - adds r0, r4, r3 - lsrs r2, r5, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r9 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r6, r0 - blt _080E9C16 -_080E9C52: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9C64: .4byte gWindowConfig_81E6D54 -_080E9C68: .4byte 0x000099a6 -_080E9C6C: .4byte 0x00009a2a -_080E9C70: .4byte 0x00009e14 - thumb_func_end sub_80E9AF8 - - thumb_func_start sub_80E9C74 -sub_80E9C74: @ 80E9C74 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - lsls r3, r1, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0 - movs r2, 0x1D - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_80E9C74 - - thumb_func_start sub_80E9C94 -sub_80E9C94: @ 80E9C94 - push {r4-r6,lr} - ldr r0, _080E9CAC @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r2, _080E9CB0 @ =0x00009a28 - adds r1, r0, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x3 - bgt _080E9CB4 - lsls r0, 16 - lsrs r0, 16 - b _080E9CB6 - .align 2, 0 -_080E9CAC: .4byte gUnknown_083DB694 -_080E9CB0: .4byte 0x00009a28 -_080E9CB4: - movs r0, 0x4 -_080E9CB6: - adds r5, r0, 0 - movs r4, 0 - cmp r4, r5 - bcs _080E9CF4 - ldr r0, _080E9CE0 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9CE4 @ =0x00009a29 - adds r6, r0, r1 -_080E9CC6: - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80E9AF8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080E9CC6 - b _080E9CF4 - .align 2, 0 -_080E9CE0: .4byte gUnknown_083DB694 -_080E9CE4: .4byte 0x00009a29 -_080E9CE8: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80E9C74 -_080E9CF4: - cmp r4, 0x3 - bls _080E9CE8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9C94 - - thumb_func_start sub_80E9D00 -sub_80E9D00: @ 80E9D00 - push {r4-r6,lr} - ldr r0, _080E9D28 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - ble _080E9D30 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D2C @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - b _080E9D46 - .align 2, 0 -_080E9D28: .4byte gUnknown_083DB694 -_080E9D2C: .4byte 0x00009a29 -_080E9D30: - movs r0, 0 - ldrsb r0, [r1, r0] - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D74 @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r4 -_080E9D46: - lsls r0, 16 - lsrs r5, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080E9D78 @ =0x0000ffff - cmp r4, r0 - beq _080E9D6E - adds r6, r0, 0 -_080E9D58: - adds r0, r5, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_80E9AF8 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bne _080E9D58 -_080E9D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9D74: .4byte 0x00009a29 -_080E9D78: .4byte 0x0000ffff - thumb_func_end sub_80E9D00 - - thumb_func_start sub_80E9D7C -sub_80E9D7C: @ 80E9D7C - push {r4-r7,lr} - ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E9DB0 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E9DB8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DB4 @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r6 - b _080E9DCC - .align 2, 0 -_080E9DAC: .4byte gWindowConfig_81E6D54 -_080E9DB0: .4byte gUnknown_083DB694 -_080E9DB4: .4byte 0x000001b5 -_080E9DB8: - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DFC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 -_080E9DCC: - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r6 - bcs _080E9DF6 - ldr r0, _080E9E00 @ =gUnknown_083DB694 - ldr r7, [r0] -_080E9DDA: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E9E04 @ =0x00009dc9 - adds r0, r7, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcc _080E9DDA -_080E9DF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DFC: .4byte 0x000001b5 -_080E9E00: .4byte gUnknown_083DB694 -_080E9E04: .4byte 0x00009dc9 - thumb_func_end sub_80E9D7C - - thumb_func_start sub_80E9E08 -sub_80E9E08: @ 80E9E08 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E9E4C @ =gUnknown_083DB694 - ldr r3, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r3, r0 - movs r5, 0xE0 - lsls r5, 1 - adds r2, r3, r5 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 4 - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7F - ands r0, r1 - subs r5, 0x4 - adds r1, r3, r5 - strh r0, [r1] - adds r1, r4, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bge _080E9E3E - negs r1, r4 -_080E9E3E: - ldr r2, _080E9E50 @ =0x000001bf - adds r0, r3, r2 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9E4C: .4byte gUnknown_083DB694 -_080E9E50: .4byte 0x000001bf - thumb_func_end sub_80E9E08 - - thumb_func_start sub_80E9E54 -sub_80E9E54: @ 80E9E54 - push {r4,lr} - ldr r0, _080E9E8C @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r3, r2, r0 - ldr r1, _080E9E90 @ =0x000001bf - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r4, [r3] - adds r0, r4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r3] - movs r3, 0 - movs r4, 0xDE - lsls r4, 1 - adds r1, r2, r4 - ldrh r1, [r1] - cmp r0, r1 - bne _080E9E84 - movs r3, 0x1 -_080E9E84: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E9E8C: .4byte gUnknown_083DB694 -_080E9E90: .4byte 0x000001bf - thumb_func_end sub_80E9E54 - - thumb_func_start nullsub_23 -nullsub_23: @ 80E9E94 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start sub_80E9E98 -sub_80E9E98: @ 80E9E98 - ldr r0, _080E9EA4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080E9EA4: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9E98 - - thumb_func_start sub_80E9EA8 -sub_80E9EA8: @ 80E9EA8 - push {lr} - ldr r1, _080E9EC4 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0xBE - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080E9F48 - lsls r0, 2 - ldr r1, _080E9EC8 @ =_080E9ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9EC4: .4byte gUnknown_083DB694 -_080E9EC8: .4byte _080E9ECC - .align 2, 0 -_080E9ECC: - .4byte _080E9EE4 - .4byte _080E9EF4 - .4byte _080E9F0C - .4byte _080E9F24 - .4byte _080E9F38 - .4byte _080E9F44 -_080E9EE4: - bl sub_80EA24C - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9EF4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA4A4 - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F08: .4byte gUnknown_083DB694 -_080E9F0C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA704 - ldr r0, _080E9F20 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F20: .4byte gUnknown_083DB694 -_080E9F24: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - ldr r0, _080E9F34 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F34: .4byte gUnknown_083DB694 -_080E9F38: - ldr r1, [r2] -_080E9F3A: - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9F48 -_080E9F44: - movs r0, 0x1 - b _080E9F4A -_080E9F48: - movs r0, 0 -_080E9F4A: - pop {r1} - bx r1 - thumb_func_end sub_80E9EA8 - - thumb_func_start sub_80E9F50 -sub_80E9F50: @ 80E9F50 - push {lr} - ldr r0, _080E9F68 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x6 - bhi _080E9FCC - lsls r0, 2 - ldr r1, _080E9F6C @ =_080E9F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9F68: .4byte gUnknown_083DB694 -_080E9F6C: .4byte _080E9F70 - .align 2, 0 -_080E9F70: - .4byte _080E9F8C - .4byte _080E9FAC - .4byte _080E9F96 - .4byte _080E9FAC - .4byte _080E9F9C - .4byte _080E9FAC - .4byte _080E9FC8 -_080E9F8C: - bl nullsub_23 - bl sub_80EA764 - b _080E9FA0 -_080E9F96: - bl sub_80EA5A0 - b _080E9FA0 -_080E9F9C: - bl sub_80EA348 -_080E9FA0: - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9FAC: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9FCC - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9FCC - .align 2, 0 -_080E9FC4: .4byte gUnknown_083DB694 -_080E9FC8: - movs r0, 0x1 - b _080E9FCE -_080E9FCC: - movs r0, 0 -_080E9FCE: - pop {r1} - bx r1 - thumb_func_end sub_80E9F50 - - thumb_func_start sub_80E9FD4 -sub_80E9FD4: @ 80E9FD4 - push {r4,lr} - ldr r0, _080E9FEC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080E9FF0 - cmp r0, 0x1 - beq _080E9FFE - b _080EA00C - .align 2, 0 -_080E9FEC: .4byte gUnknown_083DB694 -_080E9FF0: - bl nullsub_23 - bl sub_80EA5A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080E9FFE: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA00C - movs r0, 0x1 - b _080EA00E -_080EA00C: - movs r0, 0 -_080EA00E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E9FD4 - - thumb_func_start sub_80EA014 -sub_80EA014: @ 80EA014 - push {r4,lr} - ldr r0, _080EA02C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080EA030 - cmp r0, 0x1 - beq _080EA03A - b _080EA048 - .align 2, 0 -_080EA02C: .4byte gUnknown_083DB694 -_080EA030: - bl sub_80EA4A4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA03A: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA048 - movs r0, 0x1 - b _080EA04A -_080EA048: - movs r0, 0 -_080EA04A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA014 - - thumb_func_start sub_80EA050 -sub_80EA050: @ 80EA050 - push {lr} - ldr r0, _080EA068 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA0DC - lsls r0, 2 - ldr r1, _080EA06C @ =_080EA070 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA068: .4byte gUnknown_083DB694 -_080EA06C: .4byte _080EA070 - .align 2, 0 -_080EA070: - .4byte _080EA084 - .4byte _080EA08E - .4byte _080EA09E - .4byte _080EA0B4 - .4byte _080EA0D8 -_080EA084: - bl nullsub_23 - bl sub_80EA764 - b _080EA0C4 -_080EA08E: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA7F4 - b _080EA0C4 -_080EA09E: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA8BC - b _080EA0C4 -_080EA0B4: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC -_080EA0C4: - ldr r0, _080EA0D4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA0DC - .align 2, 0 -_080EA0D4: .4byte gUnknown_083DB694 -_080EA0D8: - movs r0, 0x1 - b _080EA0DE -_080EA0DC: - movs r0, 0 -_080EA0DE: - pop {r1} - bx r1 - thumb_func_end sub_80EA050 - - thumb_func_start sub_80EA0E4 -sub_80EA0E4: @ 80EA0E4 - push {lr} - ldr r0, _080EA0FC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA17C - lsls r0, 2 - ldr r1, _080EA100 @ =_080EA104 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA0FC: .4byte gUnknown_083DB694 -_080EA100: .4byte _080EA104 - .align 2, 0 -_080EA104: - .4byte _080EA118 - .4byte _080EA128 - .4byte _080EA144 - .4byte _080EA15C - .4byte _080EA178 -_080EA118: - bl sub_80EA948 - ldr r0, _080EA140 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EA128: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EAA44 - b _080EA166 - .align 2, 0 -_080EA140: .4byte gUnknown_083DB694 -_080EA144: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EA704 - b _080EA166 -_080EA15C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C -_080EA166: - ldr r0, _080EA174 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA17C - .align 2, 0 -_080EA174: .4byte gUnknown_083DB694 -_080EA178: - movs r0, 0x1 - b _080EA17E -_080EA17C: - movs r0, 0 -_080EA17E: - pop {r1} - bx r1 - thumb_func_end sub_80EA0E4 - - thumb_func_start sub_80EA184 -sub_80EA184: @ 80EA184 - push {r4,lr} - ldr r0, _080EA1A0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EA1B4 - cmp r0, 0x1 - bgt _080EA1A4 - cmp r0, 0 - beq _080EA1AA - b _080EA1D8 - .align 2, 0 -_080EA1A0: .4byte gUnknown_083DB694 -_080EA1A4: - cmp r0, 0x2 - beq _080EA1D0 - b _080EA1D8 -_080EA1AA: - bl sub_80EAAD4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA1B4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA1D8 - ldr r0, _080EA1CC @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA1D8 - .align 2, 0 -_080EA1CC: .4byte gUnknown_083DB694 -_080EA1D0: - bl sub_80E9178 - movs r0, 0x1 - b _080EA1DA -_080EA1D8: - movs r0, 0 -_080EA1DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA184 - - thumb_func_start sub_80EA1E0 -sub_80EA1E0: @ 80EA1E0 - push {r4-r6,lr} - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - ldrh r0, [r0] - cmp r0, 0 - beq _080EA244 - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EA228 - adds r5, r1, 0 - adds r6, r0, 0 -_080EA200: - lsls r0, r4, 4 - adds r0, 0xC8 - adds r0, r5, r0 - bl sub_80EAC0C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - bl sub_80EAC48 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EA200 -_080EA228: - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0xBC - movs r0, 0x1 - strb r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080EA246 - .align 2, 0 -_080EA240: .4byte gUnknown_083DB694 -_080EA244: - movs r0, 0x1 -_080EA246: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EA1E0 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA340 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - ldr r1, _080EA344 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0 - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r6, 0x10 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0x9 - mov r3, r8 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA340: .4byte gUnknown_083DB694 -_080EA344: .4byte 0x0000fffe - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA348 -sub_80EA348: @ 80EA348 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA49C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r5, 0xF - str r5, [sp] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EA4A0 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0x2 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r5, 0x10 - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0x2 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xE - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA49C: .4byte gUnknown_083DB694 -_080EA4A0: .4byte 0x0000fffe - thumb_func_end sub_80EA348 - - thumb_func_start sub_80EA4A4 -sub_80EA4A4: @ 80EA4A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA598 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _080EA59C @ =0x0000ffff - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x10 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r6, 0x1 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA598: .4byte gUnknown_083DB694 -_080EA59C: .4byte 0x0000ffff - thumb_func_end sub_80EA4A4 - - thumb_func_start sub_80EA5A0 -sub_80EA5A0: @ 80EA5A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA6FC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r2, 0xA - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EA700 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - mov r1, r8 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x6 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6FC: .4byte gUnknown_083DB694 -_080EA700: .4byte 0x0000ffff - thumb_func_end sub_80EA5A0 - - thumb_func_start sub_80EA704 -sub_80EA704: @ 80EA704 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA75C @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r1, 0x14 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - ldr r3, _080EA760 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0xA - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xC2 - strh r5, [r0] - adds r1, r6, 0 - adds r1, 0xC4 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA75C: .4byte gUnknown_083DB694 -_080EA760: .4byte 0x0000ffff - thumb_func_end sub_80EA704 - - thumb_func_start sub_80EA764 -sub_80EA764: @ 80EA764 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _080EA7EC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EA7F0 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1E - movs r2, 0xC - movs r3, 0x1F - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0x1E - movs r2, 0xC - adds r3, r5, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA7EC: .4byte gUnknown_083DB694 -_080EA7F0: .4byte 0x0000ffff - thumb_func_end sub_80EA764 - - thumb_func_start sub_80EA7F4 -sub_80EA7F4: @ 80EA7F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r0, _080EA8B4 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x14 - movs r2, 0xA - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - ldr r3, _080EA8B8 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r2, r7 - mov r8, r2 - str r2, [sp, 0x4] - movs r1, 0x19 - movs r2, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r2, r8 - str r2, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x3 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA8B4: .4byte gUnknown_083DB694 -_080EA8B8: .4byte 0x0000ffff - thumb_func_end sub_80EA7F4 - - thumb_func_start sub_80EA8BC -sub_80EA8BC: @ 80EA8BC - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA944 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA944: .4byte gUnknown_083DB694 - thumb_func_end sub_80EA8BC - - thumb_func_start sub_80EA948 -sub_80EA948: @ 80EA948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EAA3C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EAA40 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x80 - adds r1, r7 - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x5 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1A - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0x1A - movs r2, 0xA - adds r3, r5, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x19 - movs r2, 0xA - movs r3, 0x1A - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA3C: .4byte gUnknown_083DB694 -_080EAA40: .4byte 0x0000ffff - thumb_func_end sub_80EA948 - - thumb_func_start sub_80EAA44 -sub_80EAA44: @ 80EAA44 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EAACC @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EAAD0 @ =0x0000ffff - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x17 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAACC: .4byte gUnknown_083DB694 -_080EAAD0: .4byte 0x0000ffff - thumb_func_end sub_80EAA44 - - thumb_func_start sub_80EAAD4 -sub_80EAAD4: @ 80EAAD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EABCC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r1, 0xF - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x1 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EABD0 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0 - movs r2, 0xF - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x68 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0x14 - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EABCC: .4byte gUnknown_083DB694 -_080EABD0: .4byte 0x0000ffff - thumb_func_end sub_80EAAD4 - - thumb_func_start sub_80EABD4 -sub_80EABD4: @ 80EABD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r8, r7 - strh r1, [r0] - strh r3, [r0, 0x2] - strh r2, [r0, 0x4] - strh r5, [r0, 0x6] - strh r6, [r0, 0x8] - strh r4, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r4, r8 - strh r4, [r0, 0xE] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EABD4 - - thumb_func_start sub_80EAC0C -sub_80EAC0C: @ 80EAC0C - ldrh r1, [r0, 0x8] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0xA] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0xC] - ldrh r2, [r0, 0x4] - adds r1, r2 - strh r1, [r0, 0x4] - ldrh r1, [r0, 0xE] - ldrh r2, [r0, 0x6] - adds r1, r2 - strh r1, [r0, 0x6] - bx lr - thumb_func_end sub_80EAC0C - - thumb_func_start sub_80EAC30 -sub_80EAC30: @ 80EAC30 - push {r4,r5,lr} - ldr r4, [sp, 0xC] - ldr r5, [sp, 0x10] - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - str r5, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EAC30 - - thumb_func_start sub_80EAC48 -sub_80EAC48: @ 80EAC48 - ldrh r1, [r0, 0x4] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - bx lr - thumb_func_end sub_80EAC48 - - thumb_func_start sub_80EAC5C -sub_80EAC5C: @ 80EAC5C - push {r4-r6,lr} - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _080EACAC - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EACA2 - adds r5, r1, 0 - adds r6, r0, 0 -_080EAC7C: - lsls r1, r4, 4 - adds r1, 0xC8 - adds r1, r5, r1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - movs r0, 0xA4 - lsls r0, 1 - adds r2, r0 - adds r2, r5, r2 - ldr r0, _080EACB8 @ =0x06006800 - bl sub_80EACBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EAC7C -_080EACA2: - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBC - movs r1, 0 - strb r1, [r0] -_080EACAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EACB4: .4byte gUnknown_083DB694 -_080EACB8: .4byte 0x06006800 - thumb_func_end sub_80EAC5C - - thumb_func_start sub_80EACBC -sub_80EACBC: @ 80EACBC - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - ldrh r2, [r3, 0x2] - ldrh r0, [r3] - subs r2, r0 - ldrh r0, [r3, 0x6] - ldrh r1, [r3, 0x4] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r6, r2, 16 - cmp r6, 0 - ble _080EACFE - lsls r5, r0, 16 - cmp r5, 0 - ble _080EACFE - ldrh r1, [r3] - ldrh r2, [r3, 0x4] - ldr r3, [r4, 0x8] - ldrh r0, [r4] - str r0, [sp] - ldrh r0, [r4, 0x2] - str r0, [sp, 0x4] - lsrs r0, r6, 16 - str r0, [sp, 0x8] - lsrs r0, r5, 16 - str r0, [sp, 0xC] - adds r0, r7, 0 - bl sub_809D104 -_080EACFE: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EACBC - - thumb_func_start sub_80EAD08 -sub_80EAD08: @ 80EAD08 - push {r4,r5,lr} - ldr r0, _080EAD58 @ =gUnknown_03004DC0 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _080EAD5C @ =gUnknown_03004DE0 - adds r4, r0, r1 - adds r4, 0xB0 - ldr r0, _080EAD60 @ =gUnknown_083DB694 - ldr r1, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - adds r2, r0, 0 - subs r2, 0x58 - movs r0, 0xFF - ands r2, r0 - movs r3, 0 - movs r5, 0xFF -_080EAD32: - ldrh r0, [r1] - adds r0, r3 - cmp r0, 0x80 - bne _080EAD42 - negs r0, r3 - adds r2, r0, 0 - subs r2, 0x58 - ands r2, r5 -_080EAD42: - strh r2, [r4] - adds r4, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080EAD32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_03004DC0 -_080EAD5C: .4byte gUnknown_03004DE0 -_080EAD60: .4byte gUnknown_083DB694 - thumb_func_end sub_80EAD08 - - thumb_func_start sub_80EAD64 -sub_80EAD64: @ 80EAD64 - push {lr} - lsls r1, 24 - ldr r2, _080EAD78 @ =gEasyChatGroupNames - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_080EAD78: .4byte gEasyChatGroupNames - thumb_func_end sub_80EAD64 - - thumb_func_start sub_80EAD7C -sub_80EAD7C: @ 80EAD7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _080EADA2 - cmp r0, 0x14 - bgt _080EAD9C - cmp r0, 0x11 - blt _080EADBA - ldr r0, _080EAD98 @ =0x00000804 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EAD98: .4byte 0x00000804 -_080EAD9C: - cmp r1, 0x15 - beq _080EADB0 - b _080EADBA -_080EADA2: - ldr r0, _080EADAC @ =0x00000806 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EADAC: .4byte 0x00000806 -_080EADB0: - bl sub_80EB9C8 -_080EADB4: - lsls r0, 24 - lsrs r0, 24 - b _080EADBC -_080EADBA: - movs r0, 0x1 -_080EADBC: - pop {r1} - bx r1 - thumb_func_end sub_80EAD7C - - thumb_func_start sub_80EADC0 -sub_80EADC0: @ 80EADC0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r2, 0x15 - bhi _080EAE82 - lsls r0, r2, 2 - ldr r1, _080EADD8 @ =_080EADDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EADD8: .4byte _080EADDC - .align 2, 0 -_080EADDC: - .4byte _080EAE50 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE34 - .4byte _080EAE78 -_080EAE34: - ldr r0, _080EAE4C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - beq _080EAE70 - lsls r0, r3, 24 - lsrs r0, 24 - bl sub_80EB868 - b _080EAE7C - .align 2, 0 -_080EAE4C: .4byte gUnknown_083DB694 -_080EAE50: - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - b _080EAE7C -_080EAE62: - ldr r0, _080EAE74 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - bne _080EAE82 -_080EAE70: - movs r0, 0 - b _080EAE84 - .align 2, 0 -_080EAE74: .4byte gUnknown_083DB694 -_080EAE78: - bl sub_80EB9C8 -_080EAE7C: - lsls r0, 24 - lsrs r0, 24 - b _080EAE84 -_080EAE82: - movs r0, 0x1 -_080EAE84: - pop {r1} - bx r1 - thumb_func_end sub_80EADC0 - - thumb_func_start sub_80EAE88 -sub_80EAE88: @ 80EAE88 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080EAEA6 - cmp r4, 0x14 - beq _080EAEB2 - adds r0, r4, 0 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EAEBC - movs r0, 0 - b _080EAEC2 -_080EAEA6: - movs r0, 0 - bl sub_8090F68 - lsls r0, 16 - lsrs r0, 16 - b _080EAEC2 -_080EAEB2: - bl sub_80EB8C0 - lsls r0, 24 - lsrs r0, 24 - b _080EAEC2 -_080EAEBC: - ldr r0, _080EAEC8 @ =gEasyChatGroupSizes - adds r0, r4, r0 - ldrb r0, [r0] -_080EAEC2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAEC8: .4byte gEasyChatGroupSizes - thumb_func_end sub_80EAE88 - - thumb_func_start sub_80EAECC -sub_80EAECC: @ 80EAECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - ldr r1, _080EAF10 @ =gUnknown_083DB694 - ldr r0, [r1] - ldr r3, _080EAF14 @ =0x00004142 - adds r3, r0, r3 - str r3, [sp, 0x4] -_080EAEE6: - ldr r1, _080EAF18 @ =gEasyChatWordsByLetter - mov r7, r8 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrh r4, [r0] - mov r3, r8 - adds r3, 0x1 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x4] - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - mov r9, r0 - adds r6, r4, 0 - mov r10, r2 - str r3, [sp, 0x8] - b _080EB00C - .align 2, 0 -_080EAF10: .4byte gUnknown_083DB694 -_080EAF14: .4byte 0x00004142 -_080EAF18: .4byte gEasyChatWordsByLetter -_080EAF1C: - ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r4, r1, 0 - ldr r0, _080EAFB4 @ =0x0000feff - cmp r1, r0 - bls _080EAFCC - movs r0, 0xFF - ands r1, r0 - movs r7, 0 - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r3, _080EAFB8 @ =0x0000ffff - cmp r5, r3 - beq _080EB00C - mov r1, r8 - lsls r0, r1, 8 - subs r0, r1 - lsls r3, r0, 1 -_080EAF4E: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 1 - ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r1, r0 - ldrh r4, [r1] - lsrs r0, r4, 9 - ldr r1, _080EAFBC @ =0x000001ff - adds r2, r1, 0 - adds r1, r4, 0 - ands r1, r2 - str r3, [sp, 0xC] - bl sub_80EADC0 - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _080EAFA2 - cmp r7, 0 - bne _080EAFA2 - ldr r7, _080EAFC0 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - adds r1, r3 - ldr r7, _080EAFC4 @ =0x00000b78 - adds r0, r2, r7 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EAFC8 @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r7, 0x1 -_080EAFA2: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080EAFB8 @ =0x0000ffff - cmp r5, r1 - bne _080EAF4E - b _080EB00C - .align 2, 0 -_080EAFB0: .4byte gEasyChatWordsAlphabetized -_080EAFB4: .4byte 0x0000feff -_080EAFB8: .4byte 0x0000ffff -_080EAFBC: .4byte 0x000001ff -_080EAFC0: .4byte gUnknown_083DB694 -_080EAFC4: .4byte 0x00000b78 -_080EAFC8: .4byte 0x00004142 -_080EAFCC: - lsrs r0, r4, 9 - ldr r3, _080EB030 @ =0x000001ff - adds r2, r3, 0 - adds r1, r4, 0 - ands r1, r2 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB00C - ldr r7, _080EB034 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r3, r8 - lsls r0, r3, 8 - subs r0, r3 - adds r0, r1 - lsls r0, 1 - ldr r7, _080EB038 @ =0x00000b78 - adds r1, r2, r7 - adds r1, r0 - strh r4, [r1] - ldr r0, _080EB03C @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EB00C: - ldr r1, [sp] - cmp r6, r1 - bcc _080EAF1C - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1A - bhi _080EB020 - b _080EAEE6 -_080EB020: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB030: .4byte 0x000001ff -_080EB034: .4byte gUnknown_083DB694 -_080EB038: .4byte 0x00000b78 -_080EB03C: .4byte 0x00004142 - thumb_func_end sub_80EAECC - - thumb_func_start sub_80EB040 -sub_80EB040: @ 80EB040 - push {r4-r6,lr} - movs r3, 0 -_080EB044: - adds r6, r3, 0x1 - cmp r3, 0 - beq _080EB094 - cmp r3, 0x15 - beq _080EB094 - cmp r3, 0x12 - beq _080EB094 - cmp r3, 0x13 - beq _080EB094 - ldr r0, _080EB0A4 @ =gEasyChatGroupWords - lsls r1, r3, 2 - adds r1, r0 - ldr r2, [r1] - movs r4, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080EB094 - ldr r0, _080EB0A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080EB0AC @ =0x000041a4 - adds r5, r0, r1 -_080EB06E: - lsls r0, r4, 2 - lsls r1, r3, 10 - adds r0, r1 - adds r0, r5, r0 - str r2, [r0] - ldrb r0, [r2] - adds r1, r4, 0x1 - cmp r0, 0xFF - beq _080EB088 -_080EB080: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB080 -_080EB088: - adds r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB06E -_080EB094: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x15 - bls _080EB044 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB0A4: .4byte gEasyChatGroupWords -_080EB0A8: .4byte gUnknown_083DB694 -_080EB0AC: .4byte 0x000041a4 - thumb_func_end sub_80EB040 - - thumb_func_start sub_80EB0B0 -sub_80EB0B0: @ 80EB0B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r3, _080EB184 @ =gUnknown_083DB694 - ldr r4, [r3] - adds r0, r4, 0 - adds r0, 0x26 - ldrb r5, [r0] - cmp r5, 0 - bne _080EB19C - movs r0, 0xDC - lsls r0, 1 - adds r2, r4, r0 - ldrb r6, [r2] - lsls r1, r6, 1 - ldr r7, _080EB188 @ =0x00004178 - adds r0, r4, r7 - adds r0, r1 - strh r5, [r0] - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, _080EB18C @ =gEasyChatGroupOrders - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - movs r1, 0 - mov r8, r1 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB0FE - b _080EB1FA -_080EB0FE: - movs r2, 0xDC - lsls r2, 1 - adds r2, r4, r2 - str r2, [sp, 0x4] - lsls r5, r6, 24 - mov r10, r5 -_080EB10A: - mov r1, r8 - lsls r0, r1, 1 - ldr r2, [sp] - adds r5, r0, r2 - ldrh r1, [r5] - mov r2, r10 - lsrs r0, r2, 24 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB16A - ldr r0, _080EB184 @ =gUnknown_083DB694 - ldr r3, [r0] - lsls r1, r7, 1 - mov r2, r9 - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _080EB194 @ =0x00009a2a - adds r4, r3, r0 - adds r4, r1 - movs r0, 0x7F - ands r0, r6 - lsls r0, 9 - ldrh r1, [r5] - ldr r5, _080EB198 @ =0x000001ff - adds r2, r5, 0 - ands r1, r2 - orrs r0, r1 - strh r0, [r4] - lsls r0, r6, 1 - ldr r1, _080EB188 @ =0x00004178 - adds r3, r1 - adds r3, r0 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _080EB16A - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_080EB16A: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldr r2, [sp, 0x4] - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB10A - b _080EB1FA - .align 2, 0 -_080EB184: .4byte gUnknown_083DB694 -_080EB188: .4byte 0x00004178 -_080EB18C: .4byte gEasyChatGroupOrders -_080EB190: .4byte gEasyChatGroupSizes -_080EB194: .4byte 0x00009a2a -_080EB198: .4byte 0x000001ff -_080EB19C: - movs r5, 0xDC - lsls r5, 1 - adds r0, r4, r5 - ldrb r2, [r0] - movs r3, 0 - movs r6, 0 - movs r5, 0 - lsls r1, r2, 1 - ldr r7, _080EB20C @ =0x00004142 - adds r0, r4, r7 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r5, r0 - bcs _080EB1FA - ldr r7, _080EB210 @ =0x00009a2a - adds r7, r4 - mov r8, r7 - lsls r0, r2, 8 - subs r0, r2 - lsls r7, r0, 1 - ldr r0, _080EB214 @ =0x00000b78 - adds r2, r4, r0 - adds r4, r1, 0 -_080EB1CA: - lsls r1, r3, 1 - lsls r0, r6, 2 - adds r1, r0 - add r1, r8 - lsls r0, r5, 1 - adds r0, r7 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080EB1EE - movs r3, 0 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB1EE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r1, [r4] - cmp r5, r1 - bcc _080EB1CA -_080EB1FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB20C: .4byte 0x00004142 -_080EB210: .4byte 0x00009a2a -_080EB214: .4byte 0x00000b78 - thumb_func_end sub_80EB0B0 - - thumb_func_start sub_80EB218 -sub_80EB218: @ 80EB218 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB240 - ldr r1, _080EB23C @ =gOtherText_ThreeQuestions - b _080EB2A2 - .align 2, 0 -_080EB23C: .4byte gOtherText_ThreeQuestions -_080EB240: - ldr r0, _080EB250 @ =0x0000ffff - cmp r4, r0 - bne _080EB254 - adds r1, r5, 0 - movs r0, 0xFF - strb r0, [r1] - b _080EB2AA - .align 2, 0 -_080EB250: .4byte 0x0000ffff -_080EB254: - lsrs r2, r6, 25 - ldr r1, _080EB268 @ =0x000001ff - ands r1, r7 - cmp r2, 0x13 - bgt _080EB26C - cmp r2, 0x12 - bge _080EB280 - cmp r2, 0 - beq _080EB270 - b _080EB290 - .align 2, 0 -_080EB268: .4byte 0x000001ff -_080EB26C: - cmp r2, 0x15 - bne _080EB290 -_080EB270: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB27C @ =gSpeciesNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB27C: .4byte gSpeciesNames -_080EB280: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB28C @ =gMoveNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB28C: .4byte gMoveNames -_080EB290: - ldr r0, _080EB2CC @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB2D0 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB2A2: - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 -_080EB2AA: - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - mov r2, r8 - lsls r0, r2, 3 - strb r0, [r1, 0x2] - adds r1, 0x3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB2CC: .4byte gUnknown_083DB694 -_080EB2D0: .4byte 0x000041a4 - thumb_func_end sub_80EB218 - - thumb_func_start sub_80EB2D4 -sub_80EB2D4: @ 80EB2D4 - push {r4-r6,lr} - lsls r5, r0, 16 - lsrs r4, r5, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB2F8 - ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions - bl StringLength - lsls r0, 16 - lsrs r0, 16 - b _080EB374 - .align 2, 0 -_080EB2F4: .4byte gOtherText_ThreeQuestions -_080EB2F8: - ldr r0, _080EB304 @ =0x0000ffff - cmp r4, r0 - bne _080EB308 - movs r0, 0 - b _080EB374 - .align 2, 0 -_080EB304: .4byte 0x0000ffff -_080EB308: - lsrs r2, r5, 25 - ldr r1, _080EB31C @ =0x000001ff - ands r1, r6 - cmp r2, 0x13 - bgt _080EB320 - cmp r2, 0x12 - bge _080EB334 - cmp r2, 0 - beq _080EB324 - b _080EB344 - .align 2, 0 -_080EB31C: .4byte 0x000001ff -_080EB320: - cmp r2, 0x15 - bne _080EB344 -_080EB324: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB330 @ =gSpeciesNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB330: .4byte gSpeciesNames -_080EB334: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB340 @ =gMoveNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB340: .4byte gMoveNames -_080EB344: - ldr r0, _080EB35C @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB360 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB356: - movs r2, 0 - b _080EB36C - .align 2, 0 -_080EB35C: .4byte gUnknown_083DB694 -_080EB360: .4byte 0x000041a4 -_080EB364: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB36C: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB364 - adds r0, r2, 0 -_080EB374: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EB2D4 - - thumb_func_start sub_80EB37C -sub_80EB37C: @ 80EB37C - push {r4,r5,lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB3A0 @ =0x0000ffff - cmp r3, r0 - beq _080EB3EA - lsrs r2, r1, 25 - ldr r5, _080EB3A4 @ =0x000001ff - ands r5, r3 - cmp r2, 0x15 - bhi _080EB3F4 - cmp r2, 0x13 - bgt _080EB3A8 - cmp r2, 0x12 - bge _080EB3AC - cmp r2, 0 - beq _080EB3AC - b _080EB3E0 - .align 2, 0 -_080EB3A0: .4byte 0x0000ffff -_080EB3A4: .4byte 0x000001ff -_080EB3A8: - cmp r2, 0x15 - bne _080EB3E0 -_080EB3AC: - ldr r0, _080EB3D8 @ =gEasyChatGroupWords - lsls r1, r2, 2 - adds r1, r0 - ldr r4, [r1] - movs r3, 0 - ldr r0, _080EB3DC @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r3, r0 - bcs _080EB3F4 - adds r1, r0, 0 -_080EB3C2: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - beq _080EB3EA - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080EB3C2 - b _080EB3F4 - .align 2, 0 -_080EB3D8: .4byte gEasyChatGroupWords -_080EB3DC: .4byte gEasyChatGroupSizes -_080EB3E0: - ldr r0, _080EB3F0 @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080EB3F4 -_080EB3EA: - movs r0, 0 - b _080EB3F6 - .align 2, 0 -_080EB3F0: .4byte gEasyChatGroupSizes -_080EB3F4: - movs r0, 0x1 -_080EB3F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB37C - - thumb_func_start sub_80EB3FC -sub_80EB3FC: @ 80EB3FC - push {r4-r7,lr} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB420 - ldr r1, _080EB41C @ =gOtherText_ThreeQuestions - adds r0, r5, 0 - bl StringCopy - b _080EB4A6 - .align 2, 0 -_080EB41C: .4byte gOtherText_ThreeQuestions -_080EB420: - ldr r0, _080EB43C @ =0x0000ffff - cmp r4, r0 - beq _080EB4A0 - lsrs r1, r6, 25 - ldr r2, _080EB440 @ =0x000001ff - ands r2, r7 - cmp r1, 0x13 - bgt _080EB444 - cmp r1, 0x12 - bge _080EB458 - cmp r1, 0 - beq _080EB448 - b _080EB468 - .align 2, 0 -_080EB43C: .4byte 0x0000ffff -_080EB440: .4byte 0x000001ff -_080EB444: - cmp r1, 0x15 - bne _080EB468 -_080EB448: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB454 @ =gSpeciesNames - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB454: .4byte gSpeciesNames -_080EB458: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB464 @ =gMoveNames - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB464: .4byte gMoveNames -_080EB468: - ldr r0, _080EB4AC @ =gEasyChatGroupWords - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB4B0 @ =0x0000ffff - cmp r2, r0 - beq _080EB498 - adds r3, r0, 0 -_080EB47E: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB490 -_080EB488: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB488 -_080EB490: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB47E -_080EB498: - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 -_080EB4A0: - movs r0, 0xFF - strb r0, [r5] - adds r0, r5, 0 -_080EB4A6: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB4AC: .4byte gEasyChatGroupWords -_080EB4B0: .4byte 0x0000ffff - thumb_func_end sub_80EB3FC - - thumb_func_start ConvertEasyChatWordsToString -ConvertEasyChatWordsToString: @ 80EB4B4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - ldr r0, _080EB53C @ =0xffff0000 - adds r2, r0 - lsrs r7, r2, 16 - movs r0, 0 - cmp r0, r9 - bcs _080EB524 -_080EB4D6: - movs r6, 0 - adds r0, 0x1 - mov r8, r0 - cmp r6, r7 - bcs _080EB508 - ldr r2, _080EB540 @ =0x0000ffff -_080EB4E2: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp] - bl sub_80EB3FC - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _080EB4FC - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_080EB4FC: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080EB4E2 -_080EB508: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl sub_80EB3FC - adds r4, r0, 0 - movs r0, 0xFE - strb r0, [r4] - adds r4, 0x1 - mov r1, r8 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r9 - bcc _080EB4D6 -_080EB524: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB53C: .4byte 0xffff0000 -_080EB540: .4byte 0x0000ffff - thumb_func_end ConvertEasyChatWordsToString - - thumb_func_start sub_80EB544 -sub_80EB544: @ 80EB544 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsls r3, 16 - lsrs r3, 16 - mov r10, r3 - ldr r0, _080EB5B0 @ =0xffff0000 - adds r2, r0 - lsrs r2, 16 - mov r8, r2 - movs r7, 0 - cmp r7, r10 - bcs _080EB5C8 -_080EB56A: - movs r6, 0 - adds r1, r7, 0x1 - mov r9, r1 - cmp r6, r8 - bcs _080EB59C - ldr r2, _080EB5B4 @ =0x0000ffff -_080EB576: - ldrh r1, [r5] - adds r0, r4, 0 - str r2, [sp] - bl sub_80EB3FC - adds r4, r0, 0 - ldrh r0, [r5] - ldr r2, [sp] - cmp r0, r2 - beq _080EB590 - movs r0, 0 - strb r0, [r4] - adds r4, 0x1 -_080EB590: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r8 - bcc _080EB576 -_080EB59C: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r4, 0 - bl sub_80EB3FC - adds r4, r0, 0 - cmp r7, 0 - bne _080EB5B8 - movs r0, 0xFE - b _080EB5BA - .align 2, 0 -_080EB5B0: .4byte 0xffff0000 -_080EB5B4: .4byte 0x0000ffff -_080EB5B8: - movs r0, 0xFA -_080EB5BA: - strb r0, [r4] - adds r4, 0x1 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _080EB56A -_080EB5C8: - subs r4, 0x1 - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EB544 - - thumb_func_start unref_sub_80EB5E0 -unref_sub_80EB5E0: @ 80EB5E0 - push {lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB5F0 @ =0x0000ffff - cmp r3, r0 - bne _080EB5F4 - movs r0, 0 - b _080EB67C - .align 2, 0 -_080EB5F0: .4byte 0x0000ffff -_080EB5F4: - lsrs r1, 25 - ldr r2, _080EB608 @ =0x000001ff - ands r2, r3 - cmp r1, 0x13 - bgt _080EB60C - cmp r1, 0x12 - bge _080EB620 - cmp r1, 0 - beq _080EB610 - b _080EB630 - .align 2, 0 -_080EB608: .4byte 0x000001ff -_080EB60C: - cmp r1, 0x15 - bne _080EB630 -_080EB610: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB61C @ =gSpeciesNames - adds r1, r0 - b _080EB660 - .align 2, 0 -_080EB61C: .4byte gSpeciesNames -_080EB620: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB62C @ =gMoveNames - adds r1, r0 - b _080EB660 - .align 2, 0 -_080EB62C: .4byte gMoveNames -_080EB630: - ldr r0, _080EB664 @ =gEasyChatGroupWords - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB668 @ =0x0000ffff - cmp r2, r0 - beq _080EB660 - adds r3, r0, 0 -_080EB646: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB658 -_080EB650: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB650 -_080EB658: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB646 -_080EB660: - movs r2, 0 - b _080EB674 - .align 2, 0 -_080EB664: .4byte gEasyChatGroupWords -_080EB668: .4byte 0x0000ffff -_080EB66C: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB674: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB66C - adds r0, r2, 0 -_080EB67C: - pop {r1} - bx r1 - thumb_func_end unref_sub_80EB5E0 - - thumb_func_start sub_80EB680 -sub_80EB680: @ 80EB680 - movs r0, 0 - bx lr - thumb_func_end sub_80EB680 - - thumb_func_start unref_sub_80EB684 -unref_sub_80EB684: @ 80EB684 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - cmp r0, 0x7 - beq _080EB6B4 - cmp r0, 0x7 - bgt _080EB69E - cmp r0, 0x5 - beq _080EB6A4 - b _080EB6EE -_080EB69E: - cmp r2, 0x8 - beq _080EB6C4 - b _080EB6EE -_080EB6A4: - movs r2, 0x6 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C - b _080EB6CE - .align 2, 0 -_080EB6B0: .4byte gSaveBlock1 + 0x273C -_080EB6B4: - movs r2, 0x2 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754 - b _080EB6CE - .align 2, 0 -_080EB6C0: .4byte gSaveBlock1 + 0x2754 -_080EB6C4: - movs r2, 0x1 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A -_080EB6CE: - adds r1, r0, r1 - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB6F8 @ =0x0000ffff - cmp r2, r0 - beq _080EB6EE - adds r4, r0, 0 - adds r3, r0, 0 -_080EB6E0: - strh r4, [r1] - adds r1, 0x2 - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB6E0 -_080EB6EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EB6F4: .4byte gSaveBlock1 + 0x273A -_080EB6F8: .4byte 0x0000ffff - thumb_func_end unref_sub_80EB684 - - thumb_func_start sub_80EB6FC -sub_80EB6FC: @ 80EB6FC - push {lr} - adds r2, r0, 0 - lsls r1, 16 - ldr r0, _080EB724 @ =0xffff0000 - adds r1, r0 - lsrs r0, r1, 16 - ldr r1, _080EB728 @ =0x0000ffff - cmp r0, r1 - beq _080EB71E - adds r3, r1, 0 -_080EB710: - strh r3, [r2] - adds r2, 0x2 - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bne _080EB710 -_080EB71E: - pop {r0} - bx r0 - .align 2, 0 -_080EB724: .4byte 0xffff0000 -_080EB728: .4byte 0x0000ffff - thumb_func_end sub_80EB6FC - - thumb_func_start sub_80EB72C -sub_80EB72C: @ 80EB72C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080EB778 @ =gEasyChatGroupSizes - adds r1, r4, r1 - ldrb r1, [r1] - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r4, 0 - beq _080EB758 - cmp r4, 0x15 - beq _080EB758 - cmp r4, 0x12 - beq _080EB758 - cmp r4, 0x13 - bne _080EB766 -_080EB758: - ldr r1, _080EB77C @ =gEasyChatGroupWords - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - lsls r0, r2, 1 - adds r0, r1 - ldrh r2, [r0] -_080EB766: - movs r0, 0x7F - ands r0, r4 - lsls r0, 9 - ldr r1, _080EB780 @ =0x000001ff - ands r2, r1 - orrs r0, r2 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EB778: .4byte gEasyChatGroupSizes -_080EB77C: .4byte gEasyChatGroupWords -_080EB780: .4byte 0x000001ff - thumb_func_end sub_80EB72C - - thumb_func_start sub_80EB784 -sub_80EB784: @ 80EB784 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EB7A0 - ldr r0, _080EB79C @ =0x0000ffff - b _080EB7BE - .align 2, 0 -_080EB79C: .4byte 0x0000ffff -_080EB7A0: - cmp r4, 0 - beq _080EB7AE - cmp r4, 0x14 - bne _080EB7B4 - bl sub_80EB960 - b _080EB7BA -_080EB7AE: - bl sub_80EB9D8 - b _080EB7BA -_080EB7B4: - adds r0, r4, 0 - bl sub_80EB72C -_080EB7BA: - lsls r0, 16 - lsrs r0, 16 -_080EB7BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EB784 - - thumb_func_start sub_80EB7C4 -sub_80EB7C4: @ 80EB7C4 - push {r4,r5,lr} - ldr r0, _080EB7D8 @ =gUnknown_0202E8CC - ldrh r0, [r0] - cmp r0, 0x1 - beq _080EB7F0 - cmp r0, 0x1 - bgt _080EB7DC - cmp r0, 0 - beq _080EB7E6 - b _080EB82E - .align 2, 0 -_080EB7D8: .4byte gUnknown_0202E8CC -_080EB7DC: - cmp r0, 0x2 - beq _080EB810 - cmp r0, 0x3 - beq _080EB818 - b _080EB82E -_080EB7E6: - ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C - movs r2, 0x2 - b _080EB81C - .align 2, 0 -_080EB7EC: .4byte gSaveBlock1 + 0x2B1C -_080EB7F0: - ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28 - adds r0, r5, 0 - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0x14 - bl sub_80EB680 - lsls r0, 24 - cmp r0, 0 - beq _080EB81A - movs r2, 0x2 - movs r3, 0x3 - b _080EB81E - .align 2, 0 -_080EB80C: .4byte gSaveBlock1 + 0x2B28 -_080EB810: - ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34 - b _080EB81A - .align 2, 0 -_080EB814: .4byte gSaveBlock1 + 0x2B34 -_080EB818: - ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40 -_080EB81A: - movs r2, 0x3 -_080EB81C: - movs r3, 0x2 -_080EB81E: - ldr r4, _080EB838 @ =gStringVar4 - adds r0, r4, 0 - adds r1, r5, 0 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl ShowFieldAutoScrollMessage -_080EB82E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EB834: .4byte gSaveBlock1 + 0x2B40 -_080EB838: .4byte gStringVar4 - thumb_func_end sub_80EB7C4 - - thumb_func_start sub_80EB83C -sub_80EB83C: @ 80EB83C - push {lr} - bl Random - movs r1, 0x1 - ands r1, r0 - movs r0, 0xC - cmp r1, 0 - beq _080EB84E - movs r0, 0xD -_080EB84E: - bl sub_80EB784 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _080EB864 @ =gStringVar2 - bl sub_80EB3FC - pop {r0} - bx r0 - .align 2, 0 -_080EB864: .4byte gStringVar2 - thumb_func_end sub_80EB83C - - thumb_func_start sub_80EB868 -sub_80EB868: @ 80EB868 - lsls r0, 24 - lsrs r2, r0, 27 - movs r1, 0xE0 - lsls r1, 19 - ands r1, r0 - lsrs r1, 24 - ldr r0, _080EB888 @ =gSaveBlock1 - ldr r3, _080EB88C @ =0x00002d8c - adds r0, r3 - adds r2, r0 - ldrb r0, [r2] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_080EB888: .4byte gSaveBlock1 -_080EB88C: .4byte 0x00002d8c - thumb_func_end sub_80EB868 - - thumb_func_start sub_80EB890 -sub_80EB890: @ 80EB890 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x20 - bhi _080EB8B2 - lsrs r2, r0, 27 - movs r1, 0x7 - ands r1, r3 - ldr r0, _080EB8B8 @ =gSaveBlock1 - ldr r3, _080EB8BC @ =0x00002d8c - adds r0, r3 - adds r2, r0 - movs r0, 0x1 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_080EB8B2: - pop {r0} - bx r0 - .align 2, 0 -_080EB8B8: .4byte gSaveBlock1 -_080EB8BC: .4byte 0x00002d8c - thumb_func_end sub_80EB890 - - thumb_func_start sub_80EB8C0 -sub_80EB8C0: @ 80EB8C0 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_080EB8C6: - adds r0, r4, 0 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - beq _080EB8D8 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EB8D8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x20 - bls _080EB8C6 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB8C0 - - thumb_func_start sub_80EB8EC -sub_80EB8EC: @ 80EB8EC - push {r4-r6,lr} - bl sub_80EB8C0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x21 - bne _080EB918 - b _080EB952 -_080EB8FC: - adds r0, r5, 0 - bl sub_80EB890 - ldr r0, _080EB914 @ =0x000001ff - ands r4, r0 - movs r1, 0xA0 - lsls r1, 6 - adds r0, r1, 0 - orrs r4, r0 - adds r0, r4, 0 - b _080EB954 - .align 2, 0 -_080EB914: .4byte 0x000001ff -_080EB918: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x21 - subs r1, r4 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 -_080EB92E: - lsls r0, r4, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - bne _080EB948 - cmp r6, 0 - beq _080EB8FC - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB948: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x20 - bls _080EB92E -_080EB952: - ldr r0, _080EB95C @ =0x0000ffff -_080EB954: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080EB95C: .4byte 0x0000ffff - thumb_func_end sub_80EB8EC - - thumb_func_start sub_80EB960 -sub_80EB960: @ 80EB960 - push {r4,r5,lr} - bl sub_80EB8C0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080EB984 - b _080EB9BA -_080EB970: - ldr r0, _080EB980 @ =0x000001ff - ands r4, r0 - movs r1, 0xA0 - lsls r1, 6 - adds r0, r1, 0 - orrs r4, r0 - adds r0, r4, 0 - b _080EB9BC - .align 2, 0 -_080EB980: .4byte 0x000001ff -_080EB984: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0 -_080EB998: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80EB868 - lsls r0, 24 - cmp r0, 0 - beq _080EB9B0 - cmp r5, 0 - beq _080EB970 - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080EB9B0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x20 - bls _080EB998 -_080EB9BA: - ldr r0, _080EB9C4 @ =0x0000ffff -_080EB9BC: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080EB9C4: .4byte 0x0000ffff - thumb_func_end sub_80EB960 - - thumb_func_start sub_80EB9C8 -sub_80EB9C8: @ 80EB9C8 - push {lr} - bl sub_806912C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80EB9C8 - - thumb_func_start sub_80EB9D8 -sub_80EB9D8: @ 80EB9D8 - push {r4-r7,lr} - movs r0, 0 - bl sub_80EAE88 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080EB9F8 - b _080EBA46 -_080EB9EA: - ldrh r1, [r5] - ldr r0, _080EB9F4 @ =0x000001ff - ands r0, r1 - b _080EBA48 - .align 2, 0 -_080EB9F4: .4byte 0x000001ff -_080EB9F8: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080EBA50 @ =gEasyChatGroupWords - ldr r5, [r0] - movs r6, 0 - ldr r0, _080EBA54 @ =gEasyChatGroupSizes - ldrb r0, [r0] - cmp r6, r0 - bcs _080EBA46 - adds r7, r0, 0 -_080EBA1A: - ldrh r0, [r5] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _080EBA3A - cmp r4, 0 - beq _080EB9EA - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EBA3A: - adds r5, 0x2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080EBA1A -_080EBA46: - ldr r0, _080EBA58 @ =0x0000ffff -_080EBA48: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EBA50: .4byte gEasyChatGroupWords -_080EBA54: .4byte gEasyChatGroupSizes -_080EBA58: .4byte 0x0000ffff - thumb_func_end sub_80EB9D8 - - thumb_func_start sub_80EBA5C -sub_80EBA5C: @ 80EBA5C - push {lr} - ldr r0, _080EBA74 @ =gMain - ldr r2, _080EBA78 @ =0x0000043c - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xE - bhi _080EBABC - lsls r0, 2 - ldr r1, _080EBA7C @ =_080EBA80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBA74: .4byte gMain -_080EBA78: .4byte 0x0000043c -_080EBA7C: .4byte _080EBA80 - .align 2, 0 -_080EBA80: - .4byte _080EBAC0 - .4byte _080EBB08 - .4byte _080EBB10 - .4byte _080EBB16 - .4byte _080EBB1C - .4byte _080EBB22 - .4byte _080EBB28 - .4byte _080EBB2E - .4byte _080EBB3E - .4byte _080EBB4C - .4byte _080EBB5C - .4byte _080EBB6C - .4byte _080EBB7C - .4byte _080EBB90 - .4byte _080EBBA0 -_080EBABC: - movs r0, 0 - strb r0, [r1] -_080EBAC0: - bl is_c1_link_related_active - ldr r3, _080EBAF0 @ =0x02000000 - ldr r2, _080EBAF4 @ =0x00006dac - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080EBBC0 - ldr r1, _080EBAF8 @ =0x00006dab - adds r0, r3, r1 - strb r2, [r0] - ldr r1, _080EBAFC @ =gMain - ldr r2, _080EBB00 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080EBB04 @ =sub_80EBBE8 - bl SetMainCallback2 - b _080EBBC0 - .align 2, 0 -_080EBAF0: .4byte 0x02000000 -_080EBAF4: .4byte 0x00006dac -_080EBAF8: .4byte 0x00006dab -_080EBAFC: .4byte gMain -_080EBB00: .4byte 0x0000043c -_080EBB04: .4byte sub_80EBBE8 -_080EBB08: - movs r0, 0 - bl SetVBlankCallback - b _080EBBC0 -_080EBB10: - bl ResetPaletteFade - b _080EBBC0 -_080EBB16: - bl ResetSpriteData - b _080EBBC0 -_080EBB1C: - bl FreeAllSpritePalettes - b _080EBBC0 -_080EBB22: - bl ResetTasks - b _080EBBC0 -_080EBB28: - bl remove_some_task - b _080EBBC0 -_080EBB2E: - bl sub_80F1A90 - ldr r1, _080EBB44 @ =gMain - ldr r0, _080EBB48 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB3E: - bl sub_80F1AC4 - b _080EBB80 - .align 2, 0 -_080EBB44: .4byte gMain -_080EBB48: .4byte 0x0000043c -_080EBB4C: - bl sub_80F2688 - ldr r1, _080EBB64 @ =gMain - ldr r2, _080EBB68 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB5C: - bl sub_80F26BC - b _080EBB80 - .align 2, 0 -_080EBB64: .4byte gMain -_080EBB68: .4byte 0x0000043c -_080EBB6C: - bl sub_80F36F0 - ldr r1, _080EBB88 @ =gMain - ldr r0, _080EBB8C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBB7C: - bl sub_80F3724 -_080EBB80: - lsls r0, 24 - cmp r0, 0 - bne _080EBBCC - b _080EBBC0 - .align 2, 0 -_080EBB88: .4byte gMain -_080EBB8C: .4byte 0x0000043c -_080EBB90: - bl sub_80EBC10 - ldr r0, _080EBB9C @ =sub_80EBDD8 - bl sub_80EBDBC - b _080EBBC0 - .align 2, 0 -_080EBB9C: .4byte sub_80EBDD8 -_080EBBA0: - ldr r0, _080EBBD0 @ =0x02000000 - ldr r1, _080EBBD4 @ =0x00006dab - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r0, 0x6E - bl PlaySE - ldr r0, _080EBBD8 @ =sub_80EBD90 - bl SetMainCallback2 - ldr r0, _080EBBDC @ =sub_80EBD18 - bl SetVBlankCallback - bl sub_80F1A74 -_080EBBC0: - ldr r1, _080EBBE0 @ =gMain - ldr r2, _080EBBE4 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EBBCC: - pop {r0} - bx r0 - .align 2, 0 -_080EBBD0: .4byte 0x02000000 -_080EBBD4: .4byte 0x00006dab -_080EBBD8: .4byte sub_80EBD90 -_080EBBDC: .4byte sub_80EBD18 -_080EBBE0: .4byte gMain -_080EBBE4: .4byte 0x0000043c - thumb_func_end sub_80EBA5C - - thumb_func_start sub_80EBBE8 -sub_80EBBE8: @ 80EBBE8 - push {r4,lr} - ldr r0, _080EBC08 @ =0x02000000 - ldr r2, _080EBC0C @ =0x00006dab - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080EBC02 - adds r4, r1, 0 -_080EBBF8: - bl sub_80EBA5C - ldrb r0, [r4] - cmp r0, 0 - beq _080EBBF8 -_080EBC02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBC08: .4byte 0x02000000 -_080EBC0C: .4byte 0x00006dab - thumb_func_end sub_80EBBE8 - - thumb_func_start sub_80EBC10 -sub_80EBC10: @ 80EBC10 - push {r4-r7,lr} - ldr r1, _080EBC7C @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - bl CalculatePlayerPartyCount - ldr r2, _080EBC80 @ =0x02000000 - ldr r1, _080EBC84 @ =0x00008828 - adds r3, r2, r1 - movs r1, 0 - strb r0, [r3] - ldr r3, _080EBC88 @ =0x00006ddc - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC8C @ =0x00009344 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _080EBC90 @ =0x00008768 - adds r0, r2, r3 - str r1, [r0] - ldr r3, _080EBC94 @ =0x0000ced0 - adds r0, r2, r3 - str r1, [r0] - movs r3, 0 - ldr r0, _080EBC98 @ =0x00008fff - adds r7, r2, r0 - mov r12, r2 - movs r6, 0 - ldr r5, _080EBC9C @ =0x00009040 - movs r4, 0x9B -_080EBC4C: - adds r0, r3, r7 - strb r6, [r0] - lsls r1, r3, 2 - adds r1, r2 - adds r0, r1, r5 - strh r4, [r0] - ldr r0, _080EBCA0 @ =0x00009042 - adds r1, r0 - movs r0, 0x5B - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _080EBC4C - ldr r1, _080EBCA4 @ =0x00006e95 - add r1, r12 - movs r0, 0 - strb r0, [r1] - bl sub_80EBCA8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EBC7C: .4byte gKeyRepeatStartDelay -_080EBC80: .4byte 0x02000000 -_080EBC84: .4byte 0x00008828 -_080EBC88: .4byte 0x00006ddc -_080EBC8C: .4byte 0x00009344 -_080EBC90: .4byte 0x00008768 -_080EBC94: .4byte 0x0000ced0 -_080EBC98: .4byte 0x00008fff -_080EBC9C: .4byte 0x00009040 -_080EBCA0: .4byte 0x00009042 -_080EBCA4: .4byte 0x00006e95 - thumb_func_end sub_80EBC10 - - thumb_func_start sub_80EBCA8 -sub_80EBCA8: @ 80EBCA8 - push {r4,lr} - ldr r4, _080EBCDC @ =0x02000000 - ldr r0, _080EBCE0 @ =0x00006db2 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EBCE4 @ =0x00006db3 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldr r0, _080EBCE8 @ =0x00006db4 - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - ldr r0, _080EBCEC @ =0x0000083b - bl FlagGet - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EBCF4 - ldr r0, _080EBCF0 @ =0x00006db5 - adds r1, r4, r0 - movs r0, 0x4 - strb r0, [r1] - b _080EBCFA - .align 2, 0 -_080EBCDC: .4byte 0x02000000 -_080EBCE0: .4byte 0x00006db2 -_080EBCE4: .4byte 0x00006db3 -_080EBCE8: .4byte 0x00006db4 -_080EBCEC: .4byte 0x0000083b -_080EBCF0: .4byte 0x00006db5 -_080EBCF4: - ldr r1, _080EBD0C @ =0x00006db5 - adds r0, r4, r1 - strb r2, [r0] -_080EBCFA: - ldr r0, _080EBD10 @ =0x02000000 - ldr r1, _080EBD14 @ =0x00006db6 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EBD0C: .4byte 0x00006db5 -_080EBD10: .4byte 0x02000000 -_080EBD14: .4byte 0x00006db6 - thumb_func_end sub_80EBCA8 - - thumb_func_start sub_80EBD18 -sub_80EBD18: @ 80EBD18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F1FF0 - pop {r0} - bx r0 - thumb_func_end sub_80EBD18 - - thumb_func_start sub_80EBD30 -sub_80EBD30: @ 80EBD30 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80FB260 - bl sub_80EFE7C - pop {r0} - bx r0 - thumb_func_end sub_80EBD30 - - thumb_func_start sub_80EBD4C -sub_80EBD4C: @ 80EBD4C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F5BF0 - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80EBD4C - - thumb_func_start sub_80EBD68 -sub_80EBD68: @ 80EBD68 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_80F6F64 - pop {r0} - bx r0 - thumb_func_end sub_80EBD68 - - thumb_func_start sub_80EBD80 -sub_80EBD80: @ 80EBD80 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_80EBD80 - - thumb_func_start sub_80EBD90 -sub_80EBD90: @ 80EBD90 - push {lr} - ldr r0, _080EBDB8 @ =0x02000000 - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - bl sub_80F19FC - pop {r0} - bx r0 - .align 2, 0 -_080EBDB8: .4byte 0x02000000 - thumb_func_end sub_80EBD90 - - thumb_func_start sub_80EBDBC -sub_80EBDBC: @ 80EBDBC - ldr r2, _080EBDD4 @ =0x02000000 - movs r3, 0xC0 - lsls r3, 2 - adds r1, r2, r3 - str r0, [r1] - movs r0, 0xC1 - lsls r0, 2 - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080EBDD4: .4byte 0x02000000 - thumb_func_end sub_80EBDBC - - thumb_func_start sub_80EBDD8 -sub_80EBDD8: @ 80EBDD8 - push {lr} - sub sp, 0x4 - ldr r1, _080EBDF8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x11 - bls _080EBDEE - b _080EC000 -_080EBDEE: - lsls r0, 2 - ldr r1, _080EBDFC @ =_080EBE00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EBDF8: .4byte 0x02000000 -_080EBDFC: .4byte _080EBE00 - .align 2, 0 -_080EBE00: - .4byte _080EBE48 - .4byte _080EBE80 - .4byte _080EBE92 - .4byte _080EBEAC - .4byte _080EBEC0 - .4byte _080EBED2 - .4byte _080EBEF0 - .4byte _080EBF04 - .4byte _080EBF18 - .4byte _080EBF2C - .4byte _080EBF48 - .4byte _080EBF54 - .4byte _080EBF74 - .4byte _080EBF88 - .4byte _080EBFA0 - .4byte _080EBFB4 - .4byte _080EBFD0 - .4byte _080EBFE8 -_080EBE48: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _080EBE74 @ =0x02000000 - ldr r3, _080EBE78 @ =0x00006ddc - adds r0, r1, r3 - ldrb r2, [r0] - subs r3, 0x2F - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EBE7C @ =0x00006dae - adds r2, r1, r0 - movs r0, 0x5 - strb r0, [r2] - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBE74: .4byte 0x02000000 -_080EBE78: .4byte 0x00006ddc -_080EBE7C: .4byte 0x00006dae -_080EBE80: - bl sub_80F3FF0 - ldr r1, _080EBEA8 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBE92: - bl sub_80F4024 - lsls r0, 24 - cmp r0, 0 - beq _080EBE9E - b _080EC000 -_080EBE9E: - ldr r1, _080EBEA8 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEA8: .4byte 0x02000000 -_080EBEAC: - bl sub_80F2598 - ldr r1, _080EBEBC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBEBC: .4byte 0x02000000 -_080EBEC0: - bl sub_80EEE20 - ldr r1, _080EBEEC @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBED2: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - beq _080EBEDE - b _080EC000 -_080EBEDE: - bl sub_80EEE08 - ldr r1, _080EBEEC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBEEC: .4byte 0x02000000 -_080EBEF0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EBF14 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF04: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EBF12 - b _080EC000 -_080EBF12: - b _080EBFD4 - .align 2, 0 -_080EBF14: .4byte 0x02000000 -_080EBF18: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EBF44 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBF2C: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBF44 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF44: .4byte 0x02000000 -_080EBF48: - ldr r0, _080EBF50 @ =sub_80EBD18 - bl SetVBlankCallback - b _080EBFD4 - .align 2, 0 -_080EBF50: .4byte sub_80EBD18 -_080EBF54: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _080EBF70 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EBFDC - .align 2, 0 -_080EBF70: .4byte 0x02000000 -_080EBF74: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EBF84 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBF84: .4byte 0x02000000 -_080EBF88: - ldr r0, _080EBF9C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r2, r3 - b _080EBFDC - .align 2, 0 -_080EBF9C: .4byte gPaletteFade -_080EBFA0: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EBFCC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EBFB4: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - ldr r1, _080EBFCC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EBFDC - .align 2, 0 -_080EBFCC: .4byte 0x02000000 -_080EBFD0: - bl sub_80F1DF0 -_080EBFD4: - ldr r1, _080EBFE4 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080EBFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC000 - .align 2, 0 -_080EBFE4: .4byte 0x02000000 -_080EBFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC000 - movs r0, 0 - movs r1, 0 - bl sub_80EF428 - ldr r0, _080EC008 @ =sub_80EC268 - bl sub_80EBDBC -_080EC000: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EC008: .4byte sub_80EC268 - thumb_func_end sub_80EBDD8 - - thumb_func_start sub_80EC00C -sub_80EC00C: @ 80EC00C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC02C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080EC022 - b _080EC1FA -_080EC022: - lsls r0, 2 - ldr r1, _080EC030 @ =_080EC034 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC02C: .4byte 0x02000000 -_080EC030: .4byte _080EC034 - .align 2, 0 -_080EC034: - .4byte _080EC06C - .4byte _080EC0C0 - .4byte _080EC0D4 - .4byte _080EC0F0 - .4byte _080EC104 - .4byte _080EC120 - .4byte _080EC12A - .4byte _080EC154 - .4byte _080EC168 - .4byte _080EC180 - .4byte _080EC194 - .4byte _080EC1A8 - .4byte _080EC1C4 - .4byte _080EC1DC -_080EC06C: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080EC078 - b _080EC1FA -_080EC078: - ldr r0, _080EC0AC @ =sub_80EBD80 - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080EC0B0 @ =0x02000000 - ldr r1, _080EC0B4 @ =0x00006ddc - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080EC0B8 @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080EC0BC @ =0x00006dae - adds r1, r4, r0 - movs r0, 0x5 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC1FA - .align 2, 0 -_080EC0AC: .4byte sub_80EBD80 -_080EC0B0: .4byte 0x02000000 -_080EC0B4: .4byte 0x00006ddc -_080EC0B8: .4byte 0x00006dad -_080EC0BC: .4byte 0x00006dae -_080EC0C0: - movs r0, 0 - bl sub_80EF248 - ldr r1, _080EC0EC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC0D4: - movs r0, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080EC0E2 - b _080EC1FA -_080EC0E2: - ldr r1, _080EC0EC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC0EC: .4byte 0x02000000 -_080EC0F0: - movs r0, 0 - bl sub_80F1B8C - ldr r1, _080EC11C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC104: - movs r0, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080EC112 - b _080EC1FA -_080EC112: - ldr r1, _080EC11C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC11C: .4byte 0x02000000 -_080EC120: - bl sub_8055870 - cmp r0, 0 - bne _080EC1FA - b _080EC1C8 -_080EC12A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EC150 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC150: .4byte sub_80EBD18 -_080EC154: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080EC164 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC164: .4byte 0x02000000 -_080EC168: - ldr r0, _080EC17C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC1FA - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC1D0 - .align 2, 0 -_080EC17C: .4byte gPaletteFade -_080EC180: - bl sub_80F2598 - ldr r1, _080EC190 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC190: .4byte 0x02000000 -_080EC194: - movs r0, 0 - bl sub_80F2C80 - ldr r1, _080EC1C0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC1A8: - movs r0, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r1, _080EC1C0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EC1D0 - .align 2, 0 -_080EC1C0: .4byte 0x02000000 -_080EC1C4: - bl sub_80F1DF0 -_080EC1C8: - ldr r1, _080EC1D8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080EC1D0: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC1FA - .align 2, 0 -_080EC1D8: .4byte 0x02000000 -_080EC1DC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EC1FA - ldr r0, _080EC204 @ =0x02000000 - ldr r1, _080EC208 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - ldr r0, _080EC20C @ =sub_80EC268 - bl sub_80EBDBC -_080EC1FA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC204: .4byte 0x02000000 -_080EC208: .4byte 0x00006dad -_080EC20C: .4byte sub_80EC268 - thumb_func_end sub_80EC00C - - thumb_func_start sub_80EC210 -sub_80EC210: @ 80EC210 - push {r4,r5,lr} - ldr r5, _080EC228 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC22C - cmp r0, 0x1 - beq _080EC24C - b _080EC25C - .align 2, 0 -_080EC228: .4byte 0x02000000 -_080EC22C: - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080EC248 @ =0x00006ddc - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC25C - .align 2, 0 -_080EC248: .4byte 0x00006ddc -_080EC24C: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC25C - ldr r0, _080EC264 @ =sub_80EC268 - bl sub_80EBDBC -_080EC25C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC264: .4byte sub_80EC268 - thumb_func_end sub_80EC210 - - thumb_func_start sub_80EC268 -sub_80EC268: @ 80EC268 - push {r4-r6,lr} - ldr r4, _080EC290 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r6, r4, r0 - ldrh r0, [r6] - cmp r0, 0x3 - bne _080EC27A - b _080EC3BE -_080EC27A: - cmp r0, 0x3 - bgt _080EC294 - cmp r0, 0x1 - bne _080EC284 - b _080EC3A2 -_080EC284: - cmp r0, 0x1 - ble _080EC28A - b _080EC3B4 -_080EC28A: - cmp r0, 0 - beq _080EC2AE - b _080EC492 - .align 2, 0 -_080EC290: .4byte 0x02000000 -_080EC294: - cmp r0, 0x6 - bne _080EC29A - b _080EC414 -_080EC29A: - cmp r0, 0x6 - bgt _080EC2A6 - cmp r0, 0x4 - bne _080EC2A4 - b _080EC3DC -_080EC2A4: - b _080EC492 -_080EC2A6: - cmp r0, 0xFF - bne _080EC2AC - b _080EC44C -_080EC2AC: - b _080EC492 -_080EC2AE: - bl sub_80EEC10 - lsls r0, 24 - cmp r0, 0 - beq _080EC2D4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC2D0 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC2D0: .4byte 0x00006dad -_080EC2D4: - ldr r0, _080EC310 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080EC394 - ldr r2, _080EC314 @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x2F - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r2, 0x2A - adds r1, r4, r2 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x4 - bls _080EC304 - b _080EC492 -_080EC304: - lsls r0, 2 - ldr r1, _080EC318 @ =_080EC31C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC310: .4byte gMain -_080EC314: .4byte 0x00006dad -_080EC318: .4byte _080EC31C - .align 2, 0 -_080EC31C: - .4byte _080EC330 - .4byte _080EC344 - .4byte _080EC380 - .4byte _080EC36C - .4byte _080EC358 -_080EC330: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC340 @ =sub_80EC4A0 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC340: .4byte sub_80EC4A0 -_080EC344: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC354 @ =sub_80EC81C - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC354: .4byte sub_80EC81C -_080EC358: - ldr r0, _080EC368 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC368: .4byte 0x02000000 -_080EC36C: - ldr r0, _080EC37C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC37C: .4byte 0x02000000 -_080EC380: - ldr r0, _080EC390 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strh r1, [r0] - b _080EC492 - .align 2, 0 -_080EC390: .4byte 0x02000000 -_080EC394: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080EC39E - b _080EC492 -_080EC39E: - strh r2, [r6] - b _080EC492 -_080EC3A2: - bl sub_80F208C - ldr r0, _080EC3B0 @ =sub_80EE96C - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC3B0: .4byte sub_80EE96C -_080EC3B4: - bl sub_80F6208 - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] -_080EC3BE: - bl sub_80F6250 - lsls r0, 24 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC3D8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC492 - .align 2, 0 -_080EC3D8: .4byte 0x02000000 -_080EC3DC: - bl sub_8055870 - cmp r0, 0 - bne _080EC492 - ldr r1, _080EC400 @ =0x00008fe8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080EC408 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC404 @ =sub_80EDB88 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC400: .4byte 0x00008fe8 -_080EC404: .4byte sub_80EDB88 -_080EC408: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x5 - b _080EC442 -_080EC414: - bl sub_80F6C20 - ldr r2, _080EC430 @ =0x0000d158 - adds r0, r4, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _080EC438 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC434 @ =sub_80EE3D8 - bl sub_80EBDBC - b _080EC492 - .align 2, 0 -_080EC430: .4byte 0x0000d158 -_080EC434: .4byte sub_80EE3D8 -_080EC438: - movs r0, 0x20 - bl PlaySE - movs r0, 0 - movs r1, 0x6 -_080EC442: - bl sub_80EF428 - movs r0, 0xFF - strh r0, [r6] - b _080EC492 -_080EC44C: - bl sub_80EEC10 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080EC478 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC474 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - movs r0, 0 - strh r0, [r6] - bl sub_80EED9C - b _080EC492 - .align 2, 0 -_080EC474: .4byte 0x00006dad -_080EC478: - ldr r0, _080EC498 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080EC492 - ldr r2, _080EC49C @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - movs r0, 0 - bl sub_80EF428 - strh r5, [r6] -_080EC492: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC498: .4byte gMain -_080EC49C: .4byte 0x00006dad - thumb_func_end sub_80EC268 - - thumb_func_start sub_80EC4A0 -sub_80EC4A0: @ 80EC4A0 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EC4C0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xE - bls _080EC4B6 - b _080EC66A -_080EC4B6: - lsls r0, 2 - ldr r1, _080EC4C4 @ =_080EC4C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC4C0: .4byte 0x02000000 -_080EC4C4: .4byte _080EC4C8 - .align 2, 0 -_080EC4C8: - .4byte _080EC504 - .4byte _080EC510 - .4byte _080EC544 - .4byte _080EC578 - .4byte _080EC594 - .4byte _080EC5A8 - .4byte _080EC5AE - .4byte _080EC5C0 - .4byte _080EC5D0 - .4byte _080EC5E4 - .4byte _080EC5F8 - .4byte _080EC614 - .4byte _080EC61E - .4byte _080EC63E - .4byte _080EC658 -_080EC504: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EC644 -_080EC510: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EC51C - b _080EC66A -_080EC51C: - ldr r0, _080EC53C @ =gSaveBlock2 - ldrb r1, [r0, 0x15] - movs r0, 0x8 - ands r0, r1 - movs r1, 0x8 - cmp r0, 0 - beq _080EC52C - movs r1, 0x7 -_080EC52C: - adds r0, r1, 0 - bl sub_80EEFBC - ldr r1, _080EC540 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC53C: .4byte gSaveBlock2 -_080EC540: .4byte 0x02000000 -_080EC544: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EC552 - b _080EC66A -_080EC552: - ldr r4, _080EC574 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C - .align 2, 0 -_080EC574: .4byte 0x02000000 -_080EC578: - ldr r0, _080EC590 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - b _080EC644 - .align 2, 0 -_080EC590: .4byte gPaletteFade -_080EC594: - bl sub_80F2620 - ldr r1, _080EC5A4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC5A4: .4byte 0x02000000 -_080EC5A8: - bl sub_80EF814 - b _080EC644 -_080EC5AE: - bl sub_80EF840 - ldr r1, _080EC5CC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5C0: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5CC: .4byte 0x02000000 -_080EC5D0: - movs r0, 0x4 - bl sub_80F2C80 - ldr r1, _080EC5F4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EC5E4: - movs r0, 0x4 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EC66A - b _080EC644 - .align 2, 0 -_080EC5F4: .4byte 0x02000000 -_080EC5F8: - bl sub_80F2DD8 - ldr r0, _080EC60C @ =sub_80EBD30 - bl SetVBlankCallback - ldr r1, _080EC610 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EC64C - .align 2, 0 -_080EC60C: .4byte sub_80EBD30 -_080EC610: .4byte 0x02000000 -_080EC614: - bl sub_8055870 - cmp r0, 0 - bne _080EC66A - b _080EC644 -_080EC61E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC64C -_080EC63E: - movs r0, 0x1 - bl sub_80EED2C -_080EC644: - ldr r1, _080EC654 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EC64C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC66A - .align 2, 0 -_080EC654: .4byte 0x02000000 -_080EC658: - ldr r0, _080EC674 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC66A - ldr r0, _080EC678 @ =sub_80EC67C - bl sub_80EBDBC -_080EC66A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC674: .4byte gPaletteFade -_080EC678: .4byte sub_80EC67C - thumb_func_end sub_80EC4A0 - - thumb_func_start sub_80EC67C -sub_80EC67C: @ 80EC67C - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080EC69C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x5 - bls _080EC692 - b _080EC800 -_080EC692: - lsls r0, 2 - ldr r1, _080EC6A0 @ =_080EC6A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EC69C: .4byte 0x02000000 -_080EC6A0: .4byte _080EC6A4 - .align 2, 0 -_080EC6A4: - .4byte _080EC6BC - .4byte _080EC718 - .4byte _080EC746 - .4byte _080EC77C - .4byte _080EC7A0 - .4byte _080EC7C4 -_080EC6BC: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080EC6E2 - cmp r0, 0x3 - bgt _080EC6D2 - cmp r0, 0x1 - beq _080EC6DC - b _080EC800 -_080EC6D2: - cmp r0, 0x4 - beq _080EC6E8 - cmp r0, 0x5 - beq _080EC700 - b _080EC800 -_080EC6DC: - bl sub_80EED9C - b _080EC800 -_080EC6E2: - bl sub_80EF9F8 - b _080EC800 -_080EC6E8: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC6FC @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC6FC: .4byte 0x02000000 -_080EC700: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EC714 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0] - b _080EC800 - .align 2, 0 -_080EC714: .4byte 0x02000000 -_080EC718: - ldr r1, _080EC730 @ =0x00006e90 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EC734 - bl sub_80FAEC4 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EC7BC - .align 2, 0 -_080EC730: .4byte 0x00006e90 -_080EC734: - movs r0, 0x1 - bl sub_80EFBDC - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - bl sub_80FAEC4 - b _080EC7B6 -_080EC746: - bl sub_80FAFC0 - lsls r0, 24 - cmp r0, 0 - bne _080EC800 - ldr r5, _080EC76C @ =0x02000000 - ldr r1, _080EC770 @ =0x00006e90 - adds r0, r5, r1 - ldrb r4, [r0] - cmp r4, 0 - bne _080EC774 - bl sub_80EFBB0 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r5, r2 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC76C: .4byte 0x02000000 -_080EC770: .4byte 0x00006e90 -_080EC774: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 - b _080EC7BC -_080EC77C: - movs r0, 0 - bl sub_80EFBDC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EC800 - bl sub_80EFBB0 - ldr r0, _080EC79C @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - strh r4, [r0] - b _080EC800 - .align 2, 0 -_080EC79C: .4byte 0x02000000 -_080EC7A0: - movs r2, 0xC2 - lsls r2, 2 - adds r0, r4, r2 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade -_080EC7B6: - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EC7BC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EC800 -_080EC7C4: - ldr r0, _080EC808 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EC800 - bl sub_80F2DF4 - movs r0, 0x4 - bl sub_80F2D04 - ldr r3, _080EC80C @ =gSaveBlock2 - movs r2, 0 - ldr r0, _080EC810 @ =0x02000000 - ldr r1, _080EC814 @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EC7EC - movs r2, 0x1 -_080EC7EC: - lsls r2, 3 - ldrb r1, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0x15] - ldr r0, _080EC818 @ =sub_80EC00C - bl sub_80EBDBC -_080EC800: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EC808: .4byte gPaletteFade -_080EC80C: .4byte gSaveBlock2 -_080EC810: .4byte 0x02000000 -_080EC814: .4byte 0x00006e90 -_080EC818: .4byte sub_80EC00C - thumb_func_end sub_80EC67C - - thumb_func_start sub_80EC81C -sub_80EC81C: @ 80EC81C - push {r4,lr} - ldr r0, _080EC834 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC838 - cmp r0, 0x1 - beq _080EC850 - b _080EC860 - .align 2, 0 -_080EC834: .4byte 0x02000000 -_080EC838: - movs r0, 0 - bl sub_80F2D04 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC860 -_080EC850: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC860 - ldr r0, _080EC868 @ =sub_80EC86C - bl sub_80EBDBC -_080EC860: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC868: .4byte sub_80EC86C - thumb_func_end sub_80EC81C - - thumb_func_start sub_80EC86C -sub_80EC86C: @ 80EC86C - push {r4-r6,lr} - ldr r4, _080EC884 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080EC888 - cmp r0, 0x1 - beq _080EC944 - b _080EC954 - .align 2, 0 -_080EC884: .4byte 0x02000000 -_080EC888: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080EC8B0 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC8AC @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - bl sub_80EED9C - b _080EC954 - .align 2, 0 -_080EC8AC: .4byte 0x00006dad -_080EC8B0: - ldr r0, _080EC8E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EC918 - movs r0, 0x5 - bl PlaySE - ldr r2, _080EC8E8 @ =0x00006dad - adds r0, r4, r2 - ldrb r1, [r0] - adds r2, 0x43 - adds r0, r4, r2 - strb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080EC900 - cmp r0, 0x1 - bgt _080EC8EC - cmp r0, 0 - beq _080EC8F2 - b _080EC954 - .align 2, 0 -_080EC8E4: .4byte gMain -_080EC8E8: .4byte 0x00006dad -_080EC8EC: - cmp r0, 0x2 - beq _080EC90C - b _080EC954 -_080EC8F2: - ldr r0, _080EC8FC @ =sub_80ED620 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC8FC: .4byte sub_80ED620 -_080EC900: - ldr r0, _080EC908 @ =sub_80EC960 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC908: .4byte sub_80EC960 -_080EC90C: - ldr r0, _080EC914 @ =sub_80EC210 - bl sub_80EBDBC - b _080EC954 - .align 2, 0 -_080EC914: .4byte sub_80EC210 -_080EC918: - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC954 - movs r0, 0x5 - bl PlaySE - ldr r1, _080EC93C @ =0x00006df0 - adds r0, r4, r1 - strb r6, [r0] - ldr r2, _080EC940 @ =0x00006dad - adds r0, r4, r2 - strb r6, [r0] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EC954 - .align 2, 0 -_080EC93C: .4byte 0x00006df0 -_080EC940: .4byte 0x00006dad -_080EC944: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080EC954 - ldr r0, _080EC95C @ =sub_80EC210 - bl sub_80EBDBC -_080EC954: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EC95C: .4byte sub_80EC210 - thumb_func_end sub_80EC86C - - thumb_func_start sub_80EC960 -sub_80EC960: @ 80EC960 - push {r4,lr} - ldr r0, _080EC978 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC97C - cmp r0, 0x1 - beq _080EC98E - b _080EC99E - .align 2, 0 -_080EC978: .4byte 0x02000000 -_080EC97C: - movs r0, 0x2 - movs r1, 0 - movs r2, 0x5 - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EC99E -_080EC98E: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080EC99E - ldr r0, _080EC9A4 @ =sub_80ECC08 - bl sub_80EBDBC -_080EC99E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EC9A4: .4byte sub_80ECC08 - thumb_func_end sub_80EC960 - - thumb_func_start sub_80EC9A8 -sub_80EC9A8: @ 80EC9A8 - push {r4,r5,lr} - ldr r5, _080EC9C0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0 - beq _080EC9C4 - cmp r0, 0x1 - beq _080EC9E4 - b _080ECA00 - .align 2, 0 -_080EC9C0: .4byte 0x02000000 -_080EC9C4: - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080EC9E0 @ =0x00006df0 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xC - bl sub_80EE9C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECA00 - .align 2, 0 -_080EC9E0: .4byte 0x00006df0 -_080EC9E4: - bl sub_80EEA0C - lsls r0, 24 - cmp r0, 0 - bne _080ECA00 - ldr r0, _080ECA08 @ =sub_80EC86C - bl sub_80EBDBC - ldr r1, _080ECA0C @ =0x00006dad - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 -_080ECA00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECA08: .4byte sub_80EC86C -_080ECA0C: .4byte 0x00006dad - thumb_func_end sub_80EC9A8 - - thumb_func_start sub_80ECA10 -sub_80ECA10: @ 80ECA10 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECA30 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xD - bls _080ECA26 - b _080ECBF2 -_080ECA26: - lsls r0, 2 - ldr r1, _080ECA34 @ =_080ECA38 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECA30: .4byte 0x02000000 -_080ECA34: .4byte _080ECA38 - .align 2, 0 -_080ECA38: - .4byte _080ECA70 - .4byte _080ECAC4 - .4byte _080ECAD8 - .4byte _080ECAF4 - .4byte _080ECB08 - .4byte _080ECB24 - .4byte _080ECB2E - .4byte _080ECB58 - .4byte _080ECB6C - .4byte _080ECB72 - .4byte _080ECB8C - .4byte _080ECBA0 - .4byte _080ECBBC - .4byte _080ECBD4 -_080ECA70: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECA7C - b _080ECBF2 -_080ECA7C: - ldr r0, _080ECAB0 @ =sub_80EBD80 - bl SetVBlankCallback - bl sub_80EED1C - ldr r4, _080ECAB4 @ =0x02000000 - ldr r1, _080ECAB8 @ =0x00006df0 - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECABC @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r0, _080ECAC0 @ =0x00006dae - adds r1, r4, r0 - movs r0, 0x3 - strb r0, [r1] - bl sub_80EEE08 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080ECBF2 - .align 2, 0 -_080ECAB0: .4byte sub_80EBD80 -_080ECAB4: .4byte 0x02000000 -_080ECAB8: .4byte 0x00006df0 -_080ECABC: .4byte 0x00006dad -_080ECAC0: .4byte 0x00006dae -_080ECAC4: - movs r0, 0x1 - bl sub_80EF248 - ldr r1, _080ECAF0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECAD8: - movs r0, 0x1 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECAE6 - b _080ECBF2 -_080ECAE6: - ldr r1, _080ECAF0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECAF0: .4byte 0x02000000 -_080ECAF4: - movs r0, 0x1 - bl sub_80F1B8C - ldr r1, _080ECB20 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECB08: - movs r0, 0x1 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECB20 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB20: .4byte 0x02000000 -_080ECB24: - bl sub_8055870 - cmp r0, 0 - bne _080ECBF2 - b _080ECBC0 -_080ECB2E: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECB54 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECBC8 - .align 2, 0 -_080ECB54: .4byte sub_80EBD18 -_080ECB58: - movs r0, 0 - bl sub_80EED2C - ldr r1, _080ECB68 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECB68: .4byte 0x02000000 -_080ECB6C: - bl sub_80F2598 - b _080ECBC0 -_080ECB72: - ldr r0, _080ECB88 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ECBF2 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECBC8 - .align 2, 0 -_080ECB88: .4byte gPaletteFade -_080ECB8C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECBB8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECBA0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r1, _080ECBB8 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECBC8 - .align 2, 0 -_080ECBB8: .4byte 0x02000000 -_080ECBBC: - bl sub_80F1DF0 -_080ECBC0: - ldr r1, _080ECBD0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ECBC8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ECBF2 - .align 2, 0 -_080ECBD0: .4byte 0x02000000 -_080ECBD4: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ECBF2 - ldr r0, _080ECBFC @ =0x02000000 - ldr r1, _080ECC00 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl sub_80EF428 - ldr r0, _080ECC04 @ =sub_80EC86C - bl sub_80EBDBC -_080ECBF2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ECBFC: .4byte 0x02000000 -_080ECC00: .4byte 0x00006dad -_080ECC04: .4byte sub_80EC86C - thumb_func_end sub_80ECA10 - - thumb_func_start sub_80ECC08 -sub_80ECC08: @ 80ECC08 - push {r4,r5,lr} - ldr r4, _080ECC20 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0 - beq _080ECC24 - cmp r0, 0x1 - bne _080ECC1E - b _080ECD64 -_080ECC1E: - b _080ECD74 - .align 2, 0 -_080ECC20: .4byte 0x02000000 -_080ECC24: - bl sub_80EEC90 - lsls r0, 24 - cmp r0, 0 - beq _080ECC4C - movs r0, 0x5 - bl PlaySE - ldr r1, _080ECC48 @ =0x00006dad - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - bl sub_80EED9C - b _080ECD74 - .align 2, 0 -_080ECC48: .4byte 0x00006dad -_080ECC4C: - ldr r0, _080ECC78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080ECC5A - b _080ECD40 -_080ECC5A: - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECC7C @ =0x00006dad - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _080ECD0C - lsls r0, 2 - ldr r1, _080ECC80 @ =_080ECC84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECC78: .4byte gMain -_080ECC7C: .4byte 0x00006dad -_080ECC80: .4byte _080ECC84 - .align 2, 0 -_080ECC84: - .4byte _080ECC9C - .4byte _080ECCB0 - .4byte _080ECCC4 - .4byte _080ECCD8 - .4byte _080ECCEC - .4byte _080ECD00 -_080ECC9C: - ldr r0, _080ECCA8 @ =0x02000000 - ldr r3, _080ECCAC @ =0x000087d8 - adds r0, r3 - movs r1, 0x16 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCA8: .4byte 0x02000000 -_080ECCAC: .4byte 0x000087d8 -_080ECCB0: - ldr r0, _080ECCBC @ =0x02000000 - ldr r1, _080ECCC0 @ =0x000087d8 - adds r0, r1 - movs r1, 0x17 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCBC: .4byte 0x02000000 -_080ECCC0: .4byte 0x000087d8 -_080ECCC4: - ldr r0, _080ECCD0 @ =0x02000000 - ldr r2, _080ECCD4 @ =0x000087d8 - adds r0, r2 - movs r1, 0x18 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCD0: .4byte 0x02000000 -_080ECCD4: .4byte 0x000087d8 -_080ECCD8: - ldr r0, _080ECCE4 @ =0x02000000 - ldr r3, _080ECCE8 @ =0x000087d8 - adds r0, r3 - movs r1, 0x21 - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCE4: .4byte 0x02000000 -_080ECCE8: .4byte 0x000087d8 -_080ECCEC: - ldr r0, _080ECCF8 @ =0x02000000 - ldr r1, _080ECCFC @ =0x000087d8 - adds r0, r1 - movs r1, 0x2F - strb r1, [r0] - b _080ECD0C - .align 2, 0 -_080ECCF8: .4byte 0x02000000 -_080ECCFC: .4byte 0x000087d8 -_080ECD00: - ldr r0, _080ECD08 @ =sub_80EC9A8 - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD08: .4byte sub_80EC9A8 -_080ECD0C: - ldr r1, _080ECD2C @ =0x02000000 - ldr r2, _080ECD30 @ =0x00006dad - adds r0, r1, r2 - ldrb r2, [r0] - ldr r3, _080ECD34 @ =0x00006dfc - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080ECD38 @ =0x000076aa - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080ECD3C @ =sub_80ED01C - bl sub_80EBDBC - b _080ECD74 - .align 2, 0 -_080ECD2C: .4byte 0x02000000 -_080ECD30: .4byte 0x00006dad -_080ECD34: .4byte 0x00006dfc -_080ECD38: .4byte 0x000076aa -_080ECD3C: .4byte sub_80ED01C -_080ECD40: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ECD74 - movs r0, 0x5 - bl PlaySE - ldr r2, _080ECD60 @ =0x00006dad - adds r1, r4, r2 - movs r0, 0x5 - strb r0, [r1] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080ECD74 - .align 2, 0 -_080ECD60: .4byte 0x00006dad -_080ECD64: - bl sub_80F1E6C - lsls r0, 24 - cmp r0, 0 - bne _080ECD74 - ldr r0, _080ECD7C @ =sub_80EC9A8 - bl sub_80EBDBC -_080ECD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080ECD7C: .4byte sub_80EC9A8 - thumb_func_end sub_80ECC08 - - thumb_func_start sub_80ECD80 -sub_80ECD80: @ 80ECD80 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ECDA0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x14 - bls _080ECD96 - b _080ED006 -_080ECD96: - lsls r0, 2 - ldr r1, _080ECDA4 @ =_080ECDA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ECDA0: .4byte 0x02000000 -_080ECDA4: .4byte _080ECDA8 - .align 2, 0 -_080ECDA8: - .4byte _080ECDFC - .4byte _080ECE1A - .4byte _080ECE34 - .4byte _080ECE4C - .4byte _080ECE64 - .4byte _080ECE78 - .4byte _080ECE80 - .4byte _080ECEAC - .4byte _080ECEC0 - .4byte _080ECED4 - .4byte _080ECEE8 - .4byte _080ECF04 - .4byte _080ECF10 - .4byte _080ECF3C - .4byte _080ECF44 - .4byte _080ECF58 - .4byte _080ECF70 - .4byte _080ECF84 - .4byte _080ECFB0 - .4byte _080ECFC4 - .4byte _080ECFE8 -_080ECDFC: - movs r3, 0xC2 - lsls r3, 2 - adds r0, r4, r3 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC -_080ECE1A: - ldr r0, _080ECE30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ECE28 - b _080ED006 -_080ECE28: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECE30: .4byte gPaletteFade -_080ECE34: - bl sub_80EEF78 - lsls r0, 24 - cmp r0, 0 - beq _080ECE40 - b _080ED006 -_080ECE40: - ldr r0, _080ECE48 @ =sub_80EBD80 - bl SetVBlankCallback - b _080ECFD4 - .align 2, 0 -_080ECE48: .4byte sub_80EBD80 -_080ECE4C: - bl sub_80EED1C - bl sub_80F3130 - ldr r1, _080ECE60 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECE60: .4byte 0x02000000 -_080ECE64: - movs r0, 0x1 - bl sub_80F2D6C - ldr r1, _080ECE74 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECE74: .4byte 0x02000000 -_080ECE78: - movs r0, 0x5 - bl sub_80F2D6C - b _080ECFD4 -_080ECE80: - ldr r1, _080ECEA0 @ =0x00006dfc - adds r0, r4, r1 - ldrb r1, [r0] - ldr r2, _080ECEA4 @ =0x00006dad - adds r0, r4, r2 - strb r1, [r0] - ldr r3, _080ECEA8 @ =0x00006dae - adds r1, r4, r3 - movs r0, 0x6 - strb r0, [r1] - bl sub_80EEE08 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ECFDC - .align 2, 0 -_080ECEA0: .4byte 0x00006dfc -_080ECEA4: .4byte 0x00006dad -_080ECEA8: .4byte 0x00006dae -_080ECEAC: - movs r0, 0x2 - bl sub_80EF248 - ldr r1, _080ECED0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEC0: - movs r0, 0x2 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - beq _080ECECE - b _080ED006 -_080ECECE: - b _080ECFD4 - .align 2, 0 -_080ECED0: .4byte 0x02000000 -_080ECED4: - movs r0, 0x2 - bl sub_80F1B8C - ldr r1, _080ECF00 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECEE8: - movs r0, 0x2 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - beq _080ECEF6 - b _080ED006 -_080ECEF6: - ldr r1, _080ECF00 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ECFDC - .align 2, 0 -_080ECF00: .4byte 0x02000000 -_080ECF04: - bl sub_8055870 - cmp r0, 0 - beq _080ECF0E - b _080ED006 -_080ECF0E: - b _080ECFD4 -_080ECF10: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ECF38 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF38: .4byte sub_80EBD18 -_080ECF3C: - movs r0, 0 - bl sub_80EED2C - b _080ECFD4 -_080ECF44: - bl sub_80F2598 - ldr r1, _080ECF54 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ECFDC - .align 2, 0 -_080ECF54: .4byte 0x02000000 -_080ECF58: - ldr r0, _080ECF6C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED006 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ECFDC - .align 2, 0 -_080ECF6C: .4byte gPaletteFade -_080ECF70: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ECFA8 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECF84: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED006 - ldr r0, _080ECFA8 @ =0x02000000 - ldr r3, _080ECFAC @ =0x00000306 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED006 - .align 2, 0 -_080ECFA8: .4byte 0x02000000 -_080ECFAC: .4byte 0x00000306 -_080ECFB0: - movs r0, 0x5 - bl sub_80F2C80 - ldr r1, _080ECFE4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ECFC4: - movs r0, 0x5 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - bl sub_80F1DF0 -_080ECFD4: - ldr r1, _080ECFE4 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 -_080ECFDC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED006 - .align 2, 0 -_080ECFE4: .4byte 0x02000000 -_080ECFE8: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080ED006 - ldr r0, _080ED010 @ =0x02000000 - ldr r1, _080ED014 @ =0x00006dad - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - bl sub_80EF428 - ldr r0, _080ED018 @ =sub_80ECC08 - bl sub_80EBDBC -_080ED006: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED010: .4byte 0x02000000 -_080ED014: .4byte 0x00006dad -_080ED018: .4byte sub_80ECC08 - thumb_func_end sub_80ECD80 - - thumb_func_start sub_80ED01C -sub_80ED01C: @ 80ED01C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED03C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x13 - bls _080ED032 - b _080ED308 -_080ED032: - lsls r0, 2 - ldr r1, _080ED040 @ =_080ED044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED03C: .4byte 0x02000000 -_080ED040: .4byte _080ED044 - .align 2, 0 -_080ED044: - .4byte _080ED094 - .4byte _080ED0B4 - .4byte _080ED0D4 - .4byte _080ED108 - .4byte _080ED138 - .4byte _080ED14C - .4byte _080ED15E - .4byte _080ED18C - .4byte _080ED1AC - .4byte _080ED1C4 - .4byte _080ED1D8 - .4byte _080ED1F4 - .4byte _080ED208 - .4byte _080ED220 - .4byte _080ED24C - .4byte _080ED260 - .4byte _080ED28C - .4byte _080ED2A0 - .4byte _080ED2CC - .4byte _080ED2EA -_080ED094: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - movs r0, 0x5 - bl sub_80F2D04 - ldr r1, _080ED0B0 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED0B0: .4byte 0x02000000 -_080ED0B4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED0C0 - b _080ED308 -_080ED0C0: - movs r0, 0 - bl sub_80EEFBC - ldr r1, _080ED0D0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED0D0: .4byte 0x02000000 -_080ED0D4: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED0E2 - b _080ED308 -_080ED0E2: - ldr r4, _080ED104 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED104: .4byte 0x02000000 -_080ED108: - ldr r0, _080ED130 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED116 - b _080ED308 -_080ED116: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r1, _080ED134 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED130: .4byte gPaletteFade -_080ED134: .4byte 0x02000000 -_080ED138: - bl sub_80F2620 - ldr r1, _080ED148 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED148: .4byte 0x02000000 -_080ED14C: - bl sub_80F4D44 - ldr r1, _080ED178 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED15E: - bl sub_80F4D88 - lsls r0, 24 - cmp r0, 0 - bne _080ED17C - ldr r1, _080ED178 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED178: .4byte 0x02000000 -_080ED17C: - ldr r1, _080ED188 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED188: .4byte 0x02000000 -_080ED18C: - bl sub_8055870 - cmp r0, 0 - beq _080ED196 - b _080ED308 -_080ED196: - ldr r1, _080ED1A8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED1A8: .4byte 0x02000000 -_080ED1AC: - bl sub_8055870 - cmp r0, 0 - beq _080ED1B6 - b _080ED308 -_080ED1B6: - ldr r1, _080ED1C0 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED1C0: .4byte 0x02000000 -_080ED1C4: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED1F0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED1D8: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - beq _080ED1E4 - b _080ED308 -_080ED1E4: - ldr r1, _080ED1F0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED27C - .align 2, 0 -_080ED1F0: .4byte 0x02000000 -_080ED1F4: - movs r0, 0 - bl sub_80F3008 - ldr r1, _080ED204 @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED204: .4byte 0x02000000 -_080ED208: - bl sub_8055870 - cmp r0, 0 - beq _080ED212 - b _080ED308 -_080ED212: - ldr r1, _080ED21C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED27C - .align 2, 0 -_080ED21C: .4byte 0x02000000 -_080ED220: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED248 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED27C - .align 2, 0 -_080ED248: .4byte sub_80EBD18 -_080ED24C: - movs r0, 0x4 - bl sub_80EED2C - ldr r1, _080ED25C @ =0x02000000 - movs r3, 0xC1 - lsls r3, 2 - adds r1, r3 - b _080ED27C - .align 2, 0 -_080ED25C: .4byte 0x02000000 -_080ED260: - ldr r0, _080ED284 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080ED308 - ldr r2, _080ED288 @ =0x00000306 - adds r0, r4, r2 - strh r1, [r0] - movs r3, 0xC1 - lsls r3, 2 - adds r1, r4, r3 -_080ED27C: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED308 - .align 2, 0 -_080ED284: .4byte gPaletteFade -_080ED288: .4byte 0x00000306 -_080ED28C: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED2C4 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED2A0: - movs r0, 0x1 - bl sub_80F2CBC - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080ED308 - ldr r0, _080ED2C4 @ =0x02000000 - ldr r3, _080ED2C8 @ =0x00000306 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED308 - .align 2, 0 -_080ED2C4: .4byte 0x02000000 -_080ED2C8: .4byte 0x00000306 -_080ED2CC: - ldr r4, _080ED310 @ =0x02000000 - ldr r2, _080ED314 @ =0x00006dfc - adds r0, r4, r2 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2C80 - movs r3, 0xC1 - lsls r3, 2 - adds r4, r3 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080ED2EA: - ldr r0, _080ED310 @ =0x02000000 - ldr r1, _080ED314 @ =0x00006dfc - adds r0, r1 - ldrb r0, [r0] - adds r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED308 - ldr r0, _080ED318 @ =sub_80ED31C - bl sub_80EBDBC -_080ED308: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED310: .4byte 0x02000000 -_080ED314: .4byte 0x00006dfc -_080ED318: .4byte sub_80ED31C - thumb_func_end sub_80ED01C - - thumb_func_start sub_80ED31C -sub_80ED31C: @ 80ED31C - push {r4,lr} - ldr r0, _080ED338 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080ED3A8 - cmp r0, 0x1 - bgt _080ED33C - cmp r0, 0 - beq _080ED342 - b _080ED3CA - .align 2, 0 -_080ED338: .4byte 0x02000000 -_080ED33C: - cmp r0, 0x2 - beq _080ED3C0 - b _080ED3CA -_080ED342: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080ED374 - cmp r0, 0x2 - beq _080ED380 - ldr r0, _080ED36C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080ED38C - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED370 @ =sub_80ED4D8 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED36C: .4byte gMain -_080ED370: .4byte sub_80ED4D8 -_080ED374: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080ED3CA -_080ED380: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED38C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080ED3CA - movs r0, 0x5 - bl PlaySE - ldr r0, _080ED3A4 @ =sub_80ECD80 - bl sub_80EBDBC - b _080ED3CA - .align 2, 0 -_080ED3A4: .4byte sub_80ECD80 -_080ED3A8: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080ED3CA - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080ED3C8 -_080ED3C0: - bl sub_8055870 - cmp r0, 0 - bne _080ED3CA -_080ED3C8: - strh r0, [r4] -_080ED3CA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ED31C - - thumb_func_start sub_80ED3D0 -sub_80ED3D0: @ 80ED3D0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080ED3EC @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080ED4C6 - lsls r0, 2 - ldr r1, _080ED3F0 @ =_080ED3F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED3EC: .4byte 0x02000000 -_080ED3F0: .4byte _080ED3F4 - .align 2, 0 -_080ED3F4: - .4byte _080ED418 - .4byte _080ED420 - .4byte _080ED42A - .4byte _080ED432 - .4byte _080ED446 - .4byte _080ED458 - .4byte _080ED462 - .4byte _080ED498 - .4byte _080ED4B4 -_080ED418: - movs r0, 0 - bl SetVBlankCallback - b _080ED49E -_080ED420: - bl sub_80EED0C - bl sub_80F6134 - b _080ED49E -_080ED42A: - movs r0, 0 - bl sub_80EEFBC - b _080ED49E -_080ED432: - movs r0, 0 - bl sub_80F0264 - ldr r1, _080ED454 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED446: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E - .align 2, 0 -_080ED454: .4byte 0x02000000 -_080ED458: - bl sub_8055870 - cmp r0, 0 - bne _080ED4C6 - b _080ED49E -_080ED462: - movs r0, 0 - bl sub_80F3008 - ldr r4, _080ED490 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED494 @ =sub_80EBD18 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080ED4A6 - .align 2, 0 -_080ED490: .4byte 0x02000000 -_080ED494: .4byte sub_80EBD18 -_080ED498: - movs r0, 0x4 - bl sub_80EED2C -_080ED49E: - ldr r1, _080ED4B0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED4A6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED4C6 - .align 2, 0 -_080ED4B0: .4byte 0x02000000 -_080ED4B4: - ldr r0, _080ED4D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED4C6 - ldr r0, _080ED4D4 @ =sub_80ED31C - bl sub_80EBDBC -_080ED4C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED4D0: .4byte gPaletteFade -_080ED4D4: .4byte sub_80ED31C - thumb_func_end sub_80ED3D0 - - thumb_func_start sub_80ED4D8 -sub_80ED4D8: @ 80ED4D8 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED4F8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080ED4EE - b _080ED60E -_080ED4EE: - lsls r0, 2 - ldr r1, _080ED4FC @ =_080ED500 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED4F8: .4byte 0x02000000 -_080ED4FC: .4byte _080ED500 - .align 2, 0 -_080ED500: - .4byte _080ED524 - .4byte _080ED542 - .4byte _080ED564 - .4byte _080ED57C - .4byte _080ED582 - .4byte _080ED594 - .4byte _080ED5A4 - .4byte _080ED5E0 - .4byte _080ED5FC -_080ED524: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE -_080ED542: - ldr r0, _080ED560 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - b _080ED5E6 - .align 2, 0 -_080ED560: .4byte gPaletteFade -_080ED564: - bl sub_8055870 - cmp r0, 0 - bne _080ED60E - ldr r1, _080ED578 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080ED5EE - .align 2, 0 -_080ED578: .4byte 0x02000000 -_080ED57C: - bl sub_80F4CF0 - b _080ED5E6 -_080ED582: - bl sub_80EFF34 - ldr r1, _080ED5A0 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED594: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080ED60E - b _080ED5E6 - .align 2, 0 -_080ED5A0: .4byte 0x02000000 -_080ED5A4: - bl sub_80F35B4 - movs r0, 0x2 - bl sub_80EEFBC - ldr r4, _080ED5D8 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED5DC @ =sub_80EBD4C - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED5EE - .align 2, 0 -_080ED5D8: .4byte 0x02000000 -_080ED5DC: .4byte sub_80EBD4C -_080ED5E0: - movs r0, 0x2 - bl sub_80EED2C -_080ED5E6: - ldr r1, _080ED5F8 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080ED5EE: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED60E - .align 2, 0 -_080ED5F8: .4byte 0x02000000 -_080ED5FC: - ldr r0, _080ED618 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED60E - ldr r0, _080ED61C @ =sub_80ED858 - bl sub_80EBDBC -_080ED60E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED618: .4byte gPaletteFade -_080ED61C: .4byte sub_80ED858 - thumb_func_end sub_80ED4D8 - - thumb_func_start sub_80ED620 -sub_80ED620: @ 80ED620 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080ED640 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _080ED636 - b _080ED846 -_080ED636: - lsls r0, 2 - ldr r1, _080ED644 @ =_080ED648 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED640: .4byte 0x02000000 -_080ED644: .4byte _080ED648 - .align 2, 0 -_080ED648: - .4byte _080ED68C - .4byte _080ED6A4 - .4byte _080ED6B8 - .4byte _080ED6EC - .4byte _080ED730 - .4byte _080ED736 - .4byte _080ED750 - .4byte _080ED762 - .4byte _080ED76C - .4byte _080ED784 - .4byte _080ED78A - .4byte _080ED7C0 - .4byte _080ED7D4 - .4byte _080ED7EC - .4byte _080ED800 - .4byte _080ED820 - .4byte _080ED834 -_080ED68C: - bl sub_80F1E84 - movs r0, 0x1 - bl sub_80F2D04 - ldr r1, _080ED6A0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED6A0: .4byte 0x02000000 -_080ED6A4: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080ED6B0 - b _080ED846 -_080ED6B0: - movs r0, 0x1 - bl sub_80EEFBC - b _080ED80C -_080ED6B8: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080ED6C6 - b _080ED846 -_080ED6C6: - ldr r4, _080ED6E8 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED6E8: .4byte 0x02000000 -_080ED6EC: - ldr r0, _080ED724 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080ED6FE - b _080ED846 -_080ED6FE: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - ldr r0, _080ED728 @ =0x02000000 - ldr r2, _080ED72C @ =0x000076aa - adds r1, r0, r2 - strb r4, [r1] - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - b _080ED846 - .align 2, 0 -_080ED724: .4byte gPaletteFade -_080ED728: .4byte 0x02000000 -_080ED72C: .4byte 0x000076aa -_080ED730: - bl sub_80F2620 - b _080ED80C -_080ED736: - ldr r0, _080ED74C @ =0x0000d162 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80F4BD0 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED74C: .4byte 0x0000d162 -_080ED750: - bl sub_80EFF34 - ldr r1, _080ED768 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED762: - bl sub_80EFF68 - b _080ED806 - .align 2, 0 -_080ED768: .4byte 0x02000000 -_080ED76C: - bl sub_8055870 - cmp r0, 0 - bne _080ED846 - ldr r1, _080ED780 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED780: .4byte 0x02000000 -_080ED784: - bl sub_8055870 - b _080ED808 -_080ED78A: - bl sub_80F33A8 - ldr r4, _080ED7B8 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080ED7BC @ =sub_80EBD4C - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7B8: .4byte 0x02000000 -_080ED7BC: .4byte sub_80EBD4C -_080ED7C0: - movs r0, 0x2 - bl sub_80EED2C - ldr r1, _080ED7D0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080ED814 - .align 2, 0 -_080ED7D0: .4byte 0x02000000 -_080ED7D4: - ldr r0, _080ED7E8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080ED846 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080ED814 - .align 2, 0 -_080ED7E8: .4byte gPaletteFade -_080ED7EC: - movs r0, 0x1 - bl sub_80F2C80 - ldr r1, _080ED81C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED800: - movs r0, 0x1 - bl sub_80F2CBC -_080ED806: - lsls r0, 24 -_080ED808: - cmp r0, 0 - bne _080ED846 -_080ED80C: - ldr r1, _080ED81C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 -_080ED814: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080ED846 - .align 2, 0 -_080ED81C: .4byte 0x02000000 -_080ED820: - movs r0, 0x6 - bl sub_80F2C80 - ldr r1, _080ED850 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080ED834: - movs r0, 0x6 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080ED846 - ldr r0, _080ED854 @ =sub_80ED858 - bl sub_80EBDBC -_080ED846: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080ED850: .4byte 0x02000000 -_080ED854: .4byte sub_80ED858 - thumb_func_end sub_80ED620 - - thumb_func_start sub_80ED858 -sub_80ED858: @ 80ED858 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080ED878 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0xB - bls _080ED86E - b _080EDB7A -_080ED86E: - lsls r0, 2 - ldr r1, _080ED87C @ =_080ED880 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED878: .4byte 0x02000000 -_080ED87C: .4byte _080ED880 - .align 2, 0 -_080ED880: - .4byte _080ED8B0 - .4byte _080ED8CC - .4byte _080ED8EC - .4byte _080ED904 - .4byte _080ED91A - .4byte _080EDA68 - .4byte _080EDA8C - .4byte _080EDAA4 - .4byte _080EDAC0 - .4byte _080EDAE8 - .4byte _080EDB7A - .4byte _080EDB28 -_080ED8B0: - bl sub_80F4F78 - bl sub_80F5B38 - ldr r0, _080ED8C8 @ =0x02000000 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8C8: .4byte 0x02000000 -_080ED8CC: - bl sub_80F5B50 - lsls r0, 24 - cmp r0, 0 - beq _080ED8D8 - b _080EDB7A -_080ED8D8: - ldr r0, _080ED8E8 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED8E8: .4byte 0x02000000 -_080ED8EC: - movs r0, 0x1 - bl sub_80F0174 - ldr r0, _080ED900 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED900: .4byte 0x02000000 -_080ED904: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - beq _080ED910 - b _080EDB7A -_080ED910: - bl sub_80F3C94 - bl sub_80F3D00 - b _080EDAD4 -_080ED91A: - ldr r2, _080ED960 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080ED970 - ldr r1, _080ED964 @ =0x000087cb - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED970 - ldr r2, _080ED968 @ =0x000076aa - adds r0, r5, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED948 - ldr r4, _080ED96C @ =0x000087dc - adds r0, r5, r4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080ED970 -_080ED948: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F5060 - bl move_anim_execute - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - b _080ED9B8 - .align 2, 0 -_080ED960: .4byte gMain -_080ED964: .4byte 0x000087cb -_080ED968: .4byte 0x000076aa -_080ED96C: .4byte 0x000087dc -_080ED970: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080ED9CC - ldr r4, _080ED9C0 @ =0x000087cb - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9CC - ldr r1, _080ED9C4 @ =0x000076aa - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080ED9A2 - ldr r2, _080ED9C8 @ =0x000087dc - adds r0, r5, r2 - subs r4, 0x57 - adds r1, r5, r4 - movs r4, 0 - ldrsh r2, [r0, r4] - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r2, r0 - bge _080ED9CC -_080ED9A2: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80F5060 - bl move_anim_execute - movs r0, 0xC1 - lsls r0, 2 - adds r1, r5, r0 -_080ED9B8: - movs r0, 0x5 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080ED9C0: .4byte 0x000087cb -_080ED9C4: .4byte 0x000076aa -_080ED9C8: .4byte 0x000087dc -_080ED9CC: - ldrh r2, [r3, 0x2E] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080ED9F8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4FDC - bl move_anim_execute - ldr r0, _080ED9F4 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x9 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080ED9F4: .4byte 0x02000000 -_080ED9F8: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _080EDA02 - b _080EDB7A -_080EDA02: - adds r4, r5, 0 - ldr r2, _080EDA38 @ =0x000076aa - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDA44 - ldr r1, _080EDA3C @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r2, _080EDA40 @ =0x000087da - adds r0, r4, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r0, 0x1 - cmp r1, r0 - beq _080EDA26 - b _080EDB7A -_080EDA26: - movs r0, 0x5 - bl PlaySE - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - movs r0, 0x9 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA38: .4byte 0x000076aa -_080EDA3C: .4byte 0x000087dc -_080EDA40: .4byte 0x000087da -_080EDA44: - ldr r1, _080EDA64 @ =0x00006dac - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080EDA50 - b _080EDB7A -_080EDA50: - movs r0, 0x5 - bl PlaySE - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0x7 - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDA64: .4byte 0x00006dac -_080EDA68: - bl gpu_sync_bg_show - lsls r0, 24 - cmp r0, 0 - beq _080EDA74 - b _080EDB7A -_080EDA74: - bl sub_80F3D00 - ldr r0, _080EDA88 @ =0x02000000 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 - movs r1, 0x6 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDA88: .4byte 0x02000000 -_080EDA8C: - bl sub_8055870 - cmp r0, 0 - bne _080EDB7A - ldr r0, _080EDAA0 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EDADC - .align 2, 0 -_080EDAA0: .4byte 0x02000000 -_080EDAA4: - movs r0, 0x3 - bl sub_80EEFBC - bl sub_80F3668 - ldr r0, _080EDABC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 - movs r1, 0x8 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDABC: .4byte 0x02000000 -_080EDAC0: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _080EDB7A - movs r0, 0x2 - bl sub_80EEFBC - bl sub_80F3698 -_080EDAD4: - ldr r0, _080EDAE4 @ =0x02000000 - movs r4, 0xC1 - lsls r4, 2 - adds r0, r4 -_080EDADC: - movs r1, 0x4 - strh r1, [r0] - b _080EDB7A - .align 2, 0 -_080EDAE4: .4byte 0x02000000 -_080EDAE8: - bl sub_80F5038 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EDB7A - movs r0, 0 - bl sub_80F0174 - bl sub_80F2F48 - ldr r5, _080EDB24 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r4, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r5, r2 - movs r0, 0xB - strh r0, [r1] - b _080EDB7A - .align 2, 0 -_080EDB24: .4byte 0x02000000 -_080EDB28: - ldr r0, _080EDB60 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDB7A - bl sub_80F3CE8 - bl sub_80F5BDC - ldr r0, _080EDB64 @ =0x02000000 - ldr r4, _080EDB68 @ =0x000076aa - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080EDB70 - bl sub_80F357C - movs r0, 0x1 - bl sub_80F2D6C - movs r0, 0x6 - bl sub_80F2D6C - ldr r0, _080EDB6C @ =sub_80ECA10 - bl sub_80EBDBC - b _080EDB7A - .align 2, 0 -_080EDB60: .4byte gPaletteFade -_080EDB64: .4byte 0x02000000 -_080EDB68: .4byte 0x000076aa -_080EDB6C: .4byte sub_80ECA10 -_080EDB70: - bl sub_80F3614 - ldr r0, _080EDB84 @ =sub_80ED3D0 - bl sub_80EBDBC -_080EDB7A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDB84: .4byte sub_80ED3D0 - thumb_func_end sub_80ED858 - - thumb_func_start sub_80EDB88 -sub_80EDB88: @ 80EDB88 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDBA8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EDB9E - b _080EDDAA -_080EDB9E: - lsls r0, 2 - ldr r1, _080EDBAC @ =_080EDBB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDBA8: .4byte 0x02000000 -_080EDBAC: .4byte _080EDBB0 - .align 2, 0 -_080EDBB0: - .4byte _080EDBF8 - .4byte _080EDC04 - .4byte _080EDC24 - .4byte _080EDC58 - .4byte _080EDC7C - .4byte _080EDC90 - .4byte _080EDCA2 - .4byte _080EDCC0 - .4byte _080EDCDC - .4byte _080EDCE6 - .4byte _080EDCFA - .4byte _080EDD0C - .4byte _080EDD20 - .4byte _080EDD34 - .4byte _080EDD48 - .4byte _080EDD52 - .4byte _080EDD7C - .4byte _080EDD98 -_080EDBF8: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EDD82 -_080EDC04: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EDC10 - b _080EDDAA -_080EDC10: - movs r0, 0x4 - bl sub_80EEFBC - ldr r1, _080EDC20 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC20: .4byte 0x02000000 -_080EDC24: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EDC32 - b _080EDDAA -_080EDC32: - ldr r4, _080EDC54 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDC54: .4byte 0x02000000 -_080EDC58: - ldr r0, _080EDC78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDC66 - b _080EDDAA -_080EDC66: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - b _080EDD82 - .align 2, 0 -_080EDC78: .4byte gPaletteFade -_080EDC7C: - bl sub_80F2620 - ldr r1, _080EDC8C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDC8C: .4byte 0x02000000 -_080EDC90: - bl sub_80F638C - ldr r1, _080EDCBC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCA2: - bl sub_80F63D0 - lsls r0, 24 - cmp r0, 0 - bne _080EDD82 - ldr r1, _080EDCBC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCBC: .4byte 0x02000000 -_080EDCC0: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - ldr r1, _080EDCD8 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDCD8: .4byte 0x02000000 -_080EDCDC: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDCE6: - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EDD08 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDCFA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD08: .4byte 0x02000000 -_080EDD0C: - movs r0, 0x2 - bl sub_80F2C80 - ldr r1, _080EDD30 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDD20: - movs r0, 0x2 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 - .align 2, 0 -_080EDD30: .4byte 0x02000000 -_080EDD34: - movs r0, 0x1 - bl sub_80F3008 - ldr r1, _080EDD44 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EDD8A - .align 2, 0 -_080EDD44: .4byte 0x02000000 -_080EDD48: - bl sub_8055870 - cmp r0, 0 - bne _080EDDAA - b _080EDD82 -_080EDD52: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EDD78 @ =sub_80EBD18 - bl SetVBlankCallback - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EDD8A - .align 2, 0 -_080EDD78: .4byte sub_80EBD18 -_080EDD7C: - movs r0, 0x4 - bl sub_80EED2C -_080EDD82: - ldr r1, _080EDD94 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EDD8A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EDDAA - .align 2, 0 -_080EDD94: .4byte 0x02000000 -_080EDD98: - ldr r0, _080EDDB4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDDAA - ldr r0, _080EDDB8 @ =sub_80EDDBC - bl sub_80EBDBC -_080EDDAA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDDB4: .4byte gPaletteFade -_080EDDB8: .4byte sub_80EDDBC - thumb_func_end sub_80EDB88 - - thumb_func_start sub_80EDDBC -sub_80EDDBC: @ 80EDDBC - push {r4,lr} - ldr r0, _080EDDD8 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EDE48 - cmp r0, 0x1 - bgt _080EDDDC - cmp r0, 0 - beq _080EDDE2 - b _080EDE6A - .align 2, 0 -_080EDDD8: .4byte 0x02000000 -_080EDDDC: - cmp r0, 0x2 - beq _080EDE60 - b _080EDE6A -_080EDDE2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDE14 - cmp r0, 0x2 - beq _080EDE20 - ldr r0, _080EDE0C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EDE2C - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE10 @ =sub_80EDEE4 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE0C: .4byte gMain -_080EDE10: .4byte sub_80EDEE4 -_080EDE14: - movs r0, 0x5 - bl PlaySE - bl ShowMapNamePopUpWindow - b _080EDE6A -_080EDE20: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE2C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EDE6A - movs r0, 0x5 - bl PlaySE - ldr r0, _080EDE44 @ =sub_80EDE70 - bl sub_80EBDBC - b _080EDE6A - .align 2, 0 -_080EDE44: .4byte sub_80EDE70 -_080EDE48: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EDE6A - bl ShowMapNamePopUpWindow - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EDE68 -_080EDE60: - bl sub_8055870 - cmp r0, 0 - bne _080EDE6A -_080EDE68: - strh r0, [r4] -_080EDE6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EDDBC - - thumb_func_start sub_80EDE70 -sub_80EDE70: @ 80EDE70 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EDE8C @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EDEAE - cmp r2, 0x1 - bgt _080EDE90 - cmp r2, 0 - beq _080EDE96 - b _080EDED6 - .align 2, 0 -_080EDE8C: .4byte 0x02000000 -_080EDE90: - cmp r2, 0x2 - beq _080EDED0 - b _080EDED6 -_080EDE96: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EDEC4 -_080EDEAE: - ldr r0, _080EDECC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EDED6 - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C -_080EDEC4: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EDED6 - .align 2, 0 -_080EDECC: .4byte gPaletteFade -_080EDED0: - ldr r0, _080EDEE0 @ =sub_80EC00C - bl sub_80EBDBC -_080EDED6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDEE0: .4byte sub_80EC00C - thumb_func_end sub_80EDE70 - - thumb_func_start sub_80EDEE4 -sub_80EDEE4: @ 80EDEE4 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EDF04 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0xA - bls _080EDEFA - b _080EE060 -_080EDEFA: - lsls r0, 2 - ldr r1, _080EDF08 @ =_080EDF0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EDF04: .4byte 0x02000000 -_080EDF08: .4byte _080EDF0C - .align 2, 0 -_080EDF0C: - .4byte _080EDF38 - .4byte _080EDF50 - .4byte _080EDF80 - .4byte _080EDF98 - .4byte _080EDFB0 - .4byte _080EDFC8 - .4byte _080EDFE0 - .4byte _080EDFF8 - .4byte _080EE01C - .4byte _080EE030 - .4byte _080EE050 -_080EDF38: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE03C -_080EDF50: - ldr r0, _080EDF78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EDF5E - b _080EE060 -_080EDF5E: - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3130 - ldr r1, _080EDF7C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDF78: .4byte gPaletteFade -_080EDF7C: .4byte 0x02000000 -_080EDF80: - bl sub_80F66E0 - bl sub_80EEE08 - ldr r1, _080EDF94 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDF94: .4byte 0x02000000 -_080EDF98: - bl sub_80F1080 - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFAC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFAC: .4byte 0x02000000 -_080EDFB0: - movs r0, 0x5 - bl sub_80EEFBC - bl sub_80F38B8 - ldr r1, _080EDFDC @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EDFC8: - bl sub_80F38EC - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFDC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EDFDC: .4byte 0x02000000 -_080EDFE0: - bl sub_8055870 - cmp r0, 0 - bne _080EE060 - ldr r1, _080EDFF4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE042 - .align 2, 0 -_080EDFF4: .4byte 0x02000000 -_080EDFF8: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE018 @ =sub_80EBD18 - bl SetVBlankCallback - b _080EE03C - .align 2, 0 -_080EE018: .4byte sub_80EBD18 -_080EE01C: - movs r0, 0x3 - bl sub_80EED2C - ldr r1, _080EE02C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE042 - .align 2, 0 -_080EE02C: .4byte 0x02000000 -_080EE030: - ldr r0, _080EE04C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE060 -_080EE03C: - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 -_080EE042: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE060 - .align 2, 0 -_080EE04C: .4byte gPaletteFade -_080EE050: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080EE060 - ldr r0, _080EE068 @ =sub_80EE06C - bl sub_80EBDBC -_080EE060: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE068: .4byte sub_80EE06C - thumb_func_end sub_80EDEE4 - - thumb_func_start sub_80EE06C -sub_80EE06C: @ 80EE06C - push {r4,r5,lr} - ldr r1, _080EE08C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE080 - b _080EE288 -_080EE080: - lsls r0, 2 - ldr r1, _080EE090 @ =_080EE094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE08C: .4byte 0x02000000 -_080EE090: .4byte _080EE094 - .align 2, 0 -_080EE094: - .4byte _080EE0B8 - .4byte _080EE0CC - .4byte _080EE180 - .4byte _080EE19C - .4byte _080EE1B8 - .4byte _080EE1D0 - .4byte _080EE1F8 - .4byte _080EE250 - .4byte _080EE26C -_080EE0B8: - bl sub_80F15A8 - ldr r1, _080EE0C8 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 - b _080EE1C4 - .align 2, 0 -_080EE0C8: .4byte 0x02000000 -_080EE0CC: - ldr r2, _080EE0FC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE104 - ldr r1, _080EE100 @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE104 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F6A4C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE1C4 - .align 2, 0 -_080EE0FC: .4byte gMain -_080EE100: .4byte 0x000087dc -_080EE104: - ldrh r1, [r3, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE140 - ldr r1, _080EE138 @ =0x000087dc - adds r0, r4, r1 - ldr r2, _080EE13C @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE140 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F6A4C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE1C4 - .align 2, 0 -_080EE138: .4byte 0x000087dc -_080EE13C: .4byte 0x00008774 -_080EE140: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080EE164 - movs r0, 0x5 - bl PlaySE - movs r0, 0xB - bl sub_80EEFBC - ldr r0, _080EE160 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - b _080EE262 - .align 2, 0 -_080EE160: .4byte 0x02000000 -_080EE164: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _080EE16E - b _080EE288 -_080EE16E: - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE17C @ =sub_80EE294 - bl sub_80EBDBC - b _080EE288 - .align 2, 0 -_080EE17C: .4byte sub_80EE294 -_080EE180: - bl sub_80F6AF0 - lsls r0, 24 - cmp r0, 0 - beq _080EE18C - b _080EE288 -_080EE18C: - ldr r1, _080EE198 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE1C4 - .align 2, 0 -_080EE198: .4byte 0x02000000 -_080EE19C: - bl sub_8055870 - adds r1, r0, 0 - cmp r1, 0 - bne _080EE288 - ldr r0, _080EE1B4 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE1B4: .4byte 0x02000000 -_080EE1B8: - bl sub_80F3B00 - ldr r1, _080EE1CC @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE1C4: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE288 - .align 2, 0 -_080EE1CC: .4byte 0x02000000 -_080EE1D0: - bl sub_80F3B58 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - bl sub_80F1494 - ldr r1, _080EE1F4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - bl sub_80EED9C - b _080EE288 - .align 2, 0 -_080EE1F4: .4byte 0x02000000 -_080EE1F8: - bl sub_80F68E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080EE224 - cmp r0, 0x1 - bne _080EE224 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE220 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - movs r1, 0x7 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE220: .4byte 0x02000000 -_080EE224: - ldr r0, _080EE248 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE288 - movs r0, 0x5 - bl PlaySE - bl sub_80F3B94 - ldr r0, _080EE24C @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE248: .4byte gMain -_080EE24C: .4byte 0x02000000 -_080EE250: - bl sub_80F3BD4 - lsls r0, 24 - cmp r0, 0 - bne _080EE288 - ldr r0, _080EE268 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r2 -_080EE262: - movs r1, 0x4 - strh r1, [r0] - b _080EE288 - .align 2, 0 -_080EE268: .4byte 0x02000000 -_080EE26C: - bl sub_80F3BD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EE288 - movs r0, 0x5 - bl sub_80EEFBC - ldr r0, _080EE290 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r0, r5 - strh r4, [r0] -_080EE288: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE290: .4byte 0x02000000 - thumb_func_end sub_80EE06C - - thumb_func_start sub_80EE294 -sub_80EE294: @ 80EE294 - push {r4,lr} - sub sp, 0x4 - ldr r1, _080EE2B4 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bls _080EE2AA - b _080EE3C6 -_080EE2AA: - lsls r0, 2 - ldr r1, _080EE2B8 @ =_080EE2BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE2B4: .4byte 0x02000000 -_080EE2B8: .4byte _080EE2BC - .align 2, 0 -_080EE2BC: - .4byte _080EE2E0 - .4byte _080EE2FE - .4byte _080EE324 - .4byte _080EE33C - .4byte _080EE34C - .4byte _080EE370 - .4byte _080EE37A - .4byte _080EE39A - .4byte _080EE3B4 -_080EE2E0: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE2FE: - ldr r0, _080EE320 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80F3C2C - bl sub_80EEE08 - b _080EE3A0 - .align 2, 0 -_080EE320: .4byte gPaletteFade -_080EE324: - bl sub_80F6134 - movs r0, 0x1 - bl sub_80F0264 - ldr r1, _080EE348 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE33C: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 - .align 2, 0 -_080EE348: .4byte 0x02000000 -_080EE34C: - movs r0, 0x4 - bl sub_80EEFBC - movs r0, 0x1 - bl sub_80F3008 - ldr r0, _080EE368 @ =sub_80EBD18 - bl SetVBlankCallback - ldr r1, _080EE36C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE3A8 - .align 2, 0 -_080EE368: .4byte sub_80EBD18 -_080EE36C: .4byte 0x02000000 -_080EE370: - bl sub_8055870 - cmp r0, 0 - bne _080EE3C6 - b _080EE3A0 -_080EE37A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xC1 - lsls r2, 2 - adds r1, r4, r2 - b _080EE3A8 -_080EE39A: - movs r0, 0x4 - bl sub_80EED2C -_080EE3A0: - ldr r1, _080EE3B0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE3A8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE3C6 - .align 2, 0 -_080EE3B0: .4byte 0x02000000 -_080EE3B4: - ldr r0, _080EE3D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE3C6 - ldr r0, _080EE3D4 @ =sub_80EDDBC - bl sub_80EBDBC -_080EE3C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE3D0: .4byte gPaletteFade -_080EE3D4: .4byte sub_80EDDBC - thumb_func_end sub_80EE294 - - thumb_func_start sub_80EE3D8 -sub_80EE3D8: @ 80EE3D8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE3F8 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EE3EC - b _080EE57A -_080EE3EC: - lsls r0, 2 - ldr r1, _080EE3FC @ =_080EE400 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE3F8: .4byte 0x02000000 -_080EE3FC: .4byte _080EE400 - .align 2, 0 -_080EE400: - .4byte _080EE438 - .4byte _080EE444 - .4byte _080EE458 - .4byte _080EE48C - .4byte _080EE4B0 - .4byte _080EE4B6 - .4byte _080EE4CA - .4byte _080EE4DC - .4byte _080EE4F0 - .4byte _080EE504 - .4byte _080EE50C - .4byte _080EE516 - .4byte _080EE54C - .4byte _080EE568 -_080EE438: - bl sub_80F1E84 - movs r0, 0 - bl sub_80F2D04 - b _080EE552 -_080EE444: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EE450 - b _080EE57A -_080EE450: - movs r0, 0x9 - bl sub_80EEFBC - b _080EE552 -_080EE458: - bl sub_80EEF34 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080EE466 - b _080EE57A -_080EE466: - ldr r4, _080EE488 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE488: .4byte 0x02000000 -_080EE48C: - ldr r0, _080EE4AC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - movs r0, 0 - bl SetVBlankCallback - bl sub_80EED0C - bl sub_80EF814 - bl sub_80EEE08 - b _080EE552 - .align 2, 0 -_080EE4AC: .4byte gPaletteFade -_080EE4B0: - bl sub_80F2620 - b _080EE552 -_080EE4B6: - movs r0, 0x2 - bl sub_80F0264 - ldr r1, _080EE4D8 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4CA: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE4D8: .4byte 0x02000000 -_080EE4DC: - movs r0, 0x3 - bl sub_80F2C80 - ldr r1, _080EE500 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE4F0: - movs r0, 0x3 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080EE57A - b _080EE552 - .align 2, 0 -_080EE500: .4byte 0x02000000 -_080EE504: - movs r0, 0x2 - bl sub_80F3008 - b _080EE552 -_080EE50C: - bl sub_8055870 - cmp r0, 0 - bne _080EE57A - b _080EE552 -_080EE516: - bl sub_80F6F10 - ldr r4, _080EE544 @ =0x02000000 - movs r1, 0xC2 - lsls r1, 2 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080EE548 @ =sub_80EBD68 - bl SetVBlankCallback - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 - b _080EE55A - .align 2, 0 -_080EE544: .4byte 0x02000000 -_080EE548: .4byte sub_80EBD68 -_080EE54C: - movs r0, 0x5 - bl sub_80EED2C -_080EE552: - ldr r1, _080EE564 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 -_080EE55A: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE57A - .align 2, 0 -_080EE564: .4byte 0x02000000 -_080EE568: - ldr r0, _080EE584 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE57A - ldr r0, _080EE588 @ =sub_80EE58C - bl sub_80EBDBC -_080EE57A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE584: .4byte gPaletteFade -_080EE588: .4byte sub_80EE58C - thumb_func_end sub_80EE3D8 - - thumb_func_start sub_80EE58C -sub_80EE58C: @ 80EE58C - push {r4,r5,lr} - ldr r5, _080EE5A8 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r4, r5, r0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EE624 - cmp r0, 0x1 - bgt _080EE5AC - cmp r0, 0 - beq _080EE5B2 - b _080EE652 - .align 2, 0 -_080EE5A8: .4byte 0x02000000 -_080EE5AC: - cmp r0, 0x2 - beq _080EE648 - b _080EE652 -_080EE5B2: - bl sub_80F5DD4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE5E4 - cmp r0, 0x2 - beq _080EE5FC - ldr r0, _080EE5DC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EE608 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE5E0 @ =sub_80EE658 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE5DC: .4byte gMain -_080EE5E0: .4byte sub_80EE658 -_080EE5E4: - movs r0, 0x5 - bl PlaySE - ldr r1, _080EE5F8 @ =0x0000876e - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - b _080EE652 - .align 2, 0 -_080EE5F8: .4byte 0x0000876e -_080EE5FC: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 -_080EE608: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE652 - movs r0, 0x5 - bl PlaySE - ldr r0, _080EE620 @ =sub_80EE8F4 - bl sub_80EBDBC - b _080EE652 - .align 2, 0 -_080EE620: .4byte sub_80EE8F4 -_080EE624: - bl sub_80F0718 - lsls r0, 24 - cmp r0, 0 - bne _080EE652 - ldr r1, _080EE644 @ =0x0000876e - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_80F0FFC - bl sub_80F3264 - ldrh r0, [r4] - adds r0, 0x1 - b _080EE650 - .align 2, 0 -_080EE644: .4byte 0x0000876e -_080EE648: - bl sub_8055870 - cmp r0, 0 - bne _080EE652 -_080EE650: - strh r0, [r4] -_080EE652: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EE58C - - thumb_func_start sub_80EE658 -sub_80EE658: @ 80EE658 - push {r4,r5,lr} - ldr r1, _080EE678 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - adds r4, r1, 0 - cmp r0, 0x11 - bls _080EE66C - b _080EE8E8 -_080EE66C: - lsls r0, 2 - ldr r1, _080EE67C @ =_080EE680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EE678: .4byte 0x02000000 -_080EE67C: .4byte _080EE680 - .align 2, 0 -_080EE680: - .4byte _080EE6C8 - .4byte _080EE6DA - .4byte _080EE6F4 - .4byte _080EE708 - .4byte _080EE71C - .4byte _080EE730 - .4byte _080EE758 - .4byte _080EE76A - .4byte _080EE780 - .4byte _080EE820 - .4byte _080EE840 - .4byte _080EE854 - .4byte _080EE868 - .4byte _080EE86E - .4byte _080EE880 - .4byte _080EE898 - .4byte _080EE8B4 - .4byte _080EE8D4 -_080EE6C8: - movs r0, 0x1 - bl sub_80F3294 - movs r0, 0xA - bl sub_80EEFBC - bl sub_80F0B24 - b _080EE8BE -_080EE6DA: - bl sub_80F0B44 - lsls r0, 24 - cmp r0, 0 - beq _080EE6E6 - b _080EE8E8 -_080EE6E6: - ldr r1, _080EE6F0 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE6F0: .4byte 0x02000000 -_080EE6F4: - bl sub_80F0F64 - ldr r1, _080EE704 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE704: .4byte 0x02000000 -_080EE708: - bl sub_80F0FEC - lsls r0, 24 - cmp r0, 0 - beq _080EE714 - b _080EE8E8 -_080EE714: - movs r0, 0x1 - bl sub_80F6FB8 - b _080EE8BE -_080EE71C: - bl sub_80F6DB8 - ldr r1, _080EE72C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE72C: .4byte 0x02000000 -_080EE730: - ldr r4, _080EE750 @ =0x02008788 - adds r0, r4, 0 - subs r0, 0x1A - ldrh r1, [r0] - adds r0, r4, 0 - bl sub_80F700C - adds r0, r4, 0 - bl sub_80F42C4 - ldr r1, _080EE754 @ =0xffff7b7c - adds r4, r1 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE8E8 - .align 2, 0 -_080EE750: .4byte 0x02008788 -_080EE754: .4byte 0xffff7b7c -_080EE758: - bl sub_80F0CD8 - ldr r1, _080EE77C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EE76A: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - beq _080EE776 - b _080EE8E8 -_080EE776: - bl sub_80F0D5C - b _080EE8B8 - .align 2, 0 -_080EE77C: .4byte 0x02000000 -_080EE780: - ldr r2, _080EE7B0 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _080EE7B8 - ldr r1, _080EE7B4 @ =0x000087dc - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _080EE7B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl sub_80F708C - movs r5, 0xC1 - lsls r5, 2 - adds r1, r4, r5 - b _080EE7E8 - .align 2, 0 -_080EE7B0: .4byte gMain -_080EE7B4: .4byte 0x000087dc -_080EE7B8: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EE7F8 - ldr r1, _080EE7F0 @ =0x000087dc - adds r0, r4, r1 - ldr r2, _080EE7F4 @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bge _080EE7F8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_80F708C - movs r0, 0xC1 - lsls r0, 2 - adds r1, r4, r0 -_080EE7E8: - movs r0, 0x10 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE7F0: .4byte 0x000087dc -_080EE7F4: .4byte 0x00008774 -_080EE7F8: - ldrh r1, [r3, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE8E8 - movs r0, 0x5 - bl PlaySE - bl sub_80F4394 - bl sub_80F0EC0 - ldr r1, _080EE81C @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE81C: .4byte 0x02000000 -_080EE820: - bl sub_80F6ED4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - bl sub_80F0EF4 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - movs r0, 0 - bl sub_80F6FB8 - bl sub_80F2FB0 - b _080EE8BE -_080EE840: - bl sub_80F6134 - ldr r1, _080EE850 @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE850: .4byte 0x02000000 -_080EE854: - bl sub_80F0FA0 - ldr r1, _080EE864 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE864: .4byte 0x02000000 -_080EE868: - bl sub_80F0FEC - b _080EE8B8 -_080EE86E: - bl sub_80F0C28 - ldr r1, _080EE87C @ =0x02000000 - movs r0, 0xC1 - lsls r0, 2 - adds r1, r0 - b _080EE8C6 - .align 2, 0 -_080EE87C: .4byte 0x02000000 -_080EE880: - bl sub_80F0C48 - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 - ldr r1, _080EE894 @ =0x02000000 - movs r2, 0xC1 - lsls r2, 2 - adds r1, r2 - b _080EE8C6 - .align 2, 0 -_080EE894: .4byte 0x02000000 -_080EE898: - movs r0, 0x9 - bl sub_80EEFBC - movs r0, 0 - bl sub_80F3294 - ldr r0, _080EE8B0 @ =sub_80EE58C - bl sub_80EBDBC - bl sub_80EED9C - b _080EE8E8 - .align 2, 0 -_080EE8B0: .4byte sub_80EE58C -_080EE8B4: - bl sub_80F70FC -_080EE8B8: - lsls r0, 24 - cmp r0, 0 - bne _080EE8E8 -_080EE8BE: - ldr r1, _080EE8D0 @ =0x02000000 - movs r5, 0xC1 - lsls r5, 2 - adds r1, r5 -_080EE8C6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EE8E8 - .align 2, 0 -_080EE8D0: .4byte 0x02000000 -_080EE8D4: - bl sub_8055870 - cmp r0, 0 - bne _080EE8E8 - ldr r0, _080EE8F0 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r0, r1 - movs r1, 0x8 - strh r1, [r0] -_080EE8E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE8F0: .4byte 0x02000000 - thumb_func_end sub_80EE658 - - thumb_func_start sub_80EE8F4 -sub_80EE8F4: @ 80EE8F4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080EE910 @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r4, r0, r1 - ldrh r2, [r4] - cmp r2, 0x1 - beq _080EE932 - cmp r2, 0x1 - bgt _080EE914 - cmp r2, 0 - beq _080EE91A - b _080EE95E - .align 2, 0 -_080EE910: .4byte 0x02000000 -_080EE914: - cmp r2, 0x2 - beq _080EE958 - b _080EE95E -_080EE91A: - movs r1, 0xC2 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - negs r1, r1 - str r2, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EE94C -_080EE932: - ldr r0, _080EE954 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE95E - bl sub_80F3130 - movs r0, 0x2 - bl sub_80F2D6C - bl sub_80F6FFC -_080EE94C: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080EE95E - .align 2, 0 -_080EE954: .4byte gPaletteFade -_080EE958: - ldr r0, _080EE968 @ =sub_80EC00C - bl sub_80EBDBC -_080EE95E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EE968: .4byte sub_80EC00C - thumb_func_end sub_80EE8F4 - - thumb_func_start sub_80EE96C -sub_80EE96C: @ 80EE96C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080EE99C @ =0x02000000 - movs r1, 0xC1 - lsls r1, 2 - adds r5, r0, r1 - ldrh r4, [r5] - cmp r4, 0 - bne _080EE9A0 - movs r0, 0x6F - bl PlaySE - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080EE9B4 - .align 2, 0 -_080EE99C: .4byte 0x02000000 -_080EE9A0: - ldr r0, _080EE9BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080EE9B4 - bl sub_80F5BDC - bl sub_805469C -_080EE9B4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EE9BC: .4byte gPaletteFade - thumb_func_end sub_80EE96C - - thumb_func_start sub_80EE9C0 -sub_80EE9C0: @ 80EE9C0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - bl sub_80F1E84 - ldr r1, _080EE9FC @ =0x02000000 - ldr r2, _080EEA00 @ =0x00006e14 - adds r0, r1, r2 - movs r2, 0 - strb r4, [r0] - ldr r3, _080EEA04 @ =0x00006e15 - adds r0, r1, r3 - strb r5, [r0] - adds r3, 0x1 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EEA08 @ =0x00006e17 - adds r1, r0 - strb r6, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EE9FC: .4byte 0x02000000 -_080EEA00: .4byte 0x00006e14 -_080EEA04: .4byte 0x00006e15 -_080EEA08: .4byte 0x00006e17 - thumb_func_end sub_80EE9C0 - - thumb_func_start sub_80EEA0C -sub_80EEA0C: @ 80EEA0C - push {r4,lr} - ldr r1, _080EEA28 @ =0x02000000 - ldr r2, _080EEA2C @ =0x00006e16 - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x8 - bls _080EEA1E - b _080EEBFA -_080EEA1E: - lsls r0, 2 - ldr r1, _080EEA30 @ =_080EEA34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEA28: .4byte 0x02000000 -_080EEA2C: .4byte 0x00006e16 -_080EEA30: .4byte _080EEA34 - .align 2, 0 -_080EEA34: - .4byte _080EEA58 - .4byte _080EEA98 - .4byte _080EEAAE - .4byte _080EEAD4 - .4byte _080EEB3E - .4byte _080EEB68 - .4byte _080EEB88 - .4byte _080EEBAC - .4byte _080EEBE4 -_080EEA58: - bl sub_80F1F10 - lsls r0, 24 - cmp r0, 0 - beq _080EEA64 - b _080EEC08 -_080EEA64: - ldr r1, _080EEA7C @ =0x02000000 - ldr r4, _080EEA80 @ =0x00006e17 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0xC - beq _080EEA88 - ldr r0, _080EEA84 @ =0x00006e16 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA7C: .4byte 0x02000000 -_080EEA80: .4byte 0x00006e17 -_080EEA84: .4byte 0x00006e16 -_080EEA88: - ldr r2, _080EEA94 @ =0x00006e16 - adds r1, r2 - movs r0, 0x3 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEA94: .4byte 0x00006e16 -_080EEA98: - ldr r4, _080EEAC8 @ =0x02000000 - ldr r1, _080EEACC @ =0x00006e17 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2C80 - ldr r2, _080EEAD0 @ =0x00006e16 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEAAE: - ldr r4, _080EEAC8 @ =0x02000000 - ldr r1, _080EEACC @ =0x00006e17 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - beq _080EEAC2 - b _080EEC08 -_080EEAC2: - ldr r2, _080EEAD0 @ =0x00006e16 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEAC8: .4byte 0x02000000 -_080EEACC: .4byte 0x00006e17 -_080EEAD0: .4byte 0x00006e16 -_080EEAD4: - adds r2, r3, 0 - ldr r4, _080EEAF8 @ =0x00006e15 - adds r0, r2, r4 - ldrb r1, [r0] - subs r4, 0x68 - adds r0, r2, r4 - strb r1, [r0] - ldr r1, _080EEAFC @ =0x00006e14 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080EEB14 - cmp r0, 0x1 - bgt _080EEB00 - cmp r0, 0 - beq _080EEB06 - b _080EEB28 - .align 2, 0 -_080EEAF8: .4byte 0x00006e15 -_080EEAFC: .4byte 0x00006e14 -_080EEB00: - cmp r0, 0x2 - beq _080EEB20 - b _080EEB28 -_080EEB06: - ldr r4, _080EEB10 @ =0x00006dae - adds r1, r2, r4 - movs r0, 0x5 - b _080EEB26 - .align 2, 0 -_080EEB10: .4byte 0x00006dae -_080EEB14: - ldr r0, _080EEB1C @ =0x00006dae - adds r1, r2, r0 - movs r0, 0x3 - b _080EEB26 - .align 2, 0 -_080EEB1C: .4byte 0x00006dae -_080EEB20: - ldr r2, _080EEB58 @ =0x00006dae - adds r1, r3, r2 - movs r0, 0x6 -_080EEB26: - strb r0, [r1] -_080EEB28: - ldr r4, _080EEB5C @ =0x02000000 - ldr r1, _080EEB60 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1B8C - ldr r2, _080EEB64 @ =0x00006e16 - adds r4, r2 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080EEB3E: - ldr r4, _080EEB5C @ =0x02000000 - ldr r1, _080EEB60 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r2, _080EEB64 @ =0x00006e16 - adds r1, r4, r2 - b _080EEB76 - .align 2, 0 -_080EEB58: .4byte 0x00006dae -_080EEB5C: .4byte 0x02000000 -_080EEB60: .4byte 0x00006e14 -_080EEB64: .4byte 0x00006e16 -_080EEB68: - bl sub_8055870 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEB80 @ =0x02000000 - ldr r4, _080EEB84 @ =0x00006e16 - adds r1, r4 -_080EEB76: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080EEC08 - .align 2, 0 -_080EEB80: .4byte 0x02000000 -_080EEB84: .4byte 0x00006e16 -_080EEB88: - bl sub_80F1DF0 - ldr r4, _080EEBA0 @ =0x02000000 - ldr r1, _080EEBA4 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_80EF490 - ldr r2, _080EEBA8 @ =0x00006e16 - adds r4, r2 - b _080EEBCC - .align 2, 0 -_080EEBA0: .4byte 0x02000000 -_080EEBA4: .4byte 0x00006e14 -_080EEBA8: .4byte 0x00006e16 -_080EEBAC: - bl sub_80F1E50 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r4, _080EEBD4 @ =0x02000000 - ldr r1, _080EEBD8 @ =0x00006e14 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080EEBDC @ =0x00006dad - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80EF428 - ldr r0, _080EEBE0 @ =0x00006e16 - adds r4, r0 -_080EEBCC: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080EEC08 - .align 2, 0 -_080EEBD4: .4byte 0x02000000 -_080EEBD8: .4byte 0x00006e14 -_080EEBDC: .4byte 0x00006dad -_080EEBE0: .4byte 0x00006e16 -_080EEBE4: - bl sub_80EF4F8 - lsls r0, 24 - cmp r0, 0 - bne _080EEC08 - ldr r1, _080EEC00 @ =0x02000000 - ldr r2, _080EEC04 @ =0x00006e16 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080EEBFA: - movs r0, 0 - b _080EEC0A - .align 2, 0 -_080EEC00: .4byte 0x02000000 -_080EEC04: .4byte 0x00006e16 -_080EEC08: - movs r0, 0x1 -_080EEC0A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEA0C - - thumb_func_start sub_80EEC10 -sub_80EEC10: @ 80EEC10 - push {r4,lr} - ldr r0, _080EEC48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080EEC50 - ldr r1, _080EEC4C @ =0x02006dad - adds r3, r1, 0x1 - adds r2, r1, 0x5 -_080EEC24: - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EEC36 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r1] -_080EEC36: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC24 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC48: .4byte gMain -_080EEC4C: .4byte 0x02006dad -_080EEC50: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EEC88 - ldr r1, _080EEC84 @ =0x02006dad - movs r4, 0 - movs r2, 0x1 - ldrsb r2, [r1, r2] - adds r3, r1, 0x5 -_080EEC62: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, r2 - blt _080EEC72 - strb r4, [r1] -_080EEC72: - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEC62 - movs r0, 0x1 - b _080EEC8A - .align 2, 0 -_080EEC84: .4byte 0x02006dad -_080EEC88: - movs r0, 0 -_080EEC8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC10 - - thumb_func_start sub_80EEC90 -sub_80EEC90: @ 80EEC90 - push {r4,lr} - ldr r0, _080EECC0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080EECD0 - ldr r2, _080EECC4 @ =0x02000000 - ldr r0, _080EECC8 @ =0x00006dad - adds r1, r2, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080EECF8 - ldr r3, _080EECCC @ =0x00006dae - adds r0, r2, r3 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r1] - b _080EECF8 - .align 2, 0 -_080EECC0: .4byte gMain -_080EECC4: .4byte 0x02000000 -_080EECC8: .4byte 0x00006dad -_080EECCC: .4byte 0x00006dae -_080EECD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080EED04 - ldr r0, _080EECFC @ =0x02000000 - ldr r4, _080EED00 @ =0x00006dad - adds r2, r0, r4 - ldrb r1, [r2] - adds r1, 0x1 - strb r1, [r2] - adds r4, 0x1 - adds r0, r4 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080EECF8 - strb r3, [r2] -_080EECF8: - movs r0, 0x1 - b _080EED06 - .align 2, 0 -_080EECFC: .4byte 0x02000000 -_080EED00: .4byte 0x00006dad -_080EED04: - movs r0, 0 -_080EED06: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEC90 - - thumb_func_start sub_80EED0C -sub_80EED0C: @ 80EED0C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED0C - - thumb_func_start sub_80EED1C -sub_80EED1C: @ 80EED1C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x92 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_80EED1C - - thumb_func_start sub_80EED2C -sub_80EED2C: @ 80EED2C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080EED98 - lsls r0, 2 - ldr r1, _080EED40 @ =_080EED44 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EED40: .4byte _080EED44 - .align 2, 0 -_080EED44: - .4byte _080EED5C - .4byte _080EED66 - .4byte _080EED7E - .4byte _080EED74 - .4byte _080EED74 - .4byte _080EED8C -_080EED5C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED66: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED70 @ =0x00001741 - b _080EED94 - .align 2, 0 -_080EED70: .4byte 0x00001741 -_080EED74: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - b _080EED94 -_080EED7E: - movs r1, 0x80 - lsls r1, 19 - ldr r2, _080EED88 @ =0x00007b40 - b _080EED94 - .align 2, 0 -_080EED88: .4byte 0x00007b40 -_080EED8C: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 -_080EED94: - adds r0, r2, 0 - strh r0, [r1] -_080EED98: - pop {r0} - bx r0 - thumb_func_end sub_80EED2C - - thumb_func_start sub_80EED9C -sub_80EED9C: @ 80EED9C - push {lr} - ldr r2, _080EEDB8 @ =gUnknown_03000744 - ldr r0, _080EEDBC @ =0x02000000 - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - ldr r1, _080EEDC0 @ =sub_80EEDC4 - str r1, [r0] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080EEDB8: .4byte gUnknown_03000744 -_080EEDBC: .4byte 0x02000000 -_080EEDC0: .4byte sub_80EEDC4 - thumb_func_end sub_80EED9C - - thumb_func_start sub_80EEDC4 -sub_80EEDC4: @ 80EEDC4 - push {lr} - bl sub_8055870 - cmp r0, 0x1 - beq _080EEDDC - ldr r0, _080EEDE0 @ =0x02000000 - movs r1, 0xC0 - lsls r1, 2 - adds r0, r1 - ldr r1, _080EEDE4 @ =gUnknown_03000744 - ldr r1, [r1] - str r1, [r0] -_080EEDDC: - pop {r0} - bx r0 - .align 2, 0 -_080EEDE0: .4byte 0x02000000 -_080EEDE4: .4byte gUnknown_03000744 - thumb_func_end sub_80EEDC4 - - thumb_func_start sub_80EEDE8 -sub_80EEDE8: @ 80EEDE8 - ldr r0, _080EEE04 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE04: .4byte REG_BG0HOFS - thumb_func_end sub_80EEDE8 - - thumb_func_start sub_80EEE08 -sub_80EEE08: @ 80EEE08 - ldr r0, _080EEE18 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EEE1C @ =0x0000d160 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080EEE18: .4byte gUnknown_083DFEC4 -_080EEE1C: .4byte 0x0000d160 - thumb_func_end sub_80EEE08 - - thumb_func_start sub_80EEE20 -sub_80EEE20: @ 80EEE20 - push {lr} - ldr r0, _080EEE48 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EEE4C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EEE50 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EEE42 -_080EEE38: - bl sub_80EEE54 - lsls r0, 24 - cmp r0, 0 - bne _080EEE38 -_080EEE42: - pop {r0} - bx r0 - .align 2, 0 -_080EEE48: .4byte gUnknown_083DFEC4 -_080EEE4C: .4byte 0x0000d160 -_080EEE50: .4byte 0x00006dac - thumb_func_end sub_80EEE20 - - thumb_func_start sub_80EEE54 -sub_80EEE54: @ 80EEE54 - push {lr} - ldr r1, _080EEE70 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080EEE74 @ =0x0000d160 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _080EEF02 - lsls r0, 2 - ldr r1, _080EEE78 @ =_080EEE7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEE70: .4byte gUnknown_083DFEC4 -_080EEE74: .4byte 0x0000d160 -_080EEE78: .4byte _080EEE7C - .align 2, 0 -_080EEE7C: - .4byte _080EEE90 - .4byte _080EEEA4 - .4byte _080EEEB8 - .4byte _080EEEC8 - .4byte _080EEEDC -_080EEE90: - ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx - ldr r1, _080EEEA0 @ =0x0600c000 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx -_080EEEA0: .4byte 0x0600c000 -_080EEEA4: - ldr r0, _080EEEB0 @ =gUnknown_08E99FB0 - ldr r1, _080EEEB4 @ =0x0600d800 - bl LZ77UnCompVram - b _080EEF18 - .align 2, 0 -_080EEEB0: .4byte gUnknown_08E99FB0 -_080EEEB4: .4byte 0x0600d800 -_080EEEB8: - ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - b _080EEF18 - .align 2, 0 -_080EEEC4: .4byte gPokenavHoennMap1_Pal -_080EEEC8: - movs r0, 0 - bl sub_80EF58C - movs r0, 0x1 - bl sub_80EF58C - movs r0, 0x2 - bl sub_80EF58C - b _080EEF18 -_080EEEDC: - ldr r2, [r2] - movs r3, 0xC3 - lsls r3, 2 - adds r0, r2, r3 - movs r1, 0 - strh r1, [r0] - ldr r0, _080EEF08 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080EEF0C @ =REG_BG1CNT - ldr r3, _080EEF10 @ =0x00001b0c - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080EEF14 @ =0x0000d160 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EEF02: - movs r0, 0 - b _080EEF28 - .align 2, 0 -_080EEF08: .4byte REG_BG1HOFS -_080EEF0C: .4byte REG_BG1CNT -_080EEF10: .4byte 0x00001b0c -_080EEF14: .4byte 0x0000d160 -_080EEF18: - ldr r0, _080EEF2C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EEF30 @ =0x0000d160 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080EEF28: - pop {r1} - bx r1 - .align 2, 0 -_080EEF2C: .4byte gUnknown_083DFEC4 -_080EEF30: .4byte 0x0000d160 - thumb_func_end sub_80EEE54 - - thumb_func_start sub_80EEF34 -sub_80EEF34: @ 80EEF34 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF50 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0x20 - bne _080EEF54 - movs r0, 0 - b _080EEF6E - .align 2, 0 -_080EEF50: .4byte gUnknown_083DFEC4 -_080EEF54: - adds r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - ble _080EEF66 - movs r0, 0x20 - strh r0, [r2] - movs r3, 0 -_080EEF66: - ldr r1, _080EEF74 @ =REG_BG1VOFS - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEF6E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEF74: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF34 - - thumb_func_start sub_80EEF78 -sub_80EEF78: @ 80EEF78 - push {r4,lr} - movs r3, 0x1 - ldr r0, _080EEF94 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r2, r0, r1 - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - bne _080EEF98 - movs r0, 0 - b _080EEFB0 - .align 2, 0 -_080EEF94: .4byte gUnknown_083DFEC4 -_080EEF98: - subs r0, r1, 0x2 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bgt _080EEFA8 - movs r0, 0 - strh r0, [r2] - movs r3, 0 -_080EEFA8: - ldr r1, _080EEFB8 @ =REG_BG1VOFS - ldrh r0, [r2] - strh r0, [r1] - adds r0, r3, 0 -_080EEFB0: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EEFB8: .4byte REG_BG1VOFS - thumb_func_end sub_80EEF78 - - thumb_func_start sub_80EEFBC -sub_80EEFBC: @ 80EEFBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EEFF4 @ =0x0600d800 - ldr r3, _080EEFF8 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x11 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0x16 - bl sub_809D104 - cmp r4, 0xB - bls _080EEFE8 - b _080EF234 -_080EEFE8: - lsls r0, r4, 2 - ldr r1, _080EEFFC @ =_080EF000 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EEFF4: .4byte 0x0600d800 -_080EEFF8: .4byte gUnknown_08E9A100 -_080EEFFC: .4byte _080EF000 - .align 2, 0 -_080EF000: - .4byte _080EF030 - .4byte _080EF234 - .4byte _080EF08C - .4byte _080EF100 - .4byte _080EF13C - .4byte _080EF1D4 - .4byte _080EF234 - .4byte _080EF178 - .4byte _080EF190 - .4byte _080EF1D4 - .4byte _080EF218 - .4byte _080EF06C -_080EF030: - ldr r6, _080EF064 @ =0x0600d800 - ldr r0, _080EF068 @ =gUnknown_08E9A100 - mov r8, r0 - movs r0, 0x11 - str r0, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r5, 0x2 - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r4, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r5, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF064: .4byte 0x0600d800 -_080EF068: .4byte gUnknown_08E9A100 -_080EF06C: - ldr r0, _080EF084 @ =0x0600d800 - ldr r3, _080EF088 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - b _080EF0EE - .align 2, 0 -_080EF084: .4byte 0x0600d800 -_080EF088: .4byte gUnknown_08E9A100 -_080EF08C: - ldr r0, _080EF0C8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF0CC @ =0x00006dac - adds r0, r1 - ldrb r7, [r0] - cmp r7, 0 - bne _080EF0D8 - ldr r5, _080EF0D0 @ =0x0600d800 - ldr r6, _080EF0D4 @ =gUnknown_08E9A100 - movs r0, 0xA - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - str r7, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF0C8: .4byte gUnknown_083DFEC4 -_080EF0CC: .4byte 0x00006dac -_080EF0D0: .4byte 0x0600d800 -_080EF0D4: .4byte gUnknown_08E9A100 -_080EF0D8: - ldr r0, _080EF0F8 @ =0x0600d800 - ldr r3, _080EF0FC @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0xA -_080EF0EE: - movs r2, 0x16 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF0F8: .4byte 0x0600d800 -_080EF0FC: .4byte gUnknown_08E9A100 -_080EF100: - ldr r6, _080EF134 @ =0x0600d800 - ldr r0, _080EF138 @ =gUnknown_08E9A100 - mov r8, r0 - movs r5, 0 - str r5, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0xA - b _080EF204 - .align 2, 0 -_080EF134: .4byte 0x0600d800 -_080EF138: .4byte gUnknown_08E9A100 -_080EF13C: - ldr r5, _080EF170 @ =0x0600d800 - ldr r6, _080EF174 @ =gUnknown_08E9A100 - movs r0, 0x14 - str r0, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - b _080EF1C2 - .align 2, 0 -_080EF170: .4byte 0x0600d800 -_080EF174: .4byte gUnknown_08E9A100 -_080EF178: - ldr r5, _080EF188 @ =0x0600d800 - ldr r6, _080EF18C @ =gUnknown_08E9A100 - movs r1, 0xA - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r1, [sp, 0x8] - b _080EF1A0 - .align 2, 0 -_080EF188: .4byte 0x0600d800 -_080EF18C: .4byte gUnknown_08E9A100 -_080EF190: - ldr r5, _080EF1CC @ =0x0600d800 - ldr r6, _080EF1D0 @ =gUnknown_08E9A100 - movs r0, 0x14 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] -_080EF1A0: - movs r4, 0x2 - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x7 -_080EF1C2: - movs r2, 0x16 - adds r3, r6, 0 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF1CC: .4byte 0x0600d800 -_080EF1D0: .4byte gUnknown_08E9A100 -_080EF1D4: - ldr r6, _080EF210 @ =0x0600d800 - ldr r1, _080EF214 @ =gUnknown_08E9A100 - mov r8, r1 - movs r5, 0 - str r5, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - str r5, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0x7 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x8 -_080EF204: - movs r2, 0x16 - mov r3, r8 - bl sub_809D104 - b _080EF234 - .align 2, 0 -_080EF210: .4byte 0x0600d800 -_080EF214: .4byte gUnknown_08E9A100 -_080EF218: - ldr r0, _080EF240 @ =0x0600d800 - ldr r3, _080EF244 @ =gUnknown_08E9A100 - movs r1, 0 - str r1, [sp] - movs r1, 0x6 - str r1, [sp, 0x4] - movs r1, 0x7 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x8 - movs r2, 0x16 - bl sub_809D104 -_080EF234: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EF240: .4byte 0x0600d800 -_080EF244: .4byte gUnknown_08E9A100 - thumb_func_end sub_80EEFBC - - thumb_func_start sub_80EF248 -sub_80EF248: @ 80EF248 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080EF278 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF27C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF280 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF270 -_080EF264: - adds r0, r4, 0 - bl sub_80EF284 - lsls r0, 24 - cmp r0, 0 - bne _080EF264 -_080EF270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF278: .4byte gUnknown_083DFEC4 -_080EF27C: .4byte 0x0000d160 -_080EF280: .4byte 0x00006dac - thumb_func_end sub_80EF248 - - thumb_func_start sub_80EF284 -sub_80EF284: @ 80EF284 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080EF2A8 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r3, _080EF2AC @ =0x0000d160 - adds r0, r3 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0xB - bls _080EF29C - b _080EF3F6 -_080EF29C: - lsls r0, 2 - ldr r1, _080EF2B0 @ =_080EF2B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF2A8: .4byte gUnknown_083DFEC4 -_080EF2AC: .4byte 0x0000d160 -_080EF2B0: .4byte _080EF2B4 - .align 2, 0 -_080EF2B4: - .4byte _080EF2E4 - .4byte _080EF2EA - .4byte _080EF2F8 - .4byte _080EF304 - .4byte _080EF310 - .4byte _080EF330 - .4byte _080EF344 - .4byte _080EF368 - .4byte _080EF37C - .4byte _080EF390 - .4byte _080EF3A4 - .4byte _080EF3CC -_080EF2E4: - bl sub_80EEDE8 - b _080EF40C -_080EF2EA: - ldr r0, _080EF2F4 @ =gWindowConfig_81E7224 - bl SetUpWindowConfig - b _080EF40C - .align 2, 0 -_080EF2F4: .4byte gWindowConfig_81E7224 -_080EF2F8: - ldr r0, _080EF300 @ =gWindowConfig_81E7224 - bl MultistepInitMenuWindowBegin - b _080EF40C - .align 2, 0 -_080EF300: .4byte gWindowConfig_81E7224 -_080EF304: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080EF30E - b _080EF40C -_080EF30E: - b _080EF41A -_080EF310: - ldr r1, _080EF320 @ =gUnknown_083DFEEC - ldr r2, _080EF324 @ =0x06005000 - ldr r0, _080EF328 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF32C @ =0x80000050 - b _080EF350 - .align 2, 0 -_080EF320: .4byte gUnknown_083DFEEC -_080EF324: .4byte 0x06005000 -_080EF328: .4byte 0x040000d4 -_080EF32C: .4byte 0x80000050 -_080EF330: - ldr r0, _080EF33C @ =gUnknown_083DFF8C - ldr r1, _080EF340 @ =0x0600f800 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF33C: .4byte gUnknown_083DFF8C -_080EF340: .4byte 0x0600f800 -_080EF344: - ldr r1, _080EF358 @ =gUnknown_083E005C - ldr r2, _080EF35C @ =0x06008000 - ldr r0, _080EF360 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080EF364 @ =0x80000010 -_080EF350: - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080EF40C - .align 2, 0 -_080EF358: .4byte gUnknown_083E005C -_080EF35C: .4byte 0x06008000 -_080EF360: .4byte 0x040000d4 -_080EF364: .4byte 0x80000010 -_080EF368: - ldr r0, _080EF374 @ =gUnknown_083E007C - ldr r1, _080EF378 @ =0x0600e000 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF374: .4byte gUnknown_083E007C -_080EF378: .4byte 0x0600e000 -_080EF37C: - ldr r0, _080EF388 @ =gPokenavOutlineTilemap - ldr r1, _080EF38C @ =0x0600e800 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF388: .4byte gPokenavOutlineTilemap -_080EF38C: .4byte 0x0600e800 -_080EF390: - ldr r0, _080EF39C @ =gPokenavOutlineTiles - ldr r1, _080EF3A0 @ =0x06008020 - bl LZ77UnCompVram - b _080EF40C - .align 2, 0 -_080EF39C: .4byte gPokenavOutlineTiles -_080EF3A0: .4byte 0x06008020 -_080EF3A4: - adds r0, r2, 0 - bl sub_80EF54C - ldr r0, _080EF3C4 @ =gUnknown_083DFECC - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080EF3C8 @ =gPokenavOutlinePalette - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - bl sub_80EF7D4 - b _080EF40C - .align 2, 0 -_080EF3C4: .4byte gUnknown_083DFECC -_080EF3C8: .4byte gPokenavOutlinePalette -_080EF3CC: - ldr r1, _080EF3FC @ =REG_BG0CNT - ldr r2, _080EF400 @ =0x00001f01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080EF404 @ =0x00001d0a - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x42 - movs r0, 0 - strh r0, [r1] - ldr r1, [r3] - ldr r3, _080EF408 @ =0x0000d160 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF3F6: - movs r0, 0 - b _080EF41C - .align 2, 0 -_080EF3FC: .4byte REG_BG0CNT -_080EF400: .4byte 0x00001f01 -_080EF404: .4byte 0x00001d0a -_080EF408: .4byte 0x0000d160 -_080EF40C: - ldr r0, _080EF420 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EF424 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF41A: - movs r0, 0x1 -_080EF41C: - pop {r1} - bx r1 - .align 2, 0 -_080EF420: .4byte gUnknown_083DFEC4 -_080EF424: .4byte 0x0000d160 - thumb_func_end sub_80EF284 - - thumb_func_start sub_80EF428 -sub_80EF428: @ 80EF428 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r2, r1, 24 - movs r1, 0 - cmp r0, 0x1 - beq _080EF454 - cmp r0, 0x1 - bgt _080EF444 - cmp r0, 0 - beq _080EF44A - b _080EF464 -_080EF444: - cmp r3, 0x2 - beq _080EF45C - b _080EF464 -_080EF44A: - ldr r1, _080EF450 @ =gUnknown_083E31B0 - b _080EF45E - .align 2, 0 -_080EF450: .4byte gUnknown_083E31B0 -_080EF454: - ldr r1, _080EF458 @ =gUnknown_083E31CC - b _080EF45E - .align 2, 0 -_080EF458: .4byte gUnknown_083E31CC -_080EF45C: - ldr r1, _080EF488 @ =gUnknown_083E31D8 -_080EF45E: - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] -_080EF464: - ldr r0, _080EF48C @ =gUnknown_083DFEC8 - ldr r4, [r0] - movs r0, 0x80 - lsls r0, 4 - adds r4, r0 - adds r0, r4, 0 - movs r2, 0xC0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x11 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF488: .4byte gUnknown_083E31D8 -_080EF48C: .4byte gUnknown_083DFEC8 - thumb_func_end sub_80EF428 - - thumb_func_start sub_80EF490 -sub_80EF490: @ 80EF490 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF49C - movs r2, 0x1 -_080EF49C: - ldr r0, _080EF4C4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r2, r1, 1 - ldr r4, _080EF4C8 @ =0x0000ce4e - adds r0, r3, r4 - strh r2, [r0] - ldr r2, _080EF4CC @ =0x0000ce4c - adds r0, r3, r2 - ldrh r2, [r0] - lsls r1, 17 - lsrs r0, r1, 16 - cmp r2, r0 - bcs _080EF4D0 - adds r4, 0x2 - adds r1, r3, r4 - movs r0, 0x2 - b _080EF4EA - .align 2, 0 -_080EF4C4: .4byte gUnknown_083DFEC4 -_080EF4C8: .4byte 0x0000ce4e -_080EF4CC: .4byte 0x0000ce4c -_080EF4D0: - cmp r2, r0 - bls _080EF4E4 - ldr r0, _080EF4DC @ =0x0000ce50 - adds r1, r3, r0 - ldr r0, _080EF4E0 @ =0x0000fffe - b _080EF4EA - .align 2, 0 -_080EF4DC: .4byte 0x0000ce50 -_080EF4E0: .4byte 0x0000fffe -_080EF4E4: - ldr r2, _080EF4F4 @ =0x0000ce50 - adds r1, r3, r2 - movs r0, 0 -_080EF4EA: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF4F4: .4byte 0x0000ce50 - thumb_func_end sub_80EF490 - - thumb_func_start sub_80EF4F8 -sub_80EF4F8: @ 80EF4F8 - push {r4,lr} - ldr r0, _080EF530 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EF534 @ =0x0000ce4c - adds r2, r1, r0 - ldr r3, _080EF538 @ =0x0000ce4e - adds r0, r1, r3 - ldrh r3, [r2] - ldrh r0, [r0] - cmp r3, r0 - beq _080EF544 - ldr r4, _080EF53C @ =0x0000ce50 - adds r0, r1, r4 - ldrh r0, [r0] - adds r0, r3, r0 - strh r0, [r2] - ldr r3, _080EF540 @ =0x0000ce52 - adds r0, r1, r3 - ldrh r1, [r2] - lsls r1, 1 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r0, 0x1 - b _080EF546 - .align 2, 0 -_080EF530: .4byte gUnknown_083DFEC4 -_080EF534: .4byte 0x0000ce4c -_080EF538: .4byte 0x0000ce4e -_080EF53C: .4byte 0x0000ce50 -_080EF540: .4byte 0x0000ce52 -_080EF544: - movs r0, 0 -_080EF546: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EF4F8 - - thumb_func_start sub_80EF54C -sub_80EF54C: @ 80EF54C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _080EF558 - movs r2, 0x1 -_080EF558: - ldr r0, _080EF580 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 1 - ldr r3, _080EF584 @ =0x0000ce4c - adds r2, r0, r3 - strh r1, [r2] - ldrh r1, [r2] - lsls r1, 1 - ldr r2, _080EF588 @ =0x0000ce52 - adds r1, r2 - adds r0, r1 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080EF580: .4byte gUnknown_083DFEC4 -_080EF584: .4byte 0x0000ce4c -_080EF588: .4byte 0x0000ce52 - thumb_func_end sub_80EF54C - - thumb_func_start sub_80EF58C -sub_80EF58C: @ 80EF58C - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080EF5D0 - cmp r0, 0x1 - bgt _080EF5A4 - cmp r0, 0 - beq _080EF5AA - b _080EF610 -_080EF5A4: - cmp r1, 0x2 - beq _080EF5F8 - b _080EF610 -_080EF5AA: - movs r1, 0 - ldr r0, _080EF5C8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080EF5CC @ =0x0000ce52 - adds r2, r0, r3 - movs r3, 0 -_080EF5B6: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3D - bls _080EF5B6 - b _080EF610 - .align 2, 0 -_080EF5C8: .4byte gUnknown_083DFEC4 -_080EF5CC: .4byte 0x0000ce52 -_080EF5D0: - ldr r0, _080EF5EC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF5F0 @ =0x0000ce52 - adds r2, r0, r1 - ldr r1, _080EF5F4 @ =gUnknown_083E003C - adds r0, r1, 0x2 - adds r1, 0x6 - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 - b _080EF610 - .align 2, 0 -_080EF5EC: .4byte gUnknown_083DFEC4 -_080EF5F0: .4byte 0x0000ce52 -_080EF5F4: .4byte gUnknown_083E003C -_080EF5F8: - ldr r0, _080EF618 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080EF61C @ =0x0000ce8e - adds r2, r0, r3 - ldr r1, _080EF620 @ =gUnknown_083E003C - adds r0, r1, 0x6 - adds r1, 0xE - str r2, [sp] - movs r2, 0x10 - movs r3, 0x2 - bl sub_80EF624 -_080EF610: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080EF618: .4byte gUnknown_083DFEC4 -_080EF61C: .4byte 0x0000ce8e -_080EF620: .4byte gUnknown_083E003C - thumb_func_end sub_80EF58C - - thumb_func_start sub_80EF624 -sub_80EF624: @ 80EF624 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, [sp, 0x58] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - lsls r0, r3, 16 - ldr r1, [sp, 0x10] - cmp r1, r3 - bcs _080EF72E - subs r2, 0x1 - str r2, [sp, 0x20] - str r0, [sp, 0x2C] -_080EF654: - ldr r2, [sp] - ldrh r1, [r2] - movs r0, 0x1F - ands r0, r1 - lsls r7, r0, 8 - lsls r1, 16 - lsrs r0, r1, 21 - movs r2, 0x1F - ands r0, r2 - lsls r6, r0, 8 - lsrs r1, 26 - ands r1, r2 - lsls r5, r1, 8 - ldr r0, [sp, 0x4] - ldrh r1, [r0] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0x14] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r2 - lsls r0, 8 - str r0, [sp, 0x18] - lsrs r1, 26 - ands r1, r2 - lsls r1, 8 - str r1, [sp, 0x1C] - ldr r1, [sp, 0x14] - subs r0, r1, r7 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r10, r0 - ldr r2, [sp, 0x18] - subs r0, r2, r6 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r9, r0 - ldr r1, [sp, 0x1C] - subs r0, r1, r5 - ldr r1, [sp, 0x8] - bl __divsi3 - mov r8, r0 - adds r3, r4, 0 - movs r4, 0 - ldr r2, [sp] - adds r2, 0x2 - str r2, [sp, 0x30] - ldr r0, [sp, 0x4] - adds r0, 0x2 - str r0, [sp, 0x34] - adds r1, r3, 0x2 - str r1, [sp, 0x24] - ldr r2, [sp, 0x10] - adds r2, 0x1 - str r2, [sp, 0x28] - ldr r0, [sp, 0x20] - cmp r4, r0 - bge _080EF700 - ldr r1, [sp, 0xC] - lsls r1, 1 - mov r12, r1 -_080EF6D6: - lsls r0, r7, 8 - lsrs r2, r0, 16 - lsls r0, r6, 8 - lsrs r1, r0, 16 - lsls r0, r5, 8 - lsrs r0, 16 - lsls r0, 10 - lsls r1, 5 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - add r3, r12 - add r7, r10 - add r6, r9 - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r2, [sp, 0x20] - cmp r4, r2 - blt _080EF6D6 -_080EF700: - ldr r4, [sp, 0x14] - lsrs r2, r4, 8 - ldr r1, [sp, 0x1C] - lsls r0, r1, 2 - ldr r4, [sp, 0x18] - lsrs r1, r4, 3 - orrs r0, r1 - orrs r2, r0 - strh r2, [r3] - ldr r0, [sp, 0x30] - str r0, [sp] - ldr r1, [sp, 0x34] - str r1, [sp, 0x4] - ldr r4, [sp, 0x24] - ldr r2, [sp, 0x28] - lsls r0, r2, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - ldr r1, [sp, 0x2C] - lsrs r0, r1, 16 - ldr r2, [sp, 0x10] - cmp r2, r0 - bcc _080EF654 -_080EF72E: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EF624 - - thumb_func_start sub_80EF740 -sub_80EF740: @ 80EF740 - push {lr} - ldr r0, _080EF770 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080EF774 @ =0x00006da0 - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r2] - cmp r0, 0 - beq _080EF762 - ldr r2, _080EF778 @ =0x00006da2 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF762: - ldr r0, _080EF77C @ =REG_BG3HOFS - ldr r2, _080EF778 @ =0x00006da2 - adds r1, r3, r2 - ldrh r1, [r1] - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080EF770: .4byte gUnknown_083DFEC4 -_080EF774: .4byte 0x00006da0 -_080EF778: .4byte 0x00006da2 -_080EF77C: .4byte REG_BG3HOFS - thumb_func_end sub_80EF740 - - thumb_func_start sub_80EF780 -sub_80EF780: @ 80EF780 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080EF7B0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080EF7AA - ldr r0, _080EF7B4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080EF7B8 @ =0x00006da2 - adds r2, r3, r0 - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080EF7BC -_080EF7AA: - bl sub_80EF740 - b _080EF7C8 - .align 2, 0 -_080EF7B0: .4byte gTasks -_080EF7B4: .4byte gUnknown_083DFEC4 -_080EF7B8: .4byte 0x00006da2 -_080EF7BC: - strh r1, [r2] - ldr r2, _080EF7CC @ =0x00006da0 - adds r0, r3, r2 - strh r1, [r0] - ldr r0, _080EF7D0 @ =REG_BG3HOFS - strh r1, [r0] -_080EF7C8: - pop {r0} - bx r0 - .align 2, 0 -_080EF7CC: .4byte 0x00006da0 -_080EF7D0: .4byte REG_BG3HOFS - thumb_func_end sub_80EF780 - - thumb_func_start sub_80EF7D4 -sub_80EF7D4: @ 80EF7D4 - push {r4,lr} - ldr r0, _080EF800 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080EF804 @ =0x00006da2 - adds r0, r4, r1 - movs r1, 0 - strh r1, [r0] - ldr r2, _080EF808 @ =0x00006da0 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _080EF80C @ =sub_80EF780 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080EF810 @ =0x00006da4 - adds r4, r1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EF800: .4byte gUnknown_083DFEC4 -_080EF804: .4byte 0x00006da2 -_080EF808: .4byte 0x00006da0 -_080EF80C: .4byte sub_80EF780 -_080EF810: .4byte 0x00006da4 - thumb_func_end sub_80EF7D4 - - thumb_func_start sub_80EF814 -sub_80EF814: @ 80EF814 - push {lr} - ldr r0, _080EF834 @ =sub_80EF780 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080EF830 - ldr r0, _080EF838 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF83C @ =0x00006da4 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask -_080EF830: - pop {r0} - bx r0 - .align 2, 0 -_080EF834: .4byte sub_80EF780 -_080EF838: .4byte gUnknown_083DFEC4 -_080EF83C: .4byte 0x00006da4 - thumb_func_end sub_80EF814 - - thumb_func_start sub_80EF840 -sub_80EF840: @ 80EF840 - push {lr} - ldr r0, _080EF868 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF86C @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EF870 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF862 -_080EF858: - bl sub_80EF874 - lsls r0, 24 - cmp r0, 0 - bne _080EF858 -_080EF862: - pop {r0} - bx r0 - .align 2, 0 -_080EF868: .4byte gUnknown_083DFEC4 -_080EF86C: .4byte 0x0000d160 -_080EF870: .4byte 0x00006dac - thumb_func_end sub_80EF840 - - thumb_func_start sub_80EF874 -sub_80EF874: @ 80EF874 - push {lr} - ldr r0, _080EF890 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EF894 @ =0x0000d160 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xB - bls _080EF886 - b _080EF9D8 -_080EF886: - lsls r0, 2 - ldr r1, _080EF898 @ =_080EF89C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EF890: .4byte gUnknown_083DFEC4 -_080EF894: .4byte 0x0000d160 -_080EF898: .4byte _080EF89C - .align 2, 0 -_080EF89C: - .4byte _080EF8CC - .4byte _080EF8D2 - .4byte _080EF8E0 - .4byte _080EF8EC - .4byte _080EF8F6 - .4byte _080EF8FC - .4byte _080EF920 - .4byte _080EF92C - .4byte _080EF940 - .4byte _080EF954 - .4byte _080EF960 - .4byte _080EF972 -_080EF8CC: - bl sub_80EEDE8 - b _080EF9DC -_080EF8D2: - ldr r0, _080EF8DC @ =gWindowConfig_81E7224 - bl SetUpWindowConfig - b _080EF9DC - .align 2, 0 -_080EF8DC: .4byte gWindowConfig_81E7224 -_080EF8E0: - ldr r0, _080EF8E8 @ =gWindowConfig_81E7224 - bl MultistepInitMenuWindowBegin - b _080EF9DC - .align 2, 0 -_080EF8E8: .4byte gWindowConfig_81E7224 -_080EF8EC: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _080EF9DC - b _080EF9EA -_080EF8F6: - bl MenuZeroFillScreen - b _080EF9DC -_080EF8FC: - ldr r0, _080EF914 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EF918 @ =0x00006e18 - adds r0, r2 - ldr r1, _080EF91C @ =gSaveBlock2 - ldrb r1, [r1, 0x15] - lsrs r1, 3 - movs r2, 0x1 - ands r1, r2 - bl sub_80FA904 - b _080EF9DC - .align 2, 0 -_080EF914: .4byte gUnknown_083DFEC4 -_080EF918: .4byte 0x00006e18 -_080EF91C: .4byte gSaveBlock2 -_080EF920: - bl sub_80FA940 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF92C: - ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx - ldr r1, _080EF93C @ =0x06005000 - bl LZ77UnCompVram - b _080EF9DC - .align 2, 0 -_080EF938: .4byte gPokenavHoennMapSquares_Gfx -_080EF93C: .4byte 0x06005000 -_080EF940: - ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - bl sub_80EFC3C - b _080EF9DC - .align 2, 0 -_080EF950: .4byte gPokenavHoennMapSquares_Pal -_080EF954: - bl sub_80EFC64 - lsls r0, 24 - cmp r0, 0 - beq _080EF9DC - b _080EF9EA -_080EF960: - movs r0, 0xD - movs r1, 0x3 - movs r2, 0x1D - movs r3, 0x11 - bl MenuDrawTextWindow - bl sub_80EF9F8 - b _080EF9DC -_080EF972: - ldr r0, _080EF990 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EF994 @ =0x00006e90 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF9A0 - ldr r2, _080EF998 @ =0x00007698 - adds r0, r1, r2 - movs r1, 0xA0 - strh r1, [r0] - ldr r0, _080EF99C @ =REG_BG0VOFS - strh r1, [r0] - b _080EF9B0 - .align 2, 0 -_080EF990: .4byte gUnknown_083DFEC4 -_080EF994: .4byte 0x00006e90 -_080EF998: .4byte 0x00007698 -_080EF99C: .4byte REG_BG0VOFS -_080EF9A0: - ldr r0, _080EF9C8 @ =0x00007698 - adds r1, r0 - movs r2, 0 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r0, _080EF9CC @ =REG_BG0VOFS - strh r2, [r0] -_080EF9B0: - ldr r2, _080EF9D0 @ =REG_BG0CNT - ldrh r0, [r2] - strh r0, [r2] - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080EF9D4 @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - b _080EF9DC - .align 2, 0 -_080EF9C8: .4byte 0x00007698 -_080EF9CC: .4byte REG_BG0VOFS -_080EF9D0: .4byte REG_BG0CNT -_080EF9D4: .4byte REG_BLDCNT -_080EF9D8: - movs r0, 0 - b _080EF9EC -_080EF9DC: - ldr r0, _080EF9F0 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EF9F4 @ =0x0000d160 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EF9EA: - movs r0, 0x1 -_080EF9EC: - pop {r1} - bx r1 - .align 2, 0 -_080EF9F0: .4byte gUnknown_083DFEC4 -_080EF9F4: .4byte 0x0000d160 - thumb_func_end sub_80EF874 - - thumb_func_start sub_80EF9F8 -sub_80EF9F8: @ 80EF9F8 - push {r4-r6,lr} - sub sp, 0x14 - movs r5, 0x4 - ldr r0, _080EFA18 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFA1C @ =0x00006e2e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080EFA0E - b _080EFB6A -_080EFA0E: - lsls r0, 2 - ldr r1, _080EFA20 @ =_080EFA24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFA18: .4byte gUnknown_083DFEC4 -_080EFA1C: .4byte 0x00006e2e -_080EFA20: .4byte _080EFA24 - .align 2, 0 -_080EFA24: - .4byte _080EFB6A - .4byte _080EFA38 - .4byte _080EFAC0 - .4byte _080EFB4C - .4byte _080EFA38 -_080EFA38: - ldr r0, _080EFA64 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFA68 @ =0x00006e18 - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080EFA6C @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EFA70 - bl sub_80F1A80 - b _080EFB82 - .align 2, 0 -_080EFA64: .4byte gUnknown_083DFEC4 -_080EFA68: .4byte 0x00006e18 -_080EFA6C: .4byte gLinkOpen -_080EFA70: - movs r4, 0 - b _080EFA92 -_080EFA74: - lsls r2, r5, 19 - lsrs r2, 16 - movs r0, 0x1 - str r0, [sp] - adds r0, r1, 0 - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EFA92: - cmp r4, 0x3 - bhi _080EFB6A - ldr r0, _080EFAB8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFABC @ =0x00006e2c - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl sub_811A8CC - adds r1, r0, 0 - cmp r1, 0 - bne _080EFA74 - b _080EFB6A - .align 2, 0 -_080EFAB8: .4byte gUnknown_083DFEC4 -_080EFABC: .4byte 0x00006e2c -_080EFAC0: - ldr r0, _080EFB38 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080EFB3C @ =0x00006e18 - adds r0, r4, r1 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _080EFB40 @ =0x00006e2c - adds r0, r4, r2 - ldrh r1, [r0] - adds r2, 0x3 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 2 - lsls r1, 3 - adds r0, r1 - ldr r1, _080EFB44 @ =0x0000cdcc - adds r4, r1 - adds r6, r4, r0 - ldr r0, [r6] - cmp r0, 0 - beq _080EFB6A - lsls r4, r5, 24 - lsrs r4, 24 - movs r0, 0xE - adds r1, r4, 0 - movs r2, 0xF - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - movs r0, 0x1A - adds r1, r4, 0 - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - ldr r0, _080EFB48 @ =0x0600f800 - ldr r3, [r6] - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x10 - movs r2, 0x6 - bl sub_8095C8C - adds r0, r5, 0 - adds r0, 0xB - b _080EFB66 - .align 2, 0 -_080EFB38: .4byte gUnknown_083DFEC4 -_080EFB3C: .4byte 0x00006e18 -_080EFB40: .4byte 0x00006e2c -_080EFB44: .4byte 0x0000cdcc -_080EFB48: .4byte 0x0600f800 -_080EFB4C: - ldr r0, _080EFB98 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFB9C @ =0x00006e18 - adds r0, r2 - lsls r2, r5, 19 - lsrs r2, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - adds r0, r5, 0x2 -_080EFB66: - lsls r0, 16 - lsrs r5, r0, 16 -_080EFB6A: - movs r0, 0 - cmp r0, 0 - bne _080EFB82 - cmp r5, 0xF - bhi _080EFB82 - lsls r1, r5, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile -_080EFB82: - ldr r0, _080EFB98 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFBA0 @ =0x00006e2e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080EFBA4 - bl sub_80EFD74 - b _080EFBA8 - .align 2, 0 -_080EFB98: .4byte gUnknown_083DFEC4 -_080EFB9C: .4byte 0x00006e18 -_080EFBA0: .4byte 0x00006e2e -_080EFBA4: - bl sub_80EFDA0 -_080EFBA8: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80EF9F8 - - thumb_func_start sub_80EFBB0 -sub_80EFBB0: @ 80EFBB0 - push {lr} - ldr r0, _080EFBC8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFBCC @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFBD0 - movs r0, 0x8 - bl sub_80EEFBC - b _080EFBD6 - .align 2, 0 -_080EFBC8: .4byte gUnknown_083DFEC4 -_080EFBCC: .4byte 0x00006e90 -_080EFBD0: - movs r0, 0x7 - bl sub_80EEFBC -_080EFBD6: - pop {r0} - bx r0 - thumb_func_end sub_80EFBB0 - - thumb_func_start sub_80EFBDC -sub_80EFBDC: @ 80EFBDC - push {r4,lr} - lsls r0, 24 - movs r4, 0x1 - ldr r2, _080EFBFC @ =gUnknown_083DFEC4 - ldr r1, [r2] - ldr r3, _080EFC00 @ =0x00007698 - adds r1, r3 - ldrh r3, [r1] - cmp r0, 0 - beq _080EFC08 - cmp r3, 0xA8 - bls _080EFC04 - adds r0, r3, 0 - subs r0, 0x8 - b _080EFC10 - .align 2, 0 -_080EFBFC: .4byte gUnknown_083DFEC4 -_080EFC00: .4byte 0x00007698 -_080EFC04: - movs r3, 0xA0 - b _080EFC1A -_080EFC08: - cmp r3, 0xF7 - bhi _080EFC16 - adds r0, r3, 0 - adds r0, 0x8 -_080EFC10: - lsls r0, 16 - lsrs r3, r0, 16 - b _080EFC1C -_080EFC16: - movs r3, 0x80 - lsls r3, 1 -_080EFC1A: - movs r4, 0 -_080EFC1C: - ldr r0, [r2] - ldr r1, _080EFC34 @ =0x00007698 - adds r0, r1 - strh r3, [r0] - ldr r1, _080EFC38 @ =REG_BG0VOFS - movs r0, 0xFF - ands r3, r0 - strh r3, [r1] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EFC34: .4byte 0x00007698 -_080EFC38: .4byte REG_BG0VOFS - thumb_func_end sub_80EFBDC - - thumb_func_start sub_80EFC3C -sub_80EFC3C: @ 80EFC3C - push {lr} - ldr r0, _080EFC58 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFC5C @ =0x0000bc9a - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080EFC60 @ =0x0000bc9b - adds r0, r1 - strb r2, [r0] - bl sub_80EFD3C - pop {r0} - bx r0 - .align 2, 0 -_080EFC58: .4byte gUnknown_083DFEC4 -_080EFC5C: .4byte 0x0000bc9a -_080EFC60: .4byte 0x0000bc9b - thumb_func_end sub_80EFC3C - - thumb_func_start sub_80EFC64 -sub_80EFC64: @ 80EFC64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, _080EFCD0 @ =gUnknown_083DFEC4 - ldr r2, [r4] - ldr r0, _080EFCD4 @ =0x0000bc9a - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xF - bhi _080EFD2C - ldrb r1, [r1] - mov r8, r1 - ldr r1, _080EFCD8 @ =0x0000bc9b - adds r0, r2, r1 - ldrb r7, [r0] - movs r2, 0 - ldr r0, _080EFCDC @ =gPokenavCityMaps - mov r9, r0 - adds r3, r4, 0 -_080EFC8E: - lsls r0, r2, 2 - mov r4, r8 - lsls r1, r4, 3 - adds r6, r0, r1 - mov r1, r9 - adds r0, r6, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080EFCE8 - movs r0, 0xC8 - adds r5, r7, 0 - muls r5, r0 - ldr r4, _080EFCE0 @ =0x0000bc9c - adds r5, r4 - ldr r4, [r3] - adds r5, r4, r5 - adds r0, r1, 0 - adds r1, r5, 0 - str r2, [sp] - str r3, [sp, 0x4] - bl LZ77UnCompVram - ldr r0, _080EFCE4 @ =0x0000cdcc - adds r4, r0 - adds r4, r6 - str r5, [r4] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r2, [sp] - ldr r3, [sp, 0x4] - b _080EFCF2 - .align 2, 0 -_080EFCD0: .4byte gUnknown_083DFEC4 -_080EFCD4: .4byte 0x0000bc9a -_080EFCD8: .4byte 0x0000bc9b -_080EFCDC: .4byte gPokenavCityMaps -_080EFCE0: .4byte 0x0000bc9c -_080EFCE4: .4byte 0x0000cdcc -_080EFCE8: - ldr r0, [r3] - ldr r4, _080EFD1C @ =0x0000cdcc - adds r0, r4 - adds r0, r6 - str r1, [r0] -_080EFCF2: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _080EFC8E - ldr r0, _080EFD20 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFD24 @ =0x0000bc9a - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bhi _080EFD2C - ldr r1, _080EFD28 @ =0x0000bc9b - adds r0, r2, r1 - strb r7, [r0] - movs r0, 0x1 - b _080EFD2E - .align 2, 0 -_080EFD1C: .4byte 0x0000cdcc -_080EFD20: .4byte gUnknown_083DFEC4 -_080EFD24: .4byte 0x0000bc9a -_080EFD28: .4byte 0x0000bc9b -_080EFD2C: - movs r0, 0 -_080EFD2E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EFC64 - - thumb_func_start sub_80EFD3C -sub_80EFD3C: @ 80EFD3C - ldr r0, _080EFD60 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFD64 @ =0x0000769e - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r0, _080EFD68 @ =0x0000769c - adds r3, r1, r0 - movs r0, 0x2F - strb r0, [r3] - ldr r3, _080EFD6C @ =0x0000769d - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080EFD70 @ =0x0000769a - adds r1, r0 - strh r2, [r1] - bx lr - .align 2, 0 -_080EFD60: .4byte gUnknown_083DFEC4 -_080EFD64: .4byte 0x0000769e -_080EFD68: .4byte 0x0000769c -_080EFD6C: .4byte 0x0000769d -_080EFD70: .4byte 0x0000769a - thumb_func_end sub_80EFD3C - - thumb_func_start sub_80EFD74 -sub_80EFD74: @ 80EFD74 - push {lr} - ldr r0, _080EFD94 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFD98 @ =0x0000769e - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080EFD9C @ =0x0000769d - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080EFD90 - movs r0, 0x2 - strb r0, [r2] -_080EFD90: - pop {r0} - bx r0 - .align 2, 0 -_080EFD94: .4byte gUnknown_083DFEC4 -_080EFD98: .4byte 0x0000769e -_080EFD9C: .4byte 0x0000769d - thumb_func_end sub_80EFD74 - - thumb_func_start sub_80EFDA0 -sub_80EFDA0: @ 80EFDA0 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFDD4 @ =0x0600f800 - ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r2, 0xF - str r2, [sp, 0x8] - movs r1, 0x1 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - ldr r0, _080EFDDC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFDE0 @ =0x0000769e - adds r0, r1 - strb r4, [r0] - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EFDD4: .4byte 0x0600f800 -_080EFDD8: .4byte gUnknown_08E9AC2C -_080EFDDC: .4byte gUnknown_083DFEC4 -_080EFDE0: .4byte 0x0000769e - thumb_func_end sub_80EFDA0 - - thumb_func_start sub_80EFDE4 -sub_80EFDE4: @ 80EFDE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EFE68 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080EFE6C @ =0x0000769c - adds r0, r1, r2 - ldrb r2, [r0] - movs r0, 0x3C - subs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080EFE06 - movs r4, 0xF -_080EFE06: - ldr r3, _080EFE70 @ =0x0000769e - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080EFE58 - ldr r0, _080EFE74 @ =0x0600f800 - mov r8, r0 - ldr r3, _080EFE78 @ =gUnknown_08E9ABB4 - mov r9, r3 - str r2, [sp] - movs r5, 0 - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r7, 0x1 - str r7, [sp, 0xC] - movs r6, 0x3C - str r6, [sp, 0x10] - movs r1, 0xE - movs r2, 0x10 - bl sub_8095C8C - cmp r4, 0xE - bhi _080EFE58 - adds r1, r4, 0 - adds r1, 0xE - lsls r1, 16 - lsrs r1, 16 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0xF - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - str r7, [sp, 0xC] - str r6, [sp, 0x10] - mov r0, r8 - movs r2, 0x10 - mov r3, r9 - bl sub_8095C8C -_080EFE58: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EFE68: .4byte gUnknown_083DFEC4 -_080EFE6C: .4byte 0x0000769c -_080EFE70: .4byte 0x0000769e -_080EFE74: .4byte 0x0600f800 -_080EFE78: .4byte gUnknown_08E9ABB4 - thumb_func_end sub_80EFDE4 - - thumb_func_start sub_80EFE7C -sub_80EFE7C: @ 80EFE7C - push {r4,lr} - ldr r0, _080EFE98 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080EFE9C @ =0x0000769d - adds r4, r2, r0 - ldrb r1, [r4] - cmp r1, 0x1 - beq _080EFF08 - cmp r1, 0x1 - bgt _080EFEA0 - cmp r1, 0 - beq _080EFEA6 - b _080EFF2E - .align 2, 0 -_080EFE98: .4byte gUnknown_083DFEC4 -_080EFE9C: .4byte 0x0000769d -_080EFEA0: - cmp r1, 0x2 - beq _080EFF24 - b _080EFF2E -_080EFEA6: - ldr r0, _080EFED4 @ =0x0000769c - adds r4, r2, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bls _080EFEBA - strb r1, [r4] -_080EFEBA: - ldr r1, _080EFED8 @ =0x0000769e - adds r0, r2, r1 - ldrb r0, [r0] - bl sub_80EFDE4 - ldrb r0, [r4] - cmp r0, 0xF - beq _080EFEE4 - cmp r0, 0xF - bgt _080EFEDC - cmp r0, 0 - beq _080EFEE4 - b _080EFF2E - .align 2, 0 -_080EFED4: .4byte 0x0000769c -_080EFED8: .4byte 0x0000769e -_080EFEDC: - cmp r0, 0x1E - beq _080EFEE4 - cmp r0, 0x2D - bne _080EFF2E -_080EFEE4: - ldr r0, _080EFEFC @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080EFF00 @ =0x0000769d - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x1 - strb r0, [r2] - ldr r0, _080EFF04 @ =0x0000769a - adds r1, r0 - strh r3, [r1] - b _080EFF2E - .align 2, 0 -_080EFEFC: .4byte gUnknown_083DFEC4 -_080EFF00: .4byte 0x0000769d -_080EFF04: .4byte 0x0000769a -_080EFF08: - ldr r0, _080EFF20 @ =0x0000769a - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x78 - bls _080EFF2E - movs r0, 0 - strh r0, [r1] - b _080EFF2C - .align 2, 0 -_080EFF20: .4byte 0x0000769a -_080EFF24: - movs r0, 0x1 - bl sub_80EFDE4 - movs r0, 0x1 -_080EFF2C: - strb r0, [r4] -_080EFF2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EFE7C - - thumb_func_start sub_80EFF34 -sub_80EFF34: @ 80EFF34 - push {lr} - ldr r0, _080EFF5C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFF60 @ =0x0000d160 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080EFF64 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFF56 -_080EFF4C: - bl sub_80EFF68 - lsls r0, 24 - cmp r0, 0 - bne _080EFF4C -_080EFF56: - pop {r0} - bx r0 - .align 2, 0 -_080EFF5C: .4byte gUnknown_083DFEC4 -_080EFF60: .4byte 0x0000d160 -_080EFF64: .4byte 0x00006dac - thumb_func_end sub_80EFF34 - - thumb_func_start sub_80EFF68 -sub_80EFF68: @ 80EFF68 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080EFF88 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080EFF8C @ =0x0000d160 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xD - bls _080EFF7C - b _080F0150 -_080EFF7C: - lsls r0, 2 - ldr r1, _080EFF90 @ =_080EFF94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EFF88: .4byte gUnknown_083DFEC4 -_080EFF8C: .4byte 0x0000d160 -_080EFF90: .4byte _080EFF94 - .align 2, 0 -_080EFF94: - .4byte _080EFFCC - .4byte _080EFFE8 - .4byte _080EFFF4 - .4byte _080F0000 - .4byte _080F000C - .4byte _080F0012 - .4byte _080F0018 - .4byte _080F0028 - .4byte _080F003C - .4byte _080F005C - .4byte _080F0098 - .4byte _080F00AC - .4byte _080F00F8 - .4byte _080F0118 -_080EFFCC: - bl sub_80EEDE8 - ldr r0, _080EFFE0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080EFFE4 @ =0x0000d162 - adds r0, r2 - movs r1, 0xB - strb r1, [r0] - b _080F0154 - .align 2, 0 -_080EFFE0: .4byte gUnknown_083DFEC4 -_080EFFE4: .4byte 0x0000d162 -_080EFFE8: - ldr r0, _080EFFF0 @ =gWindowConfig_81E7080 - bl SetUpWindowConfig - b _080F0154 - .align 2, 0 -_080EFFF0: .4byte gWindowConfig_81E7080 -_080EFFF4: - ldr r0, _080EFFFC @ =gWindowConfig_81E7080 - bl MultistepInitMenuWindowBegin - b _080F0154 - .align 2, 0 -_080EFFFC: .4byte gWindowConfig_81E7080 -_080F0000: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F000A - b _080F0154 -_080F000A: - b _080F0162 -_080F000C: - bl MenuZeroFillScreen - b _080F0154 -_080F0012: - bl sub_80F1614 - b _080F0154 -_080F0018: - movs r0, 0 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - bne _080F0026 - b _080F0154 -_080F0026: - b _080F0162 -_080F0028: - ldr r0, _080F0034 @ =gPokenavConditionView_Gfx - ldr r1, _080F0038 @ =0x06005000 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F0034: .4byte gPokenavConditionView_Gfx -_080F0038: .4byte 0x06005000 -_080F003C: - ldr r0, _080F0050 @ =gUnknown_08E9AC4C - ldr r1, _080F0054 @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _080F0154 - .align 2, 0 -_080F0050: .4byte gUnknown_08E9AC4C -_080F0054: .4byte 0x0600f000 -_080F0058: .4byte gPokenavConditionMenu2_Pal -_080F005C: - ldr r0, _080F0088 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F008C @ =0x000076aa - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0154 - ldr r0, _080F0090 @ =0x0600f000 - ldr r3, _080F0094 @ =gUnknown_083E01AC - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0154 - .align 2, 0 -_080F0088: .4byte gUnknown_083DFEC4 -_080F008C: .4byte 0x000076aa -_080F0090: .4byte 0x0600f000 -_080F0094: .4byte gUnknown_083E01AC -_080F0098: - ldr r0, _080F00A4 @ =gUnknown_08E9FEB4 - ldr r1, _080F00A8 @ =0x0600b800 - bl LZ77UnCompVram - b _080F0154 - .align 2, 0 -_080F00A4: .4byte gUnknown_08E9FEB4 -_080F00A8: .4byte 0x0600b800 -_080F00AC: - ldr r0, _080F00EC @ =gUnknown_083E0254 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F00F0 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2 - adds r0, r4, 0 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0x1C - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - bl sub_80F01A4 - b _080F0154 - .align 2, 0 -_080F00EC: .4byte gUnknown_083E0254 -_080F00F0: .4byte gUnknownPalette_81E6692 -_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 -_080F00F8: - ldr r0, _080F0110 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0114 @ =0x00008fe9 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F0154 - .align 2, 0 -_080F0110: .4byte gUnknown_083DFEC4 -_080F0114: .4byte 0x00008fe9 -_080F0118: - ldr r1, _080F013C @ =REG_BG3CNT - ldr r2, _080F0140 @ =0x00001e03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080F0144 @ =0x00001702 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - ldr r2, _080F0148 @ =0x00000844 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F014C @ =0x0000040b - adds r0, r2, 0 - strh r0, [r1] - b _080F0154 - .align 2, 0 -_080F013C: .4byte REG_BG3CNT -_080F0140: .4byte 0x00001e03 -_080F0144: .4byte 0x00001702 -_080F0148: .4byte 0x00000844 -_080F014C: .4byte 0x0000040b -_080F0150: - movs r0, 0 - b _080F0164 -_080F0154: - ldr r0, _080F016C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0170 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0162: - movs r0, 0x1 -_080F0164: - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F016C: .4byte gUnknown_083DFEC4 -_080F0170: .4byte 0x0000d160 - thumb_func_end sub_80EFF68 - - thumb_func_start sub_80F0174 -sub_80F0174: @ 80F0174 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _080F018E - movs r0, 0x80 - lsls r0, 19 - ldrh r1, [r0] - movs r3, 0x80 - lsls r3, 3 - adds r2, r3, 0 - orrs r1, r2 - strh r1, [r0] - b _080F019A -_080F018E: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F01A0 @ =0x0000fbff - ands r0, r1 - strh r0, [r2] -_080F019A: - pop {r0} - bx r0 - .align 2, 0 -_080F01A0: .4byte 0x0000fbff - thumb_func_end sub_80F0174 - - thumb_func_start sub_80F01A4 -sub_80F01A4: @ 80F01A4 - ldr r1, _080F01CC @ =REG_WIN0H - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x9B - strh r0, [r1] - ldr r0, _080F01D0 @ =REG_WIN0V - ldr r2, _080F01D4 @ =0x00003879 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080F01D8 @ =REG_WININ - ldr r2, _080F01DC @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1B - strh r0, [r1] - bx lr - .align 2, 0 -_080F01CC: .4byte REG_WIN0H -_080F01D0: .4byte REG_WIN0V -_080F01D4: .4byte 0x00003879 -_080F01D8: .4byte REG_WININ -_080F01DC: .4byte 0x00003f3f - thumb_func_end sub_80F01A4 - - thumb_func_start sub_80F01E0 -sub_80F01E0: @ 80F01E0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080F0248 @ =gUnknown_083DFEC4 - lsls r0, r4, 6 - ldr r2, _080F024C @ =0x00008829 - adds r0, r2 - ldr r5, [r1] - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x1 - bl MenuPrint - ldr r1, _080F0250 @ =0x000076aa - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0242 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r2, _080F0254 @ =0x000088e9 - adds r0, r2 - adds r0, r5, r0 - movs r1, 0xD - movs r2, 0x3 - bl MenuPrint - ldr r0, _080F0258 @ =0x00008788 - adds r4, r5, r0 - ldr r1, _080F025C @ =0x000087dc - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 2 - adds r0, r5, r0 - ldr r1, _080F0260 @ =0x0000893e - adds r0, r1 - ldrh r1, [r0] - lsls r1, 18 - lsrs r1, 23 - adds r0, r4, 0 - bl sub_80F443C - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x6 - bl MenuPrint -_080F0242: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0248: .4byte gUnknown_083DFEC4 -_080F024C: .4byte 0x00008829 -_080F0250: .4byte 0x000076aa -_080F0254: .4byte 0x000088e9 -_080F0258: .4byte 0x00008788 -_080F025C: .4byte 0x000087dc -_080F0260: .4byte 0x0000893e - thumb_func_end sub_80F01E0 - - thumb_func_start sub_80F0264 -sub_80F0264: @ 80F0264 - push {lr} - ldr r1, _080F0290 @ =gUnknown_083DFEC4 - ldr r2, [r1] - ldr r1, _080F0294 @ =0x00000306 - adds r3, r2, r1 - movs r1, 0 - strh r1, [r3] - ldr r3, _080F0298 @ =0x000087ca - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _080F029C @ =0x00006dac - adds r2, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _080F028C -_080F0282: - bl sub_80F02A0 - lsls r0, 24 - cmp r0, 0 - bne _080F0282 -_080F028C: - pop {r0} - bx r0 - .align 2, 0 -_080F0290: .4byte gUnknown_083DFEC4 -_080F0294: .4byte 0x00000306 -_080F0298: .4byte 0x000087ca -_080F029C: .4byte 0x00006dac - thumb_func_end sub_80F0264 - - thumb_func_start sub_80F02A0 -sub_80F02A0: @ 80F02A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x18 - ldr r1, _080F02C4 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F02C8 @ =0x00000306 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0xE - bls _080F02BA - b _080F05FA -_080F02BA: - lsls r0, 2 - ldr r1, _080F02CC @ =_080F02D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F02C4: .4byte gUnknown_083DFEC4 -_080F02C8: .4byte 0x00000306 -_080F02CC: .4byte _080F02D0 - .align 2, 0 -_080F02D0: - .4byte _080F030C - .4byte _080F0344 - .4byte _080F0350 - .4byte _080F035C - .4byte _080F0368 - .4byte _080F036E - .4byte _080F0380 - .4byte _080F0394 - .4byte _080F04BC - .4byte _080F053C - .4byte _080F0550 - .4byte _080F0574 - .4byte _080F057A - .4byte _080F0586 - .4byte _080F05BC -_080F030C: - bl sub_80EEDE8 - ldr r0, _080F0334 @ =gUnknown_083DFEC4 - ldr r1, [r0] - movs r2, 0 - ldr r3, _080F0338 @ =0x000087ca - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F0322 - movs r2, 0x1 -_080F0322: - ldr r3, _080F033C @ =0x000087c8 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080F0340 @ =0x0000d162 - adds r1, r0 - movs r0, 0xB - strb r0, [r1] - b _080F0618 - .align 2, 0 -_080F0334: .4byte gUnknown_083DFEC4 -_080F0338: .4byte 0x000087ca -_080F033C: .4byte 0x000087c8 -_080F0340: .4byte 0x0000d162 -_080F0344: - ldr r0, _080F034C @ =gWindowConfig_81E70D4 - bl SetUpWindowConfig - b _080F0618 - .align 2, 0 -_080F034C: .4byte gWindowConfig_81E70D4 -_080F0350: - ldr r0, _080F0358 @ =gWindowConfig_81E70D4 - bl MultistepInitMenuWindowBegin - b _080F0618 - .align 2, 0 -_080F0358: .4byte gWindowConfig_81E70D4 -_080F035C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F0366 - b _080F0618 -_080F0366: - b _080F0626 -_080F0368: - bl MenuZeroFillScreen - b _080F0618 -_080F036E: - ldr r0, _080F0378 @ =gUnknown_08E9FC64 - ldr r1, _080F037C @ =0x0600e800 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0378: .4byte gUnknown_08E9FC64 -_080F037C: .4byte 0x0600e800 -_080F0380: - ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx - ldr r1, _080F0390 @ =0x06008000 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F038C: .4byte gPokenavConditionSearch2_Gfx -_080F0390: .4byte 0x06008000 -_080F0394: - ldr r6, _080F03FC @ =gUnknown_083E02B4 - adds r0, r6, 0 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0400 @ =gUnknown_083E0334 - movs r1, 0x40 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F0404 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0408 @ =0x000087ca - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F0418 - ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F0410 @ =gPlttBufferUnfaded - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0414 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F03FC: .4byte gUnknown_083E02B4 -_080F0400: .4byte gUnknown_083E0334 -_080F0404: .4byte gUnknown_083DFEC4 -_080F0408: .4byte 0x000087ca -_080F040C: .4byte gPokenavConditionSearch2_Pal -_080F0410: .4byte gPlttBufferUnfaded -_080F0414: .4byte gUnknownPalette_81E6692 -_080F0418: - cmp r0, 0x1 - bne _080F0464 - ldr r4, _080F0458 @ =gUnknown_083E0274 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F045C @ =gPlttBufferUnfaded - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F0460 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0xA - adds r0, r4, 0 - movs r1, 0xBF - b _080F04A8 - .align 2, 0 -_080F0458: .4byte gUnknown_083E0274 -_080F045C: .4byte gPlttBufferUnfaded -_080F0460: .4byte gUnknownPalette_81E6692 -_080F0464: - ldr r4, _080F04B0 @ =gUnknown_08E9F9E8 - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080F04B4 @ =gPlttBufferUnfaded - adds r5, r4, 0 - adds r5, 0xA - ldrh r0, [r4, 0xA] - strh r0, [r1] - ldr r0, _080F04B8 @ =gUnknown_083E0314 - movs r1, 0x50 - movs r2, 0x20 - bl LoadPalette - adds r0, r6, 0x2 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r6, 0 - adds r0, 0x10 - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - adds r0, r5, 0 - movs r1, 0x5F -_080F04A8: - movs r2, 0x2 - bl LoadPalette - b _080F0618 - .align 2, 0 -_080F04B0: .4byte gUnknown_08E9F9E8 -_080F04B4: .4byte gPlttBufferUnfaded -_080F04B8: .4byte gUnknown_083E0314 -_080F04BC: - ldr r0, _080F04E8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F04EC @ =0x000087ca - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F04F8 - ldr r0, _080F04F0 @ =0x0600e800 - ldr r3, _080F04F4 @ =gUnknown_08E9FD1C - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x9 - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F04E8: .4byte gUnknown_083DFEC4 -_080F04EC: .4byte 0x000087ca -_080F04F0: .4byte 0x0600e800 -_080F04F4: .4byte gUnknown_08E9FD1C -_080F04F8: - ldr r3, _080F0530 @ =0x0600e800 - mov r8, r3 - ldr r3, _080F0534 @ =gUnknown_08E9FE54 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r5, 0xC - str r5, [sp, 0x8] - movs r6, 0xA - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x4 - bl sub_8095C8C - ldr r3, _080F0538 @ =gUnknown_08E9FD64 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r5, [sp, 0x10] - mov r0, r8 - movs r1, 0 - movs r2, 0x8 - bl sub_8095C8C - b _080F0618 - .align 2, 0 -_080F0530: .4byte 0x0600e800 -_080F0534: .4byte gUnknown_08E9FE54 -_080F0538: .4byte gUnknown_08E9FD64 -_080F053C: - ldr r0, _080F0548 @ =gUnknown_083E0354 - ldr r1, _080F054C @ =0x06005000 - bl LZ77UnCompVram - b _080F0618 - .align 2, 0 -_080F0548: .4byte gUnknown_083E0354 -_080F054C: .4byte 0x06005000 -_080F0550: - ldr r2, _080F0568 @ =0x0600f800 - add r1, sp, 0x14 - movs r0, 0 - strh r0, [r1] - ldr r0, _080F056C @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080F0570 @ =0x81000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080F0618 - .align 2, 0 -_080F0568: .4byte 0x0600f800 -_080F056C: .4byte 0x040000d4 -_080F0570: .4byte 0x81000400 -_080F0574: - bl sub_80F0900 - b _080F0618 -_080F057A: - bl sub_80F0944 - lsls r0, 24 - cmp r0, 0 - beq _080F0618 - b _080F0626 -_080F0586: - ldr r0, _080F059C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F05A0 @ =0x000087ca - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F05A4 - bl ShowMapNamePopUpWindow - b _080F0618 - .align 2, 0 -_080F059C: .4byte gUnknown_083DFEC4 -_080F05A0: .4byte 0x000087ca -_080F05A4: - movs r0, 0 - bl sub_80F081C - ldr r2, _080F05B8 @ =0x0000876e - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80F0FFC - b _080F0618 - .align 2, 0 -_080F05B8: .4byte 0x0000876e -_080F05BC: - ldr r1, _080F0600 @ =REG_BG2CNT - ldr r3, _080F0604 @ =0x00001d0a - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - adds r3, 0xF9 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x6 - adds r3, 0xFE - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x16 - movs r0, 0xF8 - strh r0, [r1] - ldr r1, [r2] - ldr r0, _080F0608 @ =0x00008776 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xF8 - strh r0, [r2] - ldr r2, _080F060C @ =0x00008778 - adds r0, r1, r2 - strh r3, [r0] - ldr r0, _080F0610 @ =REG_BLDCNT - strh r3, [r0] - ldr r3, _080F0614 @ =0x0000d160 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F05FA: - movs r0, 0 - b _080F0628 - .align 2, 0 -_080F0600: .4byte REG_BG2CNT -_080F0604: .4byte 0x00001d0a -_080F0608: .4byte 0x00008776 -_080F060C: .4byte 0x00008778 -_080F0610: .4byte REG_BLDCNT -_080F0614: .4byte 0x0000d160 -_080F0618: - ldr r0, _080F0634 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0638 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0626: - movs r0, 0x1 -_080F0628: - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F0634: .4byte gUnknown_083DFEC4 -_080F0638: .4byte 0x00000306 - thumb_func_end sub_80F02A0 - - thumb_func_start sub_80F063C -sub_80F063C: @ 80F063C - push {r4-r7,lr} - lsls r0, 16 - ldr r3, _080F0664 @ =gUnknown_083DFEC4 - ldr r2, [r3] - lsrs r5, r0, 16 - asrs r4, r0, 16 - lsls r1, r4, 4 - ldr r6, _080F0668 @ =0x0000877c - adds r0, r2, r6 - strh r1, [r0] - adds r7, r3, 0 - cmp r4, 0x1 - beq _080F065E - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _080F066C -_080F065E: - movs r1, 0x4 - b _080F066E - .align 2, 0 -_080F0664: .4byte gUnknown_083DFEC4 -_080F0668: .4byte 0x0000877c -_080F066C: - movs r1, 0x8 -_080F066E: - ldr r3, _080F06C0 @ =0x0000877a - adds r0, r2, r3 - strh r1, [r0] - lsls r0, r5, 16 - asrs r3, r0, 16 - cmp r3, 0 - bge _080F06CC - ldr r4, [r7] - ldr r6, _080F06C0 @ =0x0000877a - adds r1, r4, r6 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] - subs r6, 0x2 - adds r1, r4, r6 - lsls r0, r3, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080F06C4 @ =0x00008770 - adds r0, r4, r1 - ldrh r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080F06B8 - ldr r2, _080F06C8 @ =0x00008774 - adds r1, r4, r2 - adds r0, 0x1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F06B8: - negs r0, r3 - lsls r0, 16 - lsrs r5, r0, 16 - b _080F06E6 - .align 2, 0 -_080F06C0: .4byte 0x0000877a -_080F06C4: .4byte 0x00008770 -_080F06C8: .4byte 0x00008774 -_080F06CC: - ldr r1, [r7] - ldr r3, _080F070C @ =0x00008778 - adds r0, r1, r3 - ldrh r0, [r0] - adds r0, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F0710 @ =0x00008772 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F06E6: - ldr r0, [r7] - ldr r1, _080F0714 @ =0x00008774 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - ble _080F06FA - movs r2, 0 -_080F06FA: - movs r1, 0x1F - adds r0, r2, 0 - ands r1, r6 - adds r2, r5, 0 - bl sub_80F0954 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F070C: .4byte 0x00008778 -_080F0710: .4byte 0x00008772 -_080F0714: .4byte 0x00008774 - thumb_func_end sub_80F063C - - thumb_func_start sub_80F0718 -sub_80F0718: @ 80F0718 - push {r4,r5,lr} - bl sub_80F098C - lsls r0, 24 - cmp r0, 0 - bne _080F0790 - ldr r0, _080F073C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F0740 @ =0x0000877c - adds r3, r4, r0 - ldrh r2, [r3] - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080F0744 - movs r0, 0 - b _080F0792 - .align 2, 0 -_080F073C: .4byte gUnknown_083DFEC4 -_080F0740: .4byte 0x0000877c -_080F0744: - ldr r0, _080F0780 @ =0x0000877a - adds r1, r4, r0 - ldrh r0, [r1] - subs r0, r2, r0 - strh r0, [r3] - ldr r0, _080F0784 @ =0x00008776 - adds r2, r4, r0 - ldrh r0, [r1] - ldrh r1, [r2] - adds r0, r1 - movs r5, 0xFF - ands r0, r5 - strh r0, [r2] - ldr r1, _080F0788 @ =REG_BG3VOFS - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080F0790 - movs r1, 0 - ldrsh r0, [r2, r1] - adds r0, 0x8 - ands r0, r5 - asrs r1, r0, 3 - ldr r2, _080F078C @ =0x00008778 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0 - b _080F0792 - .align 2, 0 -_080F0780: .4byte 0x0000877a -_080F0784: .4byte 0x00008776 -_080F0788: .4byte REG_BG3VOFS -_080F078C: .4byte 0x00008778 -_080F0790: - movs r0, 0x1 -_080F0792: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F0718 - - thumb_func_start ShowMapNamePopUpWindow -ShowMapNamePopUpWindow: @ 80F0798 - push {lr} - ldr r0, _080F07B0 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F07B4 @ =0x000087ca - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F07B8 - cmp r0, 0x1 - beq _080F07E0 - b _080F080A - .align 2, 0 -_080F07B0: .4byte gUnknown_083DFEC4 -_080F07B4: .4byte 0x000087ca -_080F07B8: - ldr r3, _080F07D8 @ =0x00008788 - adds r0, r2, r3 - subs r3, 0x1A - adds r1, r2, r3 - movs r3, 0 - ldrsh r1, [r1, r3] - lsls r1, 2 - adds r1, r2, r1 - ldr r2, _080F07DC @ =0x0000893e - adds r1, r2 - ldrh r1, [r1] - lsls r1, 18 - lsrs r1, 23 - bl sub_80F443C - b _080F07F4 - .align 2, 0 -_080F07D8: .4byte 0x00008788 -_080F07DC: .4byte 0x0000893e -_080F07E0: - ldr r3, _080F0810 @ =0x00008788 - adds r0, r2, r3 - subs r3, 0x1A - adds r1, r2, r3 - ldrh r1, [r1] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - bl sub_80F445C -_080F07F4: - ldr r0, _080F0814 @ =gWindowConfig_81E710C - bl BasicInitMenuWindow - ldr r0, _080F0818 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0810 @ =0x00008788 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x6 - bl MenuPrint -_080F080A: - pop {r0} - bx r0 - .align 2, 0 -_080F0810: .4byte 0x00008788 -_080F0814: .4byte gWindowConfig_81E710C -_080F0818: .4byte gUnknown_083DFEC4 - thumb_func_end ShowMapNamePopUpWindow - - thumb_func_start sub_80F081C -sub_80F081C: @ 80F081C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F0838 @ =gWindowConfig_81E710C - bl BasicInitMenuWindow - cmp r5, 0x4 - bhi _080F08C6 - lsls r0, r5, 2 - ldr r1, _080F083C @ =_080F0840 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F0838: .4byte gWindowConfig_81E710C -_080F083C: .4byte _080F0840 - .align 2, 0 -_080F0840: - .4byte _080F0854 - .4byte _080F0854 - .4byte _080F0862 - .4byte _080F088C - .4byte _080F089A -_080F0854: - ldr r0, _080F08CC @ =gOtherText_NumberRegistered - movs r1, 0xA - movs r2, 0x9 - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F0862: - ldr r0, _080F08D0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F08D4 @ =0x00008788 - adds r4, r0, r1 - ldr r2, _080F08D8 @ =0x00008774 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0xB - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F088C: - ldr r0, _080F08DC @ =gOtherText_NumberBattles - movs r1, 0xA - movs r2, 0xD - bl sub_8072B4C - cmp r5, 0 - bne _080F08C6 -_080F089A: - movs r0, 0x9 - bl sub_8053108 - adds r1, r0, 0 - ldr r0, _080F08E0 @ =0x0001869f - cmp r1, r0 - bls _080F08AA - adds r1, r0, 0 -_080F08AA: - ldr r0, _080F08D0 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F08D4 @ =0x00008788 - adds r4, r0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0xF - bl sub_8072B4C -_080F08C6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F08CC: .4byte gOtherText_NumberRegistered -_080F08D0: .4byte gUnknown_083DFEC4 -_080F08D4: .4byte 0x00008788 -_080F08D8: .4byte 0x00008774 -_080F08DC: .4byte gOtherText_NumberBattles -_080F08E0: .4byte 0x0001869f - thumb_func_end sub_80F081C - - thumb_func_start sub_80F08E4 -sub_80F08E4: @ 80F08E4 - push {lr} - ldr r0, _080F08FC @ =gWindowConfig_81E710C - bl BasicInitMenuWindow - movs r0, 0 - movs r1, 0x9 - movs r2, 0xB - movs r3, 0x10 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_080F08FC: .4byte gWindowConfig_81E710C - thumb_func_end sub_80F08E4 - - thumb_func_start sub_80F0900 -sub_80F0900: @ 80F0900 - push {r4,r5,lr} - ldr r0, _080F093C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0940 @ =0x00008772 - adds r1, r0, r2 - subs r2, 0x2 - adds r5, r0, r2 - ldrh r0, [r1] - ldrh r1, [r5] - subs r0, r1 - adds r0, 0x1 - lsls r4, r0, 16 - asrs r0, r4, 16 - cmp r0, 0x7 - bgt _080F092A - movs r0, 0xC - movs r1, 0x1 - movs r2, 0x1F - movs r3, 0xF - bl MenuZeroFillWindowRect -_080F092A: - ldrh r0, [r5] - lsrs r2, r4, 16 - movs r1, 0 - bl sub_80F0954 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F093C: .4byte gUnknown_083DFEC4 -_080F0940: .4byte 0x00008772 - thumb_func_end sub_80F0900 - - thumb_func_start sub_80F0944 -sub_80F0944: @ 80F0944 - push {lr} - bl sub_80F098C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F0944 - - thumb_func_start sub_80F0954 -sub_80F0954: @ 80F0954 - push {r4,r5,lr} - ldr r3, _080F097C @ =gUnknown_083DFEC4 - ldr r3, [r3] - ldr r5, _080F0980 @ =0x0000877e - adds r4, r3, r5 - movs r5, 0 - strh r0, [r4] - ldr r4, _080F0984 @ =0x00008780 - adds r0, r3, r4 - strh r1, [r0] - ldr r1, _080F0988 @ =0x00008784 - adds r0, r3, r1 - strh r2, [r0] - adds r4, 0x6 - adds r3, r4 - strh r5, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F097C: .4byte gUnknown_083DFEC4 -_080F0980: .4byte 0x0000877e -_080F0984: .4byte 0x00008780 -_080F0988: .4byte 0x00008784 - thumb_func_end sub_80F0954 - - thumb_func_start sub_80F098C -sub_80F098C: @ 80F098C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080F09A4 @ =gUnknown_083DFEC4 - ldr r6, [r0] - ldr r0, _080F09A8 @ =0x00008784 - adds r7, r6, r0 - ldrh r0, [r7] - cmp r0, 0 - bne _080F09AC -_080F09A0: - movs r0, 0 - b _080F0A02 - .align 2, 0 -_080F09A4: .4byte gUnknown_083DFEC4 -_080F09A8: .4byte 0x00008784 -_080F09AC: - movs r1, 0 - mov r8, r1 - ldr r1, _080F0A0C @ =gUnknown_083E3270 - ldr r2, _080F0A10 @ =0x000087ca - adds r0, r6, r2 - ldrb r2, [r0] - lsls r2, 2 - adds r2, r1 - ldr r0, _080F0A14 @ =0x0000877e - adds r4, r6, r0 - ldrh r0, [r4] - ldr r1, _080F0A18 @ =0x00008780 - adds r5, r6, r1 - ldrh r1, [r5] - ldr r2, [r2] - bl _call_via_r2 - ldrh r0, [r7] - subs r0, 0x1 - strh r0, [r7] - ldr r2, _080F0A1C @ =0x0000ffff - adds r1, r2, 0 - lsls r0, 16 - cmp r0, 0 - beq _080F09A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ands r0, r1 - ldr r2, _080F0A20 @ =0x00008774 - adds r1, r6, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - ble _080F09F6 - mov r0, r8 - strh r0, [r4] -_080F09F6: - ldrh r0, [r5] - adds r0, 0x2 - movs r1, 0x1F - ands r0, r1 - strh r0, [r5] - movs r0, 0x1 -_080F0A02: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F0A0C: .4byte gUnknown_083E3270 -_080F0A10: .4byte 0x000087ca -_080F0A14: .4byte 0x0000877e -_080F0A18: .4byte 0x00008780 -_080F0A1C: .4byte 0x0000ffff -_080F0A20: .4byte 0x00008774 - thumb_func_end sub_80F098C - - thumb_func_start sub_80F0A24 -sub_80F0A24: @ 80F0A24 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, _080F0A64 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F0A68 @ =0x000087c8 - adds r0, r4, r1 - ldrb r0, [r0] - movs r2, 0x1 - cmp r0, 0 - bne _080F0A40 - movs r2, 0x2 -_080F0A40: - ldr r0, _080F0A6C @ =0x00008788 - adds r4, r0 - adds r0, r4, 0 - adds r1, r3, 0 - bl sub_80F4428 - ldr r0, _080F0A70 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - lsls r2, r5, 24 - lsrs r2, 24 - adds r0, r4, 0 - movs r1, 0xD - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0A64: .4byte gUnknown_083DFEC4 -_080F0A68: .4byte 0x000087c8 -_080F0A6C: .4byte 0x00008788 -_080F0A70: .4byte gWindowConfig_81E70D4 - thumb_func_end sub_80F0A24 - - thumb_func_start sub_80F0A74 -sub_80F0A74: @ 80F0A74 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r7, r1, 16 - ldr r0, _080F0ADC @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r0, _080F0AE0 @ =0x00008788 - adds r4, r5, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80F700C - movs r0, 0x1F - ands r7, r0 - ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - lsls r2, r7, 3 - adds r0, r4, 0 - movs r1, 0x61 - movs r3, 0 - bl MenuPrint_PixelCoords - ldr r1, _080F0AE8 @ =0x0000d158 - adds r0, r5, r1 - ldrh r0, [r0] - cmp r6, r0 - bcs _080F0AF8 - lsls r0, r6, 3 - adds r0, r5, r0 - ldr r1, _080F0AEC @ =0x0000ceed - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F0AF8 - ldr r0, _080F0AF0 @ =0x0600f000 - ldr r3, _080F0AF4 @ =gUnknown_083E039C - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x1D - adds r2, r7, 0 - bl sub_8095C8C - b _080F0B14 - .align 2, 0 -_080F0ADC: .4byte gUnknown_083DFEC4 -_080F0AE0: .4byte 0x00008788 -_080F0AE4: .4byte gWindowConfig_81E70D4 -_080F0AE8: .4byte 0x0000d158 -_080F0AEC: .4byte 0x0000ceed -_080F0AF0: .4byte 0x0600f000 -_080F0AF4: .4byte gUnknown_083E039C -_080F0AF8: - ldr r0, _080F0B1C @ =0x0600f000 - ldr r3, _080F0B20 @ =gUnknown_083E03A0 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0x1 - str r2, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x1D - adds r2, r7, 0 - bl sub_8095C8C -_080F0B14: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F0B1C: .4byte 0x0600f000 -_080F0B20: .4byte gUnknown_083E03A0 - thumb_func_end sub_80F0A74 - - thumb_func_start sub_80F0B24 -sub_80F0B24: @ 80F0B24 - ldr r0, _080F0B38 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0B3C @ =0x0000d15c - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _080F0B40 @ =0x00000306 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080F0B38: .4byte gUnknown_083DFEC4 -_080F0B3C: .4byte 0x0000d15c -_080F0B40: .4byte 0x00000306 - thumb_func_end sub_80F0B24 - - thumb_func_start sub_80F0B44 -sub_80F0B44: @ 80F0B44 - push {r4-r6,lr} - ldr r0, _080F0B58 @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r0, _080F0B5C @ =0x0000d15c - adds r6, r5, r0 - ldrh r0, [r6] - cmp r0, 0x8 - bls _080F0B60 - movs r0, 0 - b _080F0C22 - .align 2, 0 -_080F0B58: .4byte gUnknown_083DFEC4 -_080F0B5C: .4byte 0x0000d15c -_080F0B60: - ldr r0, _080F0BBC @ =0x00000306 - adds r1, r5, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0C20 - movs r0, 0 - strh r0, [r1] - ldrh r0, [r6] - cmp r0, 0x7 - bhi _080F0BCC - ldr r0, _080F0BC0 @ =0x00008778 - adds r1, r5, r0 - ldrh r2, [r6] - lsls r0, r2, 1 - ldrh r1, [r1] - adds r4, r0, r1 - movs r0, 0x1F - ands r4, r0 - ldr r1, _080F0BC4 @ =0x0000876c - adds r0, r5, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r2, r0 - beq _080F0BAA - ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - adds r1, r4, 0 - adds r3, r1, 0x1 - movs r0, 0xC - movs r2, 0x1F - bl MenuZeroFillWindowRect -_080F0BAA: - ldrh r0, [r6] - cmp r0, 0 - bne _080F0BB4 - bl sub_80F08E4 -_080F0BB4: - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - b _080F0C20 - .align 2, 0 -_080F0BBC: .4byte 0x00000306 -_080F0BC0: .4byte 0x00008778 -_080F0BC4: .4byte 0x0000876c -_080F0BC8: .4byte gWindowConfig_81E70D4 -_080F0BCC: - ldr r0, _080F0C10 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - ldr r1, _080F0C14 @ =0x00008778 - adds r0, r5, r1 - ldrh r0, [r0] - adds r4, r0, 0 - adds r4, 0x10 - movs r0, 0x1F - ands r4, r0 - movs r5, 0 -_080F0BE2: - adds r3, r4, 0x1 - movs r0, 0xC - adds r1, r4, 0 - movs r2, 0x1F - bl MenuZeroFillWindowRect - adds r4, 0x2 - movs r0, 0x1F - ands r4, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _080F0BE2 - ldr r0, _080F0C18 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0C1C @ =0x0000d15c - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080F0C22 - .align 2, 0 -_080F0C10: .4byte gWindowConfig_81E70D4 -_080F0C14: .4byte 0x00008778 -_080F0C18: .4byte gUnknown_083DFEC4 -_080F0C1C: .4byte 0x0000d15c -_080F0C20: - movs r0, 0x1 -_080F0C22: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0B44 - - thumb_func_start sub_80F0C28 -sub_80F0C28: @ 80F0C28 - ldr r0, _080F0C3C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0C40 @ =0x0000d15c - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _080F0C44 @ =0x00000306 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_080F0C3C: .4byte gUnknown_083DFEC4 -_080F0C40: .4byte 0x0000d15c -_080F0C44: .4byte 0x00000306 - thumb_func_end sub_80F0C28 - - thumb_func_start sub_80F0C48 -sub_80F0C48: @ 80F0C48 - push {r4-r6,lr} - ldr r0, _080F0C5C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F0C60 @ =0x0000d15c - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0x7 - bls _080F0C64 - movs r0, 0 - b _080F0CD2 - .align 2, 0 -_080F0C5C: .4byte gUnknown_083DFEC4 -_080F0C60: .4byte 0x0000d15c -_080F0C64: - ldr r2, _080F0CBC @ =0x00000306 - adds r1, r4, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r2, _080F0CC0 @ =0x0000ffff - adds r6, r2, 0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0CD0 - movs r0, 0 - strh r0, [r1] - ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - ldr r0, _080F0CC8 @ =0x00008770 - adds r1, r4, r0 - ldrh r0, [r5] - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080F0CCC @ =0x00008778 - adds r2, r4, r1 - ldrh r1, [r5] - lsls r1, 1 - ldrh r2, [r2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - bl sub_80F0A74 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - ands r0, r6 - cmp r0, 0x7 - bls _080F0CD0 - movs r0, 0 - bl sub_80F081C - movs r0, 0 - b _080F0CD2 - .align 2, 0 -_080F0CBC: .4byte 0x00000306 -_080F0CC0: .4byte 0x0000ffff -_080F0CC4: .4byte gWindowConfig_81E70D4 -_080F0CC8: .4byte 0x00008770 -_080F0CCC: .4byte 0x00008778 -_080F0CD0: - movs r0, 0x1 -_080F0CD2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0C48 - - thumb_func_start sub_80F0CD8 -sub_80F0CD8: @ 80F0CD8 - push {r4,r5,lr} - ldr r4, _080F0D40 @ =gUnknown_083DFEC4 - ldr r1, [r4] - ldr r2, _080F0D44 @ =0x00000306 - adds r0, r1, r2 - movs r2, 0 - strh r2, [r0] - ldr r3, _080F0D48 @ =0x0000d15c - adds r0, r1, r3 - strh r2, [r0] - ldr r2, _080F0D4C @ =0x0000876e - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r0, 3 - adds r0, r1, r0 - ldr r2, _080F0D50 @ =0x0000ceec - adds r0, r2 - ldrb r0, [r0] - ldr r3, _080F0D54 @ =0x0000d110 - adds r1, r3 - ldr r2, _080F0D58 @ =gTrainerEyeDescriptions - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - adds r2, r0, 0 - movs r1, 0 - adds r5, r4, 0 - adds r4, r3, 0 -_080F0D14: - ldrb r0, [r2] - adds r3, r1, 0x1 - cmp r0, 0xFF - beq _080F0D24 -_080F0D1C: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080F0D1C -_080F0D24: - ldr r0, [r5] - lsls r1, r3, 2 - adds r0, r4 - adds r0, r1 - adds r2, 0x1 - str r2, [r0] - lsls r0, r3, 16 - lsrs r1, r0, 16 - cmp r1, 0x2 - bls _080F0D14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F0D40: .4byte gUnknown_083DFEC4 -_080F0D44: .4byte 0x00000306 -_080F0D48: .4byte 0x0000d15c -_080F0D4C: .4byte 0x0000876e -_080F0D50: .4byte 0x0000ceec -_080F0D54: .4byte 0x0000d110 -_080F0D58: .4byte gTrainerEyeDescriptions - thumb_func_end sub_80F0CD8 - - thumb_func_start sub_80F0D5C -sub_80F0D5C: @ 80F0D5C - push {r4,r5,lr} - ldr r0, _080F0D70 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F0D74 @ =0x0000d15c - adds r5, r4, r0 - ldrh r0, [r5] - cmp r0, 0x7 - bne _080F0D78 -_080F0D6C: - movs r0, 0 - b _080F0EB0 - .align 2, 0 -_080F0D70: .4byte gUnknown_083DFEC4 -_080F0D74: .4byte 0x0000d15c -_080F0D78: - ldr r0, _080F0DB8 @ =0x00000306 - adds r1, r4, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080F0D8C - b _080F0EAE -_080F0D8C: - movs r0, 0 - strh r0, [r1] - ldr r0, _080F0DBC @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - ldr r0, _080F0DC0 @ =0x00008778 - adds r1, r4, r0 - ldrh r3, [r5] - lsls r0, r3, 1 - adds r0, 0x2 - ldrh r1, [r1] - adds r5, r0, r1 - movs r0, 0x1F - ands r5, r0 - cmp r3, 0x6 - bhi _080F0D6C - lsls r0, r3, 2 - ldr r1, _080F0DC4 @ =_080F0DC8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F0DB8: .4byte 0x00000306 -_080F0DBC: .4byte gWindowConfig_81E70D4 -_080F0DC0: .4byte 0x00008778 -_080F0DC4: .4byte _080F0DC8 - .align 2, 0 -_080F0DC8: - .4byte _080F0DE4 - .4byte _080F0DF0 - .4byte _080F0E08 - .4byte _080F0E14 - .4byte _080F0E2C - .4byte _080F0E38 - .4byte _080F0E6C -_080F0DE4: - ldr r0, _080F0DEC @ =gOtherText_Strategy - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0DEC: .4byte gOtherText_Strategy -_080F0DF0: - ldr r0, _080F0DFC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0E00 @ =0x00008788 - adds r4, r0, r1 - ldr r1, _080F0E04 @ =0x0000d110 - b _080F0E42 - .align 2, 0 -_080F0DFC: .4byte gUnknown_083DFEC4 -_080F0E00: .4byte 0x00008788 -_080F0E04: .4byte 0x0000d110 -_080F0E08: - ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0E10: .4byte gOtherText_TrainersPokemon -_080F0E14: - ldr r0, _080F0E20 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0E24 @ =0x00008788 - adds r4, r0, r1 - ldr r1, _080F0E28 @ =0x0000d114 - b _080F0E42 - .align 2, 0 -_080F0E20: .4byte gUnknown_083DFEC4 -_080F0E24: .4byte 0x00008788 -_080F0E28: .4byte 0x0000d114 -_080F0E2C: - ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction - lsls r2, r5, 3 - b _080F0E54 - .align 2, 0 -_080F0E34: .4byte gOtherText_SelfIntroduction -_080F0E38: - ldr r0, _080F0E60 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0E64 @ =0x00008788 - adds r4, r0, r1 - ldr r1, _080F0E68 @ =0x0000d118 -_080F0E42: - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x88 - movs r3, 0 - bl sub_8072C74 - lsls r2, r5, 3 - adds r0, r4, 0 -_080F0E54: - movs r1, 0x61 - movs r3, 0 - bl MenuPrint_PixelCoords - b _080F0EA0 - .align 2, 0 -_080F0E60: .4byte gUnknown_083DFEC4 -_080F0E64: .4byte 0x00008788 -_080F0E68: .4byte 0x0000d118 -_080F0E6C: - ldr r0, _080F0E94 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F0E98 @ =0x00008788 - adds r4, r0, r1 - ldr r1, _080F0E9C @ =0x0000d11c - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x88 - movs r3, 0 - bl sub_8072C74 - lsls r2, r5, 3 - adds r0, r4, 0 - movs r1, 0x61 - movs r3, 0 - bl MenuPrint_PixelCoords - b _080F0D6C - .align 2, 0 -_080F0E94: .4byte gUnknown_083DFEC4 -_080F0E98: .4byte 0x00008788 -_080F0E9C: .4byte 0x0000d11c -_080F0EA0: - ldr r0, _080F0EB8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F0EBC @ =0x0000d15c - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F0EAE: - movs r0, 0x1 -_080F0EB0: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F0EB8: .4byte gUnknown_083DFEC4 -_080F0EBC: .4byte 0x0000d15c - thumb_func_end sub_80F0D5C - - thumb_func_start sub_80F0EC0 -sub_80F0EC0: @ 80F0EC0 - push {lr} - ldr r0, _080F0EE4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F0EE8 @ =0x00000306 - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r3, _080F0EEC @ =0x0000d15c - adds r1, r0, r3 - strh r2, [r1] - ldr r1, _080F0EF0 @ =0x00008788 - adds r0, r1 - movs r1, 0 - movs r2, 0x10 - bl StringFill - pop {r0} - bx r0 - .align 2, 0 -_080F0EE4: .4byte gUnknown_083DFEC4 -_080F0EE8: .4byte 0x00000306 -_080F0EEC: .4byte 0x0000d15c -_080F0EF0: .4byte 0x00008788 - thumb_func_end sub_80F0EC0 - - thumb_func_start sub_80F0EF4 -sub_80F0EF4: @ 80F0EF4 - push {r4,r5,lr} - ldr r0, _080F0F08 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F0F0C @ =0x0000d15c - adds r5, r2, r0 - ldrh r0, [r5] - cmp r0, 0x6 - bls _080F0F10 - movs r0, 0 - b _080F0F52 - .align 2, 0 -_080F0F08: .4byte gUnknown_083DFEC4 -_080F0F0C: .4byte 0x0000d15c -_080F0F10: - ldr r0, _080F0F58 @ =0x00000306 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080F0F50 - movs r0, 0 - strh r0, [r1] - ldr r1, _080F0F5C @ =0x00008778 - adds r0, r2, r1 - ldrh r4, [r5] - lsls r4, 1 - adds r4, 0x2 - ldrh r0, [r0] - adds r4, r0 - movs r0, 0x1F - ands r4, r0 - ldr r0, _080F0F60 @ =gWindowConfig_81E70D4 - bl BasicInitMenuWindow - adds r3, r4, 0x1 - movs r0, 0xC - adds r1, r4, 0 - movs r2, 0x1F - bl MenuZeroFillWindowRect - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F0F50: - movs r0, 0x1 -_080F0F52: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F0F58: .4byte 0x00000306 -_080F0F5C: .4byte 0x00008778 -_080F0F60: .4byte gWindowConfig_81E70D4 - thumb_func_end sub_80F0EF4 - - thumb_func_start sub_80F0F64 -sub_80F0F64: @ 80F0F64 - push {r4,lr} - ldr r0, _080F0F90 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r1, _080F0F94 @ =0x0000876c - adds r0, r3, r1 - movs r4, 0 - ldrsh r2, [r0, r4] - lsls r1, r2, 4 - ldr r4, _080F0F98 @ =0x0000877c - adds r0, r3, r4 - strh r1, [r0] - movs r1, 0x8 - cmp r2, 0x1 - bne _080F0F82 - movs r1, 0x4 -_080F0F82: - ldr r2, _080F0F9C @ =0x0000877a - adds r0, r3, r2 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0F90: .4byte gUnknown_083DFEC4 -_080F0F94: .4byte 0x0000876c -_080F0F98: .4byte 0x0000877c -_080F0F9C: .4byte 0x0000877a - thumb_func_end sub_80F0F64 - - thumb_func_start sub_80F0FA0 -sub_80F0FA0: @ 80F0FA0 - push {r4,lr} - ldr r0, _080F0FDC @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r1, _080F0FE0 @ =0x0000876c - adds r0, r3, r1 - movs r4, 0 - ldrsh r0, [r0, r4] - negs r0, r0 - lsls r0, 16 - asrs r0, 16 - lsls r2, r0, 4 - ldr r4, _080F0FE4 @ =0x0000877c - adds r1, r3, r4 - strh r2, [r1] - movs r1, 0x1 - negs r1, r1 - movs r4, 0x8 - negs r4, r4 - adds r2, r4, 0 - cmp r0, r1 - bne _080F0FD0 - movs r0, 0x4 - negs r0, r0 - adds r2, r0, 0 -_080F0FD0: - ldr r1, _080F0FE8 @ =0x0000877a - adds r0, r3, r1 - strh r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F0FDC: .4byte gUnknown_083DFEC4 -_080F0FE0: .4byte 0x0000876c -_080F0FE4: .4byte 0x0000877c -_080F0FE8: .4byte 0x0000877a - thumb_func_end sub_80F0FA0 - - thumb_func_start sub_80F0FEC -sub_80F0FEC: @ 80F0FEC - push {lr} - bl sub_80F0718 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F0FEC - - thumb_func_start sub_80F0FFC -sub_80F0FFC: @ 80F0FFC - push {r4,r5,lr} - lsls r0, 24 - ldr r1, _080F1048 @ =gUnknown_083DFEC4 - ldr r4, [r1] - ldr r1, _080F104C @ =0x00008788 - adds r5, r4, r1 - lsrs r0, 21 - adds r0, r4, r0 - ldr r1, _080F1050 @ =0x0000ceea - adds r0, r1 - ldrh r1, [r0] - adds r0, r5, 0 - movs r2, 0 - bl sub_80FBFB4 - ldr r0, _080F1054 @ =gWindowConfig_81E710C - bl BasicInitMenuWindow - adds r0, r5, 0 - bl sub_80F19DC - ldr r0, _080F1058 @ =0x0000d138 - adds r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x58 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x5 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1048: .4byte gUnknown_083DFEC4 -_080F104C: .4byte 0x00008788 -_080F1050: .4byte 0x0000ceea -_080F1054: .4byte gWindowConfig_81E710C -_080F1058: .4byte 0x0000d138 - thumb_func_end sub_80F0FFC - - thumb_func_start sub_80F105C -sub_80F105C: @ 80F105C - push {lr} - ldr r0, _080F1078 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F107C @ =0x0000876e - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, 0xA - adds r1, r2 - ldrh r1, [r1] - bl sub_80F0A74 - pop {r0} - bx r0 - .align 2, 0 -_080F1078: .4byte gUnknown_083DFEC4 -_080F107C: .4byte 0x0000876e - thumb_func_end sub_80F105C - - thumb_func_start sub_80F1080 -sub_80F1080: @ 80F1080 - push {r4,lr} - ldr r1, _080F10A0 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F10A4 @ =0x0000d160 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0xE - bls _080F1094 - b _080F1204 -_080F1094: - lsls r0, 2 - ldr r1, _080F10A8 @ =_080F10AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F10A0: .4byte gUnknown_083DFEC4 -_080F10A4: .4byte 0x0000d160 -_080F10A8: .4byte _080F10AC - .align 2, 0 -_080F10AC: - .4byte _080F10E8 - .4byte _080F1104 - .4byte _080F1110 - .4byte _080F111C - .4byte _080F1128 - .4byte _080F112E - .4byte _080F1134 - .4byte _080F1142 - .4byte _080F1160 - .4byte _080F1166 - .4byte _080F116C - .4byte _080F1180 - .4byte _080F1194 - .4byte _080F11DC - .4byte _080F11E2 -_080F10E8: - bl sub_80EEDE8 - ldr r0, _080F10FC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080F1100 @ =0x0000d162 - adds r0, r3 - movs r1, 0xB - strb r1, [r0] - b _080F1218 - .align 2, 0 -_080F10FC: .4byte gUnknown_083DFEC4 -_080F1100: .4byte 0x0000d162 -_080F1104: - ldr r0, _080F110C @ =gWindowConfig_81E70B8 - bl SetUpWindowConfig - b _080F1218 - .align 2, 0 -_080F110C: .4byte gWindowConfig_81E70B8 -_080F1110: - ldr r0, _080F1118 @ =gWindowConfig_81E70B8 - bl MultistepInitMenuWindowBegin - b _080F1218 - .align 2, 0 -_080F1118: .4byte gWindowConfig_81E70B8 -_080F111C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F1126 - b _080F1218 -_080F1126: - b _080F1226 -_080F1128: - bl MenuZeroFillScreen - b _080F1218 -_080F112E: - bl sub_80F1614 - b _080F1218 -_080F1134: - movs r0, 0x1 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - beq _080F1218 - b _080F1226 -_080F1142: - ldr r0, _080F1154 @ =gUnknown_08E9FBA0 - ldr r1, _080F1158 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F115C @ =0x0000934c - adds r1, r2 - bl LZ77UnCompWram - b _080F1218 - .align 2, 0 -_080F1154: .4byte gUnknown_08E9FBA0 -_080F1158: .4byte gUnknown_083DFEC4 -_080F115C: .4byte 0x0000934c -_080F1160: - bl sub_80F1238 - b _080F1218 -_080F1166: - bl sub_80F13FC - b _080F1218 -_080F116C: - ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx - ldr r1, _080F117C @ =0x06008000 - bl LZ77UnCompVram - b _080F1218 - .align 2, 0 -_080F1178: .4byte gPokenavRibbonView_Gfx -_080F117C: .4byte 0x06008000 -_080F1180: - ldr r0, _080F118C @ =gUnknown_083E040C - ldr r1, _080F1190 @ =0x06008200 - bl LZ77UnCompVram - b _080F1218 - .align 2, 0 -_080F118C: .4byte gUnknown_083E040C -_080F1190: .4byte 0x06008200 -_080F1194: - ldr r0, _080F11CC @ =gPokenavRibbonView_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F11D0 @ =gUnknown_083E03A8 - adds r0, r4, 0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F11D4 @ =gUnknown_083E3C60 - movs r1, 0x30 - movs r2, 0xA0 - bl LoadPalette - ldr r0, _080F11D8 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - adds r4, 0x1E - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - b _080F1218 - .align 2, 0 -_080F11CC: .4byte gPokenavRibbonView_Pal -_080F11D0: .4byte gUnknown_083E03A8 -_080F11D4: .4byte gUnknown_083E3C60 -_080F11D8: .4byte gUnknownPalette_81E6692 -_080F11DC: - bl sub_80F1438 - b _080F1218 -_080F11E2: - ldr r1, _080F1208 @ =REG_BG2CNT - ldr r3, _080F120C @ =0x00001e02 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080F1210 @ =0x0000170b - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x42 - movs r0, 0 - strh r0, [r1] - ldr r1, [r2] - ldr r0, _080F1214 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1204: - movs r0, 0 - b _080F1228 - .align 2, 0 -_080F1208: .4byte REG_BG2CNT -_080F120C: .4byte 0x00001e02 -_080F1210: .4byte 0x0000170b -_080F1214: .4byte 0x0000d160 -_080F1218: - ldr r0, _080F1230 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F1234 @ =0x0000d160 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1226: - movs r0, 0x1 -_080F1228: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F1230: .4byte gUnknown_083DFEC4 -_080F1234: .4byte 0x0000d160 - thumb_func_end sub_80F1080 - - thumb_func_start sub_80F1238 -sub_80F1238: @ 80F1238 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r6, 0x8B - ldr r0, _080F1318 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F131C @ =0x0000bc8e - adds r0, r2, r1 - ldr r3, _080F1320 @ =0x0000bc8f - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r7, 0 - mov r5, sp - adds r4, r2, 0 -_080F1264: - movs r1, 0x80 - lsls r1, 6 - adds r0, r1, 0 - strh r0, [r5] - lsls r1, r7, 5 - adds r1, r6, r1 - lsls r1, 1 - ldr r2, _080F1324 @ =0x0000934c - adds r1, r2 - adds r1, r4, r1 - mov r0, sp - ldr r2, _080F1328 @ =0x01000012 - bl CpuSet - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x7 - bls _080F1264 - ldr r3, [sp, 0x4] - lsls r0, r3, 16 - movs r7, 0 - mov r9, r0 - cmp r0, 0 - beq _080F1342 - ldr r0, _080F1318 @ =gUnknown_083DFEC4 - ldr r0, [r0] - mov r8, r0 - ldr r1, _080F132C @ =gUnknown_083E4698 - mov r10, r1 - ldr r5, _080F1324 @ =0x0000934c - add r5, r8 -_080F12A4: - ldr r0, _080F1330 @ =0x0000bc4c - add r0, r8 - adds r0, r7 - ldrb r1, [r0] - lsls r1, 2 - mov r0, r10 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r2, 0x3 - lsls r2, 24 - add r1, r10 - ldrh r0, [r1] - lsls r0, 25 - movs r3, 0x80 - lsls r3, 21 - adds r0, r3 - lsrs r4, r0, 24 - lsls r1, r6, 1 - adds r1, r5, r1 - lsrs r2, 12 - adds r0, r2, 0 - orrs r0, r4 - strh r0, [r1] - adds r1, r6, 0x1 - lsls r1, 1 - adds r1, r5, r1 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - adds r3, r2, 0 - orrs r3, r0 - adds r0, r3, 0 - orrs r0, r4 - strh r0, [r1] - adds r0, r6, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r5, r0 - adds r1, r4, 0x1 - orrs r2, r1 - strh r2, [r0] - adds r0, r6, 0 - adds r0, 0x21 - lsls r0, 1 - adds r0, r5, r0 - orrs r3, r1 - strh r3, [r0] - adds r4, r7, 0x1 - adds r0, r4, 0 - movs r1, 0x9 - bl __modsi3 - cmp r0, 0 - bne _080F1334 - adds r0, r6, 0 - adds r0, 0x30 - b _080F1336 - .align 2, 0 -_080F1318: .4byte gUnknown_083DFEC4 -_080F131C: .4byte 0x0000bc8e -_080F1320: .4byte 0x0000bc8f -_080F1324: .4byte 0x0000934c -_080F1328: .4byte 0x01000012 -_080F132C: .4byte gUnknown_083E4698 -_080F1330: .4byte 0x0000bc4c -_080F1334: - adds r0, r6, 0x2 -_080F1336: - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r4, 16 - lsrs r7, r0, 16 - cmp r0, r9 - bcc _080F12A4 -_080F1342: - ldr r6, _080F13E8 @ =0x0000014b - movs r7, 0 - ldr r1, _080F13EC @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F13F0 @ =0x0000bc8f - adds r1, r0, r2 - ldrb r3, [r1] - cmp r7, r3 - bcs _080F13D8 - subs r2, 0x43 - adds r2, r0 - mov r10, r2 - ldr r3, _080F13F4 @ =gUnknown_083E4698 - mov r8, r3 - ldr r2, _080F13F8 @ =0x0000934c - adds r5, r0, r2 - mov r9, r1 -_080F1364: - ldr r3, [sp, 0x4] - adds r0, r3, r7 - add r0, r10 - ldrb r1, [r0] - lsls r1, 2 - mov r0, r8 - adds r0, 0x2 - adds r0, r1, r0 - ldrb r2, [r0] - adds r2, 0x3 - lsls r2, 24 - add r1, r8 - ldrh r0, [r1] - lsls r0, 25 - movs r1, 0x80 - lsls r1, 21 - adds r0, r1 - lsrs r4, r0, 24 - lsls r1, r6, 1 - adds r1, r5, r1 - lsrs r2, 12 - adds r0, r2, 0 - orrs r0, r4 - strh r0, [r1] - adds r1, r6, 0x1 - lsls r1, 1 - adds r1, r5, r1 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - adds r3, r2, 0 - orrs r3, r0 - adds r0, r3, 0 - orrs r0, r4 - strh r0, [r1] - adds r0, r6, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r5, r0 - adds r1, r4, 0x1 - orrs r2, r1 - strh r2, [r0] - adds r0, r6, 0 - adds r0, 0x21 - lsls r0, 1 - adds r0, r5, r0 - orrs r3, r1 - strh r3, [r0] - adds r0, r6, 0x2 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r9 - ldrb r0, [r0] - cmp r7, r0 - bcc _080F1364 -_080F13D8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F13E8: .4byte 0x0000014b -_080F13EC: .4byte gUnknown_083DFEC4 -_080F13F0: .4byte 0x0000bc8f -_080F13F4: .4byte gUnknown_083E4698 -_080F13F8: .4byte 0x0000934c - thumb_func_end sub_80F1238 - - thumb_func_start sub_80F13FC -sub_80F13FC: @ 80F13FC - ldr r0, _080F141C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F1420 @ =0x0000934c - adds r0, r1 - ldr r2, _080F1424 @ =0x0600b800 - ldr r1, _080F1428 @ =0x040000d4 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080F142C @ =0x84000140 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _080F1430 @ =gPlttBufferUnfaded - ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C - ldrh r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_080F141C: .4byte gUnknown_083DFEC4 -_080F1420: .4byte 0x0000934c -_080F1424: .4byte 0x0600b800 -_080F1428: .4byte 0x040000d4 -_080F142C: .4byte 0x84000140 -_080F1430: .4byte gPlttBufferUnfaded -_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C - thumb_func_end sub_80F13FC - - thumb_func_start sub_80F1438 -sub_80F1438: @ 80F1438 - push {r4,r5,lr} - ldr r0, _080F1470 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F1474 @ =0x00008829 - adds r0, r4, r1 - movs r1, 0xD - movs r2, 0x1 - bl MenuPrint - ldr r0, _080F1478 @ =0x00008788 - adds r5, r4, r0 - ldr r1, _080F147C @ =0x0000876e - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_80F445C - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x5 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1470: .4byte gUnknown_083DFEC4 -_080F1474: .4byte 0x00008829 -_080F1478: .4byte 0x00008788 -_080F147C: .4byte 0x0000876e - thumb_func_end sub_80F1438 - - thumb_func_start sub_80F1480 -sub_80F1480: @ 80F1480 - push {lr} - movs r0, 0xC - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x10 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80F1480 - - thumb_func_start sub_80F1494 -sub_80F1494: @ 80F1494 - push {r4-r7,lr} - ldr r0, _080F14D4 @ =gUnknown_083DFEC8 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 4 - adds r6, r0, r1 - ldr r2, _080F14D8 @ =0x00000a98 - adds r7, r0, r2 - ldr r0, _080F14DC @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r4, _080F14E0 @ =0x0000bc91 - adds r1, r3, r4 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _080F14F0 - ldr r5, _080F14E4 @ =gUnknown_020388B4 - adds r1, r0, 0 - lsls r0, r1, 3 - subs r4, 0x1 - adds r2, r3, r4 - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - strh r0, [r5] - ldr r1, _080F14E8 @ =0x0000bc4c - adds r0, r3, r1 - ldrh r2, [r5] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r5] - ldr r4, _080F14EC @ =gRibbonDescriptions - b _080F152E - .align 2, 0 -_080F14D4: .4byte gUnknown_083DFEC8 -_080F14D8: .4byte 0x00000a98 -_080F14DC: .4byte gUnknown_083DFEC4 -_080F14E0: .4byte 0x0000bc91 -_080F14E4: .4byte gUnknown_020388B4 -_080F14E8: .4byte 0x0000bc4c -_080F14EC: .4byte gRibbonDescriptions -_080F14F0: - ldr r5, _080F1558 @ =gUnknown_020388B4 - ldr r4, _080F155C @ =0x0000bc8e - adds r0, r3, r4 - ldrb r0, [r0] - ldr r2, _080F1560 @ =0x0000bc8f - adds r1, r3, r2 - ldrb r1, [r1] - subs r0, r1 - strh r0, [r5] - ldrh r1, [r5] - adds r4, 0x2 - adds r0, r3, r4 - ldrb r0, [r0] - adds r1, r0 - subs r2, 0x43 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5] - ldr r0, _080F1564 @ =gSaveBlock1 - ldrh r1, [r5] - adds r0, r1 - ldr r4, _080F1568 @ =0x000030f7 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r5] - cmp r0, 0 - beq _080F1570 - subs r0, 0x1 - strh r0, [r5] - ldr r4, _080F156C @ =gGiftRibbonDescriptions -_080F152E: - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4 - ldr r1, [r0] - adds r0, r6, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - ldrh r0, [r5] - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - b _080F158A - .align 2, 0 -_080F1558: .4byte gUnknown_020388B4 -_080F155C: .4byte 0x0000bc8e -_080F1560: .4byte 0x0000bc8f -_080F1564: .4byte gSaveBlock1 -_080F1568: .4byte 0x000030f7 -_080F156C: .4byte gGiftRibbonDescriptions -_080F1570: - ldr r4, _080F15A4 @ =gEmptyString_81E72B0 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x80 - movs r3, 0 - bl sub_8072C74 -_080F158A: - adds r0, r6, 0 - movs r1, 0xC - movs r2, 0xD - bl MenuPrint - adds r0, r7, 0 - movs r1, 0xC - movs r2, 0xF - bl MenuPrint - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F15A4: .4byte gEmptyString_81E72B0 - thumb_func_end sub_80F1494 - - thumb_func_start sub_80F15A8 -sub_80F15A8: @ 80F15A8 - push {r4,r5,lr} - movs r0, 0xC - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x10 - bl MenuZeroFillWindowRect - ldr r0, _080F1600 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F1604 @ =0x00008788 - adds r5, r4, r0 - ldr r1, _080F1608 @ =gOtherText_Ribbons - adds r0, r5, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - ldr r1, _080F160C @ =0x000087dc - adds r0, r4, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 2 - adds r4, r0 - ldr r0, _080F1610 @ =0x0000893c - adds r4, r0 - ldrb r1, [r4] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - movs r0, 0xFF - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0xD - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1600: .4byte gUnknown_083DFEC4 -_080F1604: .4byte 0x00008788 -_080F1608: .4byte gOtherText_Ribbons -_080F160C: .4byte 0x000087dc -_080F1610: .4byte 0x0000893c - thumb_func_end sub_80F15A8 - - thumb_func_start sub_80F1614 -sub_80F1614: @ 80F1614 - ldr r0, _080F1624 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F1628 @ =0x00008764 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080F1624: .4byte gUnknown_083DFEC4 -_080F1628: .4byte 0x00008764 - thumb_func_end sub_80F1614 - - thumb_func_start sub_80F162C -sub_80F162C: @ 80F162C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F164C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F1650 @ =0x00008764 - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F165E - cmp r0, 0x1 - bgt _080F1654 - cmp r0, 0 - beq _080F16F0 - b _080F16D0 - .align 2, 0 -_080F164C: .4byte gUnknown_083DFEC4 -_080F1650: .4byte 0x00008764 -_080F1654: - cmp r0, 0x2 - beq _080F1670 - cmp r0, 0x3 - beq _080F1694 - b _080F16D0 -_080F165E: - ldr r0, _080F1668 @ =gUnknown_08E9FF58 - ldr r1, _080F166C @ =0x0600e800 - bl LZ77UnCompVram - b _080F16F0 - .align 2, 0 -_080F1668: .4byte gUnknown_08E9FF58 -_080F166C: .4byte 0x0600e800 -_080F1670: - ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx - ldr r2, _080F1688 @ =0x0600e000 - ldr r0, _080F168C @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _080F1690 @ =0x80000070 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _080F16F0 - .align 2, 0 -_080F1684: .4byte gPokenavRibbonPokeView_Gfx -_080F1688: .4byte 0x0600e000 -_080F168C: .4byte 0x040000d4 -_080F1690: .4byte 0x80000070 -_080F1694: - cmp r1, 0 - bne _080F16A8 - ldr r0, _080F16A4 @ =gUnknown_083E0124 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - b _080F16B2 - .align 2, 0 -_080F16A4: .4byte gUnknown_083E0124 -_080F16A8: - ldr r0, _080F16D4 @ =gUnknown_083E0144 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette -_080F16B2: - ldr r0, _080F16D8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r3, _080F16DC @ =0x00008766 - adds r2, r1, r3 - ldr r0, _080F16E0 @ =0x0000ffb0 - strh r0, [r2] - ldr r2, _080F16E4 @ =REG_BG0CNT - ldr r3, _080F16E8 @ =0x00001d0d - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _080F16EC @ =0x00008764 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F16D0: - movs r0, 0 - b _080F1700 - .align 2, 0 -_080F16D4: .4byte gUnknown_083E0144 -_080F16D8: .4byte gUnknown_083DFEC4 -_080F16DC: .4byte 0x00008766 -_080F16E0: .4byte 0x0000ffb0 -_080F16E4: .4byte REG_BG0CNT -_080F16E8: .4byte 0x00001d0d -_080F16EC: .4byte 0x00008764 -_080F16F0: - ldr r0, _080F1704 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F1708 @ =0x00008764 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1700: - pop {r1} - bx r1 - .align 2, 0 -_080F1704: .4byte gUnknown_083DFEC4 -_080F1708: .4byte 0x00008764 - thumb_func_end sub_80F162C - - thumb_func_start sub_80F170C -sub_80F170C: @ 80F170C - push {lr} - ldr r0, _080F1734 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F1738 @ =0x00008766 - adds r1, r0, r2 - ldrh r0, [r1] - adds r0, 0x10 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - ble _080F1726 - movs r0, 0 - strh r0, [r1] -_080F1726: - movs r0, 0 - ldrsh r1, [r1, r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - .align 2, 0 -_080F1734: .4byte gUnknown_083DFEC4 -_080F1738: .4byte 0x00008766 - thumb_func_end sub_80F170C - - thumb_func_start sub_80F173C -sub_80F173C: @ 80F173C - push {lr} - ldr r0, _080F176C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F1770 @ =0x00008766 - adds r1, r0, r2 - ldrh r0, [r1] - subs r0, 0x10 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x50 - negs r2, r2 - cmp r0, r2 - bge _080F175C - ldr r0, _080F1774 @ =0x0000ffb0 - strh r0, [r1] -_080F175C: - movs r0, 0 - ldrsh r1, [r1, r0] - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r1} - bx r1 - .align 2, 0 -_080F176C: .4byte gUnknown_083DFEC4 -_080F1770: .4byte 0x00008766 -_080F1774: .4byte 0x0000ffb0 - thumb_func_end sub_80F173C - - thumb_func_start sub_80F1778 -sub_80F1778: @ 80F1778 - push {r4,lr} - sub sp, 0x14 - ldr r0, _080F1798 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F179C @ =0x0000d160 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x9 - bls _080F178C - b _080F1910 -_080F178C: - lsls r0, 2 - ldr r1, _080F17A0 @ =_080F17A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F1798: .4byte gUnknown_083DFEC4 -_080F179C: .4byte 0x0000d160 -_080F17A0: .4byte _080F17A4 - .align 2, 0 -_080F17A4: - .4byte _080F17CC - .4byte _080F17E8 - .4byte _080F17EE - .4byte _080F17FE - .4byte _080F1810 - .4byte _080F1830 - .4byte _080F1858 - .4byte _080F186C - .4byte _080F18B8 - .4byte _080F18D8 -_080F17CC: - bl sub_80EEDE8 - ldr r0, _080F17E0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F17E4 @ =0x0000d162 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0] - b _080F1914 - .align 2, 0 -_080F17E0: .4byte gUnknown_083DFEC4 -_080F17E4: .4byte 0x0000d162 -_080F17E8: - bl sub_80F1614 - b _080F1914 -_080F17EE: - movs r0, 0 - bl sub_80F162C - lsls r0, 24 - cmp r0, 0 - bne _080F17FC - b _080F1914 -_080F17FC: - b _080F1922 -_080F17FE: - ldr r0, _080F1808 @ =gPokenavConditionView_Gfx - ldr r1, _080F180C @ =0x06005000 - bl LZ77UnCompVram - b _080F1914 - .align 2, 0 -_080F1808: .4byte gPokenavConditionView_Gfx -_080F180C: .4byte 0x06005000 -_080F1810: - ldr r0, _080F1824 @ =gUnknown_08E9AC4C - ldr r1, _080F1828 @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - b _080F1914 - .align 2, 0 -_080F1824: .4byte gUnknown_08E9AC4C -_080F1828: .4byte 0x0600f000 -_080F182C: .4byte gPokenavConditionMenu2_Pal -_080F1830: - ldr r0, _080F1850 @ =0x0600f000 - ldr r3, _080F1854 @ =gUnknown_083E01F4 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r2, 0xC - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0xD - bl sub_8095C8C - b _080F1914 - .align 2, 0 -_080F1850: .4byte 0x0600f000 -_080F1854: .4byte gUnknown_083E01F4 -_080F1858: - ldr r0, _080F1864 @ =gUnknown_08E9FEB4 - ldr r1, _080F1868 @ =0x0600b800 - bl LZ77UnCompVram - b _080F1914 - .align 2, 0 -_080F1864: .4byte gUnknown_08E9FEB4 -_080F1868: .4byte 0x0600b800 -_080F186C: - ldr r0, _080F18AC @ =gUnknown_083E0254 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080F18B0 @ =gUnknownPalette_81E6692 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2 - adds r0, r4, 0 - movs r1, 0xB1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0xE - movs r1, 0xB5 - movs r2, 0x2 - bl LoadPalette - adds r4, 0x1C - adds r0, r4, 0 - movs r1, 0xBF - movs r2, 0x2 - bl LoadPalette - bl sub_80F01A4 - b _080F1914 - .align 2, 0 -_080F18AC: .4byte gUnknown_083E0254 -_080F18B0: .4byte gUnknownPalette_81E6692 -_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 -_080F18B8: - ldr r0, _080F18D0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F18D4 @ =0x00008fe9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F1914 - .align 2, 0 -_080F18D0: .4byte gUnknown_083DFEC4 -_080F18D4: .4byte 0x00008fe9 -_080F18D8: - ldr r1, _080F18FC @ =REG_BG3CNT - ldr r2, _080F1900 @ =0x00001e03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080F1904 @ =0x00001702 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - ldr r2, _080F1908 @ =0x00000844 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F190C @ =0x0000040b - adds r0, r2, 0 - strh r0, [r1] - b _080F1914 - .align 2, 0 -_080F18FC: .4byte REG_BG3CNT -_080F1900: .4byte 0x00001e03 -_080F1904: .4byte 0x00001702 -_080F1908: .4byte 0x00000844 -_080F190C: .4byte 0x0000040b -_080F1910: - movs r0, 0 - b _080F1924 -_080F1914: - ldr r0, _080F192C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F1930 @ =0x0000d160 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F1922: - movs r0, 0x1 -_080F1924: - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F192C: .4byte gUnknown_083DFEC4 -_080F1930: .4byte 0x0000d160 - thumb_func_end sub_80F1778 - - thumb_func_start sub_80F1934 -sub_80F1934: @ 80F1934 - push {r4,r5,lr} - ldr r0, _080F1990 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F1994 @ =0x00008788 - adds r5, r1, r0 - ldr r3, _080F1998 @ =0x000087dc - adds r2, r1, r3 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r0, 2 - adds r1, r0 - ldr r0, _080F199C @ =0x0000893f - adds r1, r0 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - bge _080F19AC - ldrb r0, [r2] - bl sub_8137124 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080F19A0 @ =gPlayerParty - adds r0, r1 - bl GetNature - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F19A4 @ =gOtherText_Nature2 - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - ldr r0, _080F19A8 @ =gNatureNames - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r5, 0 - movs r2, 0x57 - movs r3, 0 - bl sub_8072C74 - b _080F19B8 - .align 2, 0 -_080F1990: .4byte gUnknown_083DFEC4 -_080F1994: .4byte 0x00008788 -_080F1998: .4byte 0x000087dc -_080F199C: .4byte 0x0000893f -_080F19A0: .4byte gPlayerParty -_080F19A4: .4byte gOtherText_Nature2 -_080F19A8: .4byte gNatureNames -_080F19AC: - ldr r1, _080F19D0 @ =gEmptyString_81E72B0 - adds r0, r5, 0 - movs r2, 0x57 - movs r3, 0 - bl sub_8072C74 -_080F19B8: - ldr r0, _080F19D4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F19D8 @ =0x00008788 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x70 - movs r3, 0x1 - bl MenuPrint_PixelCoords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F19D0: .4byte gEmptyString_81E72B0 -_080F19D4: .4byte gUnknown_083DFEC4 -_080F19D8: .4byte 0x00008788 - thumb_func_end sub_80F1934 - - thumb_func_start sub_80F19DC -sub_80F19DC: @ 80F19DC - push {lr} - adds r1, r0, 0 - b _080F19E4 -_080F19E2: - adds r1, 0x1 -_080F19E4: - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F19F8 - cmp r0, 0xFC - bne _080F19E2 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080F19E2 - movs r0, 0xFF - strb r0, [r1] -_080F19F8: - pop {r0} - bx r0 - thumb_func_end sub_80F19DC - - thumb_func_start sub_80F19FC -sub_80F19FC: @ 80F19FC - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080F1A68 @ =gUnknown_020388B0 - ldrb r4, [r5] - cmp r4, 0x1 - bne _080F1A60 - ldr r0, _080F1A6C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F1A70 @ =0x00006e2c - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r1, [r1] - ldrb r2, [r5, 0x1] - bl sub_811A8CC - cmp r0, 0 - beq _080F1A46 - ldrb r2, [r5, 0x1] - lsls r2, 20 - movs r1, 0xC0 - lsls r1, 14 - adds r2, r1 - lsrs r2, 16 - str r4, [sp] - movs r1, 0x70 - movs r3, 0x78 - bl sub_8072A18 - ldrb r0, [r5, 0x1] - adds r0, 0x1 - strb r0, [r5, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080F1A60 -_080F1A46: - ldrb r1, [r5, 0x1] - lsls r1, 25 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1C - movs r3, 0xF - bl MenuFillWindowRectWithBlankTile - movs r0, 0 - strb r0, [r5] -_080F1A60: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F1A68: .4byte gUnknown_020388B0 -_080F1A6C: .4byte gUnknown_083DFEC4 -_080F1A70: .4byte 0x00006e2c - thumb_func_end sub_80F19FC - - thumb_func_start sub_80F1A74 -sub_80F1A74: @ 80F1A74 - ldr r1, _080F1A7C @ =gUnknown_020388B0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080F1A7C: .4byte gUnknown_020388B0 - thumb_func_end sub_80F1A74 - - thumb_func_start sub_80F1A80 -sub_80F1A80: @ 80F1A80 - ldr r0, _080F1A8C @ =gUnknown_020388B0 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F1A8C: .4byte gUnknown_020388B0 - thumb_func_end sub_80F1A80 - - thumb_func_start sub_80F1A90 -sub_80F1A90: @ 80F1A90 - push {lr} - ldr r0, _080F1AB8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F1ABC @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F1AC0 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F1AB2 -_080F1AA8: - bl sub_80F1AC4 - lsls r0, 24 - cmp r0, 0 - bne _080F1AA8 -_080F1AB2: - pop {r0} - bx r0 - .align 2, 0 -_080F1AB8: .4byte gUnknown_083DFEC4 -_080F1ABC: .4byte 0x00000306 -_080F1AC0: .4byte 0x00006dac - thumb_func_end sub_80F1A90 - - thumb_func_start sub_80F1AC4 -sub_80F1AC4: @ 80F1AC4 - push {r4,r5,lr} - ldr r0, _080F1AE0 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F1AE4 @ =0x00000306 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F1B34 - cmp r0, 0x1 - bgt _080F1AE8 - cmp r0, 0 - beq _080F1AF2 - b _080F1B6C - .align 2, 0 -_080F1AE0: .4byte gUnknown_083DFEC4 -_080F1AE4: .4byte 0x00000306 -_080F1AE8: - cmp r0, 0x2 - beq _080F1B40 - cmp r0, 0x3 - beq _080F1B54 - b _080F1B6C -_080F1AF2: - movs r0, 0 - movs r2, 0xC8 - lsls r2, 2 - adds r4, r1, r2 - movs r5, 0 -_080F1AFC: - movs r2, 0 - adds r1, r0, 0x1 - lsls r3, r0, 4 -_080F1B02: - lsls r0, r2, 2 - adds r0, r3 - adds r0, r4, r0 - str r5, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F1B02 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _080F1AFC - ldr r0, _080F1B2C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F1B30 @ =0x00000311 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _080F1B6C - .align 2, 0 -_080F1B2C: .4byte gUnknown_083DFEC4 -_080F1B30: .4byte 0x00000311 -_080F1B34: - ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx - movs r2, 0xE2 - lsls r2, 2 - b _080F1B44 - .align 2, 0 -_080F1B3C: .4byte gPokenavMenuOptions_Gfx -_080F1B40: - ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx - ldr r2, _080F1B50 @ =0x00001788 -_080F1B44: - adds r1, r2 - bl LZ77UnCompWram - b _080F1B6C - .align 2, 0 -_080F1B4C: .4byte gPokenavConditionMenu_Gfx -_080F1B50: .4byte 0x00001788 -_080F1B54: - ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx - ldr r2, _080F1B68 @ =0x00002388 - adds r1, r2 - bl LZ77UnCompWram - movs r0, 0 - b _080F1B7C - .align 2, 0 -_080F1B64: .4byte gPokenavConditionSearch_Gfx -_080F1B68: .4byte 0x00002388 -_080F1B6C: - ldr r0, _080F1B84 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F1B88 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1B7C: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F1B84: .4byte gUnknown_083DFEC4 -_080F1B88: .4byte 0x00000306 - thumb_func_end sub_80F1AC4 - - thumb_func_start sub_80F1B8C -sub_80F1B8C: @ 80F1B8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F1BBC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F1BC0 @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F1BC4 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F1BB4 -_080F1BA8: - adds r0, r4, 0 - bl sub_80F1BC8 - lsls r0, 24 - cmp r0, 0 - bne _080F1BA8 -_080F1BB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F1BBC: .4byte gUnknown_083DFEC4 -_080F1BC0: .4byte 0x00000306 -_080F1BC4: .4byte 0x00006dac - thumb_func_end sub_80F1B8C - - thumb_func_start sub_80F1BC8 -sub_80F1BC8: @ 80F1BC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080F1BF4 @ =gUnknown_083DFEC4 - ldr r2, [r1] - ldr r3, _080F1BF8 @ =0x00000306 - adds r0, r2, r3 - ldrh r0, [r0] - adds r3, r1, 0 - cmp r0, 0x1 - beq _080F1C0A - cmp r0, 0x1 - bgt _080F1BFC - cmp r0, 0 - beq _080F1C02 - b _080F1DC4 - .align 2, 0 -_080F1BF4: .4byte gUnknown_083DFEC4 -_080F1BF8: .4byte 0x00000306 -_080F1BFC: - cmp r0, 0x2 - beq _080F1C12 - b _080F1DC4 -_080F1C02: - mov r0, r9 - bl sub_80F2458 - b _080F1DC8 -_080F1C0A: - mov r0, r9 - bl sub_80F2514 - b _080F1DC8 -_080F1C12: - mov r4, r9 - cmp r4, 0x1 - beq _080F1C40 - cmp r4, 0x1 - bgt _080F1C22 - cmp r4, 0 - beq _080F1C2A - b _080F1DC4 -_080F1C22: - mov r5, r9 - cmp r5, 0x2 - beq _080F1C54 - b _080F1DC4 -_080F1C2A: - movs r0, 0x2A - str r0, [sp, 0x4] - movs r1, 0x14 - str r1, [sp, 0x8] - ldr r4, _080F1C3C @ =0x0000030e - adds r1, r2, r4 - movs r0, 0x5 - b _080F1C62 - .align 2, 0 -_080F1C3C: .4byte 0x0000030e -_080F1C40: - movs r5, 0x38 - str r5, [sp, 0x4] - movs r0, 0x14 - str r0, [sp, 0x8] - ldr r4, _080F1C50 @ =0x0000030e - adds r1, r2, r4 - movs r0, 0x3 - b _080F1C62 - .align 2, 0 -_080F1C50: .4byte 0x0000030e -_080F1C54: - movs r5, 0x28 - str r5, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - ldr r4, _080F1CDC @ =0x0000030e - adds r1, r2, r4 - movs r0, 0x6 -_080F1C62: - strb r0, [r1] - movs r5, 0 - str r5, [sp] - mov r8, r5 - adds r1, r3, 0 - ldr r0, [r1] - ldr r2, _080F1CDC @ =0x0000030e - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - blt _080F1C7E - b _080F1DC8 -_080F1C7E: - ldr r4, [sp, 0x8] - mov r3, r8 - muls r3, r4 - ldr r5, [sp, 0x4] - adds r0, r5, r3 - subs r0, 0x8 - lsls r0, 16 - lsrs r0, 16 - ldr r4, [r1] - mov r2, r8 - lsls r1, r2, 1 - movs r5, 0xC5 - lsls r5, 2 - adds r2, r4, r5 - adds r2, r1 - lsls r1, r0, 8 - adds r0, 0x11 - orrs r1, r0 - strh r1, [r2] - mov r0, r9 - cmp r0, 0 - bne _080F1CF2 - ldr r1, _080F1CE0 @ =0x00006db2 - adds r0, r4, r1 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080F1CE8 - movs r5, 0 - ldr r0, _080F1CE4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r2, 4 - movs r3, 0xC8 - lsls r3, 2 - adds r1, r0, r3 - movs r3, 0 -_080F1CC8: - lsls r0, r5, 2 - adds r0, r2 - adds r0, r1, r0 - str r3, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F1CC8 - b _080F1D92 - .align 2, 0 -_080F1CDC: .4byte 0x0000030e -_080F1CE0: .4byte 0x00006db2 -_080F1CE4: .4byte gUnknown_083DFEC4 -_080F1CE8: - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 18 - lsrs r0, 16 - str r0, [sp] -_080F1CF2: - movs r5, 0 - ldr r4, [sp, 0x4] - adds r0, r4, r3 - lsls r0, 16 - mov r10, r0 -_080F1CFC: - lsls r6, r5, 5 - movs r0, 0x80 - lsls r0, 1 - adds r7, r6, r0 - lsls r1, r7, 16 - asrs r1, 16 - ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454 - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F1DC4 - ldr r0, _080F1DB8 @ =gUnknown_083DFEC4 - ldr r2, [r0] - lsls r1, r5, 2 - mov r4, r8 - lsls r0, r4, 4 - adds r1, r0 - movs r0, 0xC8 - lsls r0, 2 - adds r2, r0 - adds r4, r2, r1 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, _080F1DBC @ =gSprites - adds r0, r1 - str r0, [r4] - mov r1, r8 - strh r1, [r0, 0x2E] - ldr r0, [r4] - strh r5, [r0, 0x30] - ldr r1, [r4] - adds r0, r6, 0 - adds r0, 0x98 - strh r0, [r1, 0x32] - ldr r0, [r4] - strh r7, [r0, 0x34] - ldr r0, [r4] - ldr r1, [sp] - adds r2, r1, 0x1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - mov r2, r9 - cmp r2, 0x2 - beq _080F1D6E - cmp r2, 0 - bne _080F1D88 -_080F1D6E: - mov r3, r8 - cmp r3, 0x2 - bls _080F1D88 - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r3, [r4] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] -_080F1D88: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F1CFC -_080F1D92: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080F1DB8 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r4, _080F1DC0 @ =0x0000030e - adds r0, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080F1DB0 - b _080F1C7E -_080F1DB0: - b _080F1DC8 - .align 2, 0 -_080F1DB4: .4byte gSpriteTemplate_83E4454 -_080F1DB8: .4byte gUnknown_083DFEC4 -_080F1DBC: .4byte gSprites -_080F1DC0: .4byte 0x0000030e -_080F1DC4: - movs r0, 0 - b _080F1DD8 -_080F1DC8: - ldr r0, _080F1DE8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r5, _080F1DEC @ =0x00000306 - adds r1, r5 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F1DD8: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F1DE8: .4byte gUnknown_083DFEC4 -_080F1DEC: .4byte 0x00000306 - thumb_func_end sub_80F1BC8 - - thumb_func_start sub_80F1DF0 -sub_80F1DF0: @ 80F1DF0 - push {r4-r6,lr} - movs r2, 0 - ldr r0, _080F1E44 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080F1E48 @ =0x0000030e - adds r1, r3, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bge _080F1E38 - movs r0, 0xC8 - lsls r0, 2 - adds r4, r3, r0 - adds r6, r1, 0 - ldr r5, _080F1E4C @ =sub_80F2218 -_080F1E0E: - movs r1, 0 - adds r3, r2, 0x1 - lsls r2, 4 -_080F1E14: - lsls r0, r1, 2 - adds r0, r2 - adds r0, r4, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F1E22 - str r5, [r0, 0x1C] -_080F1E22: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F1E14 - lsls r0, r3, 16 - lsrs r2, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080F1E0E -_080F1E38: - movs r0, 0x6 - bl PlaySE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F1E44: .4byte gUnknown_083DFEC4 -_080F1E48: .4byte 0x0000030e -_080F1E4C: .4byte sub_80F2218 - thumb_func_end sub_80F1DF0 - - thumb_func_start sub_80F1E50 -sub_80F1E50: @ 80F1E50 - push {lr} - bl sub_80F22F8 - lsls r0, 24 - cmp r0, 0 - bne _080F1E60 - movs r0, 0x1 - b _080F1E66 -_080F1E60: - bl sub_80F2108 - movs r0, 0 -_080F1E66: - pop {r1} - bx r1 - thumb_func_end sub_80F1E50 - - thumb_func_start sub_80F1E6C -sub_80F1E6C: @ 80F1E6C - push {lr} - bl sub_80F22F8 - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080F1E7C - movs r1, 0x1 -_080F1E7C: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80F1E6C - - thumb_func_start sub_80F1E84 -sub_80F1E84: @ 80F1E84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, _080F1EFC @ =gUnknown_083DFEC4 - ldr r4, [r5] - ldr r1, _080F1F00 @ =0x0000030f - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - bl sub_80F2148 - movs r2, 0 - ldr r3, _080F1F04 @ =0x0000030e - adds r1, r4, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bge _080F1EF2 - ldr r0, _080F1F08 @ =0x00006dad - adds r7, r4, r0 - adds r6, r1, 0 - mov r8, r5 - ldr r1, _080F1F0C @ =sub_80F2240 - mov r12, r1 -_080F1EB4: - movs r0, 0 - ldrsb r0, [r7, r0] - adds r5, r2, 0x1 - cmp r2, r0 - beq _080F1EE6 - movs r1, 0 - mov r3, r8 - ldr r0, [r3] - lsls r3, r2, 4 - movs r4, 0xC8 - lsls r4, 2 - adds r2, r0, r4 - mov r4, r12 -_080F1ECE: - lsls r0, r1, 2 - adds r0, r3 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F1EDC - str r4, [r0, 0x1C] -_080F1EDC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F1ECE -_080F1EE6: - lsls r0, r5, 16 - lsrs r2, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080F1EB4 -_080F1EF2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F1EFC: .4byte gUnknown_083DFEC4 -_080F1F00: .4byte 0x0000030f -_080F1F04: .4byte 0x0000030e -_080F1F08: .4byte 0x00006dad -_080F1F0C: .4byte sub_80F2240 - thumb_func_end sub_80F1E84 - - thumb_func_start sub_80F1F10 -sub_80F1F10: @ 80F1F10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080F1F2C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F1F30 @ =0x0000030f - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F1F34 - cmp r0, 0x1 - beq _080F1FC0 - b _080F1FE4 - .align 2, 0 -_080F1F2C: .4byte gUnknown_083DFEC4 -_080F1F30: .4byte 0x0000030f -_080F1F34: - bl sub_80F2360 - lsls r0, 24 - cmp r0, 0 - beq _080F1FE4 - movs r6, 0 - adds r7, r4, 0 - movs r0, 0xC8 - lsls r0, 2 - adds r0, r7 - mov r8, r0 -_080F1F4A: - lsls r5, r6, 2 - ldr r1, _080F1FAC @ =0x00006dad - adds r0, r7, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - adds r0, r5, r0 - add r0, r8 - ldr r4, [r0] - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080F1FB0 @ =gUnknown_083E4450 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - subs r5, 0x6 - strh r5, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x36] - movs r1, 0x36 - ldrsh r0, [r4, r1] - lsls r0, 3 - strh r0, [r4, 0x38] - ldr r0, _080F1FB4 @ =sub_80F2240 - str r0, [r4, 0x1C] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _080F1F4A - bl sub_80F2170 - ldr r0, _080F1FB8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F1FBC @ =0x0000030f - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F1FE4 - .align 2, 0 -_080F1FAC: .4byte 0x00006dad -_080F1FB0: .4byte gUnknown_083E4450 -_080F1FB4: .4byte sub_80F2240 -_080F1FB8: .4byte gUnknown_083DFEC4 -_080F1FBC: .4byte 0x0000030f -_080F1FC0: - bl sub_80F23C8 - lsls r0, 24 - cmp r0, 0 - beq _080F1FE4 - bl sub_80F21F8 - movs r0, 0 - bl FreeSpriteTilesByTag - movs r0, 0 - bl FreeSpritePaletteByTag - movs r0, 0x1 - bl FreeSpritePaletteByTag - movs r0, 0 - b _080F1FE6 -_080F1FE4: - movs r0, 0x1 -_080F1FE6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F1F10 - - thumb_func_start sub_80F1FF0 -sub_80F1FF0: @ 80F1FF0 - push {r4,lr} - ldr r0, _080F203C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F2040 @ =0x00000311 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F2058 - ldr r2, _080F2044 @ =REG_WIN0V - ldr r3, _080F2048 @ =0x00006dad - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - movs r3, 0xC5 - lsls r3, 2 - adds r0, r4, r3 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _080F204C @ =REG_BLDY - ldr r1, _080F2050 @ =gSineTable - ldr r0, _080F2054 @ =0x00000312 - adds r2, r4, r0 - ldrh r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - strh r0, [r3] - ldrh r0, [r2] - adds r0, 0x3 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2] - b _080F2078 - .align 2, 0 -_080F203C: .4byte gUnknown_083DFEC4 -_080F2040: .4byte 0x00000311 -_080F2044: .4byte REG_WIN0V -_080F2048: .4byte 0x00006dad -_080F204C: .4byte REG_BLDY -_080F2050: .4byte gSineTable -_080F2054: .4byte 0x00000312 -_080F2058: - cmp r0, 0x2 - bne _080F2078 - ldr r2, _080F2080 @ =REG_BLDALPHA - ldr r1, _080F2084 @ =gUnknown_083E42F8 - ldr r0, _080F2088 @ =0x00000312 - adds r3, r4, r0 - ldrh r0, [r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r3] - cmp r0, 0xE - bhi _080F2078 - adds r0, 0x1 - strh r0, [r3] -_080F2078: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2080: .4byte REG_BLDALPHA -_080F2084: .4byte gUnknown_083E42F8 -_080F2088: .4byte 0x00000312 - thumb_func_end sub_80F1FF0 - - thumb_func_start sub_80F208C -sub_80F208C: @ 80F208C - push {lr} - bl sub_80F2148 - pop {r0} - bx r0 - thumb_func_end sub_80F208C - - thumb_func_start sub_80F2098 -sub_80F2098: @ 80F2098 - ldr r1, _080F20DC @ =REG_WIN0H - ldr r2, _080F20E0 @ =0x000077f0 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080F20E4 @ =REG_WIN0V - ldr r0, _080F20E8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r3, _080F20EC @ =0x00006dad - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - movs r3, 0xC5 - lsls r3, 2 - adds r1, r3 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - ldr r1, _080F20F0 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1F - strh r0, [r1] - subs r2, 0x44 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080F20DC: .4byte REG_WIN0H -_080F20E0: .4byte 0x000077f0 -_080F20E4: .4byte REG_WIN0V -_080F20E8: .4byte gUnknown_083DFEC4 -_080F20EC: .4byte 0x00006dad -_080F20F0: .4byte REG_WININ - thumb_func_end sub_80F2098 - - thumb_func_start sub_80F20F4 -sub_80F20F4: @ 80F20F4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F2104 @ =0x0000dfff - ands r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080F2104: .4byte 0x0000dfff - thumb_func_end sub_80F20F4 - - thumb_func_start sub_80F2108 -sub_80F2108: @ 80F2108 - push {lr} - ldr r0, _080F2134 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080F2138 @ =0x00000311 - adds r1, r3, r0 - ldrb r2, [r1] - cmp r2, 0 - bne _080F2130 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080F213C @ =0x00000312 - adds r0, r3, r1 - strh r2, [r0] - ldr r1, _080F2140 @ =REG_BLDCNT - movs r0, 0x90 - strh r0, [r1] - ldr r0, _080F2144 @ =REG_BLDY - strh r2, [r0] - bl sub_80F2098 -_080F2130: - pop {r0} - bx r0 - .align 2, 0 -_080F2134: .4byte gUnknown_083DFEC4 -_080F2138: .4byte 0x00000311 -_080F213C: .4byte 0x00000312 -_080F2140: .4byte REG_BLDCNT -_080F2144: .4byte REG_BLDY - thumb_func_end sub_80F2108 - - thumb_func_start sub_80F2148 -sub_80F2148: @ 80F2148 - push {lr} - ldr r0, _080F2164 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2168 @ =0x00000311 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080F216C @ =REG_BLDCNT - strh r1, [r0] - bl sub_80F20F4 - pop {r0} - bx r0 - .align 2, 0 -_080F2164: .4byte gUnknown_083DFEC4 -_080F2168: .4byte 0x00000311 -_080F216C: .4byte REG_BLDCNT - thumb_func_end sub_80F2148 - - thumb_func_start sub_80F2170 -sub_80F2170: @ 80F2170 - push {r4-r7,lr} - ldr r7, _080F21E4 @ =gUnknown_083DFEC4 - ldr r4, [r7] - ldr r1, _080F21E8 @ =0x00000311 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F21DC - bl sub_80F20F4 - movs r3, 0 - ldr r2, _080F21EC @ =0x00006dad - adds r5, r4, r2 - movs r0, 0xC8 - lsls r0, 2 - adds r4, r0 - movs r1, 0xD - negs r1, r1 - mov r12, r1 - movs r6, 0x4 -_080F2198: - lsls r1, r3, 2 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 4 - adds r1, r0 - adds r1, r4, r1 - ldr r2, [r1] - ldrb r1, [r2, 0x1] - mov r0, r12 - ands r0, r1 - orrs r0, r6 - strb r0, [r2, 0x1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F2198 - ldr r1, [r7] - ldr r0, _080F21E8 @ =0x00000311 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x2 - strb r0, [r2] - ldr r2, _080F21F0 @ =0x00000312 - adds r1, r2 - strh r3, [r1] - ldr r1, _080F21F4 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] -_080F21DC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F21E4: .4byte gUnknown_083DFEC4 -_080F21E8: .4byte 0x00000311 -_080F21EC: .4byte 0x00006dad -_080F21F0: .4byte 0x00000312 -_080F21F4: .4byte REG_BLDCNT - thumb_func_end sub_80F2170 - - thumb_func_start sub_80F21F8 -sub_80F21F8: @ 80F21F8 - ldr r0, _080F220C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2210 @ =0x00000311 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080F2214 @ =REG_BLDCNT - strh r1, [r0] - bx lr - .align 2, 0 -_080F220C: .4byte gUnknown_083DFEC4 -_080F2210: .4byte 0x00000311 -_080F2214: .4byte REG_BLDCNT - thumb_func_end sub_80F21F8 - - thumb_func_start sub_80F2218 -sub_80F2218: @ 80F2218 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r0, 0x8 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r2, 0x32] - movs r4, 0x32 - ldrsh r1, [r2, r4] - cmp r0, r1 - bgt _080F2236 - strh r3, [r2, 0x20] - ldr r0, _080F223C @ =sub_80F22B0 - str r0, [r2, 0x1C] -_080F2236: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F223C: .4byte sub_80F22B0 - thumb_func_end sub_80F2218 - - thumb_func_start sub_80F2240 -sub_80F2240: @ 80F2240 - push {r4,lr} - adds r2, r0, 0 - ldr r0, _080F2288 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F228C @ =0x00006dad - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080F2290 - ldrh r3, [r2, 0x38] - movs r4, 0x38 - ldrsh r0, [r2, r4] - cmp r0, 0 - beq _080F2270 - ldrh r0, [r2, 0x36] - ldrh r4, [r2, 0x20] - adds r1, r0, r4 - strh r1, [r2, 0x20] - subs r0, r3, r0 - strh r0, [r2, 0x38] -_080F2270: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F22A8 - adds r0, r2, 0 - bl sub_80F240C - b _080F22A8 - .align 2, 0 -_080F2288: .4byte gUnknown_083DFEC4 -_080F228C: .4byte 0x00006dad -_080F2290: - ldrh r0, [r2, 0x20] - adds r0, 0x8 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _080F22A8 - adds r0, r2, 0 - bl sub_80F240C -_080F22A8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2240 - - thumb_func_start sub_80F22B0 -sub_80F22B0: @ 80F22B0 - push {lr} - adds r2, r0, 0 - ldr r0, _080F22DC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F22E0 @ =0x00006dad - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080F22E4 - ldrh r3, [r2, 0x24] - movs r0, 0x24 - ldrsh r1, [r2, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _080F22F2 - subs r0, r3, 0x4 - b _080F22F0 - .align 2, 0 -_080F22DC: .4byte gUnknown_083DFEC4 -_080F22E0: .4byte 0x00006dad -_080F22E4: - ldrh r1, [r2, 0x24] - movs r3, 0x24 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _080F22F2 - adds r0, r1, 0x4 -_080F22F0: - strh r0, [r2, 0x24] -_080F22F2: - pop {r0} - bx r0 - thumb_func_end sub_80F22B0 - - thumb_func_start sub_80F22F8 -sub_80F22F8: @ 80F22F8 - push {r4-r7,lr} - movs r3, 0 - ldr r0, _080F233C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F2340 @ =0x00006dae - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080F2358 - movs r7, 0xC8 - lsls r7, 2 - adds r4, r1, r7 - movs r5, 0x10 - negs r5, r5 - adds r6, r0, 0 -_080F231A: - movs r1, 0 - lsls r2, r3, 4 -_080F231E: - lsls r0, r1, 2 - adds r0, r2 - adds r0, r4, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F2358 - movs r7, 0x24 - ldrsh r0, [r0, r7] - cmp r0, 0 - beq _080F2344 - cmp r0, r5 - beq _080F2344 - movs r0, 0 - b _080F235A - .align 2, 0 -_080F233C: .4byte gUnknown_083DFEC4 -_080F2340: .4byte 0x00006dae -_080F2344: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F231E - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r6 - blt _080F231A -_080F2358: - movs r0, 0x1 -_080F235A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F22F8 - - thumb_func_start sub_80F2360 -sub_80F2360: @ 80F2360 - push {r4-r7,lr} - movs r4, 0 - ldr r0, _080F23A0 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F23A4 @ =0x0000030e - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r4, r1 - bge _080F23C0 - ldr r3, _080F23A8 @ =0x00006dad - adds r0, r2, r3 - movs r6, 0 - ldrsb r6, [r0, r6] - adds r5, r1, 0 -_080F237E: - cmp r4, r6 - beq _080F23B6 - movs r1, 0 - ldr r0, _080F23A0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r3, r4, 4 - movs r7, 0xC8 - lsls r7, 2 - adds r2, r0, r7 -_080F2390: - lsls r0, r1, 2 - adds r0, r3 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F23AC - movs r0, 0 - b _080F23C2 - .align 2, 0 -_080F23A0: .4byte gUnknown_083DFEC4 -_080F23A4: .4byte 0x0000030e -_080F23A8: .4byte 0x00006dad -_080F23AC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _080F2390 -_080F23B6: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - blt _080F237E -_080F23C0: - movs r0, 0x1 -_080F23C2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F2360 - - thumb_func_start sub_80F23C8 -sub_80F23C8: @ 80F23C8 - push {lr} - movs r2, 0 - ldr r0, _080F23F4 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r3, _080F23F8 @ =0x00006dad - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r3, r0, 4 - movs r0, 0xC8 - lsls r0, 2 - adds r1, r0 -_080F23E2: - lsls r0, r2, 2 - adds r0, r3 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F23FC - movs r0, 0 - b _080F2408 - .align 2, 0 -_080F23F4: .4byte gUnknown_083DFEC4 -_080F23F8: .4byte 0x00006dad -_080F23FC: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F23E2 - movs r0, 0x1 -_080F2408: - pop {r1} - bx r1 - thumb_func_end sub_80F23C8 - - thumb_func_start sub_80F240C -sub_80F240C: @ 80F240C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080F2454 @ =gUnknown_083DFEC4 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r1, 2 - movs r3, 0x2E - ldrsh r0, [r4, r3] - lsls r0, 4 - adds r1, r0 - movs r0, 0xC8 - lsls r0, 2 - adds r2, r0 - adds r2, r1 - movs r0, 0 - str r0, [r2] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F2446 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080F2446: - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2454: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F240C - - thumb_func_start sub_80F2458 -sub_80F2458: @ 80F2458 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - beq _080F24A0 - cmp r4, 0x1 - bgt _080F246C - cmp r4, 0 - beq _080F2472 - b _080F2502 -_080F246C: - cmp r4, 0x2 - beq _080F24D0 - b _080F2502 -_080F2472: - ldr r2, _080F2498 @ =gUnknown_083DFEC4 - ldr r3, [r2] - movs r0, 0xE0 - lsls r0, 2 - adds r1, r3, r0 - movs r5, 0xE2 - lsls r5, 2 - adds r0, r3, r5 - str r0, [r1] - movs r0, 0xE1 - lsls r0, 2 - adds r1, r3, r0 - movs r0, 0xA0 - lsls r0, 5 - strh r0, [r1] - ldr r1, _080F249C @ =0x00000386 - adds r0, r3, r1 - strh r4, [r0] - b _080F24F6 - .align 2, 0 -_080F2498: .4byte gUnknown_083DFEC4 -_080F249C: .4byte 0x00000386 -_080F24A0: - ldr r4, _080F24C4 @ =gUnknown_083DFEC4 - ldr r1, [r4] - movs r3, 0xE0 - lsls r3, 2 - adds r2, r1, r3 - ldr r5, _080F24C8 @ =0x00001788 - adds r0, r1, r5 - str r0, [r2] - movs r0, 0xE1 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xC0 - lsls r0, 4 - strh r0, [r2] - ldr r5, _080F24CC @ =0x00000386 - adds r1, r5 - b _080F24F2 - .align 2, 0 -_080F24C4: .4byte gUnknown_083DFEC4 -_080F24C8: .4byte 0x00001788 -_080F24CC: .4byte 0x00000386 -_080F24D0: - ldr r4, _080F2508 @ =gUnknown_083DFEC4 - ldr r1, [r4] - movs r0, 0xE0 - lsls r0, 2 - adds r2, r1, r0 - ldr r3, _080F250C @ =0x00002388 - adds r0, r1, r3 - str r0, [r2] - movs r5, 0xE1 - lsls r5, 2 - adds r2, r1, r5 - movs r3, 0 - movs r0, 0xC0 - lsls r0, 5 - strh r0, [r2] - ldr r0, _080F2510 @ =0x00000386 - adds r1, r0 -_080F24F2: - strh r3, [r1] - adds r2, r4, 0 -_080F24F6: - ldr r0, [r2] - movs r1, 0xE0 - lsls r1, 2 - adds r0, r1 - bl LoadSpriteSheet -_080F2502: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2508: .4byte gUnknown_083DFEC4 -_080F250C: .4byte 0x00002388 -_080F2510: .4byte 0x00000386 - thumb_func_end sub_80F2458 - - thumb_func_start sub_80F2514 -sub_80F2514: @ 80F2514 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080F2558 - cmp r0, 0x1 - bgt _080F252C - cmp r0, 0 - beq _080F2532 - b _080F2586 -_080F252C: - cmp r1, 0x2 - beq _080F2568 - b _080F2586 -_080F2532: - ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal - str r0, [sp] - ldr r1, _080F2550 @ =0xffff0000 - mov r4, sp - ldr r0, [sp, 0x4] - ands r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal - b _080F257A - .align 2, 0 -_080F254C: .4byte gPokenavMenuOptions1_Pal -_080F2550: .4byte 0xffff0000 -_080F2554: .4byte gPokenavMenuOptions2_Pal -_080F2558: - ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal - str r0, [sp] - mov r1, sp - movs r0, 0 - strh r0, [r1, 0x4] - b _080F2580 - .align 2, 0 -_080F2564: .4byte gPokenavConditionMenu_Pal -_080F2568: - ldr r0, _080F2590 @ =gPokenavCondition6_Pal - str r0, [sp] - mov r4, sp - movs r0, 0 - strh r0, [r4, 0x4] - mov r0, sp - bl LoadSpritePalette - ldr r0, _080F2594 @ =gPokenavCondition7_Pal -_080F257A: - str r0, [sp] - movs r0, 0x1 - strh r0, [r4, 0x4] -_080F2580: - mov r0, sp - bl LoadSpritePalette -_080F2586: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2590: .4byte gPokenavCondition6_Pal -_080F2594: .4byte gPokenavCondition7_Pal - thumb_func_end sub_80F2514 - - thumb_func_start sub_80F2598 -sub_80F2598: @ 80F2598 - push {r4,lr} - ldr r0, _080F25F0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F25F4 @ =0x00006d9c - adds r4, r0, r1 - movs r0, 0 - str r0, [r4] - ldr r1, _080F25F8 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl sub_8082C0C - cmp r0, 0x1 - bne _080F2618 - ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight - bl LoadSpriteSheet - ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight - bl LoadSpritePalette - ldr r0, _080F2604 @ =gSpriteTemplate_83E4484 - movs r1, 0xC - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F260C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F2608 @ =gSprites - adds r0, r1 - str r0, [r4] - b _080F2618 - .align 2, 0 -_080F25F0: .4byte gUnknown_083DFEC4 -_080F25F4: .4byte 0x00006d9c -_080F25F8: .4byte gSaveBlock1 -_080F25FC: .4byte gSpriteSheet_PokenavBlueLight -_080F2600: .4byte gSpritePalette_PokenavBlueLight -_080F2604: .4byte gSpriteTemplate_83E4484 -_080F2608: .4byte gSprites -_080F260C: - movs r0, 0x19 - bl FreeSpriteTilesByTag - movs r0, 0x11 - bl FreeSpritePaletteByTag -_080F2618: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2598 - - thumb_func_start sub_80F2620 -sub_80F2620: @ 80F2620 - push {r4,lr} - ldr r0, _080F264C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2650 @ =0x00006d9c - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F2644 - bl DestroySprite - movs r0, 0x19 - bl FreeSpriteTilesByTag - movs r0, 0x11 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F2644: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F264C: .4byte gUnknown_083DFEC4 -_080F2650: .4byte 0x00006d9c - thumb_func_end sub_80F2620 - - thumb_func_start sub_80F2654 -sub_80F2654: @ 80F2654 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080F2682 - movs r0, 0 - strh r0, [r3, 0x2E] - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080F2682: - pop {r0} - bx r0 - thumb_func_end sub_80F2654 - - thumb_func_start sub_80F2688 -sub_80F2688: @ 80F2688 - push {lr} - ldr r0, _080F26B0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F26B4 @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F26B8 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F26AA -_080F26A0: - bl sub_80F26BC - lsls r0, 24 - cmp r0, 0 - bne _080F26A0 -_080F26AA: - pop {r0} - bx r0 - .align 2, 0 -_080F26B0: .4byte gUnknown_083DFEC4 -_080F26B4: .4byte 0x00000306 -_080F26B8: .4byte 0x00006dac - thumb_func_end sub_80F2688 - - thumb_func_start sub_80F26BC -sub_80F26BC: @ 80F26BC - push {lr} - ldr r0, _080F26D8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F26DC @ =0x00000306 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x7 - bls _080F26CE - b _080F27BC -_080F26CE: - lsls r0, 2 - ldr r1, _080F26E0 @ =_080F26E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F26D8: .4byte gUnknown_083DFEC4 -_080F26DC: .4byte 0x00000306 -_080F26E0: .4byte _080F26E4 - .align 2, 0 -_080F26E4: - .4byte _080F2704 - .4byte _080F271C - .4byte _080F2734 - .4byte _080F274C - .4byte _080F2764 - .4byte _080F277C - .4byte _080F2794 - .4byte _080F27B0 -_080F2704: - ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx - ldr r1, _080F2714 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2718 @ =0x00003b98 - b _080F279C - .align 2, 0 -_080F2710: .4byte gPokenavMainMenu_Gfx -_080F2714: .4byte gUnknown_083DFEC4 -_080F2718: .4byte 0x00003b98 -_080F271C: - ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx - ldr r1, _080F272C @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2730 @ =0x00004198 - b _080F279C - .align 2, 0 -_080F2728: .4byte gPokenavConditionMenuHeader_Gfx -_080F272C: .4byte gUnknown_083DFEC4 -_080F2730: .4byte 0x00004198 -_080F2734: - ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx - ldr r1, _080F2744 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2748 @ =0x00004d98 - b _080F279C - .align 2, 0 -_080F2740: .4byte gPokenavRibbonsHeader_Gfx -_080F2744: .4byte gUnknown_083DFEC4 -_080F2748: .4byte 0x00004d98 -_080F274C: - ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx - ldr r1, _080F275C @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2760 @ =0x00005398 - b _080F279C - .align 2, 0 -_080F2758: .4byte gPokenavHoennMapHeader_Gfx -_080F275C: .4byte gUnknown_083DFEC4 -_080F2760: .4byte 0x00005398 -_080F2764: - ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx - ldr r1, _080F2774 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2778 @ =0x00005f98 - b _080F279C - .align 2, 0 -_080F2770: .4byte gPokenavConditionMenuOptions_Gfx -_080F2774: .4byte gUnknown_083DFEC4 -_080F2778: .4byte 0x00005f98 -_080F277C: - ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx - ldr r1, _080F278C @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2790 @ =0x00006798 - b _080F279C - .align 2, 0 -_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx -_080F278C: .4byte gUnknown_083DFEC4 -_080F2790: .4byte 0x00006798 -_080F2794: - ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx - ldr r1, _080F27A8 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F27AC @ =0x00004798 -_080F279C: - adds r1, r2 - bl LZ77UnCompWram - b _080F27C0 - .align 2, 0 -_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx -_080F27A8: .4byte gUnknown_083DFEC4 -_080F27AC: .4byte 0x00004798 -_080F27B0: - ldr r0, _080F27B8 @ =gUnknown_083E449C - bl LoadSpritePalettes - b _080F27C0 - .align 2, 0 -_080F27B8: .4byte gUnknown_083E449C -_080F27BC: - movs r0, 0 - b _080F27D0 -_080F27C0: - ldr r0, _080F27D4 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F27D8 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F27D0: - pop {r1} - bx r1 - .align 2, 0 -_080F27D4: .4byte gUnknown_083DFEC4 -_080F27D8: .4byte 0x00000306 - thumb_func_end sub_80F26BC - - thumb_func_start sub_80F27DC -sub_80F27DC: @ 80F27DC - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bls _080F27EA - b _080F29A0 -_080F27EA: - lsls r0, 2 - ldr r1, _080F27F4 @ =_080F27F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F27F4: .4byte _080F27F8 - .align 2, 0 -_080F27F8: - .4byte _080F2828 - .4byte _080F2858 - .4byte _080F28B8 - .4byte _080F2888 - .4byte _080F28E8 - .4byte _080F2918 - .4byte _080F2928 - .4byte _080F2978 - .4byte _080F2938 - .4byte _080F2948 - .4byte _080F2968 - .4byte _080F2958 -_080F2828: - ldr r0, _080F2848 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F284C @ =0x00003b98 - adds r0, r1 - str r0, [sp] - ldr r1, _080F2850 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F2854 @ =0x0000ffff - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2848: .4byte gUnknown_083DFEC4 -_080F284C: .4byte 0x00003b98 -_080F2850: .4byte 0xffff0000 -_080F2854: .4byte 0x0000ffff -_080F2858: - ldr r0, _080F2878 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F287C @ =0x00004198 - adds r0, r1 - str r0, [sp] - ldr r1, _080F2880 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F2884 @ =0x0000ffff - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2878: .4byte gUnknown_083DFEC4 -_080F287C: .4byte 0x00004198 -_080F2880: .4byte 0xffff0000 -_080F2884: .4byte 0x0000ffff -_080F2888: - ldr r0, _080F28A8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F28AC @ =0x00004798 - adds r0, r1 - str r0, [sp] - ldr r1, _080F28B0 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F28B4 @ =0x0000ffff - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F28A8: .4byte gUnknown_083DFEC4 -_080F28AC: .4byte 0x00004798 -_080F28B0: .4byte 0xffff0000 -_080F28B4: .4byte 0x0000ffff -_080F28B8: - ldr r0, _080F28D8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F28DC @ =0x00004d98 - adds r0, r1 - str r0, [sp] - ldr r1, _080F28E0 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - ldr r1, _080F28E4 @ =0x0000ffff - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F28D8: .4byte gUnknown_083DFEC4 -_080F28DC: .4byte 0x00004d98 -_080F28E0: .4byte 0xffff0000 -_080F28E4: .4byte 0x0000ffff -_080F28E8: - ldr r0, _080F2908 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F290C @ =0x00005398 - adds r0, r1 - str r0, [sp] - ldr r1, _080F2910 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 4 - orrs r0, r1 - ldr r1, _080F2914 @ =0x0000ffff - ands r0, r1 - adds r1, 0x1 - b _080F2996 - .align 2, 0 -_080F2908: .4byte gUnknown_083DFEC4 -_080F290C: .4byte 0x00005398 -_080F2910: .4byte 0xffff0000 -_080F2914: .4byte 0x0000ffff -_080F2918: - ldr r0, _080F2920 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2924 @ =0x00005f98 - b _080F297E - .align 2, 0 -_080F2920: .4byte gUnknown_083DFEC4 -_080F2924: .4byte 0x00005f98 -_080F2928: - ldr r0, _080F2930 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2934 @ =0x00006198 - b _080F297E - .align 2, 0 -_080F2930: .4byte gUnknown_083DFEC4 -_080F2934: .4byte 0x00006198 -_080F2938: - ldr r0, _080F2940 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2944 @ =0x00006398 - b _080F297E - .align 2, 0 -_080F2940: .4byte gUnknown_083DFEC4 -_080F2944: .4byte 0x00006398 -_080F2948: - ldr r0, _080F2950 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2954 @ =0x00006598 - b _080F297E - .align 2, 0 -_080F2950: .4byte gUnknown_083DFEC4 -_080F2954: .4byte 0x00006598 -_080F2958: - ldr r0, _080F2960 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2964 @ =0x00006998 - b _080F297E - .align 2, 0 -_080F2960: .4byte gUnknown_083DFEC4 -_080F2964: .4byte 0x00006998 -_080F2968: - ldr r0, _080F2970 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2974 @ =0x00006798 - b _080F297E - .align 2, 0 -_080F2970: .4byte gUnknown_083DFEC4 -_080F2974: .4byte 0x00006798 -_080F2978: - ldr r0, _080F29A8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F29AC @ =0x00006b98 -_080F297E: - adds r0, r1 - str r0, [sp] - ldr r1, _080F29B0 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - ldr r1, _080F29B4 @ =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 10 -_080F2996: - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet -_080F29A0: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080F29A8: .4byte gUnknown_083DFEC4 -_080F29AC: .4byte 0x00006b98 -_080F29B0: .4byte 0xffff0000 -_080F29B4: .4byte 0x0000ffff - thumb_func_end sub_80F27DC - - thumb_func_start sub_80F29B8 -sub_80F29B8: @ 80F29B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - cmp r7, 0xB - bls _080F29D2 - b _080F2BA6 -_080F29D2: - lsls r0, r7, 2 - ldr r1, _080F29DC @ =_080F29E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F29DC: .4byte _080F29E0 - .align 2, 0 -_080F29E0: - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A10 - .4byte _080F2A58 - .4byte _080F2A94 - .4byte _080F2A94 - .4byte _080F2A98 - .4byte _080F2A94 - .4byte _080F2A94 - .4byte _080F2A98 - .4byte _080F2A98 -_080F2A10: - ldr r3, _080F2A44 @ =0x0000ffa0 - ldr r0, _080F2A48 @ =gUnknown_083DFEC4 - ldr r2, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r2, r1 - ldrh r1, [r0] - movs r0, 0x31 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - movs r4, 0x8 - str r4, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x40 - ldr r4, _080F2A4C @ =0x00003b88 - adds r4, r2 - mov r9, r4 - ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8 - mov r8, r2 - cmp r7, 0x3 - beq _080F2AC8 - ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0 - mov r8, r4 - b _080F2AC8 - .align 2, 0 -_080F2A44: .4byte 0x0000ffa0 -_080F2A48: .4byte gUnknown_083DFEC4 -_080F2A4C: .4byte 0x00003b88 -_080F2A50: .4byte gSpriteTemplate_83E44F8 -_080F2A54: .4byte gSpriteTemplate_83E44E0 -_080F2A58: - movs r3, 0x88 - lsls r3, 1 - ldr r0, _080F2A84 @ =gUnknown_083DFEC4 - ldr r2, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r2, r1 - ldrh r1, [r0] - movs r0, 0x31 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080F2A88 @ =0x0000fff8 - str r4, [sp] - movs r1, 0x98 - str r1, [sp, 0x4] - movs r1, 0x40 - ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0 - mov r8, r4 - ldr r4, _080F2A90 @ =0x00003b88 - b _080F2AC4 - .align 2, 0 -_080F2A84: .4byte gUnknown_083DFEC4 -_080F2A88: .4byte 0x0000fff8 -_080F2A8C: .4byte gSpriteTemplate_83E44E0 -_080F2A90: .4byte 0x00003b88 -_080F2A94: - ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530 - mov r8, r0 -_080F2A98: - mov r1, r8 - cmp r1, 0 - bne _080F2AA2 - ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548 - mov r8, r2 -_080F2AA2: - ldr r3, _080F2B48 @ =0x0000ffa0 - ldr r0, _080F2B4C @ =gUnknown_083DFEC4 - ldr r2, [r0] - movs r4, 0xC3 - lsls r4, 2 - adds r0, r2, r4 - ldrh r1, [r0] - movs r0, 0x44 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x8 - str r1, [sp] - movs r4, 0x10 - str r4, [sp, 0x4] - movs r1, 0x20 - ldr r4, _080F2B50 @ =0x00003b90 -_080F2AC4: - adds r4, r2 - mov r9, r4 -_080F2AC8: - movs r6, 0 - lsls r1, 16 - str r1, [sp, 0x10] - lsls r3, 16 - str r3, [sp, 0x8] - lsls r0, 16 - str r0, [sp, 0xC] - ldr r0, _080F2B54 @ =gSprites - mov r10, r0 -_080F2ADA: - ldr r1, [sp, 0x10] - asrs r0, r1, 16 - adds r5, r6, 0 - muls r5, r0 - ldr r2, [sp, 0x8] - asrs r1, r2, 16 - adds r1, r5 - lsls r1, 16 - asrs r1, 16 - mov r0, r8 - ldr r3, [sp, 0xC] - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _080F2B9C - lsls r0, r4, 4 - adds r1, r0, r4 - lsls r1, 2 - mov r2, r10 - adds r3, r1, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - ldr r2, [sp, 0x4] - adds r1, r2, r5 - strh r1, [r3, 0x30] - strh r6, [r3, 0x32] - strh r7, [r3, 0x34] - adds r5, r0, 0 - cmp r7, 0x4 - bne _080F2B5C - cmp r6, 0x1 - bne _080F2B5C - ldr r0, _080F2B4C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2B58 @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - cmp r0, 0 - bne _080F2B36 - movs r1, 0x1 -_080F2B36: - adds r0, r3, 0 - bl StartSpriteAnim - b _080F2B6A - .align 2, 0 -_080F2B40: .4byte gSpriteTemplate_83E4530 -_080F2B44: .4byte gSpriteTemplate_83E4548 -_080F2B48: .4byte 0x0000ffa0 -_080F2B4C: .4byte gUnknown_083DFEC4 -_080F2B50: .4byte 0x00003b90 -_080F2B54: .4byte gSprites -_080F2B58: .4byte 0x00006e90 -_080F2B5C: - adds r0, r5, r4 - lsls r0, 2 - add r0, r10 - lsls r1, r6, 24 - lsrs r1, 24 - bl StartSpriteAnim -_080F2B6A: - ldr r2, _080F2BB8 @ =gSprites - mov r12, r2 - cmp r7, 0x3 - bhi _080F2B90 - cmp r6, 0x1 - bne _080F2B90 - adds r2, r5, r4 - lsls r2, 2 - add r2, r10 - ldrb r3, [r2, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2, 0x3] -_080F2B90: - lsls r1, r6, 2 - add r1, r9 - adds r0, r5, r4 - lsls r0, 2 - add r0, r12 - str r0, [r1] -_080F2B9C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _080F2ADA -_080F2BA6: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F2BB8: .4byte gSprites - thumb_func_end sub_80F29B8 - - thumb_func_start sub_80F2BBC -sub_80F2BBC: @ 80F2BBC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - ldrh r1, [r2, 0x2E] - adds r3, r0, r1 - strh r3, [r2, 0x20] - lsls r0, 16 - asrs r4, r0, 16 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r4, r1 - bgt _080F2BE0 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bge _080F2BE8 - cmp r4, r1 - blt _080F2C08 -_080F2BE0: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r1 - bgt _080F2C08 -_080F2BE8: - ldrh r0, [r2, 0x30] - strh r0, [r2, 0x20] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bne _080F2C04 - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F2C04 - ldr r0, _080F2C00 @ =sub_80F2C58 - b _080F2C06 - .align 2, 0 -_080F2C00: .4byte sub_80F2C58 -_080F2C04: - ldr r0, _080F2C10 @ =SpriteCallbackDummy -_080F2C06: - str r0, [r2, 0x1C] -_080F2C08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2C10: .4byte SpriteCallbackDummy - thumb_func_end sub_80F2BBC - - thumb_func_start sub_80F2C14 -sub_80F2C14: @ 80F2C14 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - ldrh r1, [r4, 0x2E] - subs r0, r1 - strh r0, [r4, 0x20] - adds r0, 0x20 - lsls r0, 16 - movs r1, 0x98 - lsls r1, 17 - cmp r0, r1 - bls _080F2C50 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080F2C4A - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bgt _080F2C44 - movs r0, 0x1 - bl FreeSpriteTilesByTag - b _080F2C4A -_080F2C44: - movs r0, 0x2 - bl FreeSpriteTilesByTag -_080F2C4A: - adds r0, r4, 0 - bl DestroySprite -_080F2C50: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F2C14 - - thumb_func_start sub_80F2C58 -sub_80F2C58: @ 80F2C58 - push {lr} - adds r2, r0, 0 - ldr r0, _080F2C78 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2C7C @ =0x00006e90 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - cmp r0, 0 - bne _080F2C6E - movs r1, 0x1 -_080F2C6E: - adds r0, r2, 0 - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080F2C78: .4byte gUnknown_083DFEC4 -_080F2C7C: .4byte 0x00006e90 - thumb_func_end sub_80F2C58 - - thumb_func_start sub_80F2C80 -sub_80F2C80: @ 80F2C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F2CB0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2CB4 @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F2CB8 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F2CA8 -_080F2C9C: - adds r0, r4, 0 - bl sub_80F2CBC - lsls r0, 24 - cmp r0, 0 - bne _080F2C9C -_080F2CA8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2CB0: .4byte gUnknown_083DFEC4 -_080F2CB4: .4byte 0x00000306 -_080F2CB8: .4byte 0x00006dac - thumb_func_end sub_80F2C80 - - thumb_func_start sub_80F2CBC -sub_80F2CBC: @ 80F2CBC - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F2CD8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F2CDC @ =0x00000306 - adds r4, r0, r2 - ldrh r0, [r4] - cmp r0, 0 - beq _080F2CE0 - cmp r0, 0x1 - beq _080F2CF0 - b _080F2CFC - .align 2, 0 -_080F2CD8: .4byte gUnknown_083DFEC4 -_080F2CDC: .4byte 0x00000306 -_080F2CE0: - adds r0, r1, 0 - bl sub_80F27DC - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0x1 - b _080F2CFE -_080F2CF0: - adds r0, r1, 0 - bl sub_80F29B8 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F2CFC: - movs r0, 0 -_080F2CFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F2CBC - - thumb_func_start sub_80F2D04 -sub_80F2D04: @ 80F2D04 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F2D3C - movs r1, 0 - ldr r0, _080F2D30 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080F2D34 @ =0x00003b88 - adds r2, r0, r3 - ldr r3, _080F2D38 @ =sub_80F2C14 -_080F2D1A: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - str r3, [r0, 0x1C] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F2D1A - b _080F2D5A - .align 2, 0 -_080F2D30: .4byte gUnknown_083DFEC4 -_080F2D34: .4byte 0x00003b88 -_080F2D38: .4byte sub_80F2C14 -_080F2D3C: - movs r1, 0 - ldr r0, _080F2D60 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080F2D64 @ =0x00003b90 - adds r2, r0, r3 - ldr r3, _080F2D68 @ =sub_80F2C14 -_080F2D48: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - str r3, [r0, 0x1C] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F2D48 -_080F2D5A: - pop {r0} - bx r0 - .align 2, 0 -_080F2D60: .4byte gUnknown_083DFEC4 -_080F2D64: .4byte 0x00003b90 -_080F2D68: .4byte sub_80F2C14 - thumb_func_end sub_80F2D04 - - thumb_func_start sub_80F2D6C -sub_80F2D6C: @ 80F2D6C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F2DA4 - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r4, 0 - ldr r0, _080F2D9C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2DA0 @ =0x00003b88 - adds r5, r0, r1 -_080F2D86: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F2D86 - b _080F2DC8 - .align 2, 0 -_080F2D9C: .4byte gUnknown_083DFEC4 -_080F2DA0: .4byte 0x00003b88 -_080F2DA4: - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r4, 0 - ldr r0, _080F2DD0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2DD4 @ =0x00003b90 - adds r5, r0, r1 -_080F2DB4: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F2DB4 -_080F2DC8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2DD0: .4byte gUnknown_083DFEC4 -_080F2DD4: .4byte 0x00003b90 - thumb_func_end sub_80F2D6C - - thumb_func_start sub_80F2DD8 -sub_80F2DD8: @ 80F2DD8 - push {lr} - movs r0, 0x7 - movs r1, 0x7 - bl sub_80FBB3C - movs r0, 0x8 - movs r1, 0x8 - bl sub_80FBCF0 - bl sub_80FBF94 - pop {r0} - bx r0 - thumb_func_end sub_80F2DD8 - - thumb_func_start sub_80F2DF4 -sub_80F2DF4: @ 80F2DF4 - push {lr} - bl sub_80FAB10 - pop {r0} - bx r0 - thumb_func_end sub_80F2DF4 - - thumb_func_start sub_80F2E00 -sub_80F2E00: @ 80F2E00 - ldr r1, _080F2E10 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F2E14 @ =0x00008766 - adds r1, r2 - ldrh r1, [r1] - adds r1, 0x26 - strh r1, [r0, 0x20] - bx lr - .align 2, 0 -_080F2E10: .4byte gUnknown_083DFEC4 -_080F2E14: .4byte 0x00008766 - thumb_func_end sub_80F2E00 - - thumb_func_start sub_80F2E18 -sub_80F2E18: @ 80F2E18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080F2EA8 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F2EAC @ =0x00008768 - adds r7, r4, r0 - ldr r1, [r7] - mov r8, r1 - cmp r1, 0 - bne _080F2EFC - ldr r0, _080F2EB0 @ =gUnknown_083E4568 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570 - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldr r0, _080F2EB8 @ =gUnknown_083E4588 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - lsls r0, r3, 13 - ldr r1, _080F2EBC @ =0x0000d1e4 - adds r0, r1 - adds r0, r4, r0 - str r0, [sp, 0x20] - lsls r0, r3, 7 - adds r0, r4, r0 - str r0, [sp, 0x18] - add r0, sp, 0x18 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F2EC0 @ =0x0000d1dc - adds r5, r4, r2 - strh r0, [r5] - add r0, sp, 0x20 - bl LoadSpriteSheet - ldr r1, _080F2EC4 @ =0x0000d1de - adds r6, r4, r1 - strh r0, [r6] - mov r0, sp - movs r1, 0x26 - movs r2, 0x68 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F2EC8 - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - mov r2, r8 - str r2, [r7] - b _080F2F26 - .align 2, 0 -_080F2EA8: .4byte gUnknown_083DFEC4 -_080F2EAC: .4byte 0x00008768 -_080F2EB0: .4byte gUnknown_083E4568 -_080F2EB4: .4byte gSpriteTemplate_83E4570 -_080F2EB8: .4byte gUnknown_083E4588 -_080F2EBC: .4byte 0x0000d1e4 -_080F2EC0: .4byte 0x0000d1dc -_080F2EC4: .4byte 0x0000d1de -_080F2EC8: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F2EF0 @ =gSprites - adds r0, r1 - str r0, [r7] - ldr r0, _080F2EF4 @ =0x0000d1e0 - adds r1, r4, r0 - ldrh r0, [r6] - lsls r0, 5 - ldr r2, _080F2EF8 @ =0x06010000 - adds r0, r2 - str r0, [r1] - ldrh r0, [r5] - lsls r0, 4 - movs r6, 0x80 - lsls r6, 1 - adds r0, r6 - strh r0, [r5] - b _080F2F26 - .align 2, 0 -_080F2EF0: .4byte gSprites -_080F2EF4: .4byte 0x0000d1e0 -_080F2EF8: .4byte 0x06010000 -_080F2EFC: - lsls r0, r3, 13 - ldr r1, _080F2F34 @ =0x0000d1e4 - adds r0, r1 - adds r0, r4, r0 - ldr r2, _080F2F38 @ =0x0000d1e0 - adds r1, r4, r2 - ldr r2, [r1] - ldr r1, _080F2F3C @ =0x040000d4 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080F2F40 @ =0x80000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - lsls r0, r3, 7 - adds r0, r4, r0 - ldr r5, _080F2F44 @ =0x0000d1dc - adds r1, r4, r5 - ldrh r1, [r1] - movs r2, 0x20 - bl LoadPalette -_080F2F26: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F2F34: .4byte 0x0000d1e4 -_080F2F38: .4byte 0x0000d1e0 -_080F2F3C: .4byte 0x040000d4 -_080F2F40: .4byte 0x80000400 -_080F2F44: .4byte 0x0000d1dc - thumb_func_end sub_80F2E18 - - thumb_func_start sub_80F2F48 -sub_80F2F48: @ 80F2F48 - push {r4,lr} - ldr r0, _080F2F74 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2F78 @ =0x00008768 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F2F6C - bl DestroySprite - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F2F6C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F2F74: .4byte gUnknown_083DFEC4 -_080F2F78: .4byte 0x00008768 - thumb_func_end sub_80F2F48 - - thumb_func_start sub_80F2F7C -sub_80F2F7C: @ 80F2F7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80F2E18 - ldr r0, _080F2FA0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F2FA4 @ =0x0000ced0 - adds r2, r0, r1 - ldr r1, _080F2FA8 @ =0x00008768 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - ldr r0, _080F2FAC @ =sub_80F2FEC - str r0, [r1, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_080F2FA0: .4byte gUnknown_083DFEC4 -_080F2FA4: .4byte 0x0000ced0 -_080F2FA8: .4byte 0x00008768 -_080F2FAC: .4byte sub_80F2FEC - thumb_func_end sub_80F2F7C - - thumb_func_start sub_80F2FB0 -sub_80F2FB0: @ 80F2FB0 - push {r4,r5,lr} - ldr r0, _080F2FE0 @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r0, _080F2FE4 @ =0x0000ced0 - adds r4, r5, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F2FDA - bl DestroySprite - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r1, 0 - str r1, [r4] - ldr r2, _080F2FE8 @ =0x00008768 - adds r0, r5, r2 - str r1, [r0] -_080F2FDA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F2FE0: .4byte gUnknown_083DFEC4 -_080F2FE4: .4byte 0x0000ced0 -_080F2FE8: .4byte 0x00008768 - thumb_func_end sub_80F2FB0 - - thumb_func_start sub_80F2FEC -sub_80F2FEC: @ 80F2FEC - ldr r1, _080F3000 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F3004 @ =0x0000d15a - adds r1, r2 - ldrh r1, [r1] - adds r1, 0x28 - strh r1, [r0, 0x20] - movs r1, 0x68 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F3000: .4byte gUnknown_083DFEC4 -_080F3004: .4byte 0x0000d15a - thumb_func_end sub_80F2FEC - - thumb_func_start sub_80F3008 -sub_80F3008: @ 80F3008 - push {r4,r5,lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r2, r0, 24 - mov r1, sp - ldr r0, _080F3060 @ =gUnknown_083E4590 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, _080F3064 @ =gUnknown_083E45A8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - cmp r2, 0x2 - bgt _080F3032 - cmp r2, 0x1 - blt _080F3032 - ldr r0, _080F3068 @ =gUnknown_08E9F988 - str r0, [sp, 0x18] -_080F3032: - mov r0, sp - bl LoadSpriteSheets - add r0, sp, 0x18 - bl LoadSpritePalette - ldr r0, _080F306C @ =gSpriteTemplate_83E45B8 - movs r1, 0x5F - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F3078 - ldr r0, _080F3070 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3074 @ =0x000087cc - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _080F3120 - .align 2, 0 -_080F3060: .4byte gUnknown_083E4590 -_080F3064: .4byte gUnknown_083E45A8 -_080F3068: .4byte gUnknown_08E9F988 -_080F306C: .4byte gSpriteTemplate_83E45B8 -_080F3070: .4byte gUnknown_083DFEC4 -_080F3074: .4byte 0x000087cc -_080F3078: - ldr r0, _080F30F4 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r3, _080F30F8 @ =0x000087cc - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F30FC @ =gSprites - adds r0, r1 - str r0, [r2] - movs r4, 0 - movs r5, 0 -_080F3090: - lsls r2, r4, 7 - adds r2, 0x8 - lsls r2, 16 - asrs r2, 16 - ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0 - movs r1, 0xA8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F3108 - ldr r0, _080F30F4 @ =gUnknown_083DFEC4 - ldr r2, [r0] - lsls r0, r4, 2 - ldr r3, _080F3104 @ =0x000087d0 - adds r2, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F30FC @ =gSprites - adds r3, r0, r1 - str r3, [r2] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - strh r5, [r3, 0x2E] - strh r5, [r3, 0x30] - movs r0, 0x1 - cmp r4, 0 - bne _080F30DE - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_080F30DE: - strh r0, [r3, 0x32] - strh r4, [r3, 0x34] - movs r0, 0x1 - strh r0, [r3, 0x36] - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r3, 0 - bl StartSpriteAnim - b _080F3116 - .align 2, 0 -_080F30F4: .4byte gUnknown_083DFEC4 -_080F30F8: .4byte 0x000087cc -_080F30FC: .4byte gSprites -_080F3100: .4byte gSpriteTemplate_83E45F0 -_080F3104: .4byte 0x000087d0 -_080F3108: - ldr r0, _080F3128 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _080F312C @ =0x000087d0 - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080F3116: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F3090 -_080F3120: - add sp, 0x20 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3128: .4byte gUnknown_083DFEC4 -_080F312C: .4byte 0x000087d0 - thumb_func_end sub_80F3008 - - thumb_func_start sub_80F3130 -sub_80F3130: @ 80F3130 - push {r4-r6,lr} - ldr r0, _080F3184 @ =gUnknown_083DFEC4 - ldr r6, [r0] - ldr r0, _080F3188 @ =0x000087cc - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3154 - bl DestroySprite - movs r0, 0x9 - bl FreeSpriteTilesByTag - movs r0, 0x9 - bl FreeSpritePaletteByTag - movs r0, 0 - str r0, [r4] -_080F3154: - movs r5, 0 - ldr r0, _080F318C @ =0x000087d0 - adds r6, r0 -_080F315A: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F316C - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F316C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080F315A - movs r0, 0xA - bl FreeSpriteTilesByTag - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3184: .4byte gUnknown_083DFEC4 -_080F3188: .4byte 0x000087cc -_080F318C: .4byte 0x000087d0 - thumb_func_end sub_80F3130 - - thumb_func_start sub_80F3190 -sub_80F3190: @ 80F3190 - ldr r1, _080F31A4 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r2, _080F31A8 @ =0x0000876c - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 4 - adds r1, 0x10 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F31A4: .4byte gUnknown_083DFEC4 -_080F31A8: .4byte 0x0000876c - thumb_func_end sub_80F3190 - - thumb_func_start sub_80F31AC -sub_80F31AC: @ 80F31AC - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _080F31E8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F31EC @ =0x000087c9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F325C - movs r4, 0x36 - ldrsh r0, [r3, r4] - cmp r0, 0 - beq _080F3226 - movs r5, 0x34 - ldrsh r0, [r3, r5] - cmp r0, 0 - bne _080F31F4 - movs r2, 0 - ldr r4, _080F31F0 @ =0x00008770 - adds r0, r1, r4 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0 - bne _080F31DE - movs r2, 0x1 -_080F31DE: - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - lsls r2, 2 - b _080F3214 - .align 2, 0 -_080F31E8: .4byte gUnknown_083DFEC4 -_080F31EC: .4byte 0x000087c9 -_080F31F0: .4byte 0x00008770 -_080F31F4: - movs r4, 0 - ldr r2, _080F3250 @ =0x00008772 - adds r0, r1, r2 - ldr r5, _080F3254 @ =0x00008774 - adds r1, r5 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r2, r0 - bne _080F320C - movs r4, 0x1 -_080F320C: - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - lsls r2, r4, 2 -_080F3214: - ldrb r1, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r2 - mov r1, r12 - strb r0, [r1] - movs r0, 0 - strh r0, [r3, 0x36] -_080F3226: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080F325C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bgt _080F3258 - ldrh r0, [r3, 0x32] - ldrh r2, [r3, 0x26] - adds r0, r2 - strh r0, [r3, 0x26] - b _080F325C - .align 2, 0 -_080F3250: .4byte 0x00008772 -_080F3254: .4byte 0x00008774 -_080F3258: - strh r1, [r3, 0x30] - strh r1, [r3, 0x26] -_080F325C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F31AC - - thumb_func_start sub_80F3264 -sub_80F3264: @ 80F3264 - push {lr} - movs r1, 0 - ldr r0, _080F328C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080F3290 @ =0x000087d0 - adds r2, r0, r3 - movs r3, 0x1 -_080F3272: - lsls r0, r1, 2 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F327E - strh r3, [r0, 0x36] -_080F327E: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _080F3272 - pop {r0} - bx r0 - .align 2, 0 -_080F328C: .4byte gUnknown_083DFEC4 -_080F3290: .4byte 0x000087d0 - thumb_func_end sub_80F3264 - - thumb_func_start sub_80F3294 -sub_80F3294: @ 80F3294 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080F32F4 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F32F8 @ =0x000087cc - adds r0, r4, r1 - ldr r2, [r0] - adds r2, 0x3E - movs r0, 0x1 - adds r1, r6, 0 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, _080F32FC @ =0x000087c9 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F331A - cmp r6, 0x1 - bne _080F3308 - ldr r1, _080F3300 @ =0x000087d0 - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, _080F3304 @ =0x000087d4 - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1] - b _080F331A - .align 2, 0 -_080F32F4: .4byte gUnknown_083DFEC4 -_080F32F8: .4byte 0x000087cc -_080F32FC: .4byte 0x000087c9 -_080F3300: .4byte 0x000087d0 -_080F3304: .4byte 0x000087d4 -_080F3308: - ldr r1, _080F3320 @ =0x000087d0 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x1 - strh r1, [r0, 0x36] - ldr r2, _080F3324 @ =0x000087d4 - adds r0, r4, r2 - ldr r0, [r0] - strh r1, [r0, 0x36] -_080F331A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3320: .4byte 0x000087d0 -_080F3324: .4byte 0x000087d4 - thumb_func_end sub_80F3294 - - thumb_func_start sub_80F3328 -sub_80F3328: @ 80F3328 - push {lr} - adds r2, r0, 0 - ldr r0, _080F334C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3350 @ =0x000087dc - adds r0, r1 - movs r3, 0x2E - ldrsh r1, [r2, r3] - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r1, r0 - bne _080F3354 - adds r0, r2, 0 - movs r1, 0 - bl StartSpriteAnim - b _080F335C - .align 2, 0 -_080F334C: .4byte gUnknown_083DFEC4 -_080F3350: .4byte 0x000087dc -_080F3354: - adds r0, r2, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080F335C: - pop {r0} - bx r0 - thumb_func_end sub_80F3328 - - thumb_func_start sub_80F3360 -sub_80F3360: @ 80F3360 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080F3384 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F3388 @ =0x000087dc - adds r1, r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, _080F338C @ =0x000087da - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r0, 0x1 - cmp r1, r0 - bne _080F3390 - movs r0, 0x4 - b _080F3392 - .align 2, 0 -_080F3384: .4byte gUnknown_083DFEC4 -_080F3388: .4byte 0x000087dc -_080F338C: .4byte 0x000087da -_080F3390: - movs r0, 0x5 -_080F3392: - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F3360 - - thumb_func_start sub_80F33A8 -sub_80F33A8: @ 80F33A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x50 - mov r1, sp - ldr r0, _080F3440 @ =gUnknown_083E4628 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r3,r4} - stm r1!, {r3,r4} - add r4, sp, 0x20 - adds r1, r4, 0 - ldr r0, _080F3444 @ =gUnknown_083E4648 - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r3,r5,r6} - stm r1!, {r3,r5,r6} - add r5, sp, 0x38 - adds r1, r5, 0 - ldr r0, _080F3448 @ =gSpriteTemplate_83E4660 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - movs r6, 0 - ldr r2, _080F344C @ =gUnknown_083DFEC4 - ldr r1, [r2] - ldr r3, _080F3450 @ =0x000087da - adds r0, r1, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - subs r0, 0x1 - adds r7, r5, 0 - cmp r6, r0 - bge _080F347A - adds r5, r2, 0 - adds r0, r3, 0 - adds r0, r1 - mov r8, r0 -_080F3406: - lsls r4, r6, 2 - adds r2, r4, r6 - lsls r2, 18 - movs r1, 0x80 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F345C - ldr r0, [r5] - ldr r2, _080F3454 @ =0x000087e4 - adds r0, r2 - adds r0, r4 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r2, _080F3458 @ =gSprites - adds r1, r2 - str r1, [r0] - strh r6, [r1, 0x2E] - b _080F3468 - .align 2, 0 -_080F3440: .4byte gUnknown_083E4628 -_080F3444: .4byte gUnknown_083E4648 -_080F3448: .4byte gSpriteTemplate_83E4660 -_080F344C: .4byte gUnknown_083DFEC4 -_080F3450: .4byte 0x000087da -_080F3454: .4byte 0x000087e4 -_080F3458: .4byte gSprites -_080F345C: - ldr r0, [r5] - ldr r3, _080F34C8 @ =0x000087e4 - adds r0, r3 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080F3468: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r4, r8 - movs r1, 0 - ldrsh r0, [r4, r1] - subs r0, 0x1 - cmp r6, r0 - blt _080F3406 -_080F347A: - movs r0, 0x4 - strh r0, [r7] - ldr r0, _080F34CC @ =SpriteCallbackDummy - str r0, [r7, 0x14] - cmp r6, 0x5 - bhi _080F34EE - ldr r5, _080F34D0 @ =gUnknown_083DFEC4 -_080F3488: - lsls r4, r6, 2 - adds r2, r4, r6 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE6 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F34D8 - ldr r2, [r5] - ldr r0, _080F34C8 @ =0x000087e4 - adds r2, r0 - adds r2, r4 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, _080F34D4 @ =gSprites - adds r1, r0 - str r1, [r2] - ldrb r2, [r1, 0x3] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1, 0x3] - b _080F34E4 - .align 2, 0 -_080F34C8: .4byte 0x000087e4 -_080F34CC: .4byte SpriteCallbackDummy -_080F34D0: .4byte gUnknown_083DFEC4 -_080F34D4: .4byte gSprites -_080F34D8: - ldr r0, [r5] - ldr r1, _080F3548 @ =0x000087e4 - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080F34E4: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080F3488 -_080F34EE: - movs r0, 0x5 - strh r0, [r7] - ldr r0, _080F354C @ =sub_80F3360 - str r0, [r7, 0x14] - lsls r5, r6, 2 - adds r2, r5, r6 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xDE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F3558 - ldr r0, _080F3550 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r6, _080F3548 @ =0x000087e4 - adds r4, r6 - adds r4, r5 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, _080F3554 @ =gSprites - adds r1, r0 - str r1, [r4] - ldrb r3, [r1, 0x1] - movs r2, 0x3F - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x40 - orrs r0, r3 - strb r0, [r1, 0x1] - ldr r1, [r4] - ldrb r0, [r1, 0x3] - ands r2, r0 - movs r0, 0x80 - orrs r2, r0 - strb r2, [r1, 0x3] - b _080F3566 - .align 2, 0 -_080F3548: .4byte 0x000087e4 -_080F354C: .4byte sub_80F3360 -_080F3550: .4byte gUnknown_083DFEC4 -_080F3554: .4byte gSprites -_080F3558: - ldr r0, _080F3574 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3578 @ =0x000087e4 - adds r0, r1 - adds r0, r5 - movs r1, 0 - str r1, [r0] -_080F3566: - add sp, 0x50 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3574: .4byte gUnknown_083DFEC4 -_080F3578: .4byte 0x000087e4 - thumb_func_end sub_80F33A8 - - thumb_func_start sub_80F357C -sub_80F357C: @ 80F357C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _080F35AC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F35B0 @ =0x000087e4 - adds r6, r0, r1 -_080F3588: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F359A - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F359A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bls _080F3588 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F35AC: .4byte gUnknown_083DFEC4 -_080F35B0: .4byte 0x000087e4 - thumb_func_end sub_80F357C - - thumb_func_start sub_80F35B4 -sub_80F35B4: @ 80F35B4 - push {r4,lr} - ldr r0, _080F35FC @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F3600 @ =0x000076b0 - adds r0, r4, r1 - movs r1, 0x1C - strh r1, [r0] - ldr r1, _080F3604 @ =0x000076b2 - adds r2, r4, r1 - movs r1, 0x13 - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - ldr r2, _080F3608 @ =gUnknown_083E4678 - movs r0, 0x1B - movs r1, 0x15 - bl sub_80F7920 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xC0 - strh r1, [r0, 0x20] - movs r1, 0x20 - strh r1, [r0, 0x22] - ldr r1, _080F360C @ =sub_80F363C - str r1, [r0, 0x1C] - ldr r1, _080F3610 @ =0x000076ac - adds r4, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F35FC: .4byte gUnknown_083DFEC4 -_080F3600: .4byte 0x000076b0 -_080F3604: .4byte 0x000076b2 -_080F3608: .4byte gUnknown_083E4678 -_080F360C: .4byte sub_80F363C -_080F3610: .4byte 0x000076ac - thumb_func_end sub_80F35B4 - - thumb_func_start sub_80F3614 -sub_80F3614: @ 80F3614 - push {lr} - ldr r0, _080F3634 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3638 @ =0x000076ac - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - movs r0, 0x1B - bl FreeSpriteTilesByTag - movs r0, 0x15 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080F3634: .4byte gUnknown_083DFEC4 -_080F3638: .4byte 0x000076ac - thumb_func_end sub_80F3614 - - thumb_func_start sub_80F363C -sub_80F363C: @ 80F363C - push {lr} - ldr r1, _080F365C @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r3, _080F3660 @ =0x00008fe9 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - ldr r3, _080F3664 @ =0x00008934 - adds r1, r3 - adds r1, r2 - ldrb r1, [r1] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_080F365C: .4byte gUnknown_083DFEC4 -_080F3660: .4byte 0x00008fe9 -_080F3664: .4byte 0x00008934 - thumb_func_end sub_80F363C - - thumb_func_start sub_80F3668 -sub_80F3668: @ 80F3668 - push {lr} - ldr r0, _080F368C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F3690 @ =0x00008fe9 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldr r2, _080F3694 @ =0x00008934 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0xB0 - movs r2, 0x20 - bl sub_80F7418 - pop {r0} - bx r0 - .align 2, 0 -_080F368C: .4byte gUnknown_083DFEC4 -_080F3690: .4byte 0x00008fe9 -_080F3694: .4byte 0x00008934 - thumb_func_end sub_80F3668 - - thumb_func_start sub_80F3698 -sub_80F3698: @ 80F3698 - push {r4,lr} - ldr r0, _080F36DC @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r1, _080F36E0 @ =0x000087dc - adds r0, r3, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r1, 2 - ldr r4, _080F36E4 @ =0x0000893c - adds r1, r4 - adds r1, r3, r1 - ldr r2, _080F36E8 @ =0x00008fe9 - adds r0, r3, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r4, 0x8 - adds r0, r3, r4 - adds r0, r2 - ldr r2, _080F36EC @ =0x000076b4 - adds r3, r2 - ldrb r2, [r3] - strb r2, [r0] - ldrb r0, [r1, 0x1] - ldr r1, [r1] - lsls r1, 11 - lsrs r1, 27 - ldrb r2, [r3] - bl sub_80F4548 - bl sub_80F7470 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F36DC: .4byte gUnknown_083DFEC4 -_080F36E0: .4byte 0x000087dc -_080F36E4: .4byte 0x0000893c -_080F36E8: .4byte 0x00008fe9 -_080F36EC: .4byte 0x000076b4 - thumb_func_end sub_80F3698 - - thumb_func_start sub_80F36F0 -sub_80F36F0: @ 80F36F0 - push {lr} - ldr r0, _080F3718 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F371C @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F3720 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F3712 -_080F3708: - bl sub_80F3724 - lsls r0, 24 - cmp r0, 0 - bne _080F3708 -_080F3712: - pop {r0} - bx r0 - .align 2, 0 -_080F3718: .4byte gUnknown_083DFEC4 -_080F371C: .4byte 0x00000306 -_080F3720: .4byte 0x00006dac - thumb_func_end sub_80F36F0 - - thumb_func_start sub_80F3724 -sub_80F3724: @ 80F3724 - push {r4,lr} - ldr r0, _080F3740 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F3744 @ =0x00000306 - adds r4, r1, r0 - ldrh r0, [r4] - cmp r0, 0x1 - beq _080F3764 - cmp r0, 0x1 - bgt _080F3748 - cmp r0, 0 - beq _080F374E - b _080F377A - .align 2, 0 -_080F3740: .4byte gUnknown_083DFEC4 -_080F3744: .4byte 0x00000306 -_080F3748: - cmp r0, 0x2 - beq _080F376E - b _080F377A -_080F374E: - ldr r0, _080F375C @ =gUnknown_083E3D00 - ldr r2, _080F3760 @ =0x0000984c - adds r1, r2 - bl LZ77UnCompWram - b _080F377E - .align 2, 0 -_080F375C: .4byte gUnknown_083E3D00 -_080F3760: .4byte 0x0000984c -_080F3764: - bl sub_80F379C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F376E: - bl sub_80F37D0 - lsls r0, 24 - cmp r0, 0 - beq _080F377E - b _080F378C -_080F377A: - movs r0, 0 - b _080F378E -_080F377E: - ldr r0, _080F3794 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F3798 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F378C: - movs r0, 0x1 -_080F378E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F3794: .4byte gUnknown_083DFEC4 -_080F3798: .4byte 0x00000306 - thumb_func_end sub_80F3724 - - thumb_func_start sub_80F379C -sub_80F379C: @ 80F379C - push {lr} - ldr r0, _080F37C4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F37C8 @ =0x0000bc93 - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r1, _080F37CC @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F37BE -_080F37B4: - bl sub_80F37D0 - lsls r0, 24 - cmp r0, 0 - bne _080F37B4 -_080F37BE: - pop {r0} - bx r0 - .align 2, 0 -_080F37C4: .4byte gUnknown_083DFEC4 -_080F37C8: .4byte 0x0000bc93 -_080F37CC: .4byte 0x00006dac - thumb_func_end sub_80F379C - - thumb_func_start sub_80F37D0 -sub_80F37D0: @ 80F37D0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F3898 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F389C @ =0x0000bc93 - adds r1, r2 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0xB - bhi _080F38A8 - movs r3, 0 - mov r8, r3 - movs r7, 0xF - mov r9, r7 -_080F37F0: - ldr r2, [r2] - ldr r1, _080F389C @ =0x0000bc93 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 8 - ldr r3, _080F38A0 @ =0x0000984c - adds r0, r3 - adds r4, r2, r0 - lsls r1, 9 - ldr r7, _080F38A4 @ =0x0000a44c - adds r1, r7 - adds r5, r2, r1 - movs r6, 0 -_080F380A: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x10 - bl CpuFastSet - adds r5, 0x40 - adds r4, 0x20 - movs r1, 0 - adds r6, 0x1 - mov r12, r6 -_080F381E: - movs r0, 0 - adds r6, r1, 0x1 -_080F3822: - adds r4, 0x4 - movs r2, 0 - adds r3, r0, 0x1 -_080F3828: - subs r4, 0x1 - ldrb r0, [r4] - lsls r1, r0, 4 - lsrs r0, 4 - mov r7, r9 - ands r0, r7 - orrs r1, r0 - strb r1, [r5] - adds r5, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080F3828 - adds r4, 0x4 - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0x7 - bls _080F3822 - subs r4, 0x40 - lsls r0, r6, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bls _080F381E - adds r4, 0x60 - mov r1, r12 - lsls r0, r1, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _080F380A - ldr r2, _080F3898 @ =gUnknown_083DFEC4 - ldr r3, [r2] - ldr r7, _080F389C @ =0x0000bc93 - adds r1, r3, r7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bhi _080F38A8 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1 - bls _080F37F0 - adds r1, r7, 0 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0xB - bhi _080F38A8 - movs r0, 0x1 - b _080F38AA - .align 2, 0 -_080F3898: .4byte gUnknown_083DFEC4 -_080F389C: .4byte 0x0000bc93 -_080F38A0: .4byte 0x0000984c -_080F38A4: .4byte 0x0000a44c -_080F38A8: - movs r0, 0 -_080F38AA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F37D0 - - thumb_func_start sub_80F38B8 -sub_80F38B8: @ 80F38B8 - push {lr} - ldr r0, _080F38E0 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F38E4 @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F38E8 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F38DA -_080F38D0: - bl sub_80F38EC - lsls r0, 24 - cmp r0, 0 - bne _080F38D0 -_080F38DA: - pop {r0} - bx r0 - .align 2, 0 -_080F38E0: .4byte gUnknown_083DFEC4 -_080F38E4: .4byte 0x00000306 -_080F38E8: .4byte 0x00006dac - thumb_func_end sub_80F38B8 - - thumb_func_start sub_80F38EC -sub_80F38EC: @ 80F38EC - push {r4,lr} - ldr r0, _080F3908 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F390C @ =0x00000306 - adds r4, r2, r0 - ldrh r1, [r4] - cmp r1, 0x1 - beq _080F3930 - cmp r1, 0x1 - bgt _080F3910 - cmp r1, 0 - beq _080F391A - b _080F394E - .align 2, 0 -_080F3908: .4byte gUnknown_083DFEC4 -_080F390C: .4byte 0x00000306 -_080F3910: - cmp r1, 0x2 - beq _080F3938 - cmp r1, 0x3 - beq _080F3942 - b _080F394E -_080F391A: - ldr r3, _080F3928 @ =0x00009348 - adds r0, r2, r3 - str r1, [r0] - ldr r3, _080F392C @ =0x0000bc92 - adds r0, r2, r3 - strb r1, [r0] - b _080F3952 - .align 2, 0 -_080F3928: .4byte 0x00009348 -_080F392C: .4byte 0x0000bc92 -_080F3930: - movs r0, 0 - bl sub_80F2E18 - b _080F3952 -_080F3938: - bl sub_80F3970 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080F3942: - bl sub_80F39A4 - lsls r0, 24 - cmp r0, 0 - beq _080F3952 - b _080F3960 -_080F394E: - movs r0, 0 - b _080F3962 -_080F3952: - ldr r0, _080F3968 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F396C @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F3960: - movs r0, 0x1 -_080F3962: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F3968: .4byte gUnknown_083DFEC4 -_080F396C: .4byte 0x00000306 - thumb_func_end sub_80F38EC - - thumb_func_start sub_80F3970 -sub_80F3970: @ 80F3970 - push {lr} - ldr r0, _080F3998 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F399C @ =0x0000bc93 - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r1, _080F39A0 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F3992 -_080F3988: - bl sub_80F39A4 - lsls r0, 24 - cmp r0, 0 - bne _080F3988 -_080F3992: - pop {r0} - bx r0 - .align 2, 0 -_080F3998: .4byte gUnknown_083DFEC4 -_080F399C: .4byte 0x0000bc93 -_080F39A0: .4byte 0x00006dac - thumb_func_end sub_80F3970 - - thumb_func_start sub_80F39A4 -sub_80F39A4: @ 80F39A4 - push {r4,r5,lr} - sub sp, 0x10 - ldr r0, _080F3A18 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F3A1C @ =0x0000bc93 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xB - bhi _080F3A30 - ldrb r0, [r4] - lsls r0, 9 - ldr r2, _080F3A20 @ =0x0000a44c - adds r0, r2 - adds r0, r1, r0 - str r0, [sp] - ldr r5, _080F3A24 @ =0xffff0000 - ldr r2, [sp, 0x4] - ands r2, r5 - movs r0, 0x80 - lsls r0, 2 - orrs r2, r0 - str r2, [sp, 0x4] - ldrb r1, [r4] - adds r1, 0xB - lsls r1, 16 - ldr r0, _080F3A28 @ =0x0000ffff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldrb r0, [r4] - cmp r0, 0x4 - bhi _080F3A04 - lsls r0, 5 - ldr r1, _080F3A2C @ =gUnknown_083E3C60 - adds r0, r1 - str r0, [sp, 0x8] - ldrb r2, [r4] - adds r2, 0xA - add r0, sp, 0x8 - ldr r1, [r0, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpritePalette -_080F3A04: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB - bhi _080F3A30 - movs r0, 0x1 - b _080F3A32 - .align 2, 0 -_080F3A18: .4byte gUnknown_083DFEC4 -_080F3A1C: .4byte 0x0000bc93 -_080F3A20: .4byte 0x0000a44c -_080F3A24: .4byte 0xffff0000 -_080F3A28: .4byte 0x0000ffff -_080F3A2C: .4byte gUnknown_083E3C60 -_080F3A30: - movs r0, 0 -_080F3A32: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F39A4 - - thumb_func_start sub_80F3A3C -sub_80F3A3C: @ 80F3A3C - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - cmp r4, 0x2 - bhi _080F3A60 - lsls r0, r4, 3 - adds r0, r4 - adds r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080F3A5C @ =gUnknown_083DFEC4 - b _080F3A78 - .align 2, 0 -_080F3A5C: .4byte gUnknown_083DFEC4 -_080F3A60: - ldr r2, _080F3AD0 @ =gUnknown_083DFEC4 - ldr r1, [r2] - ldr r3, _080F3AD4 @ =0x0000bc8e - adds r0, r1, r3 - ldrb r0, [r0] - ldr r6, _080F3AD8 @ =0x0000bc8f - adds r1, r6 - ldrb r1, [r1] - subs r0, r1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080F3A78: - ldr r0, [r2] - ldr r7, _080F3ADC @ =0x0000bc4c - adds r0, r7 - adds r0, r1 - ldrb r2, [r0] - mov r1, sp - ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - mov r3, sp - ldr r1, _080F3AE4 @ =gUnknown_083E4698 - lsls r2, 2 - adds r0, r2, r1 - ldrh r0, [r0] - adds r0, 0xB - strh r0, [r3] - adds r1, 0x2 - adds r2, r1 - ldrh r0, [r2] - adds r0, 0xA - strh r0, [r3, 0x2] - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, r4, 20 - movs r3, 0xA0 - lsls r3, 14 - adds r2, r3 - asrs r2, 16 - mov r0, sp - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F3AE8 - movs r0, 0 - b _080F3AF2 - .align 2, 0 -_080F3AD0: .4byte gUnknown_083DFEC4 -_080F3AD4: .4byte 0x0000bc8e -_080F3AD8: .4byte 0x0000bc8f -_080F3ADC: .4byte 0x0000bc4c -_080F3AE0: .4byte gSpriteTemplate_83E476C -_080F3AE4: .4byte gUnknown_083E4698 -_080F3AE8: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F3AFC @ =gSprites - adds r0, r1 -_080F3AF2: - add sp, 0x18 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F3AFC: .4byte gSprites - thumb_func_end sub_80F3A3C - - thumb_func_start sub_80F3B00 -sub_80F3B00: @ 80F3B00 - push {r4,lr} - ldr r0, _080F3B34 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F3B38 @ =0x0000bc90 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F3B3C @ =0x0000bc91 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F3A3C - adds r2, r0, 0 - ldr r1, _080F3B40 @ =0x00009348 - adds r0, r4, r1 - str r2, [r0] - cmp r2, 0 - beq _080F3B48 - adds r0, r2, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r2, _080F3B44 @ =0x0000bc92 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - b _080F3B4E - .align 2, 0 -_080F3B34: .4byte gUnknown_083DFEC4 -_080F3B38: .4byte 0x0000bc90 -_080F3B3C: .4byte 0x0000bc91 -_080F3B40: .4byte 0x00009348 -_080F3B44: .4byte 0x0000bc92 -_080F3B48: - ldr r1, _080F3B54 @ =0x0000bc92 - adds r0, r4, r1 - strb r2, [r0] -_080F3B4E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3B54: .4byte 0x0000bc92 - thumb_func_end sub_80F3B00 - - thumb_func_start sub_80F3B58 -sub_80F3B58: @ 80F3B58 - push {lr} - ldr r0, _080F3B6C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F3B70 @ =0x0000bc92 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _080F3B74 - movs r0, 0 - b _080F3B8A - .align 2, 0 -_080F3B6C: .4byte gUnknown_083DFEC4 -_080F3B70: .4byte 0x0000bc92 -_080F3B74: - ldr r3, _080F3B90 @ =0x00009348 - adds r0, r1, r3 - ldr r0, [r0] - adds r0, 0x3F - ldrb r0, [r0] - lsrs r0, 5 - movs r1, 0x1 - eors r0, r1 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r2] -_080F3B8A: - pop {r1} - bx r1 - .align 2, 0 -_080F3B90: .4byte 0x00009348 - thumb_func_end sub_80F3B58 - - thumb_func_start sub_80F3B94 -sub_80F3B94: @ 80F3B94 - push {r4,lr} - ldr r0, _080F3BB8 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F3BBC @ =0x00009348 - adds r0, r4, r1 - ldr r2, [r0] - cmp r2, 0 - beq _080F3BC4 - adds r0, r2, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080F3BC0 @ =0x0000bc92 - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - b _080F3BCA - .align 2, 0 -_080F3BB8: .4byte gUnknown_083DFEC4 -_080F3BBC: .4byte 0x00009348 -_080F3BC0: .4byte 0x0000bc92 -_080F3BC4: - ldr r1, _080F3BD0 @ =0x0000bc92 - adds r0, r4, r1 - strb r2, [r0] -_080F3BCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3BD0: .4byte 0x0000bc92 - thumb_func_end sub_80F3B94 - - thumb_func_start sub_80F3BD4 -sub_80F3BD4: @ 80F3BD4 - push {r4-r6,lr} - ldr r0, _080F3C18 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F3C1C @ =0x0000bc92 - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0 - beq _080F3C24 - ldr r0, _080F3C20 @ =0x00009348 - adds r4, r1, r0 - ldr r0, [r4] - adds r0, 0x3F - ldrb r0, [r0] - lsrs r0, 5 - movs r1, 0x1 - eors r0, r1 - ands r0, r1 - strb r0, [r5] - adds r6, r0, 0 - cmp r6, 0 - bne _080F3C12 - ldr r0, [r4] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - bl DestroySprite - str r6, [r4] -_080F3C12: - ldrb r0, [r5] - b _080F3C26 - .align 2, 0 -_080F3C18: .4byte gUnknown_083DFEC4 -_080F3C1C: .4byte 0x0000bc92 -_080F3C20: .4byte 0x00009348 -_080F3C24: - movs r0, 0 -_080F3C26: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F3BD4 - - thumb_func_start sub_80F3C2C -sub_80F3C2C: @ 80F3C2C - push {r4,lr} - ldr r0, _080F3C8C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3C90 @ =0x00009348 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F3C50 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - bl DestroySprite - movs r0, 0 - str r0, [r4] -_080F3C50: - movs r4, 0 -_080F3C52: - adds r0, r4, 0 - adds r0, 0xB - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xB - bls _080F3C52 - movs r4, 0 -_080F3C6A: - adds r0, r4, 0 - adds r0, 0xA - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F3C6A - bl sub_80F2F48 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3C8C: .4byte gUnknown_083DFEC4 -_080F3C90: .4byte 0x00009348 - thumb_func_end sub_80F3C2C - - thumb_func_start sub_80F3C94 -sub_80F3C94: @ 80F3C94 - push {lr} - sub sp, 0x10 - ldr r0, _080F3CDC @ =gUnknown_083E4784 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _080F3CE0 @ =gUnknown_083E478C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - mov r0, sp - bl LoadSpriteSheet - add r0, sp, 0x8 - bl LoadSpritePalette - movs r1, 0 - ldr r0, _080F3CE4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r3, 0x88 - lsls r3, 8 - adds r2, r0, r3 - movs r3, 0 -_080F3CC6: - lsls r0, r1, 2 - adds r0, r2, r0 - str r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x9 - bls _080F3CC6 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080F3CDC: .4byte gUnknown_083E4784 -_080F3CE0: .4byte gUnknown_083E478C -_080F3CE4: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F3C94 - - thumb_func_start sub_80F3CE8 -sub_80F3CE8: @ 80F3CE8 - push {lr} - bl move_anim_execute - movs r0, 0x17 - bl FreeSpriteTilesByTag - movs r0, 0xF - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_80F3CE8 - - thumb_func_start sub_80F3D00 -sub_80F3D00: @ 80F3D00 - push {r4,r5,lr} - ldr r0, _080F3D34 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F3D38 @ =0x000087dc - adds r0, r2, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r0, 2 - ldr r1, _080F3D3C @ =0x0000893c - adds r0, r1 - adds r0, r2, r0 - ldrb r1, [r0, 0x3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F3D94 - ldr r3, _080F3D40 @ =0x00008fe9 - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - ldr r3, _080F3D44 @ =0x00008931 - adds r0, r2, r3 - adds r0, r1 - ldrb r5, [r0] - movs r4, 0 - b _080F3D86 - .align 2, 0 -_080F3D34: .4byte gUnknown_083DFEC4 -_080F3D38: .4byte 0x000087dc -_080F3D3C: .4byte 0x0000893c -_080F3D40: .4byte 0x00008fe9 -_080F3D44: .4byte 0x00008931 -_080F3D48: - ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F3D8C - ldr r0, _080F3DA0 @ =gUnknown_083DFEC4 - ldr r2, [r0] - lsls r0, r4, 2 - movs r3, 0x88 - lsls r3, 8 - adds r2, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F3DA4 @ =gSprites - adds r0, r1 - str r0, [r2] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080F3D86: - adds r0, r5, 0x1 - cmp r4, r0 - blt _080F3D48 -_080F3D8C: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80F3F20 -_080F3D94: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3D9C: .4byte gSpriteTemplate_83E4800 -_080F3DA0: .4byte gUnknown_083DFEC4 -_080F3DA4: .4byte gSprites - thumb_func_end sub_80F3D00 - - thumb_func_start move_anim_execute -move_anim_execute: @ 80F3DA8 - push {r4-r6,lr} - movs r5, 0 - ldr r0, _080F3DD8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r6, r0, r1 -_080F3DB6: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3DD2 - bl DestroySprite - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3DB6 -_080F3DD2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F3DD8: .4byte gUnknown_083DFEC4 - thumb_func_end move_anim_execute - - thumb_func_start sub_80F3DDC -sub_80F3DDC: @ 80F3DDC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080F3DFE - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_80F3F20 -_080F3DFE: - pop {r0} - bx r0 - thumb_func_end sub_80F3DDC - - thumb_func_start sub_80F3E04 -sub_80F3E04: @ 80F3E04 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080F3E1C - movs r0, 0 - strh r0, [r2, 0x30] - ldr r0, _080F3E20 @ =sub_80F3DDC - str r0, [r2, 0x1C] -_080F3E1C: - pop {r0} - bx r0 - .align 2, 0 -_080F3E20: .4byte sub_80F3DDC - thumb_func_end sub_80F3E04 - - thumb_func_start sub_80F3E24 -sub_80F3E24: @ 80F3E24 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _080F3E64 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F3E68 @ =0x00008768 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _080F3E70 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r1, r0 - ldr r2, _080F3E6C @ =gUnknown_083E4794 - movs r5, 0x2E - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - strh r0, [r3, 0x20] - ldr r0, [r4] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - movs r4, 0x2E - ldrsh r0, [r3, r4] - lsls r0, 2 - adds r2, 0x2 - adds r0, r2 - ldrh r0, [r0] - adds r0, r1 - b _080F3E8E - .align 2, 0 -_080F3E64: .4byte gUnknown_083DFEC4 -_080F3E68: .4byte 0x00008768 -_080F3E6C: .4byte gUnknown_083E4794 -_080F3E70: - ldr r1, _080F3E98 @ =gUnknown_083E4794 - movs r5, 0x2E - ldrsh r0, [r3, r5] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x28 - strh r0, [r3, 0x20] - movs r2, 0x2E - ldrsh r0, [r3, r2] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x68 -_080F3E8E: - strh r0, [r3, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F3E98: .4byte gUnknown_083E4794 - thumb_func_end sub_80F3E24 - - thumb_func_start sub_80F3E9C -sub_80F3E9C: @ 80F3E9C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080F3ECA - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080F3F14 - adds r0, r4, 0 - movs r1, 0 - bl SeekSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080F3ECA: - adds r0, r4, 0 - bl sub_80F3E24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080F3F14 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080F3F10 - cmp r1, 0x9 - bne _080F3F08 - bl sub_80F3FAC - ldr r0, _080F3F04 @ =sub_80F3E04 - b _080F3F12 - .align 2, 0 -_080F3F04: .4byte sub_80F3E04 -_080F3F08: - ldr r0, _080F3F0C @ =sub_80F3DDC - b _080F3F12 - .align 2, 0 -_080F3F0C: .4byte sub_80F3DDC -_080F3F10: - ldr r0, _080F3F1C @ =SpriteCallbackDummy -_080F3F12: - str r0, [r4, 0x1C] -_080F3F14: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F3F1C: .4byte SpriteCallbackDummy - thumb_func_end sub_80F3E9C - - thumb_func_start sub_80F3F20 -sub_80F3F20: @ 80F3F20 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r5, 0 - ldr r0, _080F3F6C @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r7, r0, r1 -_080F3F3C: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3F92 - strh r5, [r0, 0x2E] - ldr r1, [r4] - lsls r0, r5, 4 - adds r0, 0x1 - strh r0, [r1, 0x30] - ldr r0, [r4] - strh r6, [r0, 0x32] - ldr r0, [r4] - strh r5, [r0, 0x34] - mov r3, r8 - cmp r3, 0 - beq _080F3F62 - cmp r6, 0x9 - beq _080F3F74 -_080F3F62: - ldr r1, [r4] - ldr r0, _080F3F70 @ =sub_80F3E9C - str r0, [r1, 0x1C] - b _080F3F92 - .align 2, 0 -_080F3F6C: .4byte gUnknown_083DFEC4 -_080F3F70: .4byte sub_80F3E9C -_080F3F74: - ldr r0, [r4] - bl sub_80F3E24 - bl sub_80F3FAC - ldr r2, [r4] - ldr r0, _080F3FA8 @ =sub_80F3E04 - str r0, [r2, 0x1C] - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x5 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] -_080F3F92: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3F3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3FA8: .4byte sub_80F3E04 - thumb_func_end sub_80F3F20 - - thumb_func_start sub_80F3FAC -sub_80F3FAC: @ 80F3FAC - push {r4-r7,lr} - movs r5, 0 - ldr r0, _080F3FEC @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0x88 - lsls r1, 8 - adds r6, r0, r1 - movs r0, 0x5 - negs r0, r0 - adds r7, r0, 0 -_080F3FC0: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _080F3FDA - movs r1, 0 - bl SeekSpriteAnim - ldr r1, [r4] - adds r1, 0x3E - ldrb r0, [r1] - ands r0, r7 - strb r0, [r1] -_080F3FDA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F3FC0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F3FEC: .4byte gUnknown_083DFEC4 - thumb_func_end sub_80F3FAC - - thumb_func_start sub_80F3FF0 -sub_80F3FF0: @ 80F3FF0 - push {lr} - ldr r0, _080F4018 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F401C @ =0x00000306 - adds r2, r0, r1 - movs r1, 0 - strh r1, [r2] - ldr r1, _080F4020 @ =0x00006dac - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F4012 -_080F4008: - bl sub_80F4024 - lsls r0, 24 - cmp r0, 0 - bne _080F4008 -_080F4012: - pop {r0} - bx r0 - .align 2, 0 -_080F4018: .4byte gUnknown_083DFEC4 -_080F401C: .4byte 0x00000306 -_080F4020: .4byte 0x00006dac - thumb_func_end sub_80F3FF0 - - thumb_func_start sub_80F4024 -sub_80F4024: @ 80F4024 - push {r4,lr} - sub sp, 0x10 - ldr r0, _080F4040 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F4044 @ =0x00000306 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080F4068 - cmp r0, 0x1 - bgt _080F4048 - cmp r0, 0 - beq _080F4052 - b _080F4106 - .align 2, 0 -_080F4040: .4byte gUnknown_083DFEC4 -_080F4044: .4byte 0x00000306 -_080F4048: - cmp r0, 0x2 - beq _080F4084 - cmp r0, 0x3 - beq _080F40B8 - b _080F4106 -_080F4052: - ldr r0, _080F4060 @ =gUnknown_083E329C - ldr r2, _080F4064 @ =0x000131e4 - adds r1, r4, r2 - bl LZ77UnCompWram - b _080F4118 - .align 2, 0 -_080F4060: .4byte gUnknown_083E329C -_080F4064: .4byte 0x000131e4 -_080F4068: - ldr r1, _080F407C @ =0x000131e4 - adds r0, r4, r1 - str r0, [sp] - ldr r0, _080F4080 @ =0x00181000 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - b _080F4118 - .align 2, 0 -_080F407C: .4byte 0x000131e4 -_080F4080: .4byte 0x00181000 -_080F4084: - ldr r0, _080F40B4 @ =gUnknown_083E4818 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - add r0, sp, 0x8 - bl LoadSpritePalette - movs r0, 0x10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC2 - lsls r1, 2 - adds r2, r4, r1 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - movs r0, 0x3 - negs r0, r0 - bics r0, r1 - str r0, [r2] - b _080F4118 - .align 2, 0 -_080F40B4: .4byte gUnknown_083E4818 -_080F40B8: - ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850 - movs r1, 0xDA - movs r2, 0xE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080F40F0 - ldr r0, _080F40E8 @ =0x00006d98 - adds r2, r4, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F40EC @ =gSprites - adds r0, r1 - str r0, [r2] - movs r1, 0 - strh r1, [r0, 0x2E] - b _080F40F8 - .align 2, 0 -_080F40E4: .4byte gSpriteTemplate_83E4850 -_080F40E8: .4byte 0x00006d98 -_080F40EC: .4byte gSprites -_080F40F0: - ldr r2, _080F410C @ =0x00006d98 - adds r1, r4, r2 - movs r0, 0 - str r0, [r1] -_080F40F8: - ldr r0, _080F4110 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F4114 @ =0x00000306 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080F4106: - movs r0, 0 - b _080F4128 - .align 2, 0 -_080F410C: .4byte 0x00006d98 -_080F4110: .4byte gUnknown_083DFEC4 -_080F4114: .4byte 0x00000306 -_080F4118: - ldr r0, _080F4130 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F4134 @ =0x00000306 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 -_080F4128: - add sp, 0x10 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4130: .4byte gUnknown_083DFEC4 -_080F4134: .4byte 0x00000306 - thumb_func_end sub_80F4024 - - thumb_func_start sub_80F4138 -sub_80F4138: @ 80F4138 - push {lr} - adds r2, r0, 0 - ldr r0, _080F4170 @ =gUnknown_083DFEC4 - ldr r0, [r0] - movs r1, 0xC3 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - negs r0, r0 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _080F4174 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F418E - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x1 - b _080F418C - .align 2, 0 -_080F4170: .4byte gUnknown_083DFEC4 -_080F4174: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F418E - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - movs r0, 0 -_080F418C: - strh r0, [r2, 0x2E] -_080F418E: - pop {r0} - bx r0 - thumb_func_end sub_80F4138 - - thumb_func_start sub_80F4194 -sub_80F4194: @ 80F4194 - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - adds r2, r1, 0 - ldr r0, _080F42A4 @ =gUnknown_083DFEC8 - ldr r6, [r0] - mov r0, sp - ldr r1, _080F42A8 @ =0x00001111 - adds r5, r1, 0 - strh r5, [r0] - ldr r4, _080F42AC @ =0x040000d4 - str r0, [r4] - str r6, [r4, 0x4] - ldr r3, _080F42B0 @ =0x81000140 - str r3, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0x80 - lsls r0, 3 - adds r1, r6, r0 - mov r0, sp - strh r5, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r3, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080F42B4 @ =gWindowConfig_81E70F0 - adds r1, r6, 0 - bl sub_8004E3C - movs r3, 0x88 - lsls r3, 2 - adds r1, r6, r3 - mov r0, sp - movs r3, 0 - strh r3, [r0] - str r0, [r4] - str r1, [r4, 0x4] - ldr r2, _080F42B8 @ =0x81000030 - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC4 - lsls r0, 3 - adds r1, r6, r0 - mov r0, sp - strh r3, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r1, 0x80 - lsls r1, 2 - adds r2, r6, r1 - ldr r0, [r2] - ldr r1, _080F42BC @ =0x0fffffff - ands r0, r1 - str r0, [r2] - ldr r0, [r2, 0x4] - ands r0, r1 - str r0, [r2, 0x4] - ldr r0, [r2, 0x8] - ands r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0xC] - ands r0, r1 - str r0, [r2, 0xC] - ldr r0, [r2, 0x10] - ands r0, r1 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - ands r0, r1 - str r0, [r2, 0x14] - ldr r0, [r2, 0x18] - ands r0, r1 - str r0, [r2, 0x18] - ldr r0, [r2, 0x1C] - ands r0, r1 - str r0, [r2, 0x1C] - movs r3, 0xC0 - lsls r3, 3 - adds r2, r6, r3 - ldr r0, [r2] - ands r0, r1 - str r0, [r2] - ldr r0, [r2, 0x4] - ands r0, r1 - str r0, [r2, 0x4] - ldr r0, [r2, 0x8] - ands r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0xC] - ands r0, r1 - str r0, [r2, 0xC] - ldr r0, [r2, 0x10] - ands r0, r1 - str r0, [r2, 0x10] - ldr r0, [r2, 0x14] - ands r0, r1 - str r0, [r2, 0x14] - ldr r0, [r2, 0x18] - ands r0, r1 - str r0, [r2, 0x18] - ldr r0, [r2, 0x1C] - ands r0, r1 - str r0, [r2, 0x1C] - movs r1, 0 - ldr r2, _080F42C0 @ =0x80000040 -_080F4268: - lsls r0, r1, 7 - adds r0, r6, r0 - str r0, [r4] - lsls r0, r1, 8 - adds r0, r7, r0 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - lsls r0, r1, 7 - movs r3, 0x80 - lsls r3, 3 - adds r0, r3 - adds r0, r6, r0 - str r0, [r4] - lsls r0, r1, 3 - adds r0, 0x4 - lsls r0, 5 - adds r0, r7, r0 - str r0, [r4, 0x4] - str r2, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080F4268 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F42A4: .4byte gUnknown_083DFEC8 -_080F42A8: .4byte 0x00001111 -_080F42AC: .4byte 0x040000d4 -_080F42B0: .4byte 0x81000140 -_080F42B4: .4byte gWindowConfig_81E70F0 -_080F42B8: .4byte 0x81000030 -_080F42BC: .4byte 0x0fffffff -_080F42C0: .4byte 0x80000040 - thumb_func_end sub_80F4194 - - thumb_func_start sub_80F42C4 -sub_80F42C4: @ 80F42C4 - push {r4-r7,lr} - sub sp, 0x8 - adds r1, r0, 0 - ldr r0, _080F433C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F4340 @ =0x0000d1e4 - adds r0, r2 - str r0, [sp] - ldr r2, _080F4344 @ =0x001a0500 - str r2, [sp, 0x4] - bl sub_80F4194 - mov r0, sp - bl LoadSpriteSheet - ldr r0, _080F4348 @ =gUnknown_083E4868 - bl LoadSpritePalette - movs r5, 0 - movs r4, 0 - ldr r6, _080F434C @ =gSprites -_080F42EE: - lsls r1, r4, 21 - movs r7, 0xE2 - lsls r7, 15 - adds r1, r7 - asrs r1, 16 - ldr r0, _080F4350 @ =gSpriteTemplate_83E4878 - movs r2, 0x10 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080F4360 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r6 - ldrh r2, [r3, 0x4] - lsls r0, r2, 22 - lsrs r0, 22 - adds r0, r5, r0 - ldr r7, _080F4354 @ =0x000003ff - adds r1, r7, 0 - ands r0, r1 - ldr r7, _080F4358 @ =0xfffffc00 - adds r1, r7, 0 - ands r2, r1 - orrs r2, r0 - strh r2, [r3, 0x4] - ldr r0, _080F433C @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _080F435C @ =0x0000ced4 - adds r0, r2 - adds r0, r1 - str r3, [r0] - b _080F4370 - .align 2, 0 -_080F433C: .4byte gUnknown_083DFEC4 -_080F4340: .4byte 0x0000d1e4 -_080F4344: .4byte 0x001a0500 -_080F4348: .4byte gUnknown_083E4868 -_080F434C: .4byte gSprites -_080F4350: .4byte gSpriteTemplate_83E4878 -_080F4354: .4byte 0x000003ff -_080F4358: .4byte 0xfffffc00 -_080F435C: .4byte 0x0000ced4 -_080F4360: - ldr r0, _080F438C @ =gUnknown_083DFEC4 - ldr r1, [r0] - lsls r0, r4, 2 - ldr r7, _080F4390 @ =0x0000ced4 - adds r1, r7 - adds r1, r0 - movs r0, 0 - str r0, [r1] -_080F4370: - adds r0, r5, 0 - adds r0, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F42EE - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F438C: .4byte gUnknown_083DFEC4 -_080F4390: .4byte 0x0000ced4 - thumb_func_end sub_80F42C4 - - thumb_func_start sub_80F4394 -sub_80F4394: @ 80F4394 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080F43CC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F43D0 @ =0x0000ced4 - adds r5, r0, r1 -_080F43A0: - lsls r0, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080F43AE - bl DestroySprite -_080F43AE: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080F43A0 - movs r0, 0x1A - bl FreeSpriteTilesByTag - movs r0, 0x12 - bl FreeSpritePaletteByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F43CC: .4byte gUnknown_083DFEC4 -_080F43D0: .4byte 0x0000ced4 - thumb_func_end sub_80F4394 - - thumb_func_start sub_80F43D4 -sub_80F43D4: @ 80F43D4 - push {r4,lr} - adds r1, r0, 0 - ldr r0, _080F4410 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F4414 @ =0x0000d1e4 - adds r4, r0, r2 - adds r0, r4, 0 - bl sub_80F4194 - movs r0, 0x1A - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080F4418 @ =0x0000ffff - cmp r1, r0 - beq _080F4408 - lsls r0, r1, 5 - ldr r1, _080F441C @ =0x06010000 - adds r0, r1 - ldr r1, _080F4420 @ =0x040000d4 - str r4, [r1] - str r0, [r1, 0x4] - ldr r0, _080F4424 @ =0x84000140 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_080F4408: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4410: .4byte gUnknown_083DFEC4 -_080F4414: .4byte 0x0000d1e4 -_080F4418: .4byte 0x0000ffff -_080F441C: .4byte 0x06010000 -_080F4420: .4byte 0x040000d4 -_080F4424: .4byte 0x84000140 - thumb_func_end sub_80F43D4 - - thumb_func_start sub_80F4428 -sub_80F4428: @ 80F4428 - push {lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - bl sub_80F6514 - pop {r1} - bx r1 - thumb_func_end sub_80F4428 - - thumb_func_start sub_80F443C -sub_80F443C: @ 80F443C - push {r4,lr} - lsls r4, r1, 16 - lsrs r4, 16 - ldr r1, _080F4458 @ =gOtherText_Number - bl StringCopy - adds r1, r4, 0 - movs r2, 0x38 - movs r3, 0x1 - bl sub_8072C14 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4458: .4byte gOtherText_Number - thumb_func_end sub_80F443C - - thumb_func_start sub_80F445C -sub_80F445C: @ 80F445C - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x17 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - movs r3, 0xFC - strb r3, [r4] - movs r2, 0x11 - strb r2, [r4, 0x1] - movs r1, 0x1 - strb r1, [r4, 0x2] - adds r4, 0x3 - movs r0, 0xBA - strb r0, [r4] - adds r4, 0x1 - strb r3, [r4] - strb r2, [r4, 0x1] - strb r1, [r4, 0x2] - adds r4, 0x3 - ldr r0, _080F44A8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F44AC @ =0x00008774 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0x32 - movs r3, 0x1 - bl sub_8072C14 - adds r4, r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F44A8: .4byte gUnknown_083DFEC4 -_080F44AC: .4byte 0x00008774 - thumb_func_end sub_80F445C - - thumb_func_start sub_80F44B0 -sub_80F44B0: @ 80F44B0 - push {r4,lr} - adds r4, r2, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r0, 0xE - bne _080F44F4 - cmp r4, 0x2 - beq _080F44C8 - cmp r4, 0x7 - bne _080F44E0 -_080F44C8: - movs r0, 0x64 - muls r0, r2 - ldr r1, _080F44DC @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - adds r2, r3, 0 - bl GetMonData - b _080F453C - .align 2, 0 -_080F44DC: .4byte gPlayerParty -_080F44E0: - movs r0, 0x64 - muls r0, r2 - ldr r1, _080F44F0 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl GetMonData - b _080F453C - .align 2, 0 -_080F44F0: .4byte gPlayerParty -_080F44F4: - cmp r4, 0x2 - beq _080F44FC - cmp r4, 0x7 - bne _080F4520 -_080F44FC: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F451C @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - adds r1, r4, 0 - adds r2, r3, 0 - bl GetBoxMonData - b _080F453C - .align 2, 0 -_080F451C: .4byte gUnknown_020300A4 -_080F4520: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F4544 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - adds r1, r4, 0 - bl GetBoxMonData -_080F453C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F4544: .4byte gUnknown_020300A4 - thumb_func_end sub_80F44B0 - - thumb_func_start sub_80F4548 -sub_80F4548: @ 80F4548 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - mov r0, sp - strb r2, [r0] - cmp r3, 0xE - bne _080F4574 - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F4570 @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _080F4592 - .align 2, 0 -_080F4570: .4byte gPlayerParty -_080F4574: - lsls r1, r3, 2 - adds r1, r3 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - ldr r2, _080F459C @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_080F4592: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F459C: .4byte gUnknown_020300A4 - thumb_func_end sub_80F4548 - - thumb_func_start sub_80F45A0 -sub_80F45A0: @ 80F45A0 - push {r4-r7,lr} - lsls r1, 24 - lsrs r6, r1, 24 - ldr r1, _080F45F0 @ =gUnknown_083DFEC4 - ldr r5, [r1] - lsls r1, r0, 16 - asrs r0, r1, 14 - adds r4, r5, r0 - ldr r2, _080F45F4 @ =0x0000893f - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r7, r0, 31 - cmp r7, 0 - beq _080F4644 - lsls r0, r6, 6 - ldr r2, _080F45F8 @ =0x00008829 - adds r0, r2 - adds r0, r5, r0 - lsrs r1, 16 - movs r2, 0 - bl sub_80F4428 - ldr r1, _080F45FC @ =0x0000893d - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0xE - bne _080F4608 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r2, _080F4600 @ =0x000088e9 - adds r0, r2 - adds r0, r5, r0 - ldr r1, _080F4604 @ =gOtherText_InParty - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 - b _080F4624 - .align 2, 0 -_080F45F0: .4byte gUnknown_083DFEC4 -_080F45F4: .4byte 0x0000893f -_080F45F8: .4byte 0x00008829 -_080F45FC: .4byte 0x0000893d -_080F4600: .4byte 0x000088e9 -_080F4604: .4byte gOtherText_InParty -_080F4608: - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F4634 @ =0x000088e9 - adds r0, r1 - adds r0, r5, r0 - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _080F4638 @ =gUnknown_020383E4 - adds r1, r2 - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 -_080F4624: - ldr r0, _080F463C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F4640 @ =0x00008937 - adds r0, r2 - adds r0, r6 - movs r1, 0x1 - strb r1, [r0] - b _080F4676 - .align 2, 0 -_080F4634: .4byte 0x000088e9 -_080F4638: .4byte gUnknown_020383E4 -_080F463C: .4byte gUnknown_083DFEC4 -_080F4640: .4byte 0x00008937 -_080F4644: - lsls r0, r6, 6 - ldr r1, _080F467C @ =0x00008829 - adds r0, r1 - adds r0, r5, r0 - ldr r4, _080F4680 @ =gEmptyString_81E72B0 - adds r1, r4, 0 - movs r2, 0x68 - movs r3, 0 - bl sub_8072C74 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - ldr r2, _080F4684 @ =0x000088e9 - adds r0, r2 - adds r0, r5, r0 - adds r1, r4, 0 - movs r2, 0x40 - movs r3, 0 - bl sub_8072C74 - ldr r1, _080F4688 @ =0x00008937 - adds r0, r5, r1 - adds r0, r6 - strb r7, [r0] -_080F4676: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F467C: .4byte 0x00008829 -_080F4680: .4byte gEmptyString_81E72B0 -_080F4684: .4byte 0x000088e9 -_080F4688: .4byte 0x00008937 - thumb_func_end sub_80F45A0 - - thumb_func_start sub_80F468C -sub_80F468C: @ 80F468C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r1, _080F475C @ =gUnknown_083DFEC4 - ldr r7, [r1] - lsls r0, 16 - asrs r0, 14 - adds r1, r7, r0 - ldr r2, _080F4760 @ =0x0000893f - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _080F46B2 - b _080F47C4 -_080F46B2: - ldr r3, _080F4764 @ =0x0000893d - adds r0, r1, r3 - ldrb r5, [r0] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 27 - lsrs r6, r0, 27 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x16 - movs r3, 0 - bl sub_80F44B0 - mov r3, r9 - lsls r3, 2 - mov r8, r3 - mov r4, r8 - add r4, r9 - ldr r2, _080F4768 @ =0x00008ff0 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x2F - movs r3, 0 - bl sub_80F44B0 - ldr r3, _080F476C @ =0x00008ff1 - adds r1, r7, r3 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x21 - movs r3, 0 - bl sub_80F44B0 - ldr r2, _080F4770 @ =0x00008ff2 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x18 - movs r3, 0 - bl sub_80F44B0 - ldr r3, _080F4774 @ =0x00008ff3 - adds r1, r7, r3 - adds r1, r4 - strb r0, [r1] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_80F44B0 - ldr r2, _080F4778 @ =0x00008ff4 - adds r1, r7, r2 - adds r1, r4 - strb r0, [r1] - ldr r3, _080F477C @ =0x00008931 - adds r0, r7, r3 - mov r7, r9 - adds r4, r0, r7 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_80F44B0 - cmp r0, 0xFF - beq _080F4780 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x30 - movs r3, 0 - bl sub_80F44B0 - movs r1, 0x1D - bl __udivsi3 - b _080F4782 - .align 2, 0 -_080F475C: .4byte gUnknown_083DFEC4 -_080F4760: .4byte 0x0000893f -_080F4764: .4byte 0x0000893d -_080F4768: .4byte 0x00008ff0 -_080F476C: .4byte 0x00008ff1 -_080F4770: .4byte 0x00008ff2 -_080F4774: .4byte 0x00008ff3 -_080F4778: .4byte 0x00008ff4 -_080F477C: .4byte 0x00008931 -_080F4780: - movs r0, 0x9 -_080F4782: - strb r0, [r4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x8 - movs r3, 0 - bl sub_80F44B0 - ldr r1, _080F47B4 @ =gUnknown_083DFEC4 - ldr r1, [r1] - ldr r3, _080F47B8 @ =0x00008934 - adds r2, r1, r3 - add r2, r9 - strb r0, [r2] - mov r2, r8 - add r2, r9 - ldr r7, _080F47BC @ =0x00008ff0 - adds r0, r2, r7 - adds r0, r1, r0 - lsls r2, 2 - ldr r3, _080F47C0 @ =0x00009004 - adds r2, r3 - adds r1, r2 - bl sub_80F55AC - b _080F480A - .align 2, 0 -_080F47B4: .4byte gUnknown_083DFEC4 -_080F47B8: .4byte 0x00008934 -_080F47BC: .4byte 0x00008ff0 -_080F47C0: .4byte 0x00009004 -_080F47C4: - movs r3, 0 - mov r0, r9 - lsls r0, 2 - mov r8, r0 - adds r4, r7, 0 - mov r2, r8 - add r2, r9 - ldr r1, _080F4818 @ =0x00008ff0 - adds r6, r4, r1 - lsls r5, r2, 2 - mov r9, r3 - ldr r7, _080F481C @ =0x00009004 - mov r8, r7 - movs r0, 0x9B - mov r12, r0 -_080F47E2: - adds r0, r3, r2 - adds r0, r6, r0 - mov r1, r9 - strb r1, [r0] - lsls r0, r3, 2 - adds r0, r5 - adds r0, r4, r0 - mov r7, r8 - adds r1, r0, r7 - mov r7, r12 - strh r7, [r1] - ldr r1, _080F4820 @ =0x00009006 - adds r0, r1 - movs r1, 0x5B - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bls _080F47E2 -_080F480A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4818: .4byte 0x00008ff0 -_080F481C: .4byte 0x00009004 -_080F4820: .4byte 0x00009006 - thumb_func_end sub_80F468C - - thumb_func_start sub_80F4824 -sub_80F4824: @ 80F4824 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r1, _080F48E0 @ =gUnknown_083DFEC4 - ldr r7, [r1] - lsls r0, 16 - asrs r0, 14 - adds r1, r7, r0 - ldr r2, _080F48E4 @ =0x0000893f - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _080F48D0 - ldr r6, _080F48E8 @ =0x0000893d - adds r0, r1, r6 - ldrb r6, [r0] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r4, [r0] - lsls r4, 27 - lsrs r4, 27 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x41 - movs r3, 0 - bl sub_80F44B0 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_80F44B0 - mov r8, r0 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl sub_80F44B0 - adds r4, r0, 0 - lsls r0, r5, 3 - ldr r1, _080F48EC @ =gMonFrontPicTable - adds r0, r1 - ldr r2, _080F48F0 @ =gMonFrontPicCoords - lsls r1, r5, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r6, _080F48F4 @ =0x000131e4 - adds r3, r7, r6 - mov r6, r9 - lsls r2, r6, 13 - ldr r6, _080F48F8 @ =0x0000d1e4 - adds r2, r6 - adds r2, r7, r2 - str r2, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r2, 0x1 - bl sub_800D334 - adds r0, r5, 0 - mov r1, r8 - adds r2, r4, 0 - bl species_and_otid_get_pal - mov r2, r9 - lsls r1, r2, 7 - adds r1, r7, r1 - bl LZ77UnCompWram - mov r6, r9 - lsls r1, r6, 1 - ldr r2, _080F48FC @ =0x0000d1d6 - adds r0, r7, r2 - adds r0, r1 - strh r5, [r0] -_080F48D0: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F48E0: .4byte gUnknown_083DFEC4 -_080F48E4: .4byte 0x0000893f -_080F48E8: .4byte 0x0000893d -_080F48EC: .4byte gMonFrontPicTable -_080F48F0: .4byte gMonFrontPicCoords -_080F48F4: .4byte 0x000131e4 -_080F48F8: .4byte 0x0000d1e4 -_080F48FC: .4byte 0x0000d1d6 - thumb_func_end sub_80F4824 - - thumb_func_start sub_80F4900 -sub_80F4900: @ 80F4900 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F45A0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F468C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80F4824 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F4900 - - thumb_func_start sub_80F492C -sub_80F492C: @ 80F492C - ldr r0, _080F493C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F4940 @ =0x00008fe4 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080F493C: .4byte gUnknown_083DFEC4 -_080F4940: .4byte 0x00008fe4 - thumb_func_end sub_80F492C - - thumb_func_start sub_80F4944 -sub_80F4944: @ 80F4944 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - movs r2, 0 - ldr r1, _080F4978 @ =gUnknown_083DFEC4 - ldr r5, [r1] - ldr r3, _080F497C @ =0x00008fe4 - adds r0, r5, r3 - ldrh r4, [r0] - lsrs r3, r4, 1 - mov r8, r1 - cmp r4, r3 - beq _080F499C - adds r6, r5, 0 - mov r0, r12 - ldrb r5, [r0] - ldr r7, _080F4980 @ =0x0000893c -_080F4968: - lsls r0, r3, 2 - adds r0, r6, r0 - adds r0, r7 - ldrb r0, [r0] - cmp r5, r0 - bls _080F4984 - adds r4, r3, 0 - b _080F498A - .align 2, 0 -_080F4978: .4byte gUnknown_083DFEC4 -_080F497C: .4byte 0x00008fe4 -_080F4980: .4byte 0x0000893c -_080F4984: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080F498A: - subs r0, r4, r2 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r0, r2, r0 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, r3 - bne _080F4968 -_080F499C: - mov r1, r8 - ldr r2, [r1] - ldr r1, _080F49EC @ =0x00008fe4 - adds r0, r2, r1 - ldrh r4, [r0] - lsls r6, r3, 2 - cmp r4, r3 - bls _080F49C6 - ldr r0, _080F49F0 @ =0x0000893c - adds r5, r2, r0 -_080F49B0: - lsls r2, r4, 2 - adds r2, r5, r2 - subs r1, r4, 0x1 - lsls r0, r1, 2 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [r2] - lsls r1, 16 - lsrs r4, r1, 16 - cmp r4, r3 - bhi _080F49B0 -_080F49C6: - mov r1, r8 - ldr r2, [r1] - ldr r3, _080F49F0 @ =0x0000893c - adds r0, r2, r3 - adds r0, r6 - mov r3, r12 - ldr r1, [r3] - str r1, [r0] - ldr r0, _080F49EC @ =0x00008fe4 - adds r2, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F49EC: .4byte 0x00008fe4 -_080F49F0: .4byte 0x0000893c - thumb_func_end sub_80F4944 - - thumb_func_start sub_80F49F4 -sub_80F49F4: @ 80F49F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r3, _080F4A64 @ =gUnknown_083DFEC4 - ldr r4, [r3] - ldr r7, _080F4A68 @ =0x0000893e - adds r2, r4, r7 - ldrh r1, [r2] - ldr r0, _080F4A6C @ =0xffffc01f - mov r12, r0 - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strh r0, [r2] - movs r5, 0x1 - ldr r1, _080F4A70 @ =0x00008fe4 - adds r0, r4, r1 - ldrh r3, [r0] - cmp r5, r3 - bcs _080F4A9E - adds r6, r4, 0 - ldr r1, _080F4A74 @ =0x0000893c - mov r8, r1 - ldr r3, _080F4A78 @ =0x000001ff - mov r10, r3 - mov r9, r0 -_080F4A2C: - lsls r0, r5, 2 - adds r3, r6, r0 - mov r0, r8 - adds r2, r3, r0 - subs r0, r5, 0x1 - lsls r0, 2 - adds r4, r6, r0 - mov r0, r8 - adds r1, r4, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _080F4A7C - adds r0, r4, r7 - ldrh r0, [r0] - lsls r0, 18 - lsrs r0, 23 - adds r3, r7 - ldr r1, _080F4A78 @ =0x000001ff - ands r1, r0 - lsls r1, 5 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3] - adds r4, r5, 0x1 - b _080F4A92 - .align 2, 0 -_080F4A64: .4byte gUnknown_083DFEC4 -_080F4A68: .4byte 0x0000893e -_080F4A6C: .4byte 0xffffc01f -_080F4A70: .4byte 0x00008fe4 -_080F4A74: .4byte 0x0000893c -_080F4A78: .4byte 0x000001ff -_080F4A7C: - adds r4, r5, 0x1 - adds r3, r7 - adds r1, r4, 0 - mov r0, r10 - ands r1, r0 - lsls r1, 5 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3] -_080F4A92: - lsls r0, r4, 16 - lsrs r5, r0, 16 - mov r1, r9 - ldrh r1, [r1] - cmp r5, r1 - bcc _080F4A2C -_080F4A9E: - ldr r3, _080F4AC4 @ =gUnknown_083DFEC4 - ldr r2, [r3] - ldr r1, _080F4AC8 @ =0x0000876c - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - ldr r3, _080F4ACC @ =0x00008770 - adds r0, r2, r3 - strh r1, [r0] - subs r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _080F4AD0 @ =0x00008fe4 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080F4AD4 - subs r1, r0, 0x1 - b _080F4AD6 - .align 2, 0 -_080F4AC4: .4byte gUnknown_083DFEC4 -_080F4AC8: .4byte 0x0000876c -_080F4ACC: .4byte 0x00008770 -_080F4AD0: .4byte 0x00008fe4 -_080F4AD4: - movs r1, 0x7 -_080F4AD6: - ldr r3, _080F4B10 @ =0x00008772 - adds r0, r2, r3 - strh r1, [r0] - ldr r0, _080F4B14 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F4B18 @ =0x00008fe4 - adds r0, r2, r1 - ldrh r0, [r0] - subs r0, 0x1 - adds r3, 0x2 - adds r1, r2, r3 - strh r0, [r1] - movs r1, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080F4AFA - movs r1, 0x1 -_080F4AFA: - ldr r3, _080F4B1C @ =0x000087c9 - adds r0, r2, r3 - strb r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4B10: .4byte 0x00008772 -_080F4B14: .4byte gUnknown_083DFEC4 -_080F4B18: .4byte 0x00008fe4 -_080F4B1C: .4byte 0x000087c9 - thumb_func_end sub_80F49F4 - - thumb_func_start sub_80F4B20 -sub_80F4B20: @ 80F4B20 - push {r4-r6,lr} - ldr r0, _080F4B5C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F4B60 @ =0x000087dc - adds r5, r4, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0 - bl sub_80F4900 - movs r0, 0 - bl sub_80F2E18 - ldr r0, _080F4B64 @ =0x000087da - adds r2, r4, r0 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080F4B6C - ldr r2, _080F4B68 @ =0x00008fe9 - adds r0, r4, r2 - movs r1, 0 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - b _080F4BBE - .align 2, 0 -_080F4B5C: .4byte gUnknown_083DFEC4 -_080F4B60: .4byte 0x000087dc -_080F4B64: .4byte 0x000087da -_080F4B68: .4byte 0x00008fe9 -_080F4B6C: - ldr r0, _080F4BC4 @ =0x00008fe9 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r0, _080F4BC8 @ =0x00008fea - adds r1, r4, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080F4BCC @ =0x00008feb - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - ldrh r3, [r5] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - ldrh r6, [r2] - movs r4, 0 - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080F4B9A - movs r5, 0 -_080F4B9A: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r0, 0 - bge _080F4BAA - subs r0, r6, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080F4BAA: - lsls r0, r5, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_80F4900 - lsls r0, r4, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_80F4900 -_080F4BBE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F4BC4: .4byte 0x00008fe9 -_080F4BC8: .4byte 0x00008fea -_080F4BCC: .4byte 0x00008feb - thumb_func_end sub_80F4B20 - - thumb_func_start sub_80F4BD0 -sub_80F4BD0: @ 80F4BD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r7, 0 - ldr r0, _080F4CC4 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r3, _080F4CC8 @ =0x00008828 - adds r1, r2, r3 - mov r9, r0 - ldrb r1, [r1] - cmp r7, r1 - bcs _080F4C66 - mov r10, r9 - adds r4, r3, 0 - adds r4, r2 - mov r8, r4 -_080F4BF6: - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F4CCC @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080F4C58 - mov r0, r10 - ldr r3, [r0] - lsls r0, r7, 2 - adds r3, r0 - ldr r2, _080F4CD0 @ =0x0000893d - adds r1, r3, r2 - movs r0, 0xE - strb r0, [r1] - ldr r4, _080F4CD4 @ =0x0000893e - adds r5, r3, r4 - movs r0, 0x1F - adds r2, r6, 0 - ands r2, r0 - ldrb r0, [r5] - movs r4, 0x20 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5] - adds r4, r7, 0x1 - ldr r7, _080F4CD8 @ =0x000001ff - adds r0, r7, 0 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 5 - ldrh r0, [r5] - ldr r7, _080F4CDC @ =0xffffc01f - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r5] - ldr r0, _080F4CE0 @ =0x0000893f - adds r3, r0 - ldrb r0, [r3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3] - lsls r4, 16 - lsrs r7, r4, 16 -_080F4C58: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r8 - ldrb r1, [r1] - cmp r6, r1 - bcc _080F4BF6 -_080F4C66: - mov r2, r9 - ldr r4, [r2] - lsls r1, r7, 2 - adds r1, r4, r1 - ldr r3, _080F4CD0 @ =0x0000893d - adds r0, r1, r3 - movs r5, 0 - strb r5, [r0] - ldr r0, _080F4CD4 @ =0x0000893e - adds r2, r1, r0 - ldrb r3, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - strb r0, [r2] - ldrh r3, [r2] - ldr r0, _080F4CDC @ =0xffffc01f - ands r0, r3 - strh r0, [r2] - ldr r2, _080F4CE0 @ =0x0000893f - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r3, _080F4CE4 @ =0x000087dc - adds r0, r4, r3 - strh r5, [r0] - adds r1, r7, 0x1 - ldr r7, _080F4CE8 @ =0x000087da - adds r0, r4, r7 - strh r1, [r0] - bl sub_80F4B20 - ldr r0, _080F4CEC @ =0x000087cb - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F4CC4: .4byte gUnknown_083DFEC4 -_080F4CC8: .4byte 0x00008828 -_080F4CCC: .4byte gPlayerParty -_080F4CD0: .4byte 0x0000893d -_080F4CD4: .4byte 0x0000893e -_080F4CD8: .4byte 0x000001ff -_080F4CDC: .4byte 0xffffc01f -_080F4CE0: .4byte 0x0000893f -_080F4CE4: .4byte 0x000087dc -_080F4CE8: .4byte 0x000087da -_080F4CEC: .4byte 0x000087cb - thumb_func_end sub_80F4BD0 - - thumb_func_start sub_80F4CF0 -sub_80F4CF0: @ 80F4CF0 - push {r4,lr} - ldr r0, _080F4D1C @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F4D20 @ =0x0000876e - adds r0, r4, r1 - ldrh r1, [r0] - ldr r2, _080F4D24 @ =0x000087dc - adds r0, r4, r2 - strh r1, [r0] - bl sub_80F4B20 - ldr r1, _080F4D28 @ =0x00008774 - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080F4D30 - ldr r0, _080F4D2C @ =0x000087cb - adds r1, r4, r0 - movs r0, 0 - b _080F4D36 - .align 2, 0 -_080F4D1C: .4byte gUnknown_083DFEC4 -_080F4D20: .4byte 0x0000876e -_080F4D24: .4byte 0x000087dc -_080F4D28: .4byte 0x00008774 -_080F4D2C: .4byte 0x000087cb -_080F4D30: - ldr r2, _080F4D40 @ =0x000087cb - adds r1, r4, r2 - movs r0, 0x1 -_080F4D36: - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4D40: .4byte 0x000087cb - thumb_func_end sub_80F4CF0 - - thumb_func_start sub_80F4D44 -sub_80F4D44: @ 80F4D44 - push {r4,lr} - ldr r0, _080F4D78 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F4D7C @ =0x00008fe6 - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080F4D80 @ =0x00008fe7 - adds r0, r4, r2 - strb r1, [r0] - bl sub_80F492C - ldr r0, _080F4D84 @ =0x00006dac - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0 - bne _080F4D70 -_080F4D66: - bl sub_80F4D88 - lsls r0, 24 - cmp r0, 0 - bne _080F4D66 -_080F4D70: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F4D78: .4byte gUnknown_083DFEC4 -_080F4D7C: .4byte 0x00008fe6 -_080F4D80: .4byte 0x00008fe7 -_080F4D84: .4byte 0x00006dac - thumb_func_end sub_80F4D44 - - thumb_func_start sub_80F4D88 -sub_80F4D88: @ 80F4D88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r6, _080F4E98 @ =gUnknown_083DFEC4 - ldr r4, [r6] - ldr r1, _080F4E9C @ =0x00008fe6 - adds r0, r4, r1 - ldrb r3, [r0] - cmp r3, 0xE - bne _080F4DA4 - b _080F4EB8 -_080F4DA4: - cmp r3, 0xF - bne _080F4DAA - b _080F4F60 -_080F4DAA: - movs r1, 0x80 - lsls r1, 23 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - movs r7, 0 - mov r10, r6 - ldr r2, _080F4E9C @ =0x00008fe6 - adds r6, r4, r2 - ldr r3, _080F4EA0 @ =0x00008fe7 - adds r5, r4, r3 - ldr r0, _080F4EA4 @ =0x000087d8 - adds r0, r4 - mov r9, r0 - ldr r1, _080F4EA8 @ =gUnknown_020300A4 - mov r8, r1 -_080F4DCA: - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _080F4E60 - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - bne _080F4E60 - ldrb r1, [r6] - lsls r1, 8 - ldr r2, _080F4EAC @ =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldrb r2, [r5] - movs r1, 0x1F - ands r2, r1 - lsls r2, 16 - ldr r1, _080F4EB0 @ =0xffe0ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r5] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - mov r2, r9 - ldrb r1, [r2] - bl GetBoxMonData - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F4EB4 @ =0xffffff00 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - bl sub_80F4944 -_080F4E60: - mov r3, r10 - ldr r1, [r3] - ldr r0, _080F4EA0 @ =0x00008fe7 - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - movs r4, 0 - strb r0, [r2] - movs r3, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bne _080F4E8C - strb r4, [r2] - ldr r2, _080F4E9C @ =0x00008fe6 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ands r0, r3 - cmp r0, 0xE - beq _080F4F64 -_080F4E8C: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0xE - bls _080F4DCA - b _080F4F64 - .align 2, 0 -_080F4E98: .4byte gUnknown_083DFEC4 -_080F4E9C: .4byte 0x00008fe6 -_080F4EA0: .4byte 0x00008fe7 -_080F4EA4: .4byte 0x000087d8 -_080F4EA8: .4byte gUnknown_020300A4 -_080F4EAC: .4byte 0xffff00ff -_080F4EB0: .4byte 0xffe0ffff -_080F4EB4: .4byte 0xffffff00 -_080F4EB8: - mov r2, sp - ldrb r0, [r2, 0x3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x3] - strb r3, [r2, 0x1] - movs r7, 0 - ldr r3, _080F4F44 @ =0x00008828 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r7, r0 - bcs _080F4F24 - mov r5, sp - mov r8, r6 - adds r6, r4, r3 -_080F4ED6: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080F4F48 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080F4F18 - movs r0, 0x1F - adds r2, r7, 0 - ands r2, r0 - ldrb r0, [r5, 0x2] - movs r3, 0x20 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x2] - mov r1, r8 - ldr r0, [r1] - ldr r2, _080F4F4C @ =0x000087d8 - adds r0, r2 - ldrb r1, [r0] - adds r0, r4, 0 - bl GetMonData - strb r0, [r5] - mov r0, sp - bl sub_80F4944 -_080F4F18: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r3, [r6] - cmp r7, r3 - bcc _080F4ED6 -_080F4F24: - bl sub_80F49F4 - ldr r0, _080F4F50 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F4F54 @ =0x00008fe4 - adds r0, r1, r2 - ldrh r2, [r0] - ldr r3, _080F4F58 @ =0x000087da - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _080F4F5C @ =0x00008fe6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F4F64 - .align 2, 0 -_080F4F44: .4byte 0x00008828 -_080F4F48: .4byte gPlayerParty -_080F4F4C: .4byte 0x000087d8 -_080F4F50: .4byte gUnknown_083DFEC4 -_080F4F54: .4byte 0x00008fe4 -_080F4F58: .4byte 0x000087da -_080F4F5C: .4byte 0x00008fe6 -_080F4F60: - movs r0, 0 - b _080F4F66 -_080F4F64: - movs r0, 0x1 -_080F4F66: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F4D88 - - thumb_func_start sub_80F4F78 -sub_80F4F78: @ 80F4F78 - push {lr} - ldr r0, _080F4FA4 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F4FA8 @ =0x00009040 - adds r0, r1, r2 - ldr r3, _080F4FAC @ =0x00008fe9 - adds r2, r1, r3 - movs r3, 0 - ldrsb r3, [r2, r3] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 2 - ldr r3, _080F4FB0 @ =0x00009004 - adds r2, r3 - adds r1, r2 - bl sub_80F53EC - bl sub_80F5504 - pop {r0} - bx r0 - .align 2, 0 -_080F4FA4: .4byte gUnknown_083DFEC4 -_080F4FA8: .4byte 0x00009040 -_080F4FAC: .4byte 0x00008fe9 -_080F4FB0: .4byte 0x00009004 - thumb_func_end sub_80F4F78 - - thumb_func_start sub_80F4FB4 -sub_80F4FB4: @ 80F4FB4 - push {r4,lr} - bl sub_80F5504 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F170C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _080F4FD2 - cmp r0, 0 - beq _080F4FD4 -_080F4FD2: - movs r1, 0x1 -_080F4FD4: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F4FB4 - - thumb_func_start sub_80F4FDC -sub_80F4FDC: @ 80F4FDC - push {lr} - ldr r0, _080F5020 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F5024 @ =0x000076aa - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F4FFE - ldr r3, _080F5028 @ =0x000087dc - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r3, _080F502C @ =0x00008828 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r1, r0 - beq _080F501A -_080F4FFE: - ldr r1, _080F5030 @ =0x00008fe9 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r3, _080F5034 @ =0x00009004 - adds r0, r3 - adds r0, r2, r0 - adds r3, 0x3C - adds r1, r2, r3 - bl sub_80F53EC -_080F501A: - pop {r0} - bx r0 - .align 2, 0 -_080F5020: .4byte gUnknown_083DFEC4 -_080F5024: .4byte 0x000076aa -_080F5028: .4byte 0x000087dc -_080F502C: .4byte 0x00008828 -_080F5030: .4byte 0x00008fe9 -_080F5034: .4byte 0x00009004 - thumb_func_end sub_80F4FDC - - thumb_func_start sub_80F5038 -sub_80F5038: @ 80F5038 - push {r4,lr} - bl sub_80F5504 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F173C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - cmp r4, 0 - bne _080F5056 - cmp r0, 0 - beq _080F5058 -_080F5056: - movs r1, 0x1 -_080F5058: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F5038 - - thumb_func_start sub_80F5060 -sub_80F5060: @ 80F5060 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - beq _080F507C - ldr r0, _080F5074 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5078 @ =0x00008feb - adds r0, r1 - b _080F5084 - .align 2, 0 -_080F5074: .4byte gUnknown_083DFEC4 -_080F5078: .4byte 0x00008feb -_080F507C: - ldr r0, _080F50FC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F5100 @ =0x00008fea - adds r0, r2 -_080F5084: - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F50FC @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r3, _080F5104 @ =0x00008fe9 - adds r5, r4, r3 - movs r1, 0 - ldrsb r1, [r5, r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r2, _080F5108 @ =0x00009004 - adds r0, r2 - adds r0, r4, r0 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 2 - adds r1, r2 - adds r1, r4, r1 - bl sub_80F53EC - ldr r0, _080F510C @ =0x000087dc - adds r3, r4, r0 - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 2 - adds r0, r4, r0 - ldr r2, _080F5110 @ =0x0000893f - adds r0, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 31 - mov r12, r0 - cmp r7, 0 - beq _080F5158 - ldr r7, _080F5100 @ =0x00008fea - adds r1, r4, r7 - ldrb r0, [r1] - adds r7, 0x1 - adds r2, r4, r7 - strb r0, [r2] - ldrb r0, [r5] - strb r0, [r1] - strb r6, [r5] - ldrb r1, [r2] - ldr r2, _080F5114 @ =0x00008fec - adds r0, r4, r2 - strb r1, [r0] - adds r5, r4, 0 - ldrh r1, [r3] - movs r7, 0 - ldrsh r0, [r3, r7] - cmp r0, 0 - beq _080F5118 - subs r2, r1, 0x1 - b _080F5120 - .align 2, 0 -_080F50FC: .4byte gUnknown_083DFEC4 -_080F5100: .4byte 0x00008fea -_080F5104: .4byte 0x00008fe9 -_080F5108: .4byte 0x00009004 -_080F510C: .4byte 0x000087dc -_080F5110: .4byte 0x0000893f -_080F5114: .4byte 0x00008fec -_080F5118: - ldr r1, _080F513C @ =0x000087da - adds r0, r4, r1 - ldrh r0, [r0] - subs r2, r0, 0x1 -_080F5120: - ldr r1, _080F5140 @ =0x000087dc - adds r0, r5, r1 - strh r2, [r0] - ldr r2, _080F5144 @ =gUnknown_083DFEC4 - ldr r3, [r2] - adds r1, r3, r1 - ldrh r4, [r1] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _080F5148 - subs r1, r4, 0x1 - b _080F51CE - .align 2, 0 -_080F513C: .4byte 0x000087da -_080F5140: .4byte 0x000087dc -_080F5144: .4byte gUnknown_083DFEC4 -_080F5148: - ldr r7, _080F5154 @ =0x000087da - adds r0, r3, r7 - ldrh r0, [r0] - subs r1, r0, 0x1 - b _080F51CE - .align 2, 0 -_080F5154: .4byte 0x000087da -_080F5158: - ldr r7, _080F518C @ =0x00008feb - adds r1, r4, r7 - ldrb r0, [r1] - subs r7, 0x1 - adds r2, r4, r7 - strb r0, [r2] - ldrb r0, [r5] - strb r0, [r1] - strb r6, [r5] - ldrb r1, [r2] - ldr r2, _080F5190 @ =0x00008fec - adds r0, r4, r2 - strb r1, [r0] - adds r2, r4, 0 - movs r4, 0 - ldrsh r1, [r3, r4] - ldr r5, _080F5194 @ =0x000087da - adds r0, r2, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - subs r0, 0x1 - cmp r1, r0 - bge _080F5198 - ldrh r0, [r3] - adds r3, r0, 0x1 - b _080F519A - .align 2, 0 -_080F518C: .4byte 0x00008feb -_080F5190: .4byte 0x00008fec -_080F5194: .4byte 0x000087da -_080F5198: - movs r3, 0 -_080F519A: - ldr r1, _080F51C0 @ =0x000087dc - adds r0, r2, r1 - strh r3, [r0] - ldr r2, _080F51C4 @ =gUnknown_083DFEC4 - ldr r3, [r2] - adds r4, r3, r1 - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r5, _080F51C8 @ =0x000087da - adds r0, r3, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - subs r0, 0x1 - cmp r1, r0 - bge _080F51CC - ldrh r0, [r4] - adds r1, r0, 0x1 - b _080F51CE - .align 2, 0 -_080F51C0: .4byte 0x000087dc -_080F51C4: .4byte gUnknown_083DFEC4 -_080F51C8: .4byte 0x000087da -_080F51CC: - movs r1, 0 -_080F51CE: - ldr r4, _080F51FC @ =0x00008fee - adds r0, r3, r4 - strh r1, [r0] - ldr r1, [r2] - ldr r5, _080F5200 @ =0x000087dc - adds r0, r1, r5 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r0, 2 - adds r0, r1, r0 - ldr r3, _080F5204 @ =0x0000893f - adds r0, r3 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 31 - mov r4, r12 - cmp r4, 0 - bne _080F520C - adds r5, 0x4 - adds r1, r5 - ldr r0, _080F5208 @ =sub_80F5264 - b _080F5226 - .align 2, 0 -_080F51FC: .4byte 0x00008fee -_080F5200: .4byte 0x000087dc -_080F5204: .4byte 0x0000893f -_080F5208: .4byte sub_80F5264 -_080F520C: - cmp r0, 0 - bne _080F5220 - ldr r7, _080F5218 @ =0x000087e0 - adds r1, r7 - ldr r0, _080F521C @ =sub_80F52F8 - b _080F5226 - .align 2, 0 -_080F5218: .4byte 0x000087e0 -_080F521C: .4byte sub_80F52F8 -_080F5220: - ldr r0, _080F5238 @ =0x000087e0 - adds r1, r0 - ldr r0, _080F523C @ =sub_80F5364 -_080F5226: - str r0, [r1] - ldr r0, [r2] - ldr r1, _080F5240 @ =0x000087de - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5238: .4byte 0x000087e0 -_080F523C: .4byte sub_80F5364 -_080F5240: .4byte 0x000087de - thumb_func_end sub_80F5060 - - thumb_func_start gpu_sync_bg_show -gpu_sync_bg_show: @ 80F5244 - push {lr} - ldr r0, _080F525C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5260 @ =0x000087e0 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080F525C: .4byte gUnknown_083DFEC4 -_080F5260: .4byte 0x000087e0 - thumb_func_end gpu_sync_bg_show - - thumb_func_start sub_80F5264 -sub_80F5264: @ 80F5264 - push {r4,r5,lr} - ldr r0, _080F5280 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5284 @ =0x000087de - adds r5, r0, r1 - ldrb r1, [r5] - cmp r1, 0x1 - beq _080F52AA - cmp r1, 0x1 - bgt _080F5288 - cmp r1, 0 - beq _080F528E - b _080F52F0 - .align 2, 0 -_080F5280: .4byte gUnknown_083DFEC4 -_080F5284: .4byte 0x000087de -_080F5288: - cmp r1, 0x2 - beq _080F52EC - b _080F52F0 -_080F528E: - ldr r2, _080F52D8 @ =0x00008fe9 - adds r4, r0, r2 - ldrb r0, [r4] - bl sub_80F2E18 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_080F52AA: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - bne _080F52F0 - ldr r0, _080F52DC @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F52E0 @ =0x00008fee - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, _080F52E4 @ =0x00008fec - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - ldr r0, _080F52E8 @ =0x000087de - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F52F0 - .align 2, 0 -_080F52D8: .4byte 0x00008fe9 -_080F52DC: .4byte gUnknown_083DFEC4 -_080F52E0: .4byte 0x00008fee -_080F52E4: .4byte 0x00008fec -_080F52E8: .4byte 0x000087de -_080F52EC: - movs r0, 0 - b _080F52F2 -_080F52F0: - movs r0, 0x1 -_080F52F2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5264 - - thumb_func_start sub_80F52F8 -sub_80F52F8: @ 80F52F8 - push {r4,r5,lr} - ldr r0, _080F5310 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F5314 @ =0x000087de - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0 - beq _080F5318 - cmp r0, 0x1 - beq _080F5358 - b _080F535C - .align 2, 0 -_080F5310: .4byte gUnknown_083DFEC4 -_080F5314: .4byte 0x000087de -_080F5318: - bl sub_80F5038 - lsls r0, 24 - cmp r0, 0 - bne _080F535C - ldr r1, _080F5350 @ =0x00008fe9 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - ldr r2, _080F5354 @ =0x00008fee - adds r0, r4, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r2, 0x2 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _080F535C - .align 2, 0 -_080F5350: .4byte 0x00008fe9 -_080F5354: .4byte 0x00008fee -_080F5358: - movs r0, 0 - b _080F535E -_080F535C: - movs r0, 0x1 -_080F535E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F52F8 - - thumb_func_start sub_80F5364 -sub_80F5364: @ 80F5364 - push {r4,r5,lr} - ldr r0, _080F5380 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F5384 @ =0x000087de - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _080F53B8 - cmp r0, 0x1 - bgt _080F5388 - cmp r0, 0 - beq _080F538E - b _080F53E4 - .align 2, 0 -_080F5380: .4byte gUnknown_083DFEC4 -_080F5384: .4byte 0x000087de -_080F5388: - cmp r0, 0x2 - beq _080F53CA - b _080F53E4 -_080F538E: - bl sub_80F5504 - bl sub_80F173C - lsls r0, 24 - cmp r0, 0 - bne _080F53E4 - ldr r1, _080F53B4 @ =0x00008fe9 - adds r4, r1 - ldrb r0, [r4] - bl sub_80F2E18 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - bl sub_80F01E0 - b _080F53C2 - .align 2, 0 -_080F53B4: .4byte 0x00008fe9 -_080F53B8: - bl sub_80F4FB4 - lsls r0, 24 - cmp r0, 0 - bne _080F53E4 -_080F53C2: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _080F53E4 -_080F53CA: - ldr r2, _080F53E0 @ =0x00008fee - adds r0, r4, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r2, 0x2 - adds r1, r4, r2 - ldrb r1, [r1] - bl sub_80F4900 - movs r0, 0 - b _080F53E6 - .align 2, 0 -_080F53E0: .4byte 0x00008fee -_080F53E4: - movs r0, 0x1 -_080F53E6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5364 - - thumb_func_start sub_80F53EC -sub_80F53EC: @ 80F53EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - mov r9, r1 - movs r7, 0 - ldr r0, _080F54F4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - str r0, [sp, 0x4] -_080F5404: - lsls r4, r7, 2 - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0] - lsls r5, r1, 8 - mov r2, r9 - adds r0, r4, r2 - ldrh r0, [r0] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - adds r7, 0x1 - mov r10, r7 - mov r8, r4 -_080F5428: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - add r0, r8 - ldr r7, [sp, 0x4] - adds r0, r7, r0 - asrs r2, r5, 8 - asrs r1, r5, 7 - movs r7, 0x1 - ands r1, r7 - adds r2, r1 - ldr r1, _080F54F8 @ =0x00009054 - adds r0, r1 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _080F5428 - ldr r2, _080F54F4 @ =gUnknown_083DFEC4 - ldr r1, [r2] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - adds r1, r0 - mov r3, r9 - adds r2, r4, r3 - ldrh r0, [r2] - ldr r7, _080F54F8 @ =0x00009054 - adds r1, r7 - strh r0, [r1] - ldr r1, [sp] - adds r0, r4, r1 - ldrh r1, [r0, 0x2] - lsls r5, r1, 8 - ldrh r0, [r2, 0x2] - subs r0, r1 - lsls r0, 8 - movs r1, 0xA - bl __divsi3 - adds r6, r0, 0 - movs r3, 0 - ldr r0, _080F54F4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - mov r12, r0 - str r4, [sp, 0x8] - movs r2, 0x1 - mov r8, r2 -_080F548E: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - ldr r7, [sp, 0x8] - adds r0, r7, r0 - add r0, r12 - asrs r2, r5, 8 - asrs r1, r5, 7 - mov r7, r8 - ands r1, r7 - adds r2, r1 - ldr r1, _080F54FC @ =0x00009056 - adds r0, r1 - strh r2, [r0] - adds r5, r6 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x8 - bls _080F548E - ldr r7, _080F54F4 @ =gUnknown_083DFEC4 - ldr r2, [r7] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r2, r0 - mov r3, r9 - adds r1, r4, r3 - ldrh r1, [r1, 0x2] - ldr r7, _080F54FC @ =0x00009056 - adds r0, r7 - strh r1, [r0] - mov r1, r10 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _080F5404 - ldr r3, _080F5500 @ =0x00009342 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F54F4: .4byte gUnknown_083DFEC4 -_080F54F8: .4byte 0x00009054 -_080F54FC: .4byte 0x00009056 -_080F5500: .4byte 0x00009342 - thumb_func_end sub_80F53EC - - thumb_func_start sub_80F5504 -sub_80F5504: @ 80F5504 - push {r4,lr} - ldr r0, _080F551C @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F5520 @ =0x00009342 - adds r4, r2, r0 - ldrh r0, [r4] - adds r1, r0, 0 - cmp r1, 0x9 - bls _080F5524 - movs r0, 0 - b _080F5544 - .align 2, 0 -_080F551C: .4byte gUnknown_083DFEC4 -_080F5520: .4byte 0x00009342 -_080F5524: - adds r0, 0x1 - strh r0, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F554C @ =0x00009054 - adds r0, r1 - adds r0, r2, r0 - bl sub_80F556C - ldrh r1, [r4] - movs r0, 0xA - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_080F5544: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F554C: .4byte 0x00009054 - thumb_func_end sub_80F5504 - - thumb_func_start sub_80F5550 -sub_80F5550: @ 80F5550 - push {lr} - bl sub_80F53EC - pop {r0} - bx r0 - thumb_func_end sub_80F5550 - - thumb_func_start sub_80F555C -sub_80F555C: @ 80F555C - push {lr} - bl sub_80F5504 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F555C - - thumb_func_start sub_80F556C -sub_80F556C: @ 80F556C - push {r4,r5,lr} - adds r4, r0, 0 - movs r2, 0 - ldr r5, _080F55A0 @ =gUnknown_083DFEC4 - ldr r0, [r5] - ldr r1, _080F55A4 @ =0x0000911c - adds r3, r0, r1 -_080F557A: - lsls r0, r2, 2 - adds r1, r3, r0 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _080F557A - ldr r0, [r5] - ldr r1, _080F55A8 @ =0x00009344 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F55A0: .4byte gUnknown_083DFEC4 -_080F55A4: .4byte 0x0000911c -_080F55A8: .4byte 0x00009344 - thumb_func_end sub_80F556C - - thumb_func_start sub_80F55AC -sub_80F55AC: @ 80F55AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - mov r8, r1 - ldr r1, _080F5674 @ =gUnknown_083E4890 - ldrb r0, [r6] - adds r0, r1 - ldrb r2, [r0] - adds r6, 0x1 - movs r0, 0x9B - mov r3, r8 - strh r0, [r3] - movs r0, 0x5B - subs r0, r2 - strh r0, [r3, 0x2] - movs r7, 0x40 - movs r0, 0 - mov r12, r0 - movs r2, 0x1 - mov r9, r2 - ldr r3, _080F5678 @ =gSineTable - mov r10, r3 -_080F55DE: - adds r0, r7, 0 - adds r0, 0x33 - lsls r0, 24 - lsrs r7, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r3, r0, 24 - mov r12, r3 - cmp r0, 0 - bge _080F55FC - movs r0, 0x4 - mov r12, r0 -_080F55FC: - mov r1, r12 - lsls r0, r1, 24 - asrs r4, r0, 24 - cmp r4, 0x2 - bne _080F560C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080F560C: - ldrb r0, [r6] - ldr r2, _080F5674 @ =gUnknown_083E4890 - adds r0, r2 - ldrb r2, [r0] - adds r6, 0x1 - lsls r0, r4, 2 - mov r1, r8 - adds r3, r0, r1 - adds r0, r7, 0 - adds r0, 0x40 - lsls r0, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - muls r0, r2 - asrs r5, r0, 8 - adds r0, r5, 0 - adds r0, 0x9B - strh r0, [r3] - lsls r0, r7, 1 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r2, 0 - muls r1, r0 - asrs r1, 8 - movs r0, 0x5B - subs r0, r1 - strh r0, [r3, 0x2] - cmp r4, 0x2 - bgt _080F5658 - cmp r2, 0x20 - bne _080F5652 - cmp r4, 0x2 - beq _080F5658 -_080F5652: - adds r0, r5, 0 - adds r0, 0x9C - strh r0, [r3] -_080F5658: - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _080F55DE - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5674: .4byte gUnknown_083E4890 -_080F5678: .4byte gSineTable - thumb_func_end sub_80F55AC - - thumb_func_start sub_80F567C -sub_80F567C: @ 80F567C - push {lr} - bl sub_80F55AC - pop {r0} - bx r0 - thumb_func_end sub_80F567C - - thumb_func_start sub_80F5688 -sub_80F5688: @ 80F5688 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - str r2, [sp] - ldr r7, [sp, 0x34] - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r0, 0 - str r0, [sp, 0x8] - ldrh r0, [r5, 0x2] - ldrh r1, [r2, 0x2] - cmp r0, r1 - bcs _080F56D0 - adds r2, r0, 0 - str r2, [sp, 0x4] - ldr r3, [sp] - ldrh r0, [r3, 0x2] - ldrh r1, [r5] - lsls r4, r1, 10 - ldrh r2, [r3] - mov r10, r2 - ldr r3, [sp, 0x4] - subs r0, r3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _080F56FC - subs r0, r2, r1 - b _080F56F2 -_080F56D0: - ldrh r0, [r5, 0x2] - ldr r1, [sp] - ldrh r1, [r1, 0x2] - str r1, [sp, 0x4] - ldr r2, [sp] - ldrh r1, [r2] - lsls r4, r1, 10 - ldrh r3, [r5] - mov r10, r3 - ldr r2, [sp, 0x4] - subs r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _080F56FC - subs r0, r3, r1 -_080F56F2: - lsls r0, 10 - mov r1, r8 - bl __divsi3 - str r0, [sp, 0x8] -_080F56FC: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r7, 0 - bne _080F5746 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - mov r0, r10 - add r0, r9 - str r0, [sp, 0xC] - cmp r7, r8 - bcs _080F57D4 - movs r7, 0x1 -_080F5726: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r1, [sp, 0x8] - adds r4, r1 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F5726 - b _080F57D4 -_080F5746: - ldr r2, [sp, 0x8] - cmp r2, 0 - ble _080F57E4 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - movs r5, 0 - mov r3, r9 - lsls r3, 1 - mov r12, r3 - mov r0, r10 - add r0, r9 - str r0, [sp, 0xC] - cmp r5, r8 - bcs _080F5798 - ldr r0, _080F57D8 @ =0x00026bff - cmp r4, r0 - bgt _080F5798 - mov r1, r12 - str r1, [sp, 0x10] - mov r10, r0 -_080F5772: - ldr r3, [sp, 0x10] - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r3, 0x1 - ands r0, r3 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _080F5798 - cmp r4, r10 - ble _080F5772 -_080F5798: - ldr r1, _080F57DC @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, [sp, 0x4] - adds r1, r2, r5 - ldr r3, _080F57E0 @ =0x00009340 - adds r0, r3 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - cmp r5, r8 - bcs _080F57D4 - mov r3, r12 - movs r7, 0x1 -_080F57B6: - adds r2, r3, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r7 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F57B6 -_080F57D4: - subs r0, r6, 0x4 - b _080F58C4 - .align 2, 0 -_080F57D8: .4byte 0x00026bff -_080F57DC: .4byte gUnknown_083DFEC4 -_080F57E0: .4byte 0x00009340 -_080F57E4: - ldr r1, [sp, 0x8] - cmp r1, 0 - bge _080F5890 - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - movs r5, 0 - mov r2, r9 - lsls r2, 1 - mov r12, r2 - mov r3, r10 - add r3, r9 - str r3, [sp, 0xC] - cmp r5, r8 - bcs _080F5842 - adds r3, r2, r6 - asrs r1, r4, 10 - asrs r0, r4, 9 - movs r2, 0x1 - ands r0, r2 - adds r1, r0 - add r1, r9 - strh r1, [r3] - b _080F5838 -_080F5816: - ldr r0, [sp, 0x8] - adds r4, r0 - adds r6, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcs _080F5842 - mov r1, r12 - adds r3, r1, r6 - asrs r2, r4, 10 - asrs r0, r4, 9 - movs r1, 0x1 - ands r0, r1 - adds r2, r0 - add r2, r9 - strh r2, [r3] -_080F5838: - ldr r0, _080F5884 @ =0x00026bff - cmp r4, r0 - bgt _080F5816 - movs r0, 0x9B - strh r0, [r3] -_080F5842: - ldr r2, _080F5888 @ =gUnknown_083DFEC4 - ldr r0, [r2] - ldr r3, [sp, 0x4] - adds r1, r3, r5 - ldr r2, _080F588C @ =0x00009340 - adds r0, r2 - strh r1, [r0] - ldrh r0, [r0] - subs r0, 0x38 - lsls r0, 2 - adds r7, r0 - cmp r5, r8 - bcs _080F587E - mov r3, r12 - movs r6, 0x1 -_080F5860: - adds r2, r3, r7 - asrs r1, r4, 10 - asrs r0, r4, 9 - ands r0, r6 - adds r1, r0 - add r1, r9 - strh r1, [r2] - ldr r0, [sp, 0x8] - adds r4, r0 - adds r7, 0x4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080F5860 -_080F587E: - subs r0, r7, 0x4 - b _080F58C4 - .align 2, 0 -_080F5884: .4byte 0x00026bff -_080F5888: .4byte gUnknown_083DFEC4 -_080F588C: .4byte 0x00009340 -_080F5890: - ldr r0, _080F58BC @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F58C0 @ =0x00009340 - adds r0, r1 - mov r2, sp - ldrh r2, [r2, 0x4] - strh r2, [r0] - ldr r0, [sp, 0x4] - subs r0, 0x38 - lsls r0, 2 - adds r6, r0 - adds r7, r0 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r6, 0x2] - ldr r3, [sp] - ldrh r0, [r3] - strh r0, [r7] - movs r0, 0x9B - strh r0, [r7, 0x2] - b _080F58CC - .align 2, 0 -_080F58BC: .4byte gUnknown_083DFEC4 -_080F58C0: .4byte 0x00009340 -_080F58C4: - add r0, r12 - mov r1, sp - ldrh r1, [r1, 0xC] - strh r1, [r0] -_080F58CC: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F5688 - - thumb_func_start sub_80F58DC -sub_80F58DC: @ 80F58DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2] - ldrh r1, [r5, 0x6] - cmp r0, r1 - bcs _080F5914 - adds r4, r0, 0 - mov r8, r4 - ldr r0, _080F590C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5910 @ =0x00009130 - adds r0, r1 - adds r4, r5, 0x4 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_80F5688 - b _080F5930 - .align 2, 0 -_080F590C: .4byte gUnknown_083DFEC4 -_080F5910: .4byte 0x00009130 -_080F5914: - ldrh r4, [r5, 0x6] - mov r8, r4 - ldr r0, _080F5A08 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5A0C @ =0x00009130 - adds r0, r1 - adds r4, r5, 0x4 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl sub_80F5688 -_080F5930: - adds r1, r4, 0 - ldr r0, _080F5A08 @ =gUnknown_083DFEC4 - ldr r6, [r0] - ldr r0, _080F5A0C @ =0x00009130 - adds r4, r6, r0 - adds r7, r5, 0 - adds r7, 0x8 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - adds r2, r7, 0 - movs r3, 0x1 - bl sub_80F5688 - movs r3, 0 - ldrh r0, [r5, 0xA] - ldrh r1, [r5, 0xE] - cmp r0, r1 - bhi _080F5958 - movs r3, 0x1 -_080F5958: - adds r2, r5, 0 - adds r2, 0xC - ldr r1, _080F5A10 @ =0x00009238 - adds r0, r6, r1 - str r0, [sp] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80F5688 - movs r2, 0x38 - cmp r2, r8 - bcs _080F5990 - adds r7, r4, 0 - movs r3, 0 - ldr r0, _080F5A14 @ =0x00009132 - adds r4, r6, r0 -_080F5978: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r7, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r8 - bcc _080F5978 -_080F5990: - ldrh r2, [r5, 0x2] - ldr r0, _080F5A08 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r4, _080F5A18 @ =0x00009340 - adds r1, r3, r4 - adds r6, r0, 0 - ldrh r0, [r1] - cmp r2, r0 - bhi _080F59BE - ldr r4, _080F5A0C @ =0x00009130 - adds r3, r4 - movs r4, 0x9B -_080F59A8: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1] - cmp r2, r0 - bls _080F59A8 -_080F59BE: - ldr r4, [r6] - ldr r1, _080F5A18 @ =0x00009340 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r1, [r5, 0xA] - cmp r0, r1 - bcs _080F59CE - adds r0, r1, 0 -_080F59CE: - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bhi _080F59FA - ldr r0, _080F5A0C @ =0x00009130 - adds r5, r4, r0 - movs r3, 0 - ldr r1, _080F5A14 @ =0x00009132 - adds r4, r1 -_080F59E2: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r5, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _080F59E2 -_080F59FA: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5A08: .4byte gUnknown_083DFEC4 -_080F5A0C: .4byte 0x00009130 -_080F5A10: .4byte 0x00009238 -_080F5A14: .4byte 0x00009132 -_080F5A18: .4byte 0x00009340 - thumb_func_end sub_80F58DC - - thumb_func_start sub_80F5A1C -sub_80F5A1C: @ 80F5A1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2] - ldrh r1, [r5, 0x12] - cmp r0, r1 - bcs _080F5A54 - adds r7, r0, 0 - ldr r0, _080F5A4C @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F5A50 @ =0x00009238 - adds r0, r2 - adds r4, r5, 0 - adds r4, 0x10 - movs r1, 0 - str r1, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl sub_80F5688 - b _080F5A70 - .align 2, 0 -_080F5A4C: .4byte gUnknown_083DFEC4 -_080F5A50: .4byte 0x00009238 -_080F5A54: - ldrh r7, [r5, 0x12] - ldr r0, _080F5B28 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r4, _080F5B2C @ =0x00009238 - adds r0, r4 - adds r4, r5, 0 - adds r4, 0x10 - movs r1, 0 - str r1, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_80F5688 -_080F5A70: - adds r1, r4, 0 - ldr r0, _080F5B28 @ =gUnknown_083DFEC4 - ldr r0, [r0] - mov r8, r0 - ldr r4, _080F5B2C @ =0x00009238 - add r4, r8 - adds r2, r5, 0 - adds r2, 0xC - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0 - bl sub_80F5688 - movs r2, 0x38 - cmp r2, r7 - bcs _080F5AB2 - adds r6, r4, 0 - movs r3, 0 - ldr r4, _080F5B30 @ =0x0000923a - add r4, r8 -_080F5A9A: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r6, r0 - strh r3, [r1] - adds r0, r4, r0 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r7 - bcc _080F5A9A -_080F5AB2: - ldrh r2, [r5, 0x2] - ldr r0, _080F5B28 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r4, _080F5B34 @ =0x00009340 - adds r1, r3, r4 - adds r6, r0, 0 - ldrh r0, [r1] - cmp r2, r0 - bhi _080F5AE0 - ldr r4, _080F5B30 @ =0x0000923a - adds r3, r4 - movs r4, 0x9B -_080F5ACA: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r1] - cmp r2, r0 - bls _080F5ACA -_080F5AE0: - ldrh r0, [r5, 0xE] - adds r1, r0, 0x1 - ldr r3, [r6] - ldr r2, _080F5B34 @ =0x00009340 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, r1 - bge _080F5AF2 - adds r0, r1, 0 -_080F5AF2: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bhi _080F5B1C - ldr r4, _080F5B2C @ =0x00009238 - adds r5, r3, r4 - movs r4, 0 - ldr r0, _080F5B30 @ =0x0000923a - adds r3, r0 -_080F5B04: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 2 - adds r1, r5, r0 - strh r4, [r1] - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x79 - bls _080F5B04 -_080F5B1C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5B28: .4byte gUnknown_083DFEC4 -_080F5B2C: .4byte 0x00009238 -_080F5B30: .4byte 0x0000923a -_080F5B34: .4byte 0x00009340 - thumb_func_end sub_80F5A1C - - thumb_func_start sub_80F5B38 -sub_80F5B38: @ 80F5B38 - ldr r0, _080F5B48 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5B4C @ =0x00009345 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080F5B48: .4byte gUnknown_083DFEC4 -_080F5B4C: .4byte 0x00009345 - thumb_func_end sub_80F5B38 - - thumb_func_start sub_80F5B50 -sub_80F5B50: @ 80F5B50 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, _080F5B68 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F5B6C @ =0x00009345 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _080F5B70 - cmp r0, 0x1 - beq _080F5BB4 - b _080F5BCC - .align 2, 0 -_080F5B68: .4byte gUnknown_083DFEC4 -_080F5B6C: .4byte 0x00009345 -_080F5B70: - bl dp12_8087EA4 - ldr r0, _080F5BA8 @ =gUnknown_03004DE0 - movs r2, 0xEF - movs r3, 0xF4 - lsls r3, 3 - adds r1, r0, r3 - adds r0, 0x20 - movs r3, 0xF -_080F5B82: - strh r2, [r0] - strh r2, [r0, 0x2] - strh r2, [r1] - strh r2, [r1, 0x2] - adds r1, 0x4 - adds r0, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _080F5B82 - ldr r0, _080F5BAC @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r5, _080F5BB0 @ =0x00009345 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - b _080F5BCE - .align 2, 0 -_080F5BA8: .4byte gUnknown_03004DE0 -_080F5BAC: .4byte gUnknown_083DFEC4 -_080F5BB0: .4byte 0x00009345 -_080F5BB4: - mov r0, sp - ldr r1, _080F5BD8 @ =gUnknown_083E4990 - ldm r1!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080F5BCC: - movs r0, 0 -_080F5BCE: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F5BD8: .4byte gUnknown_083E4990 - thumb_func_end sub_80F5B50 - - thumb_func_start sub_80F5BDC -sub_80F5BDC: @ 80F5BDC - push {lr} - ldr r1, _080F5BEC @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_080F5BEC: .4byte gUnknown_03004DC0 - thumb_func_end sub_80F5BDC - - thumb_func_start sub_80F5BF0 -sub_80F5BF0: @ 80F5BF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r1, _080F5CBC @ =0x00009344 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5CA6 - ldr r0, _080F5CC0 @ =0x0000911c - adds r4, r5, r0 - adds r0, r4, 0 - bl sub_80F58DC - adds r0, r4, 0 - bl sub_80F5A1C - movs r6, 0 - ldr r1, _080F5CC4 @ =gUnknown_03004DE0 - mov r12, r1 - movs r0, 0xF0 - lsls r0, 3 - add r0, r12 - mov r9, r0 - adds r7, r5, 0 - ldr r1, _080F5CC8 @ =0x0000ffff - mov r8, r1 - ldr r5, _080F5CCC @ =0x00009130 - adds r5, r7, r5 - str r5, [sp] - ldr r0, _080F5CD0 @ =0x00009132 - adds r0, r7, r0 - str r0, [sp, 0x4] - ldr r1, _080F5CD4 @ =0x00009238 - adds r1, r7 - mov r10, r1 -_080F5C40: - adds r2, r6, 0 - adds r2, 0x37 - lsls r3, r2, 2 - mov r5, r9 - adds r5, r3, r5 - str r5, [sp, 0x8] - add r3, r12 - lsls r4, r6, 2 - ldr r1, [sp] - adds r0, r1, r4 - ldrh r0, [r0] - lsls r0, 8 - ldr r5, [sp, 0x4] - adds r1, r5, r4 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r3] - mov r1, r8 - ands r0, r1 - ldr r5, [sp, 0x8] - strh r0, [r5] - lsls r2, 1 - adds r2, 0x1 - lsls r2, 1 - mov r0, r9 - adds r3, r2, r0 - add r2, r12 - mov r1, r10 - adds r0, r1, r4 - ldrh r1, [r0] - lsls r1, 8 - ldr r5, _080F5CD8 @ =0x0000923a - adds r0, r7, r5 - adds r0, r4 - ldrh r0, [r0] - orrs r1, r0 - strh r1, [r2] - mov r0, r8 - ands r1, r0 - strh r1, [r3] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 - cmp r6, 0x41 - bls _080F5C40 - ldr r0, [r0] - ldr r1, _080F5CBC @ =0x00009344 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080F5CA6: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5CB8: .4byte gUnknown_083DFEC4 -_080F5CBC: .4byte 0x00009344 -_080F5CC0: .4byte 0x0000911c -_080F5CC4: .4byte gUnknown_03004DE0 -_080F5CC8: .4byte 0x0000ffff -_080F5CCC: .4byte 0x00009130 -_080F5CD0: .4byte 0x00009132 -_080F5CD4: .4byte 0x00009238 -_080F5CD8: .4byte 0x0000923a - thumb_func_end sub_80F5BF0 - - thumb_func_start sub_80F5CDC -sub_80F5CDC: @ 80F5CDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 - ldr r6, [r0] - ldr r1, _080F5DB4 @ =0x00009344 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5DA0 - ldr r0, _080F5DB8 @ =0x0000911c - adds r4, r6, r0 - adds r0, r4, 0 - bl sub_80F58DC - adds r0, r4, 0 - bl sub_80F5A1C - movs r0, 0x37 - subs r0, r5 - lsls r0, 17 - lsrs r5, r0, 16 - movs r7, 0 - ldr r1, _080F5DBC @ =gUnknown_03004DE0 - mov r12, r1 - movs r4, 0xF0 - lsls r4, 3 - add r4, r12 - mov r9, r4 - ldr r0, _080F5DC0 @ =0x0000ffff - mov r8, r0 - ldr r1, _080F5DC4 @ =0x00009130 - adds r1, r6, r1 - str r1, [sp] - ldr r4, _080F5DC8 @ =0x00009132 - adds r4, r6, r4 - str r4, [sp, 0x4] - ldr r0, _080F5DCC @ =0x00009238 - adds r0, r6 - mov r10, r0 -_080F5D36: - lsls r2, r5, 1 - mov r1, r9 - adds r1, r2, r1 - str r1, [sp, 0x8] - add r2, r12 - lsls r3, r7, 2 - ldr r4, [sp] - adds r0, r4, r3 - ldrh r0, [r0] - lsls r0, 8 - ldr r4, [sp, 0x4] - adds r1, r4, r3 - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2] - mov r1, r8 - ands r0, r1 - ldr r4, [sp, 0x8] - strh r0, [r4] - adds r2, r5, 0x1 - lsls r2, 1 - mov r0, r9 - adds r0, r2, r0 - str r0, [sp, 0x8] - add r2, r12 - mov r1, r10 - adds r0, r1, r3 - ldrh r1, [r0] - lsls r1, 8 - ldr r4, _080F5DD0 @ =0x0000923a - adds r0, r6, r4 - adds r0, r3 - ldrh r0, [r0] - orrs r1, r0 - strh r1, [r2] - mov r0, r8 - ands r1, r0 - ldr r4, [sp, 0x8] - strh r1, [r4] - adds r0, r5, 0x2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 - cmp r7, 0x41 - bls _080F5D36 - ldr r0, [r0] - ldr r1, _080F5DB4 @ =0x00009344 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080F5DA0: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F5DB0: .4byte gUnknown_083DFEC4 -_080F5DB4: .4byte 0x00009344 -_080F5DB8: .4byte 0x0000911c -_080F5DBC: .4byte gUnknown_03004DE0 -_080F5DC0: .4byte 0x0000ffff -_080F5DC4: .4byte 0x00009130 -_080F5DC8: .4byte 0x00009132 -_080F5DCC: .4byte 0x00009238 -_080F5DD0: .4byte 0x0000923a - thumb_func_end sub_80F5CDC - - thumb_func_start sub_80F5DD4 -sub_80F5DD4: @ 80F5DD4 - push {lr} - ldr r0, _080F5DE8 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F5DEC - bl sub_80F5E20 - b _080F5E18 - .align 2, 0 -_080F5DE8: .4byte gMain -_080F5DEC: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F5DFA - bl sub_80F5EE4 - b _080F5E18 -_080F5DFA: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080F5E08 - bl sub_80F5FB4 - b _080F5E18 -_080F5E08: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080F5E14 - movs r0, 0 - b _080F5E1C -_080F5E14: - bl sub_80F6010 -_080F5E18: - lsls r0, 24 - lsrs r0, 24 -_080F5E1C: - pop {r1} - bx r1 - thumb_func_end sub_80F5DD4 - - thumb_func_start sub_80F5E20 -sub_80F5E20: @ 80F5E20 - push {r4,r5,lr} - ldr r0, _080F5E38 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r3, _080F5E3C @ =0x0000876e - adds r1, r2, r3 - movs r5, 0 - ldrsh r1, [r1, r5] - adds r4, r0, 0 - cmp r1, 0 - bne _080F5E40 - movs r0, 0 - b _080F5EC8 - .align 2, 0 -_080F5E38: .4byte gUnknown_083DFEC4 -_080F5E3C: .4byte 0x0000876e -_080F5E40: - ldr r1, _080F5E6C @ =0x000087c9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5E74 - ldr r3, _080F5E70 @ =0x0000876c - adds r0, r2, r3 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0 - bne _080F5E74 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 - b _080F5EC8 - .align 2, 0 -_080F5E6C: .4byte 0x000087c9 -_080F5E70: .4byte 0x0000876c -_080F5E74: - ldr r1, [r4] - ldr r0, _080F5ED0 @ =0x0000876c - adds r2, r1, r0 - ldrh r0, [r2] - subs r3, r0, 0x1 - strh r3, [r2] - ldr r5, _080F5ED4 @ =0x000087c9 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080F5E98 - lsls r0, r3, 16 - cmp r0, 0 - bge _080F5E98 - ldr r3, _080F5ED8 @ =0x00008772 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] -_080F5E98: - ldr r0, [r4] - ldr r5, _080F5EDC @ =0x00008770 - adds r2, r0, r5 - ldr r3, _080F5ED0 @ =0x0000876c - adds r1, r0, r3 - ldrh r1, [r1] - ldrh r2, [r2] - adds r2, r1, r2 - subs r5, 0x2 - adds r4, r0, r5 - strh r2, [r4] - ldr r1, _080F5EE0 @ =0x00008774 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r3, [r0] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F5EC6 - subs r0, r2, 0x1 - subs r0, r3 - strh r0, [r4] -_080F5EC6: - movs r0, 0x1 -_080F5EC8: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F5ED0: .4byte 0x0000876c -_080F5ED4: .4byte 0x000087c9 -_080F5ED8: .4byte 0x00008772 -_080F5EDC: .4byte 0x00008770 -_080F5EE0: .4byte 0x00008774 - thumb_func_end sub_80F5E20 - - thumb_func_start sub_80F5EE4 -sub_80F5EE4: @ 80F5EE4 - push {r4-r6,lr} - ldr r3, _080F5F04 @ =gUnknown_083DFEC4 - ldr r4, [r3] - ldr r1, _080F5F08 @ =0x0000876e - adds r0, r4, r1 - ldr r2, _080F5F0C @ =0x00008774 - adds r1, r4, r2 - movs r5, 0 - ldrsh r2, [r0, r5] - movs r6, 0 - ldrsh r0, [r1, r6] - adds r5, r3, 0 - cmp r2, r0 - bne _080F5F10 - movs r0, 0 - b _080F5F98 - .align 2, 0 -_080F5F04: .4byte gUnknown_083DFEC4 -_080F5F08: .4byte 0x0000876e -_080F5F0C: .4byte 0x00008774 -_080F5F10: - ldr r1, _080F5F38 @ =0x000087c9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F5F40 - ldr r2, _080F5F3C @ =0x0000876c - adds r0, r4, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0x7 - bne _080F5F40 - movs r0, 0x1 - bl sub_80F063C - movs r0, 0x1 - bl sub_80F6074 - movs r0, 0x2 - b _080F5F98 - .align 2, 0 -_080F5F38: .4byte 0x000087c9 -_080F5F3C: .4byte 0x0000876c -_080F5F40: - ldr r2, [r5] - ldr r6, _080F5FA0 @ =0x0000876c - adds r4, r2, r6 - ldrh r0, [r4] - adds r1, r0, 0x1 - strh r1, [r4] - ldr r3, _080F5FA4 @ =0x000087c9 - adds r0, r2, r3 - ldrb r3, [r0] - cmp r3, 0 - bne _080F5F68 - adds r6, 0x6 - adds r0, r2, r6 - lsls r1, 16 - asrs r1, 16 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _080F5F68 - strh r3, [r4] -_080F5F68: - ldr r0, [r5] - ldr r3, _080F5FA8 @ =0x00008770 - adds r2, r0, r3 - ldr r5, _080F5FA0 @ =0x0000876c - adds r1, r0, r5 - ldrh r1, [r1] - ldrh r2, [r2] - adds r2, r1, r2 - ldr r6, _080F5FAC @ =0x0000876e - adds r4, r0, r6 - strh r2, [r4] - ldr r1, _080F5FB0 @ =0x00008774 - adds r0, r1 - lsls r1, r2, 16 - asrs r1, 16 - ldrh r3, [r0] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F5F96 - subs r0, r2, 0x1 - subs r0, r3 - strh r0, [r4] -_080F5F96: - movs r0, 0x1 -_080F5F98: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F5FA0: .4byte 0x0000876c -_080F5FA4: .4byte 0x000087c9 -_080F5FA8: .4byte 0x00008770 -_080F5FAC: .4byte 0x0000876e -_080F5FB0: .4byte 0x00008774 - thumb_func_end sub_80F5EE4 - - thumb_func_start sub_80F5FB4 -sub_80F5FB4: @ 80F5FB4 - push {r4,lr} - ldr r0, _080F5FD8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F5FDC @ =0x00008770 - adds r0, r1, r2 - ldrh r3, [r0] - movs r4, 0 - ldrsh r2, [r0, r4] - cmp r2, 0 - beq _080F5FD2 - ldr r4, _080F5FE0 @ =0x000087c9 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080F5FE4 -_080F5FD2: - movs r0, 0 - b _080F6004 - .align 2, 0 -_080F5FD8: .4byte gUnknown_083DFEC4 -_080F5FDC: .4byte 0x00008770 -_080F5FE0: .4byte 0x000087c9 -_080F5FE4: - cmp r2, 0x7 - bgt _080F5FF0 - negs r0, r3 - lsls r0, 16 - lsrs r0, 16 - b _080F5FF2 -_080F5FF0: - ldr r0, _080F600C @ =0x0000fff8 -_080F5FF2: - lsls r4, r0, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 -_080F6004: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F600C: .4byte 0x0000fff8 - thumb_func_end sub_80F5FB4 - - thumb_func_start sub_80F6010 -sub_80F6010: @ 80F6010 - push {r4-r6,lr} - ldr r0, _080F603C @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r1, _080F6040 @ =0x00008772 - adds r0, r3, r1 - ldr r2, _080F6044 @ =0x00008774 - adds r1, r3, r2 - ldrh r5, [r0] - movs r4, 0 - ldrsh r2, [r0, r4] - ldrh r4, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r2, r0 - beq _080F6038 - ldr r1, _080F6048 @ =0x000087c9 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F604C -_080F6038: - movs r0, 0 - b _080F606C - .align 2, 0 -_080F603C: .4byte gUnknown_083DFEC4 -_080F6040: .4byte 0x00008772 -_080F6044: .4byte 0x00008774 -_080F6048: .4byte 0x000087c9 -_080F604C: - subs r0, r4, r5 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080F605A - movs r4, 0x8 -_080F605A: - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_80F063C - adds r0, r4, 0 - bl sub_80F6074 - movs r0, 0x2 -_080F606C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F6010 - - thumb_func_start sub_80F6074 -sub_80F6074: @ 80F6074 - push {r4-r7,lr} - ldr r1, _080F6120 @ =gUnknown_083DFEC4 - ldr r6, [r1] - ldr r1, _080F6124 @ =0x00008770 - adds r3, r6, r1 - ldrh r1, [r3] - lsls r0, 16 - asrs r7, r0, 16 - adds r2, r7, r1 - strh r2, [r3] - ldr r5, _080F6128 @ =0x00008774 - adds r4, r6, r5 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4] - mov r12, r1 - movs r5, 0 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080F60A4 - subs r0, r2, 0x1 - mov r1, r12 - subs r0, r1 - strh r0, [r3] -_080F60A4: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F60B6 - adds r0, r1, 0x1 - ldrh r5, [r4] - adds r0, r5 - strh r0, [r3] -_080F60B6: - ldr r0, _080F612C @ =0x00008772 - adds r3, r6, r0 - ldrh r0, [r3] - adds r2, r7, r0 - strh r2, [r3] - lsls r0, r2, 16 - asrs r0, 16 - ldrh r1, [r4] - mov r12, r1 - movs r5, 0 - ldrsh r1, [r4, r5] - cmp r0, r1 - ble _080F60D8 - subs r0, r2, 0x1 - mov r1, r12 - subs r0, r1 - strh r0, [r3] -_080F60D8: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F60EA - adds r0, r1, 0x1 - ldrh r5, [r4] - adds r0, r5 - strh r0, [r3] -_080F60EA: - ldr r0, _080F6130 @ =0x0000876e - adds r3, r6, r0 - ldrh r0, [r3] - adds r2, r7, r0 - strh r2, [r3] - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r4] - movs r6, 0 - ldrsh r1, [r4, r6] - cmp r0, r1 - ble _080F6108 - subs r0, r2, 0x1 - subs r0, r5 - strh r0, [r3] -_080F6108: - ldrh r1, [r3] - movs r2, 0 - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _080F611A - adds r0, r1, 0x1 - ldrh r4, [r4] - adds r0, r4 - strh r0, [r3] -_080F611A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6120: .4byte gUnknown_083DFEC4 -_080F6124: .4byte 0x00008770 -_080F6128: .4byte 0x00008774 -_080F612C: .4byte 0x00008772 -_080F6130: .4byte 0x0000876e - thumb_func_end sub_80F6074 - - thumb_func_start sub_80F6134 -sub_80F6134: @ 80F6134 - push {r4-r6,lr} - ldr r0, _080F6194 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r1, _080F6198 @ =0x000087c9 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F61E0 - ldr r2, _080F619C @ =0x000087dc - adds r5, r3, r2 - movs r4, 0 - ldrsh r1, [r5, r4] - ldr r6, _080F61A0 @ =0x00008774 - adds r4, r3, r6 - movs r2, 0 - ldrsh r0, [r4, r2] - subs r0, 0x7 - cmp r1, r0 - bge _080F61AC - subs r6, 0x8 - adds r1, r3, r6 - movs r0, 0 - strh r0, [r1] - ldrh r0, [r5] - ldr r1, _080F61A4 @ =0x00008770 - adds r2, r3, r1 - strh r0, [r2] - ldrh r1, [r5] - ldr r5, _080F61A8 @ =0x0000876e - adds r0, r3, r5 - strh r1, [r0] - ldrh r5, [r2] - adds r0, r5, 0x7 - adds r6, 0x6 - adds r2, r3, r6 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - ldrh r3, [r4] - movs r6, 0 - ldrsh r1, [r4, r6] - cmp r0, r1 - ble _080F61F4 - adds r0, r5, 0x6 - subs r0, r3 - strh r0, [r2] - b _080F61F4 - .align 2, 0 -_080F6194: .4byte gUnknown_083DFEC4 -_080F6198: .4byte 0x000087c9 -_080F619C: .4byte 0x000087dc -_080F61A0: .4byte 0x00008774 -_080F61A4: .4byte 0x00008770 -_080F61A8: .4byte 0x0000876e -_080F61AC: - ldrh r0, [r4] - subs r0, 0x7 - ldr r2, _080F61D4 @ =0x00008770 - adds r1, r3, r2 - strh r0, [r1] - ldrh r1, [r4] - ldr r6, _080F61D8 @ =0x00008772 - adds r0, r3, r6 - strh r1, [r0] - ldrh r1, [r5] - subs r2, 0x2 - adds r0, r3, r2 - strh r1, [r0] - ldrh r0, [r4] - subs r0, r1 - movs r1, 0x7 - subs r1, r0 - ldr r4, _080F61DC @ =0x0000876c - adds r0, r3, r4 - b _080F61F2 - .align 2, 0 -_080F61D4: .4byte 0x00008770 -_080F61D8: .4byte 0x00008772 -_080F61DC: .4byte 0x0000876c -_080F61E0: - ldr r5, _080F61FC @ =0x000087dc - adds r2, r3, r5 - ldrh r1, [r2] - ldr r6, _080F6200 @ =0x0000876c - adds r0, r3, r6 - strh r1, [r0] - ldrh r1, [r2] - ldr r2, _080F6204 @ =0x0000876e - adds r0, r3, r2 -_080F61F2: - strh r1, [r0] -_080F61F4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F61FC: .4byte 0x000087dc -_080F6200: .4byte 0x0000876c -_080F6204: .4byte 0x0000876e - thumb_func_end sub_80F6134 - - thumb_func_start sub_80F6208 -sub_80F6208: @ 80F6208 - push {lr} - ldr r0, _080F623C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F6240 @ =0x00008fe6 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r3, _080F6244 @ =0x00008fe7 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _080F6248 @ =0x00008fe8 - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r2, _080F624C @ =0x00006dac - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _080F6238 -_080F622E: - bl sub_80F6250 - lsls r0, 24 - cmp r0, 0 - bne _080F622E -_080F6238: - pop {r0} - bx r0 - .align 2, 0 -_080F623C: .4byte gUnknown_083DFEC4 -_080F6240: .4byte 0x00008fe6 -_080F6244: .4byte 0x00008fe7 -_080F6248: .4byte 0x00008fe8 -_080F624C: .4byte 0x00006dac - thumb_func_end sub_80F6208 - - thumb_func_start sub_80F6250 -sub_80F6250: @ 80F6250 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F6270 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F6274 @ =0x00008fe8 - adds r3, r2, r0 - movs r1, 0 - ldrsb r1, [r3, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080F6278 -_080F626C: - movs r0, 0 - b _080F637E - .align 2, 0 -_080F6270: .4byte gUnknown_083DFEC4 -_080F6274: .4byte 0x00008fe8 -_080F6278: - ldr r1, _080F630C @ =0x00008fe6 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080F631C - cmp r0, 0x8 - beq _080F626C - movs r6, 0 - adds r7, r2, 0 - adds r5, r7, r1 - ldr r0, _080F6310 @ =0x00008fe7 - adds r4, r7, r0 - ldr r1, _080F6314 @ =gUnknown_020300A4 - mov r8, r1 - ldr r0, _080F6318 @ =0x000041a0 - add r0, r8 - mov r9, r0 -_080F629A: - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r8 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - cmp r0, 0 - bne _080F636C - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - add r1, r9 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - adds r1, r0, 0 - cmp r1, 0 - bne _080F636C - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r2, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1D - bls _080F62FE - strb r1, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ands r0, r2 - cmp r0, 0x6 - bhi _080F637C -_080F62FE: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _080F629A - b _080F637C - .align 2, 0 -_080F630C: .4byte 0x00008fe6 -_080F6310: .4byte 0x00008fe7 -_080F6314: .4byte gUnknown_020300A4 -_080F6318: .4byte 0x000041a0 -_080F631C: - movs r0, 0 - strb r0, [r3] - movs r6, 0 - b _080F632A -_080F6324: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080F632A: - cmp r6, 0x5 - bhi _080F634C - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F635C @ =gPlayerParty - adds r0, r1 - movs r1, 0x51 - bl GetMonData - cmp r0, 0 - beq _080F6324 - ldr r0, _080F6360 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F6364 @ =0x00008fe8 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_080F634C: - ldr r0, _080F6360 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F6368 @ =0x00008fe6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _080F6372 - .align 2, 0 -_080F635C: .4byte gPlayerParty -_080F6360: .4byte gUnknown_083DFEC4 -_080F6364: .4byte 0x00008fe8 -_080F6368: .4byte 0x00008fe6 -_080F636C: - ldr r0, _080F6378 @ =0x00008fe8 - adds r1, r7, r0 - movs r0, 0x1 -_080F6372: - strb r0, [r1] - b _080F626C - .align 2, 0 -_080F6378: .4byte 0x00008fe8 -_080F637C: - movs r0, 0x1 -_080F637E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F6250 - - thumb_func_start sub_80F638C -sub_80F638C: @ 80F638C - push {r4,lr} - ldr r0, _080F63C0 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r1, _080F63C4 @ =0x00008fe6 - adds r0, r4, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080F63C8 @ =0x00008fe7 - adds r0, r4, r2 - strb r1, [r0] - bl sub_80F492C - ldr r0, _080F63CC @ =0x00006dac - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0 - bne _080F63B8 -_080F63AE: - bl sub_80F63D0 - lsls r0, 24 - cmp r0, 0 - bne _080F63AE -_080F63B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F63C0: .4byte gUnknown_083DFEC4 -_080F63C4: .4byte 0x00008fe6 -_080F63C8: .4byte 0x00008fe7 -_080F63CC: .4byte 0x00006dac - thumb_func_end sub_80F638C - - thumb_func_start sub_80F63D0 -sub_80F63D0: @ 80F63D0 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _080F647C @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r1, _080F6480 @ =0x00008fe6 - adds r0, r2, r1 - ldrb r3, [r0] - cmp r3, 0xE - beq _080F6498 - cmp r3, 0xF - bne _080F63E8 - b _080F64F6 -_080F63E8: - movs r1, 0x80 - lsls r1, 23 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - movs r6, 0 - ldr r0, _080F6480 @ =0x00008fe6 - adds r5, r2, r0 - ldr r1, _080F6484 @ =0x00008fe7 - adds r4, r2, r1 -_080F63FC: - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldrb r2, [r4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _080F6488 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x51 - bl GetBoxMonData - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080F644E - ldrb r1, [r5] - lsls r1, 8 - ldr r2, _080F648C @ =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldrb r2, [r4] - movs r1, 0x1F - ands r2, r1 - lsls r2, 16 - ldr r1, _080F6490 @ =0xffe0ffff - ands r0, r1 - orrs r0, r2 - ldr r1, _080F6494 @ =0xffffff00 - ands r0, r1 - orrs r0, r3 - str r0, [sp] - mov r0, sp - bl sub_80F4944 -_080F644E: - ldrb r0, [r4] - adds r0, 0x1 - movs r2, 0 - strb r0, [r4] - movs r1, 0xFF - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bne _080F646E - strb r2, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ands r0, r1 - cmp r0, 0xE - beq _080F6508 -_080F646E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xE - bls _080F63FC - b _080F6508 - .align 2, 0 -_080F647C: .4byte gUnknown_083DFEC4 -_080F6480: .4byte 0x00008fe6 -_080F6484: .4byte 0x00008fe7 -_080F6488: .4byte gUnknown_020300A4 -_080F648C: .4byte 0xffff00ff -_080F6490: .4byte 0xffe0ffff -_080F6494: .4byte 0xffffff00 -_080F6498: - mov r0, sp - ldrb r1, [r0, 0x3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x3] - strb r3, [r0, 0x1] - movs r6, 0 - mov r4, sp -_080F64A8: - movs r0, 0x64 - muls r0, r6 - ldr r1, _080F64FC @ =gPlayerParty - adds r0, r1 - movs r1, 0x51 - bl GetMonData - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080F64DA - movs r0, 0x1F - adds r2, r6, 0 - ands r2, r0 - ldrb r0, [r4, 0x2] - movs r5, 0x20 - negs r5, r5 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x2] - strb r3, [r4] - mov r0, sp - bl sub_80F4944 -_080F64DA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080F64A8 - bl sub_80F49F4 - ldr r0, _080F6500 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F6504 @ =0x00008fe6 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F64F6: - movs r0, 0 - b _080F650A - .align 2, 0 -_080F64FC: .4byte gPlayerParty -_080F6500: .4byte gUnknown_083DFEC4 -_080F6504: .4byte 0x00008fe6 -_080F6508: - movs r0, 0x1 -_080F650A: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F63D0 - - thumb_func_start sub_80F6514 -sub_80F6514: @ 80F6514 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - mov r5, r10 - ldr r0, _080F65A4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - lsls r1, 2 - adds r0, r1 - ldr r2, _080F65A8 @ =0x0000893d - adds r1, r0, r2 - ldrb r6, [r1] - mov r8, r6 - ldr r1, _080F65AC @ =0x0000893e - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r4, r0, 27 - adds r7, r4, 0 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x2D - movs r3, 0 - bl sub_80F44B0 - cmp r0, 0 - beq _080F655E - b _080F66CA -_080F655E: - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl sub_80F44B0 - adds r0, r5, 0 - bl StringGetEnd10 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0xB - movs r3, 0 - bl sub_80F44B0 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r6, 0xE - bne _080F65B4 - movs r0, 0x64 - muls r4, r0 - ldr r0, _080F65B0 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - adds r0, r4, 0 - bl GetMonGender - b _080F65EA - .align 2, 0 -_080F65A4: .4byte gUnknown_083DFEC4 -_080F65A8: .4byte 0x0000893d -_080F65AC: .4byte 0x0000893e -_080F65B0: .4byte gPlayerParty -_080F65B4: - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 4 - ldr r2, _080F6620 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0 - bl sub_80F44B0 - adds r1, r0, 0 - mov r0, r9 - bl GetGenderFromSpeciesAndPersonality -_080F65EA: - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r9 - mov r1, r10 - bl sub_8040D8C - cmp r0, 0 - beq _080F65FC - movs r4, 0xFF -_080F65FC: - adds r0, r5, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 - movs r1, 0xFC - strb r1, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r0, 0x3F - strb r0, [r5, 0x2] - adds r5, 0x3 - cmp r4, 0 - beq _080F6624 - cmp r4, 0xFE - beq _080F663C - b _080F6656 - .align 2, 0 -_080F6620: .4byte gUnknown_020300A4 -_080F6624: - strb r1, [r5] - movs r0, 0x1 - strb r0, [r5, 0x1] - movs r0, 0xC - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0xD - strb r0, [r5, 0x5] - movs r0, 0xB5 - b _080F6652 -_080F663C: - strb r1, [r5] - movs r0, 0x1 - strb r0, [r5, 0x1] - movs r0, 0xA - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0xB - strb r0, [r5, 0x5] - movs r0, 0xB6 -_080F6652: - strb r0, [r5, 0x6] - adds r5, 0x7 -_080F6656: - movs r4, 0xFC - strb r4, [r5] - movs r1, 0x1 - strb r1, [r5, 0x1] - strb r1, [r5, 0x2] - strb r4, [r5, 0x3] - movs r0, 0x3 - strb r0, [r5, 0x4] - movs r0, 0x5 - strb r0, [r5, 0x5] - adds r5, 0x6 - strb r4, [r5] - movs r6, 0x13 - strb r6, [r5, 0x1] - movs r0, 0x46 - strb r0, [r5, 0x2] - adds r5, 0x3 - movs r0, 0xBA - strb r0, [r5] - strb r4, [r5, 0x1] - movs r0, 0x11 - strb r0, [r5, 0x2] - strb r1, [r5, 0x3] - movs r0, 0x34 - strb r0, [r5, 0x4] - adds r5, 0x5 - adds r0, r5, 0 - ldr r1, [sp, 0x8] - bl ConvertIntToDecimalString - adds r5, r0, 0 - ldr r0, [sp, 0x4] - cmp r0, 0x1 - bne _080F66C0 - ldr r0, _080F66B8 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, [sp] - lsls r1, r2, 2 - adds r0, r1 - ldr r1, _080F66BC @ =0x0000893c - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - movs r2, 0x80 - movs r3, 0x1 - bl sub_8072C14 - adds r5, r0, 0 - b _080F66CE - .align 2, 0 -_080F66B8: .4byte gUnknown_083DFEC4 -_080F66BC: .4byte 0x0000893c -_080F66C0: - strb r4, [r5] - strb r6, [r5, 0x1] - movs r0, 0x67 - strb r0, [r5, 0x2] - adds r5, 0x3 -_080F66CA: - movs r0, 0xFF - strb r0, [r5] -_080F66CE: - adds r0, r5, 0 - 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_80F6514 - - thumb_func_start sub_80F66E0 -sub_80F66E0: @ 80F66E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080F676C @ =gUnknown_083DFEC4 - mov r8, r0 - ldr r4, [r0] - ldr r1, _080F6770 @ =0x00008829 - adds r0, r4, r1 - ldr r2, _080F6774 @ =0x0000876e - adds r5, r4, r2 - ldrh r1, [r5] - movs r2, 0 - bl sub_80F6514 - movs r3, 0 - ldrsh r0, [r5, r3] - movs r1, 0 - bl sub_80F4824 - ldrh r1, [r5] - ldr r6, _080F6778 @ =0x000087dc - adds r0, r4, r6 - movs r6, 0 - strh r1, [r0] - ldr r1, _080F677C @ =0x0000bc8e - adds r0, r4, r1 - strb r6, [r0] - movs r2, 0 - mov r9, r2 - movs r3, 0 - ldrsh r1, [r5, r3] - lsls r1, 2 - adds r1, r4, r1 - ldr r5, _080F6780 @ =0x0000893d - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _080F6784 @ =0x0000893e - adds r1, r2 - ldrb r1, [r1] - lsls r1, 27 - lsrs r1, 27 - movs r2, 0x52 - movs r3, 0 - bl sub_80F44B0 - adds r7, r0, 0 - ldr r3, _080F6788 @ =0x0000bc8f - adds r4, r3 - strb r6, [r4] - movs r5, 0 - mov r12, r5 - mov r10, r8 -_080F674E: - ldr r1, _080F678C @ =gUnknown_083E499C - mov r6, r12 - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x36 - bgt _080F6790 - cmp r0, 0x32 - blt _080F6790 - movs r0, 0x7 - adds r2, r7, 0 - ands r2, r0 - lsrs r7, 3 - movs r0, 0x4 - b _080F679A - .align 2, 0 -_080F676C: .4byte gUnknown_083DFEC4 -_080F6770: .4byte 0x00008829 -_080F6774: .4byte 0x0000876e -_080F6778: .4byte 0x000087dc -_080F677C: .4byte 0x0000bc8e -_080F6780: .4byte 0x0000893d -_080F6784: .4byte 0x0000893e -_080F6788: .4byte 0x0000bc8f -_080F678C: .4byte gUnknown_083E499C -_080F6790: - movs r0, 0x1 - adds r2, r7, 0 - ands r2, r0 - lsrs r7, 1 - movs r0, 0x1 -_080F679A: - movs r4, 0 - adds r1, r2, 0 - add r0, r9 - mov r8, r0 - cmp r4, r1 - bcs _080F67D4 - mov r3, r10 - ldr r0, [r3] - ldr r5, _080F6828 @ =0x0000bc8e - adds r3, r0, r5 - ldr r6, _080F682C @ =0x0000bc4c - adds r6, r0, r6 - str r6, [sp] - adds r5, r1, 0 -_080F67B6: - ldrb r0, [r3] - adds r1, r0, 0x1 - strb r1, [r3] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - adds r0, r1, r0 - mov r6, r9 - adds r1, r6, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080F67B6 -_080F67D4: - cmp r2, 0 - beq _080F67EC - mov r0, r9 - cmp r0, 0x18 - bls _080F67EC - mov r2, r10 - ldr r1, [r2] - ldr r3, _080F6830 @ =0x0000bc8f - adds r1, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F67EC: - mov r5, r8 - lsls r0, r5, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r12 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - cmp r0, 0x10 - bls _080F674E - ldr r6, _080F6834 @ =gUnknown_083DFEC4 - ldr r2, [r6] - ldr r1, _080F6828 @ =0x0000bc8e - adds r0, r2, r1 - ldr r3, _080F6830 @ =0x0000bc8f - adds r1, r2, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080F6840 - ldr r5, _080F6838 @ =0x0000bc90 - adds r0, r2, r5 - movs r1, 0 - strb r1, [r0] - ldr r6, _080F683C @ =0x0000bc91 - adds r0, r2, r6 - strb r1, [r0] - b _080F6850 - .align 2, 0 -_080F6828: .4byte 0x0000bc8e -_080F682C: .4byte 0x0000bc4c -_080F6830: .4byte 0x0000bc8f -_080F6834: .4byte gUnknown_083DFEC4 -_080F6838: .4byte 0x0000bc90 -_080F683C: .4byte 0x0000bc91 -_080F6840: - ldr r0, _080F6888 @ =0x0000bc90 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080F688C @ =0x0000bc91 - adds r1, r2, r3 - movs r0, 0x3 - strb r0, [r1] -_080F6850: - ldr r5, _080F6890 @ =gUnknown_083DFEC4 - ldr r1, [r5] - ldr r6, _080F6894 @ =0x0000bc8e - adds r0, r1, r6 - ldr r2, _080F6898 @ =0x0000bc8f - adds r1, r2 - ldrb r0, [r0] - ldrb r1, [r1] - subs r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - movs r3, 0 - mov r12, r3 - adds r3, r5, 0 - ldr r1, _080F689C @ =0x0000bc96 - movs r4, 0x9 -_080F6870: - cmp r2, 0x8 - bls _080F68A0 - ldr r0, [r3] - adds r0, r1 - add r0, r12 - strb r4, [r0] - adds r0, r2, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r2, r0, 24 - b _080F68AA - .align 2, 0 -_080F6888: .4byte 0x0000bc90 -_080F688C: .4byte 0x0000bc91 -_080F6890: .4byte gUnknown_083DFEC4 -_080F6894: .4byte 0x0000bc8e -_080F6898: .4byte 0x0000bc8f -_080F689C: .4byte 0x0000bc96 -_080F68A0: - ldr r0, [r3] - adds r0, r1 - add r0, r12 - strb r2, [r0] - movs r2, 0 -_080F68AA: - mov r0, r12 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - cmp r0, 0x2 - bls _080F6870 - ldr r5, _080F68DC @ =gUnknown_083DFEC4 - ldr r0, [r5] - ldr r6, _080F68E0 @ =0x0000bc96 - adds r1, r0, r6 - add r1, r12 - ldr r2, _080F68E4 @ =0x0000bc8f - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F68DC: .4byte gUnknown_083DFEC4 -_080F68E0: .4byte 0x0000bc96 -_080F68E4: .4byte 0x0000bc8f - thumb_func_end sub_80F66E0 - - thumb_func_start sub_80F68E8 -sub_80F68E8: @ 80F68E8 - push {r4-r7,lr} - ldr r3, _080F6918 @ =gUnknown_083DFEC4 - ldr r0, [r3] - ldr r2, _080F691C @ =0x0000bc90 - adds r1, r0, r2 - ldrb r5, [r1] - ldr r6, _080F6920 @ =0x0000bc91 - adds r0, r6 - ldrb r4, [r0] - movs r0, 0x1 - mov r12, r0 - ldr r2, _080F6924 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r7, r2, 0 - cmp r0, 0 - beq _080F692E - lsls r0, r4, 24 - cmp r0, 0 - ble _080F692E - b _080F69BC - .align 2, 0 -_080F6918: .4byte gUnknown_083DFEC4 -_080F691C: .4byte 0x0000bc90 -_080F6920: .4byte 0x0000bc91 -_080F6924: .4byte gMain -_080F6928: - ldr r1, _080F69B0 @ =0x0000bc91 - adds r0, r2, r1 - ldrb r4, [r0] -_080F692E: - ldrh r1, [r7, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F6978 - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6978 - ldr r3, _080F69B4 @ =gUnknown_083DFEC4 - ldr r2, _080F69B8 @ =0x0000bc96 -_080F6944: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x2 - bgt _080F6960 - adds r0, 0x1 - lsls r0, 24 - ldr r1, [r3] - lsrs r4, r0, 24 - asrs r0, 24 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6944 -_080F6960: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 @ =0x0000bc96 - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _080F69EC - ldr r1, _080F69B0 @ =0x0000bc91 - adds r0, r2, r1 - ldrb r4, [r0] -_080F6978: - ldrh r2, [r7, 0x30] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080F698A - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - bgt _080F6A3C -_080F698A: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080F69AA - lsls r0, r5, 24 - asrs r2, r0, 24 - ldr r1, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F69B8 @ =0x0000bc96 - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - cmp r2, r0 - blt _080F6A38 -_080F69AA: - movs r0, 0 - mov r12, r0 - b _080F69FC - .align 2, 0 -_080F69B0: .4byte 0x0000bc91 -_080F69B4: .4byte gUnknown_083DFEC4 -_080F69B8: .4byte 0x0000bc96 -_080F69BC: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0 - ble _080F69DA - subs r0, 0x1 - lsls r0, 24 - ldr r1, [r6] - lsrs r4, r0, 24 - asrs r0, 24 - ldr r2, _080F6A2C @ =0x0000bc96 - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F69BC -_080F69DA: - ldr r2, [r6] - lsls r0, r4, 24 - asrs r0, 24 - ldr r3, _080F6A2C @ =0x0000bc96 - adds r1, r2, r3 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F6928 -_080F69EC: - lsls r0, r5, 24 - asrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - blt _080F69FC - subs r0, r1, 0x1 -_080F69F8: - lsls r0, 24 - lsrs r5, r0, 24 -_080F69FC: - mov r0, r12 - cmp r0, 0 - beq _080F6A44 - lsls r0, r5, 24 - asrs r0, 24 - ldr r3, [r6] - ldr r1, _080F6A30 @ =0x0000bc90 - adds r2, r3, r1 - ldrb r6, [r2] - cmp r0, r6 - bne _080F6A20 - lsls r0, r4, 24 - asrs r0, 24 - ldr r6, _080F6A34 @ =0x0000bc91 - adds r1, r3, r6 - ldrb r1, [r1] - cmp r0, r1 - beq _080F6A40 -_080F6A20: - strb r5, [r2] - ldr r1, _080F6A34 @ =0x0000bc91 - adds r0, r3, r1 - strb r4, [r0] - b _080F6A44 - .align 2, 0 -_080F6A2C: .4byte 0x0000bc96 -_080F6A30: .4byte 0x0000bc90 -_080F6A34: .4byte 0x0000bc91 -_080F6A38: - adds r0, r2, 0x1 - b _080F69F8 -_080F6A3C: - subs r0, 0x1 - b _080F69F8 -_080F6A40: - movs r2, 0 - mov r12, r2 -_080F6A44: - mov r0, r12 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F68E8 - - thumb_func_start sub_80F6A4C -sub_80F6A4C: @ 80F6A4C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080F6AC4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080F6AC8 @ =0x0000876e - adds r2, r3, r0 - lsls r0, r4, 24 - asrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bge _080F6A74 - ldr r5, _080F6ACC @ =0x00008774 - adds r0, r3, r5 - ldrh r0, [r0] - strh r0, [r2] -_080F6A74: - ldr r1, _080F6ACC @ =0x00008774 - adds r0, r3, r1 - movs r5, 0 - ldrsh r1, [r2, r5] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F6A88 - movs r0, 0 - strh r0, [r2] -_080F6A88: - ldr r1, _080F6AD0 @ =0x0000bc94 - adds r0, r3, r1 - strb r4, [r0] - ldrh r1, [r2] - ldr r2, _080F6AD4 @ =0x000087dc - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F6AD8 @ =REG_WININ - ldr r5, _080F6ADC @ =0x00003f37 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6AE0 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - ldr r5, _080F6AE4 @ =0x000058f0 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6AE8 @ =0x00002060 - adds r0, r2, 0 - strh r0, [r1] - ldr r5, _080F6AEC @ =0x000087de - adds r1, r3, r5 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6AC4: .4byte gUnknown_083DFEC4 -_080F6AC8: .4byte 0x0000876e -_080F6ACC: .4byte 0x00008774 -_080F6AD0: .4byte 0x0000bc94 -_080F6AD4: .4byte 0x000087dc -_080F6AD8: .4byte REG_WININ -_080F6ADC: .4byte 0x00003f37 -_080F6AE0: .4byte 0x00003f3f -_080F6AE4: .4byte 0x000058f0 -_080F6AE8: .4byte 0x00002060 -_080F6AEC: .4byte 0x000087de - thumb_func_end sub_80F6A4C - - thumb_func_start sub_80F6AF0 -sub_80F6AF0: @ 80F6AF0 - push {r4,lr} - ldr r1, _080F6B10 @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F6B14 @ =0x000087de - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _080F6B04 - b _080F6C08 -_080F6B04: - lsls r0, 2 - ldr r1, _080F6B18 @ =_080F6B1C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F6B10: .4byte gUnknown_083DFEC4 -_080F6B14: .4byte 0x000087de -_080F6B18: .4byte _080F6B1C - .align 2, 0 -_080F6B1C: - .4byte _080F6B38 - .4byte _080F6B54 - .4byte _080F6B6E - .4byte _080F6B84 - .4byte _080F6B9C - .4byte _080F6BC0 - .4byte _080F6BE0 -_080F6B38: - bl sub_80F173C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - ldr r0, _080F6B4C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r3, _080F6B50 @ =0x000087de - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B4C: .4byte gUnknown_083DFEC4 -_080F6B50: .4byte 0x000087de -_080F6B54: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bl sub_80F1480 - bl sub_80F66E0 - b _080F6BC6 -_080F6B6E: - bl sub_80F1238 - ldr r0, _080F6B7C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F6B80 @ =0x000087de - adds r1, r2 - b _080F6BCE - .align 2, 0 -_080F6B7C: .4byte gUnknown_083DFEC4 -_080F6B80: .4byte 0x000087de -_080F6B84: - bl sub_80F13FC - ldr r0, _080F6B94 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r3, _080F6B98 @ =0x000087de - adds r1, r3 - b _080F6BCE - .align 2, 0 -_080F6B94: .4byte gUnknown_083DFEC4 -_080F6B98: .4byte 0x000087de -_080F6B9C: - ldr r4, [r4] - ldr r1, _080F6BB8 @ =0x0000876e - adds r0, r4, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0 - bl sub_80F4824 - ldr r3, _080F6BBC @ =0x000087de - adds r4, r3 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F6C18 - .align 2, 0 -_080F6BB8: .4byte 0x0000876e -_080F6BBC: .4byte 0x000087de -_080F6BC0: - movs r0, 0 - bl sub_80F2E18 -_080F6BC6: - ldr r0, _080F6BD8 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F6BDC @ =0x000087de - adds r1, r0 -_080F6BCE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F6C18 - .align 2, 0 -_080F6BD8: .4byte gUnknown_083DFEC4 -_080F6BDC: .4byte 0x000087de -_080F6BE0: - bl sub_80F170C - lsls r0, 24 - cmp r0, 0 - bne _080F6C18 - bl sub_80F1438 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _080F6C0C @ =0x0000dfff - ands r0, r1 - strh r0, [r2] - ldr r0, _080F6C10 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F6C14 @ =0x000087de - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F6C08: - movs r0, 0 - b _080F6C1A - .align 2, 0 -_080F6C0C: .4byte 0x0000dfff -_080F6C10: .4byte gUnknown_083DFEC4 -_080F6C14: .4byte 0x000087de -_080F6C18: - movs r0, 0x1 -_080F6C1A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F6AF0 - - thumb_func_start sub_80F6C20 -sub_80F6C20: @ 80F6C20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r1, _080F6D48 @ =0x0000d158 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - mov r8, r1 - ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A - mov r9, r2 -_080F6C3A: - ldr r1, _080F6D50 @ =gTrainerEyeTrainers - mov r4, r8 - lsls r0, r4, 4 - adds r6, r0, r1 - ldrh r7, [r6] - adds r0, r7, 0 - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _080F6CA0 - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r0, _080F6D48 @ =0x0000d158 - adds r5, r4, r0 - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r1, _080F6D54 @ =0x0000cee8 - adds r0, r1 - strh r7, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - ldr r2, _080F6D58 @ =0x0000ceec - adds r0, r2 - mov r1, r8 - strb r1, [r0] - ldrh r0, [r5] - lsls r0, 3 - adds r0, r4, r0 - mov r1, r8 - add r1, r9 - ldrb r1, [r1] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - ldrh r0, [r6, 0xA] - ldrh r1, [r6, 0xC] - bl get_mapheader_by_bank_and_number - ldrh r1, [r5] - lsls r1, 3 - adds r4, r1 - ldrb r0, [r0, 0x14] - ldr r1, _080F6D5C @ =0x0000ceea - adds r4, r1 - strh r0, [r4] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F6CA0: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x37 - bls _080F6C3A - movs r2, 0 - mov r8, r2 - movs r6, 0 -_080F6CB4: - ldr r1, _080F6D60 @ =gUnknown_083E49C0 - mov r4, r8 - lsls r0, r4, 2 - adds r5, r0, r1 - ldrh r4, [r5] - adds r0, r4, 0 - bl trainer_flag_check - lsls r0, 24 - cmp r0, 0 - beq _080F6D0E - ldr r0, _080F6D44 @ =gUnknown_083DFEC4 - ldr r2, [r0] - ldr r0, _080F6D48 @ =0x0000d158 - adds r3, r2, r0 - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D54 @ =0x0000cee8 - adds r0, r1 - strh r4, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldrh r1, [r5, 0x2] - ldr r4, _080F6D5C @ =0x0000ceea - adds r0, r4 - strh r1, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r0, r2, r0 - ldr r1, _080F6D64 @ =0x0000ceed - adds r0, r1 - strb r6, [r0] - ldrh r0, [r3] - lsls r0, 3 - adds r2, r0 - mov r0, r8 - adds r0, 0x38 - adds r4, 0x2 - adds r2, r4 - strb r0, [r2] - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080F6D0E: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0xC - bls _080F6CB4 - ldr r3, _080F6D44 @ =gUnknown_083DFEC4 - ldr r2, [r3] - ldr r1, _080F6D68 @ =0x0000876c - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - ldr r4, _080F6D6C @ =0x00008770 - adds r0, r2, r4 - strh r1, [r0] - subs r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r1, _080F6D48 @ =0x0000d158 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0x8 - bhi _080F6D70 - subs r4, r0, 0x1 - b _080F6D72 - .align 2, 0 -_080F6D44: .4byte gUnknown_083DFEC4 -_080F6D48: .4byte 0x0000d158 -_080F6D4C: .4byte gSaveBlock1 + 0x97A -_080F6D50: .4byte gTrainerEyeTrainers -_080F6D54: .4byte 0x0000cee8 -_080F6D58: .4byte 0x0000ceec -_080F6D5C: .4byte 0x0000ceea -_080F6D60: .4byte gUnknown_083E49C0 -_080F6D64: .4byte 0x0000ceed -_080F6D68: .4byte 0x0000876c -_080F6D6C: .4byte 0x00008770 -_080F6D70: - movs r4, 0x7 -_080F6D72: - ldr r1, _080F6DA8 @ =0x00008772 - adds r0, r2, r1 - strh r4, [r0] - ldr r3, [r3] - ldr r2, _080F6DAC @ =0x0000d158 - adds r0, r3, r2 - ldrh r0, [r0] - subs r0, 0x1 - ldr r4, _080F6DB0 @ =0x00008774 - adds r1, r3, r4 - strh r0, [r1] - movs r1, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _080F6D94 - movs r1, 0x1 -_080F6D94: - ldr r2, _080F6DB4 @ =0x000087c9 - adds r0, r3, r2 - strb r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6DA8: .4byte 0x00008772 -_080F6DAC: .4byte 0x0000d158 -_080F6DB0: .4byte 0x00008774 -_080F6DB4: .4byte 0x000087c9 - thumb_func_end sub_80F6C20 - - thumb_func_start sub_80F6DB8 -sub_80F6DB8: @ 80F6DB8 - push {r4,lr} - movs r1, 0 - ldr r0, _080F6DEC @ =gUnknown_083DFEC4 - ldr r4, [r0] - ldr r2, _080F6DF0 @ =0x00008fe9 - adds r0, r4, r2 - strb r1, [r0] - movs r0, 0 - bl sub_80F6E04 - ldr r0, _080F6DF4 @ =0x0000d15a - adds r1, r4, r0 - ldr r0, _080F6DF8 @ =0x0000ffb8 - strh r0, [r1] - movs r0, 0 - bl sub_80F2F7C - ldr r1, _080F6DFC @ =0x0000876e - adds r0, r4, r1 - ldrh r0, [r0] - ldr r2, _080F6E00 @ =0x000087dc - adds r4, r2 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6DEC: .4byte gUnknown_083DFEC4 -_080F6DF0: .4byte 0x00008fe9 -_080F6DF4: .4byte 0x0000d15a -_080F6DF8: .4byte 0x0000ffb8 -_080F6DFC: .4byte 0x0000876e -_080F6E00: .4byte 0x000087dc - thumb_func_end sub_80F6DB8 - - thumb_func_start sub_80F6E04 -sub_80F6E04: @ 80F6E04 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080F6E78 @ =gUnknown_083DFEC4 - ldr r5, [r0] - ldr r1, _080F6E7C @ =0x0000876e - adds r0, r5, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r0, r5, r0 - ldr r7, _080F6E80 @ =0x0000cee8 - adds r0, r7 - ldrh r1, [r0] - ldr r2, _080F6E84 @ =gTrainers - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r6, [r0, 0x3] - lsls r0, r6, 3 - mov r8, r0 - ldr r0, _080F6E88 @ =gTrainerFrontPicTable - add r0, r8 - ldr r2, _080F6E8C @ =gTrainerFrontPicCoords - lsls r1, r6, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _080F6E90 @ =0x000131e4 - adds r3, r5, r2 - lsls r2, r4, 13 - ldr r7, _080F6E94 @ =0x0000d1e4 - adds r2, r7 - adds r2, r5, r2 - str r2, [sp] - str r6, [sp, 0x4] - movs r2, 0x1 - bl DecompressPicFromTable_2 - ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable - add r8, r0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 7 - adds r5, r4 - adds r1, r5, 0 - bl LZ77UnCompWram - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6E78: .4byte gUnknown_083DFEC4 -_080F6E7C: .4byte 0x0000876e -_080F6E80: .4byte 0x0000cee8 -_080F6E84: .4byte gTrainers -_080F6E88: .4byte gTrainerFrontPicTable -_080F6E8C: .4byte gTrainerFrontPicCoords -_080F6E90: .4byte 0x000131e4 -_080F6E94: .4byte 0x0000d1e4 -_080F6E98: .4byte gTrainerFrontPicPaletteTable - thumb_func_end sub_80F6E04 - - thumb_func_start sub_80F6E9C -sub_80F6E9C: @ 80F6E9C - push {lr} - ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6EB8 @ =0x0000d15a - adds r1, r0, r2 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080F6EBC - movs r0, 0 - b _080F6ED0 - .align 2, 0 -_080F6EB4: .4byte gUnknown_083DFEC4 -_080F6EB8: .4byte 0x0000d15a -_080F6EBC: - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bge _080F6ECC - movs r0, 0x1 - b _080F6ED0 -_080F6ECC: - movs r0, 0 - strh r0, [r1] -_080F6ED0: - pop {r1} - bx r1 - thumb_func_end sub_80F6E9C - - thumb_func_start sub_80F6ED4 -sub_80F6ED4: @ 80F6ED4 - push {lr} - ldr r0, _080F6F00 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6F04 @ =0x0000d15a - adds r1, r0, r2 - ldrh r3, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x48 - negs r2, r2 - cmp r0, r2 - beq _080F6F0A - adds r0, r3, 0 - subs r0, 0x8 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, r2 - ble _080F6F08 - movs r0, 0x1 - b _080F6F0C - .align 2, 0 -_080F6F00: .4byte gUnknown_083DFEC4 -_080F6F04: .4byte 0x0000d15a -_080F6F08: - strh r2, [r1] -_080F6F0A: - movs r0, 0 -_080F6F0C: - pop {r1} - bx r1 - thumb_func_end sub_80F6ED4 - - thumb_func_start sub_80F6F10 -sub_80F6F10: @ 80F6F10 - push {lr} - ldr r0, _080F6F48 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r2, _080F6F4C @ =0x0000d15e - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _080F6F50 @ =0x0000d15f - adds r0, r1 - strb r2, [r0] - ldr r1, _080F6F54 @ =REG_BLDCNT - movs r0, 0xC8 - strh r0, [r1] - ldr r0, _080F6F58 @ =REG_BLDY - strh r2, [r0] - subs r1, 0x8 - ldr r2, _080F6F5C @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F6F60 @ =0x00001f1f - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - bl sub_80F6FB8 - pop {r0} - bx r0 - .align 2, 0 -_080F6F48: .4byte gUnknown_083DFEC4 -_080F6F4C: .4byte 0x0000d15e -_080F6F50: .4byte 0x0000d15f -_080F6F54: .4byte REG_BLDCNT -_080F6F58: .4byte REG_BLDY -_080F6F5C: .4byte 0x00003f3f -_080F6F60: .4byte 0x00001f1f - thumb_func_end sub_80F6F10 - - thumb_func_start sub_80F6F64 -sub_80F6F64: @ 80F6F64 - push {lr} - ldr r0, _080F6F9C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F6FA0 @ =0x0000d15e - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _080F6FB0 - movs r0, 0 - strb r0, [r2] - ldr r0, _080F6FA4 @ =0x0000d15f - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080F6FAC - ldr r1, _080F6FA8 @ =REG_BLDY - movs r0, 0x6 - strh r0, [r1] - b _080F6FB0 - .align 2, 0 -_080F6F9C: .4byte gUnknown_083DFEC4 -_080F6FA0: .4byte 0x0000d15e -_080F6FA4: .4byte 0x0000d15f -_080F6FA8: .4byte REG_BLDY -_080F6FAC: - ldr r0, _080F6FB4 @ =REG_BLDY - strh r1, [r0] -_080F6FB0: - pop {r0} - bx r0 - .align 2, 0 -_080F6FB4: .4byte REG_BLDY - thumb_func_end sub_80F6F64 - - thumb_func_start sub_80F6FB8 -sub_80F6FB8: @ 80F6FB8 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _080F6FDC - ldr r1, _080F6FD0 @ =REG_WIN0H - ldr r2, _080F6FD4 @ =0x0000e8f0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FD8 @ =0x00000888 - b _080F6FE8 - .align 2, 0 -_080F6FD0: .4byte REG_WIN0H -_080F6FD4: .4byte 0x0000e8f0 -_080F6FD8: .4byte 0x00000888 -_080F6FDC: - ldr r1, _080F6FF0 @ =REG_WIN0H - ldr r2, _080F6FF4 @ =0x0000e8f0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - ldr r2, _080F6FF8 @ =0x00000818 -_080F6FE8: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F6FF0: .4byte REG_WIN0H -_080F6FF4: .4byte 0x0000e8f0 -_080F6FF8: .4byte 0x00000818 - thumb_func_end sub_80F6FB8 - - thumb_func_start sub_80F6FFC -sub_80F6FFC: @ 80F6FFC - ldr r0, _080F7008 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - bx lr - .align 2, 0 -_080F7008: .4byte REG_BLDCNT - thumb_func_end sub_80F6FFC - - thumb_func_start sub_80F700C -sub_80F700C: @ 80F700C - push {r4,r5,lr} - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080F7078 @ =gUnknown_083DFEC4 - ldr r4, [r2] - lsls r2, r1, 3 - adds r2, r4, r2 - ldr r3, _080F707C @ =0x0000cee8 - adds r2, r3 - ldrh r3, [r2] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 3 - ldr r3, _080F7080 @ =gTrainers - adds r5, r2, r3 - adds r3, r0, 0 - ldr r0, _080F7084 @ =0x0000d158 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcs _080F7060 - ldrb r1, [r5, 0x1] - movs r0, 0xD - muls r1, r0 - ldr r0, _080F7088 @ =gTrainerClassNames - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0x4B - strb r0, [r3, 0x2] - adds r3, 0x3 - adds r1, r5, 0x4 - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 -_080F7060: - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0x80 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F7078: .4byte gUnknown_083DFEC4 -_080F707C: .4byte 0x0000cee8 -_080F7080: .4byte gTrainers -_080F7084: .4byte 0x0000d158 -_080F7088: .4byte gTrainerClassNames - thumb_func_end sub_80F700C - - thumb_func_start sub_80F708C -sub_80F708C: @ 80F708C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080F70E4 @ =gUnknown_083DFEC4 - ldr r3, [r0] - ldr r0, _080F70E8 @ =0x0000876e - adds r2, r3, r0 - lsls r0, r4, 24 - asrs r0, 24 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bge _080F70B4 - ldr r5, _080F70EC @ =0x00008774 - adds r0, r3, r5 - ldrh r0, [r0] - strh r0, [r2] -_080F70B4: - ldr r1, _080F70EC @ =0x00008774 - adds r0, r3, r1 - movs r5, 0 - ldrsh r1, [r2, r5] - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - ble _080F70C8 - movs r0, 0 - strh r0, [r2] -_080F70C8: - ldr r1, _080F70F0 @ =0x0000bc94 - adds r0, r3, r1 - strb r4, [r0] - ldrh r1, [r2] - ldr r2, _080F70F4 @ =0x000087dc - adds r0, r3, r2 - strh r1, [r0] - ldr r5, _080F70F8 @ =0x000087de - adds r1, r3, r5 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F70E4: .4byte gUnknown_083DFEC4 -_080F70E8: .4byte 0x0000876e -_080F70EC: .4byte 0x00008774 -_080F70F0: .4byte 0x0000bc94 -_080F70F4: .4byte 0x000087dc -_080F70F8: .4byte 0x000087de - thumb_func_end sub_80F708C - - thumb_func_start sub_80F70FC -sub_80F70FC: @ 80F70FC - push {r4-r6,lr} - ldr r1, _080F711C @ =gUnknown_083DFEC4 - ldr r0, [r1] - ldr r2, _080F7120 @ =0x000087de - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _080F7110 - b _080F7218 -_080F7110: - lsls r0, 2 - ldr r1, _080F7124 @ =_080F7128 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F711C: .4byte gUnknown_083DFEC4 -_080F7120: .4byte 0x000087de -_080F7124: .4byte _080F7128 - .align 2, 0 -_080F7128: - .4byte _080F7144 - .4byte _080F714A - .4byte _080F7164 - .4byte _080F716C - .4byte _080F71A0 - .4byte _080F71BA - .4byte _080F71EA -_080F7144: - bl sub_80F6ED4 - b _080F71F8 -_080F714A: - movs r0, 0 - bl sub_80F6E04 - ldr r0, _080F715C @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r2, _080F7160 @ =0x000087de - adds r1, r2 - b _080F7206 - .align 2, 0 -_080F715C: .4byte gUnknown_083DFEC4 -_080F7160: .4byte 0x000087de -_080F7164: - movs r0, 0 - bl sub_80F2F7C - b _080F71FE -_080F716C: - ldr r4, [r4] - ldr r2, _080F7194 @ =0x00008788 - adds r5, r4, r2 - ldr r0, _080F7198 @ =0x0000876e - adds r6, r4, r0 - ldrh r1, [r6] - adds r0, r5, 0 - bl sub_80F700C - adds r0, r5, 0 - bl sub_80F43D4 - bl sub_80F105C - ldrb r0, [r6] - bl sub_80F0FFC - ldr r2, _080F719C @ =0x000087de - adds r4, r2 - b _080F71CC - .align 2, 0 -_080F7194: .4byte 0x00008788 -_080F7198: .4byte 0x0000876e -_080F719C: .4byte 0x000087de -_080F71A0: - bl sub_80F0CD8 - ldr r0, _080F71D4 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F71D8 @ =0x0000bc95 - adds r2, r1, r0 - movs r0, 0 - strb r0, [r2] - ldr r2, _080F71DC @ =0x000087de - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F71BA: - ldr r0, _080F71D4 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F71D8 @ =0x0000bc95 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0x1 - bhi _080F71E0 - bl sub_80F0D5C -_080F71CC: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080F721C - .align 2, 0 -_080F71D4: .4byte gUnknown_083DFEC4 -_080F71D8: .4byte 0x0000bc95 -_080F71DC: .4byte 0x000087de -_080F71E0: - ldr r2, _080F7210 @ =0x000087de - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F71EA: - bl sub_80F6E9C - lsls r0, 24 - cmp r0, 0 - bne _080F721C - bl sub_80F0D5C -_080F71F8: - lsls r0, 24 - cmp r0, 0 - bne _080F721C -_080F71FE: - ldr r0, _080F7214 @ =gUnknown_083DFEC4 - ldr r1, [r0] - ldr r0, _080F7210 @ =0x000087de - adds r1, r0 -_080F7206: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F721C - .align 2, 0 -_080F7210: .4byte 0x000087de -_080F7214: .4byte gUnknown_083DFEC4 -_080F7218: - movs r0, 0 - b _080F721E -_080F721C: - movs r0, 0x1 -_080F721E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F70FC - - thumb_func_start sub_80F7224 -sub_80F7224: @ 80F7224 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080F7260 @ =gPlayerParty - adds r0, r1 - movs r1, 0x30 - bl GetMonData - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080F7264 @ =gUnknown_083DFEC4 - ldr r0, [r0] - ldr r3, _080F7268 @ =0x00008fe9 - adds r1, r0, r3 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldr r3, _080F726C @ =0x00008931 - adds r0, r3 - adds r4, r0, r1 - cmp r2, 0xFF - beq _080F7270 - adds r0, r2, 0 - movs r1, 0x1D - bl __udivsi3 - b _080F7272 - .align 2, 0 -_080F7260: .4byte gPlayerParty -_080F7264: .4byte gUnknown_083DFEC4 -_080F7268: .4byte 0x00008fe9 -_080F726C: .4byte 0x00008931 -_080F7270: - movs r0, 0x9 -_080F7272: - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F7224 - - thumb_func_start sub_80F727C -sub_80F727C: @ 80F727C - ldr r1, _080F7288 @ =gUnknown_020388B8 - str r0, [r1] - movs r1, 0 - strb r1, [r0, 0xB] - bx lr - .align 2, 0 -_080F7288: .4byte gUnknown_020388B8 - thumb_func_end sub_80F727C - - thumb_func_start sub_80F728C -sub_80F728C: @ 80F728C - push {lr} - sub sp, 0x4 - ldr r0, _080F72C4 @ =gSaveBlock2 - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl GetTextWindowFrameGraphics - ldr r3, _080F72C8 @ =gUnknown_020388B8 - ldr r2, [r3] - ldr r1, [r0] - str r1, [r2, 0x28] - ldr r0, [r0, 0x4] - str r0, [r2, 0x2C] - ldr r0, _080F72CC @ =0x000010b0 - adds r2, r0 - movs r1, 0 - strb r1, [r2] - mov r0, sp - strh r1, [r0] - ldr r1, [r3] - adds r1, 0x30 - ldr r2, _080F72D0 @ =0x01000800 - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F72C4: .4byte gSaveBlock2 -_080F72C8: .4byte gUnknown_020388B8 -_080F72CC: .4byte 0x000010b0 -_080F72D0: .4byte 0x01000800 - thumb_func_end sub_80F728C - - thumb_func_start sub_80F72D4 -sub_80F72D4: @ 80F72D4 - push {r4-r7,lr} - ldr r0, _080F72F4 @ =gUnknown_020388B8 - ldr r1, [r0] - ldr r2, _080F72F8 @ =0x000010b0 - adds r0, r1, r2 - ldrb r2, [r0] - lsls r0, r2, 8 - adds r0, 0x30 - adds r5, r1, r0 - cmp r2, 0xD - beq _080F73A4 - cmp r2, 0xD - bgt _080F72FC - cmp r2, 0 - beq _080F7302 - b _080F734C - .align 2, 0 -_080F72F4: .4byte gUnknown_020388B8 -_080F72F8: .4byte 0x000010b0 -_080F72FC: - cmp r2, 0xE - beq _080F73F0 - b _080F734C -_080F7302: - ldr r0, [r1, 0x28] - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F7312: - ldr r6, _080F7344 @ =gUnknown_020388B8 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x20 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F7312 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x40 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r0, _080F7348 @ =0x000010b0 - adds r1, r0 - b _080F7392 - .align 2, 0 -_080F7344: .4byte gUnknown_020388B8 -_080F7348: .4byte 0x000010b0 -_080F734C: - ldr r0, _080F739C @ =gUnknown_020388B8 - ldr r0, [r0] - ldr r0, [r0, 0x28] - adds r0, 0x60 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F7362: - ldr r6, _080F739C @ =gUnknown_020388B8 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0x80 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F7362 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0xA0 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _080F73A0 @ =0x000010b0 - adds r1, r2 -_080F7392: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F73FC - .align 2, 0 -_080F739C: .4byte gUnknown_020388B8 -_080F73A0: .4byte 0x000010b0 -_080F73A4: - ldr r0, [r1, 0x28] - adds r0, 0xC0 - adds r1, r5, 0 - movs r2, 0x8 - bl CpuFastSet - movs r4, 0 - adds r7, r5, 0 - adds r7, 0xE0 -_080F73B6: - ldr r6, _080F73F4 @ =gUnknown_020388B8 - ldr r0, [r6] - ldr r0, [r0, 0x28] - adds r0, 0xE0 - adds r4, 0x1 - lsls r1, r4, 5 - adds r1, r5, r1 - movs r2, 0x8 - bl CpuFastSet - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x5 - bls _080F73B6 - ldr r0, [r6] - ldr r0, [r0, 0x28] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - adds r1, r7, 0 - movs r2, 0x8 - bl CpuFastSet - ldr r1, [r6] - ldr r2, _080F73F8 @ =0x000010b0 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F73F0: - movs r0, 0 - b _080F73FE - .align 2, 0 -_080F73F4: .4byte gUnknown_020388B8 -_080F73F8: .4byte 0x000010b0 -_080F73FC: - movs r0, 0x1 -_080F73FE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F72D4 - - thumb_func_start sub_80F7404 -sub_80F7404: @ 80F7404 - push {lr} - bl sub_80F728C -_080F740A: - bl sub_80F72D4 - lsls r0, 24 - cmp r0, 0 - bne _080F740A - pop {r0} - bx r0 - thumb_func_end sub_80F7404 - - thumb_func_start sub_80F7418 -sub_80F7418: @ 80F7418 - push {r4-r6,lr} - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r2, _080F746C @ =gUnknown_020388B8 - ldr r3, [r2] - movs r1, 0 - strb r1, [r3, 0x5] - ldr r1, [r2] - strb r0, [r1, 0x4] - movs r3, 0 - adds r4, r2, 0 - movs r2, 0x1 -_080F7434: - ldr r0, [r4] - adds r1, r0, 0x6 - adds r1, r3 - ldrb r0, [r0, 0x4] - asrs r0, r3 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F7434 - bl sub_814A7FC - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - ldr r2, _080F746C @ =gUnknown_020388B8 - ldr r3, [r2] - ldrh r2, [r3] - ldrh r3, [r3, 0x2] - bl sub_80F761C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F746C: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7418 - - thumb_func_start sub_80F7470 -sub_80F7470: @ 80F7470 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080F74FC @ =gUnknown_020388B8 -_080F7476: - ldr r0, [r5] - ldrh r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080F7476 - ldr r4, _080F74FC @ =gUnknown_020388B8 - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - movs r4, 0 -_080F74A8: - ldr r0, _080F74FC @ =gUnknown_020388B8 - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080F74A8 - movs r4, 0 -_080F74C8: - ldr r5, _080F74FC @ =gUnknown_020388B8 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x14 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080F74C8 - bl sub_814A7FC - ldr r0, [r5] - ldr r0, [r0, 0x24] - cmp r0, 0 - beq _080F74F6 - bl DestroySprite -_080F74F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F74FC: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7470 - - thumb_func_start sub_80F7500 -sub_80F7500: @ 80F7500 - push {r4,r5,lr} - sub sp, 0x30 - ldr r4, _080F7580 @ =gUnknown_020388B8 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x30 - str r0, [sp, 0x18] - add r1, sp, 0x1C - movs r5, 0 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1] - ldrh r1, [r2] - mov r0, sp - adds r0, 0x1E - strh r1, [r0] - add r1, sp, 0x20 - ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx - str r0, [sp, 0x20] - movs r0, 0xA4 - lsls r0, 3 - strh r0, [r1, 0x4] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r1, 0x6] - add r0, sp, 0x28 - movs r1, 0 - movs r2, 0x8 - bl memset - add r1, sp, 0x18 - mov r0, sp - movs r2, 0x18 - bl memcpy - ldr r0, [r4] - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _080F7558 - mov r0, sp - bl LoadTilesForSpriteSheets - ldr r0, [r4] - strb r5, [r0, 0xB] -_080F7558: - ldr r0, _080F7588 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080F758C - movs r0, 0x5 - bl PlaySE - ldr r1, [r4] - ldrb r0, [r1, 0x5] - subs r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - cmp r0, 0 - bge _080F75FE - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1, 0x5] - b _080F75FE - .align 2, 0 -_080F7580: .4byte gUnknown_020388B8 -_080F7584: .4byte gPokenavConditionMenuMisc_Gfx -_080F7588: .4byte gMain -_080F758C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080F75B0 - movs r0, 0x5 - bl PlaySE - ldr r1, [r4] - ldrb r0, [r1, 0x5] - adds r0, 0x1 - strb r0, [r1, 0x5] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - ble _080F75FE - ldr r0, [r4] - strb r5, [r0, 0x5] - b _080F75FE -_080F75B0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F7602 - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - movs r1, 0x5 - ldrsb r1, [r0, r1] - cmp r1, 0x4 - beq _080F75DC - cmp r1, 0x5 - beq _080F7610 - adds r0, 0x6 - adds r1, r0, r1 - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _080F75FC - movs r2, 0x1 - b _080F75FC -_080F75DC: - strb r5, [r0, 0x4] - movs r3, 0 -_080F75E0: - ldr r2, [r4] - adds r0, r2, 0x6 - adds r0, r3 - ldrb r0, [r0] - lsls r0, r3 - ldrb r1, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080F75E0 - b _080F7610 -_080F75FC: - strb r2, [r1] -_080F75FE: - movs r0, 0x1 - b _080F7612 -_080F7602: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080F75FE - movs r0, 0x5 - bl PlaySE -_080F7610: - movs r0, 0 -_080F7612: - add sp, 0x30 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F7500 - - thumb_func_start sub_80F761C -sub_80F761C: @ 80F761C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x5C - adds r5, r2, 0 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4C] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x50] - lsls r5, 16 - lsrs r5, 16 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x54] - ldr r0, _080F7820 @ =gUnknown_020388B8 - mov r8, r0 - ldr r0, [r0] - adds r0, 0x30 - str r0, [sp, 0x1C] - add r1, sp, 0x20 - movs r2, 0 - mov r9, r2 - movs r0, 0x80 - lsls r0, 5 - strh r0, [r1] - mov r0, sp - adds r0, 0x22 - strh r5, [r0] - add r1, sp, 0x24 - ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx - str r0, [sp, 0x24] - movs r0, 0xA4 - lsls r0, 3 - strh r0, [r1, 0x4] - adds r0, r5, 0x1 - strh r0, [r1, 0x6] - add r0, sp, 0x2C - movs r1, 0 - movs r2, 0x8 - bl memset - add r6, sp, 0x1C - add r0, sp, 0x4 - adds r1, r6, 0 - movs r2, 0x18 - bl memcpy - mov r3, r8 - ldr r0, [r3] - ldr r0, [r0, 0x2C] - str r0, [sp, 0x34] - add r0, sp, 0x38 - add r1, sp, 0x54 - ldrh r1, [r1] - strh r1, [r0] - add r1, sp, 0x3C - ldr r0, _080F7828 @ =gUnknown_08E966B8 - str r0, [sp, 0x3C] - ldr r0, [sp, 0x54] - adds r0, 0x1 - strh r0, [r1, 0x4] - add r0, sp, 0x44 - movs r1, 0 - movs r2, 0x8 - bl memset - add r4, sp, 0x34 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x18 - bl memcpy - strh r5, [r4] - add r2, sp, 0x54 - ldrh r2, [r2] - strh r2, [r4, 0x2] - ldr r0, _080F782C @ =gUnknown_083E5214 - str r0, [r4, 0x4] - ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC - str r0, [r4, 0x8] - mov r3, r9 - str r3, [r4, 0xC] - ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable - str r0, [r4, 0x10] - ldr r0, _080F7838 @ =nullsub_65 - str r0, [r4, 0x14] - mov r0, r8 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0xB] - add r0, sp, 0x4 - bl AllocTilesForSpriteSheets - adds r0, r6, 0 - bl LoadSpritePalettes - movs r5, 0 - ldr r1, [sp, 0x4C] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 14 - adds r2, r0 - mov r8, r2 - str r0, [sp, 0x58] - ldr r3, [sp, 0x50] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r7, r0, r1 - mov r9, r0 -_080F7700: - adds r0, r4, 0 - mov r2, r8 - asrs r1, r2, 16 - asrs r2, r7, 16 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _080F7718 - b _080F7850 -_080F7718: - ldr r6, _080F7820 @ =gUnknown_020388B8 - ldr r2, [r6] - lsls r0, r5, 2 - adds r2, 0xC - adds r2, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r1, _080F783C @ =gSprites - adds r0, r1 - str r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080F7700 - ldr r0, [r6] - ldr r1, [r0, 0x10] - mov r3, r9 - asrs r0, r3, 16 - adds r0, 0x60 - strh r0, [r1, 0x22] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274 - str r0, [r4, 0x8] - ldr r0, _080F7844 @ =sub_80F78CC - str r0, [r4, 0x14] - ldr r0, _080F7848 @ =gUnknown_083E521C - str r0, [r4, 0x4] - movs r5, 0 - ldr r0, [sp, 0x58] - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - mov r10, r0 -_080F7770: - lsls r2, r5, 4 - adds r2, 0x10 - mov r3, r9 - asrs r3, 16 - mov r8, r3 - add r2, r8 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - mov r3, r10 - asrs r1, r3, 16 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F7860 - ldr r6, _080F7820 @ =gUnknown_020388B8 - ldr r1, [r6] - lsls r0, r5, 2 - adds r1, 0x14 - adds r1, r0 - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - ldr r7, _080F783C @ =gSprites - adds r0, r7 - str r0, [r1] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080F7770 - ldr r0, _080F784C @ =SpriteCallbackDummy - str r0, [r4, 0x14] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080F7874 - ldr r1, [r6] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r0, r7 - str r0, [r1, 0x24] - ldrb r2, [r0, 0x1] - movs r1, 0x3F - ands r1, r2 - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, [r6] - ldr r2, [r0, 0x24] - ldrb r0, [r2, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r2, 0x3] - ldr r0, [r6] - ldr r0, [r0, 0x24] - movs r1, 0x9 - bl StartSpriteAnim - ldr r1, [r6] - ldr r2, [r1, 0x24] - ldr r3, [sp, 0x58] - asrs r0, r3, 16 - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x24] - mov r0, r8 - adds r0, 0x50 - strh r0, [r2, 0x22] - ldr r0, [r1, 0x24] - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0 - bl CalcCenterToCornerVec - b _080F787A - .align 2, 0 -_080F7820: .4byte gUnknown_020388B8 -_080F7824: .4byte gPokenavConditionMenuMisc_Gfx -_080F7828: .4byte gUnknown_08E966B8 -_080F782C: .4byte gUnknown_083E5214 -_080F7830: .4byte gSpriteAnimTable_83E52AC -_080F7834: .4byte gDummySpriteAffineAnimTable -_080F7838: .4byte nullsub_65 -_080F783C: .4byte gSprites -_080F7840: .4byte gSpriteAnimTable_83E5274 -_080F7844: .4byte sub_80F78CC -_080F7848: .4byte gUnknown_083E521C -_080F784C: .4byte SpriteCallbackDummy -_080F7850: - ldr r0, _080F785C @ =gUnknown_020388B8 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0xC - b _080F7868 - .align 2, 0 -_080F785C: .4byte gUnknown_020388B8 -_080F7860: - ldr r0, _080F7870 @ =gUnknown_020388B8 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x14 -_080F7868: - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _080F78B0 - .align 2, 0 -_080F7870: .4byte gUnknown_020388B8 -_080F7874: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x24] -_080F787A: - ldr r4, _080F78C0 @ =gUnknown_020388B8 - ldr r1, [r4] - ldr r0, [sp, 0x50] - adds r0, 0x8 - strb r0, [r1, 0xA] - ldr r1, [sp, 0x54] - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x30 - str r0, [sp] - movs r0, 0 - movs r2, 0xF - movs r3, 0 - bl sub_814A5C0 - ldr r0, [sp, 0x4C] - adds r0, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - ldrb r1, [r1, 0xA] - bl sub_814A880 - ldr r0, _080F78C4 @ =sub_80F7908 - bl sub_814AABC -_080F78B0: - add sp, 0x5C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F78C0: .4byte gUnknown_020388B8 -_080F78C4: .4byte sub_80F7908 - thumb_func_end sub_80F761C - - thumb_func_start nullsub_65 -nullsub_65: @ 80F78C8 - bx lr - thumb_func_end nullsub_65 - - thumb_func_start sub_80F78CC -sub_80F78CC: @ 80F78CC - push {lr} - adds r2, r0, 0 - ldr r0, _080F78F4 @ =gUnknown_020388B8 - ldr r0, [r0] - movs r3, 0x2E - ldrsh r1, [r2, r3] - adds r0, 0x6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080F78F8 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim - b _080F7902 - .align 2, 0 -_080F78F4: .4byte gUnknown_020388B8 -_080F78F8: - lsls r1, 25 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim -_080F7902: - pop {r0} - bx r0 - thumb_func_end sub_80F78CC - - thumb_func_start sub_80F7908 -sub_80F7908: @ 80F7908 - ldr r1, _080F791C @ =gUnknown_020388B8 - ldr r2, [r1] - movs r1, 0x5 - ldrsb r1, [r2, r1] - lsls r1, 4 - ldrb r2, [r2, 0xA] - adds r1, r2 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080F791C: .4byte gUnknown_020388B8 - thumb_func_end sub_80F7908 - - thumb_func_start sub_80F7920 -sub_80F7920: @ 80F7920 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _080F7930 - ldr r2, _080F793C @ =gUnknown_083E49F4 -_080F7930: - movs r3, 0x10 - bl sub_80F7960 - pop {r1} - bx r1 - .align 2, 0 -_080F793C: .4byte gUnknown_083E49F4 - thumb_func_end sub_80F7920 - - thumb_func_start sub_80F7940 -sub_80F7940: @ 80F7940 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - bne _080F7950 - ldr r2, _080F795C @ =gUnknown_083E49F4 -_080F7950: - movs r3, 0x1 - bl sub_80F7960 - pop {r1} - bx r1 - .align 2, 0 -_080F795C: .4byte gUnknown_083E49F4 - thumb_func_end sub_80F7940 - - thumb_func_start sub_80F7960 -sub_80F7960: @ 80F7960 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _080F79DC @ =gUnknown_083E4A14 - str r4, [sp, 0x18] - movs r4, 0x80 - add r5, sp, 0x18 - lsrs r6, r0, 16 - orrs r0, r4 - str r0, [r5, 0x4] - str r2, [sp, 0x20] - ldr r0, _080F79E0 @ =0xffff0000 - mov r8, r0 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - mov r2, r8 - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r2, 0 - strh r6, [r0] - strh r1, [r0, 0x2] - ldr r0, _080F79E4 @ =gUnknown_083E52B4 - str r0, [sp, 0x4] - ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, _080F79F0 @ =nullsub_65 - str r0, [sp, 0x14] - lsls r3, 23 - lsrs r3, 16 - ldr r0, [r5, 0x4] - mov r1, r8 - ands r0, r1 - orrs r0, r3 - str r0, [r5, 0x4] - adds r0, r5, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080F79F4 - movs r0, 0 - b _080F79FE - .align 2, 0 -_080F79DC: .4byte gUnknown_083E4A14 -_080F79E0: .4byte 0xffff0000 -_080F79E4: .4byte gUnknown_083E52B4 -_080F79E8: .4byte gSpriteAnimTable_83E533C -_080F79EC: .4byte gDummySpriteAffineAnimTable -_080F79F0: .4byte nullsub_65 -_080F79F4: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F7A0C @ =gSprites - adds r0, r1 -_080F79FE: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080F7A0C: .4byte gSprites - thumb_func_end sub_80F7960 - - thumb_func_start sub_80F7A10 -sub_80F7A10: @ 80F7A10 - lsls r0, 24 - lsrs r0, 17 - ldr r2, _080F7A28 @ =gUnknown_083E4A14 - adds r0, r2 - ldr r2, _080F7A2C @ =0x040000d4 - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080F7A30 @ =0x80000040 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - bx lr - .align 2, 0 -_080F7A28: .4byte gUnknown_083E4A14 -_080F7A2C: .4byte 0x040000d4 -_080F7A30: .4byte 0x80000040 - thumb_func_end sub_80F7A10 - - thumb_func_start sub_80F7A34 -sub_80F7A34: @ 80F7A34 - push {r4,lr} - ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94 - movs r1, 0 - strb r1, [r0] - adds r2, r0, 0 - adds r2, 0x29 - strb r1, [r2] - movs r2, 0 - adds r4, r0, 0x2 - ldr r3, _080F7A68 @ =gUnknown_083E537C -_080F7A48: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7A48 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7A64: .4byte gSaveBlock1 + 0x2D94 -_080F7A68: .4byte gUnknown_083E537C - thumb_func_end sub_80F7A34 - - thumb_func_start sub_80F7A6C -sub_80F7A6C: @ 80F7A6C - ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A78: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A6C - - thumb_func_start sub_80F7A7C -sub_80F7A7C: @ 80F7A7C - push {lr} - bl sub_80F83F8 - pop {r0} - bx r0 - thumb_func_end sub_80F7A7C - - thumb_func_start sub_80F7A88 -sub_80F7A88: @ 80F7A88 - ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x4 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A94: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A88 - - thumb_func_start sub_80F7A98 -sub_80F7A98: @ 80F7A98 - push {lr} - bl sub_81099CC - pop {r0} - bx r0 - thumb_func_end sub_80F7A98 - - thumb_func_start sub_80F7AA4 -sub_80F7AA4: @ 80F7AA4 - push {lr} - ldr r0, _080F7AC8 @ =gSaveBlock2 - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - cmp r0, 0x4 - bhi _080F7B00 - lsls r0, 2 - ldr r1, _080F7ACC @ =_080F7AD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7AC8: .4byte gSaveBlock2 -_080F7ACC: .4byte _080F7AD0 - .align 2, 0 -_080F7AD0: - .4byte _080F7AE4 - .4byte _080F7AEA - .4byte _080F7AF0 - .4byte _080F7AF6 - .4byte _080F7AFC -_080F7AE4: - bl sub_80F7A34 - b _080F7B00 -_080F7AEA: - bl sub_80F7A6C - b _080F7B00 -_080F7AF0: - bl sub_80F7A98 - b _080F7B00 -_080F7AF6: - bl sub_80F7A7C - b _080F7B00 -_080F7AFC: - bl sub_80F7A88 -_080F7B00: - bl sub_80F83D0 - pop {r0} - bx r0 - thumb_func_end sub_80F7AA4 - - thumb_func_start GetCurrentMauvilleOldMan -GetCurrentMauvilleOldMan: @ 80F7B08 - ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080F7B10: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end GetCurrentMauvilleOldMan - - thumb_func_start sub_80F7B14 -sub_80F7B14: @ 80F7B14 - push {r4,lr} - ldr r4, _080F7B28 @ =gScriptResult - bl GetCurrentMauvilleOldMan - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7B28: .4byte gScriptResult - thumb_func_end sub_80F7B14 - - thumb_func_start sub_80F7B2C -sub_80F7B2C: @ 80F7B2C - ldr r0, _080F7B38 @ =gScriptResult - ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94 - adds r1, 0x29 - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7B38: .4byte gScriptResult -_080F7B3C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7B2C - - thumb_func_start sub_80F7B40 -sub_80F7B40: @ 80F7B40 - push {r4,r5,lr} - ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94 - adds r0, r5, 0 - adds r0, 0x1A - ldr r4, _080F7B9C @ =gSaveBlock2 - adds r1, r4, 0 - bl StringCopy - movs r2, 0 - adds r3, r5, 0 - adds r3, 0x25 - adds r4, 0xA -_080F7B58: - adds r1, r3, r2 - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F7B58 - movs r2, 0 - movs r0, 0x29 - adds r0, r5 - mov r12, r0 - adds r4, r5, 0x2 - adds r3, r5, 0 - adds r3, 0xE -_080F7B78: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7B78 - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F7B98: .4byte gSaveBlock1 + 0x2D94 -_080F7B9C: .4byte gSaveBlock2 - thumb_func_end sub_80F7B40 - - thumb_func_start sub_80F7BA0 -sub_80F7BA0: @ 80F7BA0 - push {r4-r7,lr} - ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94 - ldr r0, _080F7C4C @ =gUnknown_0202E8CC - ldrh r0, [r0] - adds r5, r1, 0 - adds r5, 0xE - cmp r0, 0 - bne _080F7BB2 - adds r5, r1, 0x2 -_080F7BB2: - ldr r2, _080F7C50 @ =gStringVar4 - adds r4, r2, 0 - movs r6, 0 -_080F7BB8: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - adds r7, r6, 0x1 - cmp r2, r4 - beq _080F7BDA - movs r1, 0x37 -_080F7BCC: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BD4 - strb r1, [r4] -_080F7BD4: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BCC -_080F7BDA: - adds r4, 0x1 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C02 - movs r1, 0x37 -_080F7BF4: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BFC - strb r1, [r4] -_080F7BFC: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BF4 -_080F7C02: - adds r4, 0x1 - movs r0, 0xFE - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C2A - movs r1, 0x37 -_080F7C1C: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7C24 - strb r1, [r4] -_080F7C24: - adds r4, 0x1 - cmp r2, r4 - bne _080F7C1C -_080F7C2A: - cmp r6, 0 - bne _080F7C3A - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0xF - strb r0, [r2] - adds r2, 0x1 -_080F7C3A: - lsls r0, r7, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _080F7BB8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7C48: .4byte gSaveBlock1 + 0x2D94 -_080F7C4C: .4byte gUnknown_0202E8CC -_080F7C50: .4byte gStringVar4 - thumb_func_end sub_80F7BA0 - - thumb_func_start sub_80F7C54 -sub_80F7C54: @ 80F7C54 - push {lr} - ldr r0, _080F7C6C @ =gUnknown_0202E8CC - ldrb r0, [r0] - bl sub_80F7F80 - bl MenuDisplayMessageBox - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080F7C6C: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F7C54 - - thumb_func_start sub_80F7C70 -sub_80F7C70: @ 80F7C70 - ldr r0, _080F7C7C @ =gScriptResult - ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94 - ldrb r1, [r1, 0x1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7C7C: .4byte gScriptResult -_080F7C80: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C70 - - thumb_func_start sub_80F7C84 -sub_80F7C84: @ 80F7C84 - ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94 - movs r0, 0x1 - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080F7C8C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C84 - - thumb_func_start sub_80F7C90 -sub_80F7C90: @ 80F7C90 - push {lr} - bl sub_80EB8EC - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080F7CA8 @ =0x0000ffff - cmp r1, r0 - bne _080F7CB0 - ldr r1, _080F7CAC @ =gScriptResult - movs r0, 0 - b _080F7CBA - .align 2, 0 -_080F7CA8: .4byte 0x0000ffff -_080F7CAC: .4byte gScriptResult -_080F7CB0: - ldr r0, _080F7CC0 @ =gStringVar1 - bl sub_80EB3FC - ldr r1, _080F7CC4 @ =gScriptResult - movs r0, 0x1 -_080F7CBA: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F7CC0: .4byte gStringVar1 -_080F7CC4: .4byte gScriptResult - thumb_func_end sub_80F7C90 - - thumb_func_start sub_80F7CC8 -sub_80F7CC8: @ 80F7CC8 - push {lr} - ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r2, 0x1] - cmp r0, 0xA - bne _080F7CE4 - ldr r1, _080F7CE0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - strb r0, [r2, 0x1] - b _080F7CEA - .align 2, 0 -_080F7CDC: .4byte gSaveBlock1 + 0x2D94 -_080F7CE0: .4byte gScriptResult -_080F7CE4: - ldr r1, _080F7CF0 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080F7CEA: - pop {r0} - bx r0 - .align 2, 0 -_080F7CF0: .4byte gScriptResult - thumb_func_end sub_80F7CC8 - - thumb_func_start sub_80F7CF4 -sub_80F7CF4: @ 80F7CF4 - push {r4-r6,lr} - ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r5, 0x1] - cmp r0, 0 - bne _080F7D02 - bl sub_80F7DC0 -_080F7D02: - ldrb r0, [r5, 0x1] - lsls r0, 1 - adds r6, r5, 0x4 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _080F7D54 @ =0x0000ffff - cmp r1, r0 - beq _080F7D68 - bl Random - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - ands r4, r0 - ldr r0, _080F7D58 @ =gStringVar4 - ldrb r1, [r5, 0x1] - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - bl sub_80EB3FC - adds r2, r0, 0 - ldr r1, _080F7D5C @ =gOtherText_Is - bl StringCopy - adds r2, r0, 0 - ldr r0, _080F7D60 @ =gUnknown_083E5388 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _080F7D64 @ =gOtherText_DontYouAgree - bl StringCopy - b _080F7D88 - .align 2, 0 -_080F7D50: .4byte gSaveBlock1 + 0x2D94 -_080F7D54: .4byte 0x0000ffff -_080F7D58: .4byte gStringVar4 -_080F7D5C: .4byte gOtherText_Is -_080F7D60: .4byte gUnknown_083E5388 -_080F7D64: .4byte gOtherText_DontYouAgree -_080F7D68: - ldr r0, _080F7DA0 @ =gStringVar4 - ldr r3, _080F7DA4 @ =gUnknown_083E53A8 - ldrb r1, [r5, 0x2] - adds r2, r1, 0x1 - strb r2, [r5, 0x2] - lsls r1, 24 - lsrs r1, 24 - adds r2, r5, 0 - adds r2, 0x18 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl StringCopy -_080F7D88: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080F7DA8 - movs r0, 0xA - b _080F7DAC - .align 2, 0 -_080F7DA0: .4byte gStringVar4 -_080F7DA4: .4byte gUnknown_083E53A8 -_080F7DA8: - ldrb r0, [r5, 0x1] - adds r0, 0x1 -_080F7DAC: - strb r0, [r5, 0x1] - ldr r1, _080F7DBC @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7DBC: .4byte gScriptResult - thumb_func_end sub_80F7CF4 - - thumb_func_start sub_80F7DC0 -sub_80F7DC0: @ 80F7DC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r1, _080F7E84 @ =gUnknown_083E53C8 - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r5, 0 - movs r0, 0x2 - add r0, sp - mov r8, r0 - ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94 - adds r1, 0x18 - adds r3, r1, 0 -_080F7DE4: - adds r0, r3, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _080F7DE4 - movs r5, 0 - ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 - adds r2, 0x4 - mov r9, r2 - adds r6, r1, 0 -_080F7DFC: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r4, r5, 0x1 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r6, r5 - ldrb r7, [r2] - adds r1, r6, r1 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0x7 - bls _080F7DFC - movs r3, 0 - mov r10, r3 - movs r5, 0 -_080F7E2A: - lsls r4, r5, 2 - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl sub_80EAE88 - add r4, r8 - strh r0, [r4] - add r0, r10 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _080F7E2A - movs r0, 0 - ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 - strb r0, [r2, 0x2] - movs r7, 0 - movs r5, 0 -_080F7E56: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x2 - bhi _080F7E90 - cmp r7, 0x7 - bhi _080F7E90 - lsls r0, r5, 1 - add r0, r9 - ldr r1, _080F7E8C @ =0x0000ffff - strh r1, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - adds r4, r5, 0x1 - b _080F7EE2 - .align 2, 0 -_080F7E84: .4byte gUnknown_083E53C8 -_080F7E88: .4byte gSaveBlock1 + 0x2D94 -_080F7E8C: .4byte 0x0000ffff -_080F7E90: - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r10 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - adds r4, r5, 0x1 - lsls r6, r5, 1 - cmp r5, 0x5 - bhi _080F7ECC - mov r3, r8 - ldrh r0, [r3] - b _080F7EC2 -_080F7EB2: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r5, 0x5 - bhi _080F7ECC - lsls r0, r1, 2 - adds r0, r3, r0 - ldrh r0, [r0] -_080F7EC2: - subs r0, r2, r0 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - bgt _080F7EB2 -_080F7ECC: - cmp r1, 0x6 - bne _080F7ED2 - movs r1, 0 -_080F7ED2: - lsls r0, r1, 2 - add r0, sp - ldrh r0, [r0] - bl sub_80EB784 - mov r2, r9 - adds r1, r2, r6 - strh r0, [r1] -_080F7EE2: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x9 - bls _080F7E56 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F7DC0 - - thumb_func_start sub_80F7EFC -sub_80F7EFC: @ 80F7EFC - ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94 - adds r0, 0x29 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_080F7F08: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7EFC - - thumb_func_start sub_80F7F0C -sub_80F7F0C: @ 80F7F0C - ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94 - movs r0, 0 - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080F7F14: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7F0C - - thumb_func_start sub_80F7F18 -sub_80F7F18: @ 80F7F18 - push {lr} - bl sub_8109A20 - pop {r0} - bx r0 - thumb_func_end sub_80F7F18 - - thumb_func_start sub_80F7F24 -sub_80F7F24: @ 80F7F24 - push {lr} - bl sub_80F8428 - pop {r0} - bx r0 - thumb_func_end sub_80F7F24 - - thumb_func_start sub_80F7F30 -sub_80F7F30: @ 80F7F30 - push {lr} - bl GetCurrentMauvilleOldMan - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F7F76 - lsls r0, 2 - ldr r1, _080F7F48 @ =_080F7F4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7F48: .4byte _080F7F4C - .align 2, 0 -_080F7F4C: - .4byte _080F7F60 - .4byte _080F7F66 - .4byte _080F7F72 - .4byte _080F7F6C - .4byte _080F7F76 -_080F7F60: - bl sub_80F7EFC - b _080F7F76 -_080F7F66: - bl sub_80F7F0C - b _080F7F76 -_080F7F6C: - bl sub_80F7F24 - b _080F7F76 -_080F7F72: - bl sub_80F7F18 -_080F7F76: - bl sub_80F83D0 - pop {r0} - bx r0 - thumb_func_end sub_80F7F30 - - thumb_func_start sub_80F7F80 -sub_80F7F80: @ 80F7F80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080F7FA8 @ =sub_80F8184 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F7FAC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x12] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7FA8: .4byte sub_80F8184 -_080F7FAC: .4byte gTasks - thumb_func_end sub_80F7F80 - - thumb_func_start sub_80F7FB0 -sub_80F7FB0: @ 80F7FB0 - push {r4-r7,lr} - adds r6, r1, 0 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x5 - bls _080F7FBE - b _080F817A -_080F7FBE: - lsls r0, 2 - ldr r1, _080F7FC8 @ =_080F7FCC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7FC8: .4byte _080F7FCC - .align 2, 0 -_080F7FCC: - .4byte _080F7FE4 - .4byte _080F817A - .4byte _080F8040 - .4byte _080F8074 - .4byte _080F8074 - .4byte _080F817A -_080F7FE4: - ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94 - ldr r0, _080F8038 @ =gUnknown_0202E8CC - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0xE - cmp r0, 0 - bne _080F7FF4 - adds r1, r2, 0x2 -_080F7FF4: - adds r2, r1, 0 - adds r1, r6, 0 - adds r1, 0xC - movs r3, 0x5 -_080F7FFC: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080F7FFC - ldr r2, _080F803C @ =0x0000ffff - adds r4, r2, 0 - movs r2, 0 - adds r1, r6, 0 - adds r1, 0x18 - movs r3, 0x5 -_080F8016: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - strh r2, [r1, 0x2] - strh r2, [r1, 0x4] - strh r2, [r1, 0x6] - adds r1, 0x8 - subs r3, 0x1 - cmp r3, 0 - bge _080F8016 - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - strh r0, [r6, 0x4] - b _080F817A - .align 2, 0 -_080F8034: .4byte gSaveBlock1 + 0x2D94 -_080F8038: .4byte gUnknown_0202E8CC -_080F803C: .4byte 0x0000ffff -_080F8040: - ldrb r1, [r6] - lsls r1, 1 - adds r0, r6, 0 - adds r0, 0xC - adds r0, r1 - ldrh r4, [r0] - lsrs r0, r4, 9 - ldr r1, _080F8070 @ =0x000001ff - ands r1, r4 - bl sub_814A2D0 - adds r1, r0, 0 - movs r0, 0 - strh r0, [r6, 0x4] - movs r2, 0x3 - ands r2, r4 - lsrs r4, 3 - movs r0, 0x1 - ands r4, r0 - adds r2, r4 - adds r0, r6, 0 - bl sub_814A2EC - b _080F817A - .align 2, 0 -_080F8070: .4byte 0x000001ff -_080F8074: - ldrb r1, [r6, 0x1] - lsls r0, r1, 3 - adds r0, 0x18 - adds r7, r6, r0 - ldrb r0, [r6, 0x3] - cmp r0, 0x1 - beq _080F8124 - cmp r0, 0x1 - bgt _080F808C - cmp r0, 0 - beq _080F8092 - b _080F817A -_080F808C: - cmp r0, 0xFE - beq _080F8170 - b _080F817A -_080F8092: - ldrb r0, [r6, 0x2] - cmp r0, 0 - bne _080F80D0 - cmp r1, 0x6 - beq _080F80A2 - ldrh r0, [r7] - cmp r0, 0xFF - bne _080F80A6 -_080F80A2: - movs r0, 0xFE - b _080F8178 -_080F80A6: - ldrh r0, [r7, 0x2] - strb r0, [r6, 0x2] - ldrh r0, [r7] - cmp r0, 0x32 - bhi _080F80CA - movs r1, 0x3 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0xF9 - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStart -_080F80CA: - movs r0, 0x1 - strb r0, [r6, 0x3] - b _080F8114 -_080F80D0: - ldrh r1, [r6, 0xA] - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r0, 0xA - ble _080F80E0 - ldrh r0, [r6, 0x6] - subs r0, 0x2 - strh r0, [r6, 0x6] -_080F80E0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F80EE - ldrh r0, [r6, 0x8] - adds r0, 0x40 - b _080F80F2 -_080F80EE: - ldrh r0, [r6, 0x8] - subs r0, 0x40 -_080F80F2: - strh r0, [r6, 0x8] - ldr r4, _080F811C @ =gMPlay_SE2 - ldr r5, _080F8120 @ =0x0000ffff - ldrh r2, [r6, 0x6] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayVolumeControl - movs r0, 0x8 - ldrsh r2, [r6, r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayPitchControl - ldrh r0, [r6, 0xA] - adds r0, 0x1 - strh r0, [r6, 0xA] -_080F8114: - ldrb r0, [r6, 0x2] - subs r0, 0x1 - strb r0, [r6, 0x2] - b _080F817A - .align 2, 0 -_080F811C: .4byte gMPlay_SE2 -_080F8120: .4byte 0x0000ffff -_080F8124: - adds r0, r1, 0x1 - movs r1, 0 - strb r0, [r6, 0x1] - strb r1, [r6, 0x3] - ldrh r0, [r7] - cmp r0, 0x32 - bhi _080F817A - ldrh r0, [r7, 0x6] - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x6] - ldr r4, _080F8168 @ =gMPlay_SE2 - ldr r5, _080F816C @ =0x0000ffff - ldrh r2, [r6, 0x6] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayVolumeControl - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r7, [r7, 0x4] - adds r0, r7 - strh r0, [r6, 0x8] - movs r0, 0x8 - ldrsh r2, [r6, r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl m4aMPlayPitchControl - b _080F817A - .align 2, 0 -_080F8168: .4byte gMPlay_SE2 -_080F816C: .4byte 0x0000ffff -_080F8170: - ldr r0, _080F8180 @ =gMPlay_SE2 - bl m4aMPlayStop - movs r0, 0xFF -_080F8178: - strb r0, [r6, 0x3] -_080F817A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8180: .4byte gMPlay_SE2 - thumb_func_end sub_80F7FB0 - - thumb_func_start sub_80F8184 -sub_80F8184: @ 80F8184 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F81B4 @ =gTasks - adds r5, r0, r1 - ldr r1, _080F81B8 @ =gUnknown_03005DA0 - adds r0, r5, 0 - bl sub_80F7FB0 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bls _080F81A8 - b _080F83C8 -_080F81A8: - lsls r0, 2 - ldr r1, _080F81BC @ =_080F81C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F81B4: .4byte gTasks -_080F81B8: .4byte gUnknown_03005DA0 -_080F81BC: .4byte _080F81C0 - .align 2, 0 -_080F81C0: - .4byte _080F81D8 - .4byte _080F8218 - .4byte _080F8228 - .4byte _080F82D8 - .4byte _080F83B8 - .4byte _080F82C6 -_080F81D8: - bl sub_80F7BA0 - ldr r4, _080F820C @ =gMenuWindowPtr - ldr r0, [r4] - ldr r1, _080F8210 @ =gWindowConfig_81E6CE4 - bl InitWindowFromConfig - ldr r0, [r4] - ldr r1, _080F8214 @ =gStringVar4 - movs r2, 0xF - str r2, [sp] - movs r2, 0x2 - movs r3, 0x4 - bl sub_8002EB0 - movs r0, 0 - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - strh r0, [r5, 0xE] - strh r0, [r5, 0x10] - movs r0, 0x4 - bl FadeOutBGMTemporarily - movs r0, 0x1 - b _080F83C6 - .align 2, 0 -_080F820C: .4byte gMenuWindowPtr -_080F8210: .4byte gWindowConfig_81E6CE4 -_080F8214: .4byte gStringVar4 -_080F8218: - bl IsBGMPausedOrStopped - lsls r0, 24 - cmp r0, 0 - bne _080F8224 - b _080F83C8 -_080F8224: - movs r0, 0x2 - b _080F83C6 -_080F8228: - ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94 - movs r2, 0xE - ldrsh r1, [r5, r2] - ldr r0, _080F8244 @ =gStringVar4 - adds r1, r0 - movs r3, 0 - ldrb r0, [r1] - ldr r7, _080F8248 @ =gUnknown_03005DA0 - ldrh r2, [r5, 0x12] - ldr r6, _080F824C @ =gUnknown_020388BC - b _080F825A - .align 2, 0 -_080F8240: .4byte gSaveBlock1 + 0x2D94 -_080F8244: .4byte gStringVar4 -_080F8248: .4byte gUnknown_03005DA0 -_080F824C: .4byte gUnknown_020388BC -_080F8250: - adds r1, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrb r0, [r1] -_080F825A: - cmp r0, 0 - beq _080F826A - cmp r0, 0xFE - beq _080F826A - cmp r0, 0xFC - beq _080F826A - cmp r0, 0xFF - bne _080F8250 -_080F826A: - cmp r2, 0 - bne _080F8278 - movs r0, 0x10 - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r0, r4, 0x2 - b _080F8282 -_080F8278: - movs r2, 0x10 - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0xE -_080F8282: - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x3 - ands r1, r0 - lsrs r0, 3 - movs r2, 0x1 - ands r0, r2 - adds r1, r0 - strh r1, [r6] - movs r1, 0x4 - ldrsh r0, [r7, r1] - adds r1, r3, 0 - bl __divsi3 - movs r1, 0 - strh r0, [r7, 0x4] - lsls r0, 16 - cmp r0, 0 - bgt _080F82AC - movs r0, 0x1 - strh r0, [r7, 0x4] -_080F82AC: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080F82BE - movs r0, 0x3 - b _080F82C0 -_080F82BE: - movs r0, 0x5 -_080F82C0: - strh r0, [r5, 0x8] - strh r1, [r5, 0xA] - b _080F83C8 -_080F82C6: - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080F82D2 - b _080F83C4 -_080F82D2: - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - b _080F83C8 -_080F82D8: - ldr r1, _080F8304 @ =gStringVar4 - movs r2, 0xE - ldrsh r0, [r5, r2] - adds r0, r1 - ldrb r4, [r0] - cmp r4, 0xFF - bne _080F830C - movs r0, 0xC8 - lsls r0, 1 - movs r1, 0x6 - bl FadeInNewBGM - ldr r0, _080F8308 @ =gMPlay_SE2 - movs r1, 0x2 - bl m4aMPlayFadeOutTemporarily - bl EnableBothScriptContexts - adds r0, r6, 0 - bl DestroyTask - b _080F83C8 - .align 2, 0 -_080F8304: .4byte gStringVar4 -_080F8308: .4byte gMPlay_SE2 -_080F830C: - cmp r4, 0 - bne _080F832C - ldr r0, _080F8328 @ =gMenuWindowPtr - ldr r0, [r0] - bl sub_8003418 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - strh r4, [r5, 0xC] - b _080F83C8 - .align 2, 0 -_080F8328: .4byte gMenuWindowPtr -_080F832C: - cmp r4, 0xFE - bne _080F8340 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] - b _080F83C8 -_080F8340: - cmp r4, 0xFC - bne _080F8354 - ldrh r0, [r5, 0xE] - adds r0, 0x2 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5, 0x8] - movs r0, 0x8 - strh r0, [r5, 0xC] - b _080F83C8 -_080F8354: - cmp r4, 0x37 - bne _080F8374 - movs r4, 0 - strb r4, [r0] - ldr r0, _080F8370 @ =gMenuWindowPtr - ldr r0, [r0] - bl sub_8003418 - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - strh r4, [r5, 0xC] - b _080F83C8 - .align 2, 0 -_080F8370: .4byte gMenuWindowPtr -_080F8374: - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080F8394 - cmp r0, 0x1 - bgt _080F8386 - cmp r0, 0 - beq _080F838C - b _080F83C8 -_080F8386: - cmp r0, 0x2 - beq _080F83A0 - b _080F83C8 -_080F838C: - ldr r0, _080F839C @ =gMenuWindowPtr - ldr r0, [r0] - bl sub_8003418 -_080F8394: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - b _080F83C8 - .align 2, 0 -_080F839C: .4byte gMenuWindowPtr -_080F83A0: - ldrh r0, [r5, 0xE] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0xE] - strh r1, [r5, 0xA] - ldr r0, _080F83B4 @ =gUnknown_03005DA0 - ldrh r0, [r0, 0x4] - strh r0, [r5, 0xC] - movs r0, 0x4 - b _080F83C6 - .align 2, 0 -_080F83B4: .4byte gUnknown_03005DA0 -_080F83B8: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _080F83C8 -_080F83C4: - movs r0, 0x3 -_080F83C6: - strh r0, [r5, 0x8] -_080F83C8: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F8184 - - thumb_func_start sub_80F83D0 -sub_80F83D0: @ 80F83D0 - push {r4,lr} - ldr r4, _080F83F4 @ =0x00004010 - bl GetCurrentMauvilleOldMan - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 8 - movs r0, 0x8A - lsls r0, 15 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F83F4: .4byte 0x00004010 - thumb_func_end sub_80F83D0 - - thumb_func_start sub_80F83F8 -sub_80F83F8: @ 80F83F8 - push {r4,lr} - ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - strb r2, [r0, 0x1] - movs r4, 0 - movs r3, 0xFF - adds r1, r0, 0x4 - movs r2, 0x3 -_080F840C: - strb r4, [r1] - ldrb r0, [r1, 0x4] - orrs r0, r3 - strb r0, [r1, 0x4] - adds r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080F840C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8424: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F83F8 - - thumb_func_start sub_80F8428 -sub_80F8428: @ 80F8428 - ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F8434: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F8428 - - thumb_func_start sub_80F8438 -sub_80F8438: @ 80F8438 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x32 - bne _080F8444 - movs r0, 0 -_080F8444: - bl sub_8053108 - pop {r1} - bx r1 - thumb_func_end sub_80F8438 - - thumb_func_start sub_80F844C -sub_80F844C: @ 80F844C - push {lr} - adds r3, r0, 0 - movs r2, 0 - ldr r1, _080F8460 @ =gUnknown_083E53E0 -_080F8454: - ldrb r0, [r1] - cmp r0, r3 - bne _080F8464 - adds r0, r1, 0 - b _080F846E - .align 2, 0 -_080F8460: .4byte gUnknown_083E53E0 -_080F8464: - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x23 - ble _080F8454 - ldr r0, _080F8474 @ =gUnknown_083E5610 -_080F846E: - pop {r1} - bx r1 - .align 2, 0 -_080F8474: .4byte gUnknown_083E5610 - thumb_func_end sub_80F844C - - thumb_func_start sub_80F8478 -sub_80F8478: @ 80F8478 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0x4] - pop {r1} - bx r1 - thumb_func_end sub_80F8478 - - thumb_func_start sub_80F8484 -sub_80F8484: @ 80F8484 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_80F8484 - - thumb_func_start sub_80F8490 -sub_80F8490: @ 80F8490 - push {lr} - bl sub_80F844C - ldr r0, [r0, 0x8] - pop {r1} - bx r1 - thumb_func_end sub_80F8490 - - thumb_func_start sub_80F849C -sub_80F849C: @ 80F849C - push {lr} - movs r1, 0 - ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _080F84BC - adds r2, 0x4 -_080F84AA: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080F84BC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080F84AA -_080F84BC: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080F84C4: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F849C - - thumb_func_start sub_80F84C8 -sub_80F84C8: @ 80F84C8 - lsls r0, 2 - ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8 - adds r0, r1 - ldrb r2, [r0] - ldrb r1, [r0, 0x1] - lsls r1, 8 - orrs r2, r1 - ldrb r1, [r0, 0x2] - lsls r1, 16 - orrs r2, r1 - ldrb r0, [r0, 0x3] - lsls r0, 24 - orrs r2, r0 - adds r0, r2, 0 - bx lr - .align 2, 0 -_080F84E8: .4byte gSaveBlock1 + 0x2DB8 - thumb_func_end sub_80F84C8 - - thumb_func_start sub_80F84EC -sub_80F84EC: @ 80F84EC - lsls r0, 2 - ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8 - adds r0, r2 - strb r1, [r0] - lsrs r2, r1, 8 - strb r2, [r0, 0x1] - lsrs r2, r1, 16 - strb r2, [r0, 0x2] - lsrs r1, 24 - strb r1, [r0, 0x3] - bx lr - .align 2, 0 -_080F8504: .4byte gSaveBlock1 + 0x2DB8 - thumb_func_end sub_80F84EC - - thumb_func_start sub_80F8508 -sub_80F8508: @ 80F8508 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94 - adds r0, 0x4 - adds r0, r5, r0 - ldrb r0, [r0] - bl sub_80F8438 - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_80F84C8 - cmp r4, r0 - bhi _080F852C - movs r0, 0 - b _080F852E - .align 2, 0 -_080F8528: .4byte gSaveBlock1 + 0x2D94 -_080F852C: - movs r0, 0x1 -_080F852E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F8508 - - thumb_func_start sub_80F8534 -sub_80F8534: @ 80F8534 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r4, r0, 3 - subs r4, r0 - ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C - adds r4, r0 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x8 - bl memset - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl memcpy - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F855C: .4byte gSaveBlock1 + 0x2D9C - thumb_func_end sub_80F8534 - - thumb_func_start sub_80F8560 -sub_80F8560: @ 80F8560 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r5, r0, 3 - subs r5, r0 - ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C - adds r5, r0 - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xFF - movs r2, 0x7 - bl memset - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl StringCopyN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8594: .4byte gSaveBlock1 + 0x2D9C - thumb_func_end sub_80F8560 - - thumb_func_start sub_80F8598 -sub_80F8598: @ 80F8598 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94 - adds r0, 0x4 - adds r0, r5, r0 - strb r6, [r0] - ldr r1, _080F85F0 @ =gSaveBlock2 - adds r0, r5, 0 - bl sub_80F8560 - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80F8438 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_80F84EC - ldr r5, _080F85F4 @ =gStringVar1 - adds r0, r4, 0 - bl sub_80F8438 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0 - movs r3, 0xA - bl ConvertIntToDecimalStringN - ldr r4, _080F85F8 @ =gStringVar2 - adds r0, r6, 0 - bl sub_80F8490 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F85EC: .4byte gSaveBlock1 + 0x2D94 -_080F85F0: .4byte gSaveBlock2 -_080F85F4: .4byte gStringVar1 -_080F85F8: .4byte gStringVar2 - thumb_func_end sub_80F8598 - - thumb_func_start sub_80F85FC -sub_80F85FC: @ 80F85FC - push {r4-r7,lr} - adds r7, r0, 0 - adds r6, r1, 0 - movs r5, 0 - cmp r5, r6 - bge _080F8612 -_080F8608: - adds r0, r7, r5 - strb r5, [r0] - adds r5, 0x1 - cmp r5, r6 - blt _080F8608 -_080F8612: - cmp r6, 0 - ble _080F8648 - adds r5, r6, 0 -_080F8618: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - adds r4, r7, r4 - ldrb r2, [r4] - adds r0, r7, r0 - ldrb r1, [r0] - strb r1, [r4] - strb r2, [r0] - subs r5, 0x1 - cmp r5, 0 - bne _080F8618 -_080F8648: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F85FC - - thumb_func_start sub_80F8650 -sub_80F8650: @ 80F8650 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r7, sp - mov r10, sp - ldr r0, _080F86D4 @ =gUnknown_083E5620 - ldr r0, [r0] - lsls r0, 3 - lsrs r0, 3 - adds r0, 0x3 - lsrs r0, 2 - lsls r0, 2 - mov r1, sp - subs r1, r0 - mov sp, r1 - mov r8, sp - mov r0, sp - movs r1, 0x24 - bl sub_80F85FC - movs r5, 0 - ldr r0, _080F86D8 @ =gUnknown_083E53E0 - mov r9, r0 - ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94 -_080F8686: - mov r1, r8 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 4 - add r0, r9 - ldrb r4, [r0] - ldrb r6, [r0, 0x1] - movs r1, 0 - ldrb r0, [r3, 0x4] - cmp r0, r4 - beq _080F86AC - ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98 -_080F869E: - adds r1, 0x1 - cmp r1, 0x3 - bgt _080F86AC - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r4 - bne _080F869E -_080F86AC: - cmp r1, 0x4 - bne _080F86E4 - adds r0, r4, 0 - str r3, [r7] - bl sub_80F8438 - ldr r3, [r7] - cmp r0, r6 - bcc _080F86E4 - movs r0, 0x1 - strb r0, [r3, 0x1] - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_80F8598 - movs r0, 0x1 - b _080F86EC - .align 2, 0 -_080F86D4: .4byte gUnknown_083E5620 -_080F86D8: .4byte gUnknown_083E53E0 -_080F86DC: .4byte gSaveBlock1 + 0x2D94 -_080F86E0: .4byte gSaveBlock1 + 0x2D98 -_080F86E4: - adds r5, 0x1 - cmp r5, 0x23 - ble _080F8686 - movs r0, 0 -_080F86EC: - mov sp, r10 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F8650 - - thumb_func_start sub_80F8700 -sub_80F8700: @ 80F8700 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94 - adds r0, 0x4 - adds r0, r5, r0 - ldrb r6, [r0] - ldr r4, _080F874C @ =gStringVar1 - adds r0, r5, 0 - bl sub_80F84C8 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0xA - bl ConvertIntToDecimalStringN - ldr r4, _080F8750 @ =gStringVar2 - adds r0, r6, 0 - bl sub_80F8490 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, _080F8754 @ =gStringVar3 - adds r0, r5, 0 - bl sub_80F8534 - adds r0, r6, 0 - bl sub_80F8484 - bl ShowFieldMessage - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8748: .4byte gSaveBlock1 + 0x2D94 -_080F874C: .4byte gStringVar1 -_080F8750: .4byte gStringVar2 -_080F8754: .4byte gStringVar3 - thumb_func_end sub_80F8700 - - thumb_func_start sub_80F8758 -sub_80F8758: @ 80F8758 - push {r4-r6,lr} - bl sub_80F849C - adds r3, r0, 0 - lsls r3, 25 - movs r0, 0x80 - lsls r0, 19 - adds r3, r0 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x19 - bl MenuDrawTextWindow - movs r4, 0 - ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _080F87A4 - adds r6, r1, 0x4 - movs r5, 0x80 - lsls r5, 18 -_080F8784: - bl sub_80F8478 - lsrs r2, r5, 24 - movs r1, 0x1 - bl MenuPrint - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - adds r4, 0x1 - cmp r4, 0x3 - bgt _080F87A4 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8784 -_080F87A4: - ldr r0, _080F87C0 @ =gPCText_Cancel - lsls r2, r4, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F87BC: .4byte gSaveBlock1 + 0x2D94 -_080F87C0: .4byte gPCText_Cancel - thumb_func_end sub_80F8758 - - thumb_func_start sub_80F87C4 -sub_80F87C4: @ 80F87C4 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080F87E4 @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080F87E8 - cmp r5, 0x1 - beq _080F8810 - b _080F8862 - .align 2, 0 -_080F87E4: .4byte gTasks -_080F87E8: - bl sub_80F8758 - bl sub_80F849C - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - movs r0, 0x18 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080F8862 -_080F8810: - bl ProcessMenuInput - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _080F8862 - adds r0, 0x1 - cmp r4, r0 - beq _080F8832 - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080F8840 -_080F8832: - ldr r1, _080F883C @ =gScriptResult - movs r0, 0 - strh r0, [r1] - b _080F8848 - .align 2, 0 -_080F883C: .4byte gScriptResult -_080F8840: - ldr r0, _080F886C @ =gScriptResult - strh r5, [r0] - ldr r0, _080F8870 @ =gUnknown_03000748 - strb r4, [r0] -_080F8848: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x19 - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080F8862: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F886C: .4byte gScriptResult -_080F8870: .4byte gUnknown_03000748 - thumb_func_end sub_80F87C4 - - thumb_func_start sub_80F8874 -sub_80F8874: @ 80F8874 - push {lr} - ldr r0, _080F8884 @ =sub_80F87C4 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080F8884: .4byte sub_80F87C4 - thumb_func_end sub_80F8874 - - thumb_func_start sub_80F8888 -sub_80F8888: @ 80F8888 - push {lr} - ldr r0, _080F8898 @ =gUnknown_03000748 - ldrb r0, [r0] - bl sub_80F8700 - pop {r0} - bx r0 - .align 2, 0 -_080F8898: .4byte gUnknown_03000748 - thumb_func_end sub_80F8888 - - thumb_func_start sub_80F889C -sub_80F889C: @ 80F889C - push {lr} - bl sub_80F849C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F889C - - thumb_func_start sub_80F88AC -sub_80F88AC: @ 80F88AC - push {r4,r5,lr} - ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94 - ldr r5, _080F88CC @ =gUnknown_03000748 - ldrb r0, [r5] - adds r1, 0x4 - adds r1, r0, r1 - ldrb r4, [r1] - bl sub_80F8508 - cmp r0, 0x1 - beq _080F88D0 - movs r0, 0 - b _080F88DA - .align 2, 0 -_080F88C8: .4byte gSaveBlock1 + 0x2D94 -_080F88CC: .4byte gUnknown_03000748 -_080F88D0: - ldrb r0, [r5] - adds r1, r4, 0 - bl sub_80F8598 - movs r0, 0x1 -_080F88DA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F88AC - - thumb_func_start sub_80F88E0 -sub_80F88E0: @ 80F88E0 - push {lr} - ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080F88F4 - movs r0, 0x1 - b _080F88F6 - .align 2, 0 -_080F88F0: .4byte gSaveBlock1 + 0x2D94 -_080F88F4: - movs r0, 0 -_080F88F6: - pop {r1} - bx r1 - thumb_func_end sub_80F88E0 - - thumb_func_start sub_80F88FC -sub_80F88FC: @ 80F88FC - push {lr} - bl sub_80F8650 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80F88FC - - thumb_func_start sub_80F890C -sub_80F890C: @ 80F890C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r2, _080F8958 @ =0x02000000 - adds r1, r2, 0 - adds r1, 0xFF - movs r0, 0x2 - strb r0, [r1] - adds r0, 0xFE - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x82 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F895C @ =sub_80EB3FC - str r0, [r1] - movs r0, 0x84 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _080F8960 @ =ConvertEasyChatWordsToString - str r0, [r1] - ldrh r1, [r4, 0x20] - adds r0, r1, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _080F8964 - subs r1, 0x79 - adds r0, r2, 0 - adds r0, 0xFA - strb r1, [r0] - b _080F896E - .align 2, 0 -_080F8958: .4byte 0x02000000 -_080F895C: .4byte sub_80EB3FC -_080F8960: .4byte ConvertEasyChatWordsToString -_080F8964: - adds r1, r2, 0 - adds r1, 0xFA - movs r0, 0 - strb r0, [r1] - movs r5, 0 -_080F896E: - ldr r1, _080F8994 @ =0x02000000 - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8980 - cmp r0, 0x1 - beq _080F899C -_080F8980: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F8998 @ =gUnknown_083E5730 - b _080F89AC - .align 2, 0 -_080F8994: .4byte 0x02000000 -_080F8998: .4byte gUnknown_083E5730 -_080F899C: - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - adds r0, r1, 0 - adds r0, 0xFA - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _080F89DC @ =gUnknown_083E57A4 -_080F89AC: - adds r0, r1 - str r0, [r2] - ldrh r0, [r4, 0x1E] - mov r1, sp - bl sub_80A2D64 - lsls r0, 16 - ldr r1, _080F89E0 @ =0xffff0000 - adds r0, r1 - movs r1, 0xCD - lsls r1, 17 - cmp r0, r1 - bhi _080F89F8 - ldr r0, _080F89E4 @ =0x02000000 - adds r1, r0, 0 - adds r1, 0xFA - ldrb r2, [r1] - adds r1, r0, 0 - cmp r2, 0x6 - beq _080F89E8 - cmp r2, 0x9 - beq _080F89F0 - b _080F89FA - .align 2, 0 -_080F89DC: .4byte gUnknown_083E57A4 -_080F89E0: .4byte 0xffff0000 -_080F89E4: .4byte 0x02000000 -_080F89E8: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x1 - b _080F8A00 -_080F89F0: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0x2 - b _080F8A00 -_080F89F8: - ldr r1, _080F8A20 @ =0x02000000 -_080F89FA: - adds r2, r1, 0 - adds r2, 0xFB - movs r0, 0 -_080F8A00: - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xF4 - str r4, [r0] - subs r0, 0x8 - str r6, [r0] - adds r0, 0xC - strb r5, [r0] - ldr r0, _080F8A24 @ =sub_80F8D50 - bl SetMainCallback2 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F8A20: .4byte 0x02000000 -_080F8A24: .4byte sub_80F8D50 - thumb_func_end sub_80F890C - - thumb_func_start sub_80F8A28 -sub_80F8A28: @ 80F8A28 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _080F8A44 @ =gMain - ldr r1, _080F8A48 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _080F8A3A - b _080F8D3C -_080F8A3A: - lsls r0, 2 - ldr r1, _080F8A4C @ =_080F8A50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F8A44: .4byte gMain -_080F8A48: .4byte 0x0000043c -_080F8A4C: .4byte _080F8A50 - .align 2, 0 -_080F8A50: - .4byte _080F8A9C - .4byte _080F8AB0 - .4byte _080F8AC8 - .4byte _080F8ACE - .4byte _080F8AD4 - .4byte _080F8ADA - .4byte _080F8B10 - .4byte _080F8B1C - .4byte _080F8B28 - .4byte _080F8B34 - .4byte _080F8B3A - .4byte _080F8B54 - .4byte _080F8B78 - .4byte _080F8BA0 - .4byte _080F8C14 - .4byte _080F8C2C - .4byte _080F8C58 - .4byte _080F8CBC - .4byte _080F8CC6 -_080F8A9C: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - b _080F8D30 -_080F8AB0: - add r1, sp, 0x4 - movs r0, 0 - strh r0, [r1] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _080F8AC4 @ =0x01000200 - add r0, sp, 0x4 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8AC4: .4byte 0x01000200 -_080F8AC8: - bl ResetPaletteFade - b _080F8D30 -_080F8ACE: - bl ResetTasks - b _080F8D30 -_080F8AD4: - bl ResetSpriteData - b _080F8D30 -_080F8ADA: - bl FreeAllSpritePalettes - ldr r0, _080F8B0C @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x32 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - b _080F8D30 - .align 2, 0 -_080F8B0C: .4byte REG_BG0HOFS -_080F8B10: - ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC - bl SetUpWindowConfig - b _080F8D30 - .align 2, 0 -_080F8B18: .4byte gWindowConfig_81E6DFC -_080F8B1C: - ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC - bl MultistepInitMenuWindowBegin - b _080F8D30 - .align 2, 0 -_080F8B24: .4byte gWindowConfig_81E6DFC -_080F8B28: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - beq _080F8B32 - b _080F8D30 -_080F8B32: - b _080F8D3C -_080F8B34: - bl MenuZeroFillScreen - b _080F8D30 -_080F8B3A: - mov r0, sp - adds r0, 0x6 - movs r1, 0x1 - strh r1, [r0] - ldr r1, _080F8B4C @ =0x06004800 - ldr r2, _080F8B50 @ =0x01000400 - bl CpuSet - b _080F8D30 - .align 2, 0 -_080F8B4C: .4byte 0x06004800 -_080F8B50: .4byte 0x01000400 -_080F8B54: - ldr r2, _080F8B70 @ =gMailGraphicsTable - ldr r0, _080F8B74 @ =0x02000000 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _080F8D30 - .align 2, 0 -_080F8B70: .4byte gMailGraphicsTable -_080F8B74: .4byte 0x02000000 -_080F8B78: - ldr r2, _080F8B94 @ =gMailGraphicsTable - ldr r0, _080F8B98 @ =0x02000000 - adds r0, 0xFA - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, _080F8B9C @ =0x06004000 - bl LZ77UnCompVram - b _080F8D30 - .align 2, 0 -_080F8B94: .4byte gMailGraphicsTable -_080F8B98: .4byte 0x02000000 -_080F8B9C: .4byte 0x06004000 -_080F8BA0: - ldr r5, _080F8C00 @ =gMailGraphicsTable - ldr r4, _080F8C04 @ =0x02000000 - adds r4, 0xFA - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r3, _080F8C08 @ =gPlttBufferUnfaded - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x10] - movs r2, 0xF1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x12] - adds r2, 0xE - adds r0, r3, r2 - strh r1, [r0] - ldr r1, _080F8C0C @ =gUnknown_083E562C - ldr r2, _080F8C10 @ =gSaveBlock2 - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x14] - ldrb r0, [r2, 0x8] - lsls r0, 2 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x16] - b _080F8D30 - .align 2, 0 -_080F8C00: .4byte gMailGraphicsTable -_080F8C04: .4byte 0x02000000 -_080F8C08: .4byte gPlttBufferUnfaded -_080F8C0C: .4byte gUnknown_083E562C -_080F8C10: .4byte gSaveBlock2 -_080F8C14: - ldr r0, _080F8C28 @ =0x02000000 - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8C20 - b _080F8D30 -_080F8C20: - bl sub_80F8DA0 - b _080F8D30 - .align 2, 0 -_080F8C28: .4byte 0x02000000 -_080F8C2C: - ldr r0, _080F8C4C @ =0x02000000 - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - beq _080F8C3A - bl sub_80F8E80 -_080F8C3A: - ldr r0, _080F8C50 @ =sub_80F8F18 - bl SetVBlankCallback - ldr r2, _080F8C54 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _080F8D30 - .align 2, 0 -_080F8C4C: .4byte 0x02000000 -_080F8C50: .4byte sub_80F8F18 -_080F8C54: .4byte gPaletteFade -_080F8C58: - ldr r5, _080F8C7C @ =0x02000000 - adds r0, r5, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x1 - beq _080F8C80 - cmp r0, 0x2 - beq _080F8C98 - b _080F8D30 - .align 2, 0 -_080F8C7C: .4byte 0x02000000 -_080F8C80: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8C94 @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x60 - b _080F8CA8 - .align 2, 0 -_080F8C94: .4byte SpriteCallbackDummy -_080F8C98: - adds r0, r4, 0 - bl sub_809D580 - ldr r1, _080F8CB8 @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0x28 -_080F8CA8: - movs r3, 0x80 - bl sub_809D3A4 - adds r1, r5, 0 - adds r1, 0xFC - strb r0, [r1] - b _080F8D30 - .align 2, 0 -_080F8CB8: .4byte SpriteCallbackDummy -_080F8CBC: - bl sub_8055870 - cmp r0, 0x1 - bne _080F8D30 - b _080F8D3C -_080F8CC6: - ldr r1, _080F8D14 @ =REG_BG0CNT - ldr r2, _080F8D18 @ =0x00009f08 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D1C @ =0x00000801 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080F8D20 @ =0x00000902 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - subs r1, 0x50 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _080F8D24 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _080F8D28 @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8D2C @ =sub_80F8F58 - str r1, [r0] - movs r0, 0x1 - b _080F8D3E - .align 2, 0 -_080F8D14: .4byte REG_BG0CNT -_080F8D18: .4byte 0x00009f08 -_080F8D1C: .4byte 0x00000801 -_080F8D20: .4byte 0x00000902 -_080F8D24: .4byte gPaletteFade -_080F8D28: .4byte 0x02000000 -_080F8D2C: .4byte sub_80F8F58 -_080F8D30: - ldr r1, _080F8D48 @ =gMain - ldr r0, _080F8D4C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080F8D3C: - movs r0, 0 -_080F8D3E: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080F8D48: .4byte gMain -_080F8D4C: .4byte 0x0000043c - thumb_func_end sub_80F8A28 - - thumb_func_start sub_80F8D50 -sub_80F8D50: @ 80F8D50 - push {lr} -_080F8D52: - bl sub_80F8A28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D6C - ldr r0, _080F8D68 @ =sub_80F8F2C - bl SetMainCallback2 - b _080F8D78 - .align 2, 0 -_080F8D68: .4byte sub_80F8F2C -_080F8D6C: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F8D52 -_080F8D78: - pop {r0} - bx r0 - thumb_func_end sub_80F8D50 - - thumb_func_start sub_80F8D7C -sub_80F8D7C: @ 80F8D7C - push {r4,lr} - adds r4, r0, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_814A568 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - adds r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F8D7C - - thumb_func_start sub_80F8DA0 -sub_80F8DA0: @ 80F8DA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r5, 0 - ldr r2, _080F8E3C @ =0x02000000 - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - ldrb r0, [r0] - cmp r5, r0 - bcs _080F8E04 - mov r8, r2 - adds r7, r1, 0 -_080F8DBE: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - subs r0, r5 - add r0, r8 - mov r1, r8 - adds r1, 0xF4 - lsls r2, r6, 1 - ldr r1, [r1] - adds r1, r2 - ldr r2, [r7] - ldr r2, [r2, 0x4] - lsls r4, r5, 2 - adds r2, r4, r2 - ldr r2, [r2] - lsls r2, 28 - lsrs r2, 30 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - ldr r1, [r7] - ldr r0, [r1, 0x4] - adds r4, r0 - ldr r0, [r4] - lsls r0, 28 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r1, [r1] - cmp r5, r1 - bcc _080F8DBE -_080F8E04: - ldr r2, _080F8E40 @ =0x020000d8 - adds r4, r2, 0 - subs r4, 0xD8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0 - bne _080F8E48 - ldr r1, [r2, 0x1C] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - adds r2, r0, 0 - ldr r1, _080F8E44 @ =gOtherText_From - bl StringCopy - ldr r0, _080F8E40 @ =0x020000d8 - bl StringLength - movs r2, 0x86 - lsls r2, 1 - adds r1, r4, r2 - ldr r1, [r1] - ldrb r1, [r1, 0x2] - subs r1, r0 - b _080F8E6A - .align 2, 0 -_080F8E3C: .4byte 0x02000000 -_080F8E40: .4byte 0x020000d8 -_080F8E44: .4byte gOtherText_From -_080F8E48: - ldr r1, _080F8E7C @ =gOtherText_From - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r1, [r0] - adds r1, 0x12 - adds r0, r2, 0 - bl sub_80F8D7C - movs r1, 0x86 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - ldrb r1, [r0, 0x2] -_080F8E6A: - adds r0, r4, 0 - adds r0, 0xF9 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8E7C: .4byte gOtherText_From - thumb_func_end sub_80F8DA0 - - thumb_func_start sub_80F8E80 -sub_80F8E80: @ 80F8E80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r4, 0 - ldr r1, _080F8F10 @ =0x02000000 - movs r0, 0x86 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - ldrb r0, [r0] - cmp r4, r0 - bcs _080F8EF6 - mov r8, r1 - adds r7, r2, 0 -_080F8E9E: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - subs r0, r4 - mov r1, r8 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F8EE8 - cmp r0, 0 - beq _080F8EE8 - ldr r2, [r7] - ldr r1, [r2, 0x4] - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - lsls r3, r0, 24 - lsrs r3, 28 - lsls r0, 30 - lsrs r0, 30 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0x3] - lsrs r1, r2, 4 - adds r1, r3 - lsls r2, 28 - lsrs r2, 28 - adds r2, r6, r2 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r6, r0, 24 -_080F8EE8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r7] - ldrb r0, [r0] - cmp r4, r0 - bcc _080F8E9E -_080F8EF6: - ldr r0, _080F8F14 @ =0x020000d8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - ldr r2, [r0, 0x34] - ldrb r2, [r2, 0x1] - bl MenuPrint - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F8F10: .4byte 0x02000000 -_080F8F14: .4byte 0x020000d8 - thumb_func_end sub_80F8E80 - - thumb_func_start sub_80F8F18 -sub_80F8F18: @ 80F8F18 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80F8F18 - - thumb_func_start sub_80F8F2C -sub_80F8F2C: @ 80F8F2C - push {r4,lr} - ldr r4, _080F8F54 @ =0x02000000 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0 - beq _080F8F42 - bl AnimateSprites - bl BuildOamBuffer -_080F8F42: - adds r0, r4, 0 - adds r0, 0xF0 - ldr r0, [r0] - bl _call_via_r0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F8F54: .4byte 0x02000000 - thumb_func_end sub_80F8F2C - - thumb_func_start sub_80F8F58 -sub_80F8F58: @ 80F8F58 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F8F6C - ldr r0, _080F8F70 @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8F74 @ =sub_80F8F78 - str r1, [r0] -_080F8F6C: - pop {r0} - bx r0 - .align 2, 0 -_080F8F70: .4byte 0x02000000 -_080F8F74: .4byte sub_80F8F78 - thumb_func_end sub_80F8F58 - - thumb_func_start sub_80F8F78 -sub_80F8F78: @ 80F8F78 - push {lr} - sub sp, 0x4 - ldr r0, _080F8FA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080F8FA0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _080F8FAC @ =0x02000000 - adds r0, 0xF0 - ldr r1, _080F8FB0 @ =sub_80F8FB4 - str r1, [r0] -_080F8FA0: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F8FA8: .4byte gMain -_080F8FAC: .4byte 0x02000000 -_080F8FB0: .4byte sub_80F8FB4 - thumb_func_end sub_80F8F78 - - thumb_func_start sub_80F8FB4 -sub_80F8FB4: @ 80F8FB4 - push {r4,lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080F9012 - ldr r4, _080F9018 @ =0x02000000 - adds r0, r4, 0 - adds r0, 0xEC - ldr r0, [r0] - bl SetMainCallback2 - adds r0, r4, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0x2 - bgt _080F9002 - cmp r0, 0x1 - blt _080F9002 - adds r0, r4, 0 - adds r0, 0xF4 - ldr r0, [r0] - ldrh r0, [r0, 0x1E] - bl sub_809D4A8 - lsls r0, 16 - lsrs r0, 16 - bl sub_809D608 - adds r0, r4, 0 - adds r0, 0xFC - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F901C @ =gSprites - adds r0, r1 - bl sub_809D510 -_080F9002: - ldr r0, _080F9018 @ =0x02000000 - movs r2, 0x88 - lsls r2, 1 - movs r1, 0 - bl memset - bl ResetPaletteFade -_080F9012: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9018: .4byte 0x02000000 -_080F901C: .4byte gSprites - thumb_func_end sub_80F8FB4 - - thumb_func_start sub_80F9020 -sub_80F9020: @ 80F9020 - push {r4,r5,lr} - ldr r4, _080F9054 @ =gBG1TilemapBuffer - movs r5, 0x80 - lsls r5, 4 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - adds r0, r4, r5 - movs r1, 0 - adds r2, r5, 0 - bl memset - movs r0, 0x80 - lsls r0, 5 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9054: .4byte gBG1TilemapBuffer - thumb_func_end sub_80F9020 - - thumb_func_start sav2_get_text_speed -sav2_get_text_speed: @ 80F9058 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - bl MenuDisplayMessageBox - cmp r4, 0 - beq _080F907C - ldr r0, _080F908C @ =gBG1TilemapBuffer - movs r1, 0x4 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xF - movs r3, 0x1A - bl sub_80A3FA0 -_080F907C: - adds r0, r5, 0 - bl sub_8072044 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F908C: .4byte gBG1TilemapBuffer - thumb_func_end sav2_get_text_speed - - thumb_func_start sub_80F9090 -sub_80F9090: @ 80F9090 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F90AC - ldr r0, _080F90B4 @ =gUnknown_0300074C - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080F90AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F90B4: .4byte gUnknown_0300074C - thumb_func_end sub_80F9090 - - thumb_func_start DisplayItemMessageOnField -DisplayItemMessageOnField: @ 80F90B8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r1, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r1, 16 - bl sav2_get_text_speed - ldr r0, _080F90E8 @ =gUnknown_0300074C - str r5, [r0] - ldr r1, _080F90EC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080F90F0 @ =sub_80F9090 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F90E8: .4byte gUnknown_0300074C -_080F90EC: .4byte gTasks -_080F90F0: .4byte sub_80F9090 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start Task_CallYesOrNoCallback -Task_CallYesOrNoCallback: @ 80F90F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080F911A - cmp r1, 0 - bgt _080F9114 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080F9130 - b _080F9140 -_080F9114: - cmp r1, 0x1 - beq _080F9130 - b _080F9140 -_080F911A: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F912C @ =gUnknown_020388C4 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080F9140 - .align 2, 0 -_080F912C: .4byte gUnknown_020388C4 -_080F9130: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F9148 @ =gUnknown_020388C4 - ldr r1, [r0, 0x4] - adds r0, r4, 0 - bl _call_via_r1 -_080F9140: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9148: .4byte gUnknown_020388C4 - thumb_func_end Task_CallYesOrNoCallback - - thumb_func_start sub_80F914C -sub_80F914C: @ 80F914C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080F916C @ =gUnknown_020388C4 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r3] - str r2, [r3, 0x4] - ldr r2, _080F9170 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080F9174 @ =Task_CallYesOrNoCallback - str r0, [r1] - bx lr - .align 2, 0 -_080F916C: .4byte gUnknown_020388C4 -_080F9170: .4byte gTasks -_080F9174: .4byte Task_CallYesOrNoCallback - thumb_func_end sub_80F914C - - thumb_func_start brm_trade_1 -brm_trade_1: @ 80F9178 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - ldr r1, _080F91C0 @ =gUnknown_083E5A18 - mov r0, sp - movs r2, 0x4 - bl memcpy - cmp r4, 0xFF - beq _080F91CC - mov r0, sp - strb r4, [r0, 0x2] - ldr r4, _080F91C4 @ =gStringVar4 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - mov r1, sp - ldr r0, _080F91C8 @ =gMenuWindowPtr - ldr r0, [r0] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl StringAppend - b _080F91D4 - .align 2, 0 -_080F91C0: .4byte gUnknown_083E5A18 -_080F91C4: .4byte gStringVar4 -_080F91C8: .4byte gMenuWindowPtr -_080F91CC: - ldr r0, _080F91E8 @ =gStringVar4 - adds r1, r5, 0 - bl StringCopy -_080F91D4: - ldr r0, _080F91E8 @ =gStringVar4 - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F91E8: .4byte gStringVar4 - thumb_func_end brm_trade_1 - - thumb_func_start unref_sub_80F91EC -unref_sub_80F91EC: @ 80F91EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - adds r4, r2, 0 - adds r2, r3, 0 - ldr r0, [sp, 0x18] - ldr r3, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r6, _080F9234 @ =gStringVar1 - adds r0, r6, 0 - mov r1, r12 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - mov r0, r8 - cmp r0, 0xFF - beq _080F9238 - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - adds r3, r5, 0 - bl brm_trade_1 - b _080F9242 - .align 2, 0 -_080F9234: .4byte gStringVar1 -_080F9238: - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl MenuPrint -_080F9242: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80F91EC - - thumb_func_start unref_sub_80F924C -unref_sub_80F924C: @ 80F924C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F9280 @ =gUnknown_083E5A1C - mov r0, sp - movs r2, 0x2 - bl memcpy - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl brm_trade_1 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9280: .4byte gUnknown_083E5A1C - thumb_func_end unref_sub_80F924C - - thumb_func_start sub_80F9284 -sub_80F9284: @ 80F9284 - push {lr} - ldr r0, _080F92A0 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92B6 - ldr r0, _080F92A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92A8 - movs r0, 0x1 - b _080F92B8 - .align 2, 0 -_080F92A0: .4byte gSaveBlock2 -_080F92A4: .4byte gMain -_080F92A8: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92B6 - movs r0, 0x2 - b _080F92B8 -_080F92B6: - movs r0, 0 -_080F92B8: - pop {r1} - bx r1 - thumb_func_end sub_80F9284 - - thumb_func_start sub_80F92BC -sub_80F92BC: @ 80F92BC - push {lr} - ldr r0, _080F92D8 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92EE - ldr r0, _080F92DC @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92E0 - movs r0, 0x1 - b _080F92F0 - .align 2, 0 -_080F92D8: .4byte gSaveBlock2 -_080F92DC: .4byte gMain -_080F92E0: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92EE - movs r0, 0x2 - b _080F92F0 -_080F92EE: - movs r0, 0 -_080F92F0: - pop {r1} - bx r1 - thumb_func_end sub_80F92BC - - thumb_func_start sub_80F92F4 -sub_80F92F4: @ 80F92F4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _080F9314 - ldr r0, _080F930C @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - ldr r0, _080F9310 @ =0x00001919 - cmp r1, r0 - bne _080F9314 - movs r0, 0 - b _080F9316 - .align 2, 0 -_080F930C: .4byte gSaveBlock1 -_080F9310: .4byte 0x00001919 -_080F9314: - movs r0, 0x1 -_080F9316: - pop {r1} - bx r1 - thumb_func_end sub_80F92F4 - - thumb_func_start sub_80F931C -sub_80F931C: @ 80F931C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl is_c1_link_related_active - cmp r0, 0x1 - bne _080F933C - adds r0, r4, 0 - bl itemid_is_mail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F933C - movs r0, 0 - b _080F933E -_080F933C: - movs r0, 0x1 -_080F933E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F931C - - thumb_func_start sub_80F9344 -sub_80F9344: @ 80F9344 - push {lr} - bl is_c1_link_related_active - cmp r0, 0x1 - beq _080F9356 - ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F9360 -_080F9356: - movs r0, 0x1 - b _080F9362 - .align 2, 0 -_080F935C: .4byte gReceivedRemoteLinkPlayers -_080F9360: - movs r0, 0 -_080F9362: - pop {r1} - bx r1 - thumb_func_end sub_80F9344 - - thumb_func_start sub_80F9368 -sub_80F9368: @ 80F9368 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0xE - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x14 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _080F9430 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080F9434 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080F93C6: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _080F93C6 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _080F9430 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9430: .4byte 0x040000d4 -_080F9434: .4byte 0x81000800 - thumb_func_end sub_80F9368 - - thumb_func_start sub_80F9438 -sub_80F9438: @ 80F9438 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_80F9438 - - thumb_func_start sub_80F944C -sub_80F944C: @ 80F944C - push {r4,lr} - movs r2, 0 - ldr r4, _080F9478 @ =gUnknown_020388C0 - movs r3, 0xFF -_080F9454: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080F9454 - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080F947C @ =gUnknown_083E5968 - bl LoadSpritePalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9478: .4byte gUnknown_020388C0 -_080F947C: .4byte gUnknown_083E5968 - thumb_func_end sub_80F944C - - thumb_func_start sub_80F9480 -sub_80F9480: @ 80F9480 - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - cmp r2, r1 - bcs _080F949E - movs r4, 0xFF -_080F9490: - adds r0, r3, r2 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080F9490 -_080F949E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F9480 - - thumb_func_start sub_80F94A4 -sub_80F94A4: @ 80F94A4 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r3, 16 - lsrs r2, r3, 16 - cmp r4, 0x5 - bhi _080F94E8 - ldrb r0, [r5] - cmp r0, 0xFF - bne _080F94D0 - ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] -_080F94D0: - subs r0, r4, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F94F4 @ =gSprites - adds r0, r1 - adds r1, r4, 0 - bl StartSpriteAnim -_080F94E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F94F0: .4byte gSpriteTemplate_83E5A00 -_080F94F4: .4byte gSprites - thumb_func_end sub_80F94A4 - - thumb_func_start sub_80F94F8 -sub_80F94F8: @ 80F94F8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9516 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F951C @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9516: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F951C: .4byte gSprites - thumb_func_end sub_80F94F8 - - thumb_func_start sub_80F9520 -sub_80F9520: @ 80F9520 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080F9526: - adds r0, r5, r4 - bl sub_80F94F8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080F9526 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F9520 - - thumb_func_start sub_80F953C -sub_80F953C: @ 80F953C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r4, 0x3 - bls _080F9550 - b _080F9790 -_080F9550: - cmp r4, 0x1 - beq _080F95F6 - cmp r4, 0x1 - bgt _080F9564 - cmp r4, 0 - beq _080F9578 - ldr r5, _080F9560 @ =gUnknown_020388C0 - b _080F977A - .align 2, 0 -_080F9560: .4byte gUnknown_020388C0 -_080F9564: - cmp r4, 0x2 - bne _080F956A - b _080F967C -_080F956A: - cmp r4, 0x3 - bne _080F9570 - b _080F96F8 -_080F9570: - ldr r5, _080F9574 @ =gUnknown_020388C0 - b _080F977A - .align 2, 0 -_080F9574: .4byte gUnknown_020388C0 -_080F9578: - ldr r0, _080F95D8 @ =gUnknown_020388C0 - ldrb r1, [r0] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9584 - b _080F977A -_080F9584: - ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] - ldr r3, _080F95E0 @ =gSprites - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F95E4 @ =0x0000ffff - strh r1, [r0, 0x32] - ldrb r0, [r5, 0x1] - cmp r0, 0xFF - beq _080F95E8 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - b _080F9650 - .align 2, 0 -_080F95D8: .4byte gUnknown_020388C0 -_080F95DC: .4byte gSpriteTemplate_83E59D0 -_080F95E0: .4byte gSprites -_080F95E4: .4byte 0x0000ffff -_080F95E8: - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x34] - b _080F977A -_080F95F6: - ldr r0, _080F9660 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x1] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9602 - b _080F977A -_080F9602: - ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x1] - ldr r3, _080F9668 @ =gSprites - ldrb r1, [r5, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x32] - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F966C - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] -_080F9650: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x34] - strh r0, [r1, 0x34] - b _080F977A - .align 2, 0 -_080F9660: .4byte gUnknown_020388C0 -_080F9664: .4byte gSpriteTemplate_83E59D0 -_080F9668: .4byte gSprites -_080F966C: - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strh r0, [r1, 0x34] - b _080F977A -_080F967C: - ldr r0, _080F96E4 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x2] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x2] - ldr r3, _080F96EC @ =gSprites - ldrb r1, [r5, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F96F0 @ =0x0000ffff - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x3] - cmp r0, 0xFF - beq _080F96F4 - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F96E4: .4byte gUnknown_020388C0 -_080F96E8: .4byte gSpriteTemplate_83E59E8 -_080F96EC: .4byte gSprites -_080F96F0: .4byte 0x0000ffff -_080F96F4: - ldrb r0, [r5, 0x2] - b _080F976E -_080F96F8: - ldr r0, _080F9760 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x3] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x3] - ldr r3, _080F9768 @ =gSprites - ldrb r1, [r5, 0x3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - beq _080F976C - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F9760: .4byte gUnknown_020388C0 -_080F9764: .4byte gSpriteTemplate_83E59E8 -_080F9768: .4byte gSprites -_080F976C: - ldrb r0, [r5, 0x3] -_080F976E: - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 -_080F9778: - strh r0, [r1, 0x30] -_080F977A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9798 @ =gSprites - adds r0, r1 - movs r1, 0x1 - ands r1, r4 - bl StartSpriteAnim -_080F9790: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9798: .4byte gSprites - thumb_func_end sub_80F953C - - thumb_func_start sub_80F979C -sub_80F979C: @ 80F979C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r2, 0x3 - bhi _080F97D4 - ldr r0, _080F97D8 @ =gUnknown_020388C0 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F97D4 - ldr r2, _080F97DC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - movs r0, 0x1 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] -_080F97D4: - pop {r0} - bx r0 - .align 2, 0 -_080F97D8: .4byte gUnknown_020388C0 -_080F97DC: .4byte gSprites - thumb_func_end sub_80F979C - - thumb_func_start SetBgTilemapBuffer -SetBgTilemapBuffer: @ 80F97E0 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080F9808 - ldr r0, _080F9810 @ =gUnknown_020388C0 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9808 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9814 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9808: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9810: .4byte gUnknown_020388C0 -_080F9814: .4byte gSprites - thumb_func_end SetBgTilemapBuffer - - thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed -InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 - push {lr} - ldr r0, _080F9824 @ =gUnknown_083E5968 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_080F9824: .4byte gUnknown_083E5968 - thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed - - thumb_func_start BuyMenuFreeMemory -BuyMenuFreeMemory: @ 80F9828 - push {lr} - movs r0, 0x6 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end BuyMenuFreeMemory - - thumb_func_start sub_80F9834 -sub_80F9834: @ 80F9834 - push {lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9848 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] -_080F9848: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9858 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_080F9858: - ldrh r1, [r2, 0x30] - adds r1, 0x1 - movs r3, 0 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _080F9870 - strh r3, [r2, 0x30] -_080F9870: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0x2 - ble _080F987A - strh r3, [r2, 0x34] -_080F987A: - movs r0, 0x24 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F988A - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F988C -_080F988A: - strh r3, [r2, 0x24] -_080F988C: - movs r0, 0x26 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F989C - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F98A0 -_080F989C: - movs r0, 0 - strh r0, [r2, 0x26] -_080F98A0: - pop {r0} - bx r0 - thumb_func_end sub_80F9834 - - thumb_func_start sub_80F98A4 -sub_80F98A4: @ 80F98A4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F98D0 @ =gUnknown_020388C0 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F98CA - cmp r1, 0x3 - bhi _080F98CA - ldr r2, _080F98D4 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F98D8 @ =SpriteCallbackDummy - str r1, [r0] -_080F98CA: - pop {r0} - bx r0 - .align 2, 0 -_080F98D0: .4byte gUnknown_020388C0 -_080F98D4: .4byte gSprites -_080F98D8: .4byte SpriteCallbackDummy - thumb_func_end sub_80F98A4 - - thumb_func_start sub_80F98DC -sub_80F98DC: @ 80F98DC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9908 @ =gUnknown_020388C0 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F9902 - cmp r1, 0x3 - bhi _080F9902 - ldr r2, _080F990C @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F9910 @ =sub_80F9834 - str r1, [r0] -_080F9902: - pop {r0} - bx r0 - .align 2, 0 -_080F9908: .4byte gUnknown_020388C0 -_080F990C: .4byte gSprites -_080F9910: .4byte sub_80F9834 - thumb_func_end sub_80F98DC - - thumb_func_start sub_80F9914 -sub_80F9914: @ 80F9914 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9964 @ =gUnknown_020388C0 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F995C - cmp r1, 0x3 - bhi _080F995C - ldr r3, _080F9968 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x34] -_080F995C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9964: .4byte gUnknown_020388C0 -_080F9968: .4byte gSprites - thumb_func_end sub_80F9914 - - thumb_func_start sub_80F996C -sub_80F996C: @ 80F996C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80F98A4 - adds r0, r4, 0 - bl sub_80F9914 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F996C - - thumb_func_start sub_80F9988 -sub_80F9988: @ 80F9988 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, _080F99C4 @ =gUnknown_020388C0 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F99BE - cmp r2, 0x3 - bhi _080F99BE - ldr r2, _080F99C8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080F99BE: - pop {r0} - bx r0 - .align 2, 0 -_080F99C4: .4byte gUnknown_020388C0 -_080F99C8: .4byte gSprites - thumb_func_end sub_80F9988 - - thumb_func_start sub_80F99CC -sub_80F99CC: @ 80F99CC - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A04 @ =sub_80F9A8C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A08 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x2 - strh r0, [r1, 0x8] - subs r0, 0x3 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A04: .4byte sub_80F9A8C -_080F9A08: .4byte gTasks - thumb_func_end sub_80F99CC - - thumb_func_start sub_80F9A0C -sub_80F9A0C: @ 80F9A0C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A44 @ =sub_80F9A8C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A48 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x3 - strh r0, [r1, 0x8] - subs r0, 0x4 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A44: .4byte sub_80F9A8C -_080F9A48: .4byte gTasks - thumb_func_end sub_80F9A0C - - thumb_func_start sub_80F9A4C -sub_80F9A4C: @ 80F9A4C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _080F9A84 @ =sub_80F9A8C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080F9A88 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x7 - strh r0, [r1, 0x8] - subs r0, 0x8 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080F9A84: .4byte sub_80F9A8C -_080F9A88: .4byte gTasks - thumb_func_end sub_80F9A4C - - thumb_func_start sub_80F9A8C -sub_80F9A8C: @ 80F9A8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _080F9AC4 @ =gPaletteFade - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9ABE - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080F9AC8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0 - bl OpenPartyMenu - adds r0, r4, 0 - bl DestroyTask -_080F9ABE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9AC4: .4byte gPaletteFade -_080F9AC8: .4byte gTasks - thumb_func_end sub_80F9A8C - - thumb_func_start sub_80F9ACC -sub_80F9ACC: @ 80F9ACC - push {r4,r5,lr} - ldr r1, _080F9AEC @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _080F9AE2 - b _080F9BF6 -_080F9AE2: - lsls r0, 2 - ldr r1, _080F9AF0 @ =_080F9AF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9AEC: .4byte 0x0201b000 -_080F9AF0: .4byte _080F9AF4 - .align 2, 0 -_080F9AF4: - .4byte _080F9B14 - .4byte _080F9B54 - .4byte _080F9B5A - .4byte _080F9B6E - .4byte _080F9B98 - .4byte _080F9B9E - .4byte _080F9BB0 - .4byte _080F9BC8 -_080F9B14: - ldr r0, _080F9B3C @ =0x00000266 - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _080F9B40 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r3, r0 - bge _080F9B48 - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _080F9B44 @ =gPlayerParty - adds r2, r3 - bl sub_806D90C - b _080F9BF0 - .align 2, 0 -_080F9B3C: .4byte 0x00000266 -_080F9B40: .4byte gPlayerPartyCount -_080F9B44: .4byte gPlayerParty -_080F9B48: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9BBC -_080F9B54: - bl sub_806DA98 - b _080F9BB4 -_080F9B5A: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _080F9BBC -_080F9B6E: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F9B94 @ =0x00000266 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9BF0 - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9BBC - .align 2, 0 -_080F9B94: .4byte 0x00000266 -_080F9B98: - bl sub_806E334 - b _080F9BB4 -_080F9B9E: - bl sub_806E0C4 - ldr r1, _080F9BAC @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _080F9BBC - .align 2, 0 -_080F9BAC: .4byte 0x0201b000 -_080F9BB0: - bl sub_80F9C00 -_080F9BB4: - ldr r1, _080F9BC4 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 -_080F9BBC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080F9BF6 - .align 2, 0 -_080F9BC4: .4byte 0x0201b000 -_080F9BC8: - ldr r0, _080F9BEC @ =0x00000266 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9BF0 - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _080F9BF8 - .align 2, 0 -_080F9BEC: .4byte 0x00000266 -_080F9BF0: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9BF6: - movs r0, 0 -_080F9BF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F9ACC - - thumb_func_start sub_80F9C00 -sub_80F9C00: @ 80F9C00 - push {r4,lr} - movs r4, 0 - b _080F9C58 -_080F9C06: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F9C24 @ =gPlayerParty - adds r0, r1 - bl sub_80AE47C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080F9C52 - lsls r0, 2 - ldr r1, _080F9C28 @ =_080F9C2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9C24: .4byte gPlayerParty -_080F9C28: .4byte _080F9C2C - .align 2, 0 -_080F9C2C: - .4byte _080F9C40 - .4byte _080F9C4A - .4byte _080F9C4A - .4byte _080F9C40 - .4byte _080F9C40 -_080F9C40: - adds r0, r4, 0 - movs r1, 0x7E - bl sub_806BC3C - b _080F9C52 -_080F9C4A: - adds r0, r4, 0 - movs r1, 0x70 - bl sub_806BC3C -_080F9C52: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080F9C58: - ldr r0, _080F9C68 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080F9C06 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9C68: .4byte gPlayerPartyCount - thumb_func_end sub_80F9C00 - - thumb_func_start sub_80F9C6C -sub_80F9C6C: @ 80F9C6C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F9C94 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9CD8 - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080F9C98 - cmp r0, 0x2 - beq _080F9CC0 - b _080F9CD8 - .align 2, 0 -_080F9C94: .4byte gPaletteFade -_080F9C98: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _080F9CB8 @ =gUnknown_02038694 - strb r0, [r1] - ldr r2, _080F9CBC @ =gUnknown_0202E8CC - ldrb r0, [r1] - strh r0, [r2] - adds r0, r4, 0 - bl sub_8123138 - b _080F9CD8 - .align 2, 0 -_080F9CB8: .4byte gUnknown_02038694 -_080F9CBC: .4byte gUnknown_0202E8CC -_080F9CC0: - movs r0, 0x5 - bl PlaySE - ldr r1, _080F9CE0 @ =gUnknown_02038694 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _080F9CE4 @ =gUnknown_0202E8CC - movs r0, 0xFF - strh r0, [r1] - adds r0, r4, 0 - bl sub_8123138 -_080F9CD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9CE0: .4byte gUnknown_02038694 -_080F9CE4: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F9C6C - - thumb_func_start sub_80F9CE8 -sub_80F9CE8: @ 80F9CE8 - push {r4,r5,lr} - ldr r1, _080F9D08 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x7 - bls _080F9CFE - b _080F9E12 -_080F9CFE: - lsls r0, 2 - ldr r1, _080F9D0C @ =_080F9D10 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F9D08: .4byte 0x0201b000 -_080F9D0C: .4byte _080F9D10 - .align 2, 0 -_080F9D10: - .4byte _080F9D30 - .4byte _080F9D70 - .4byte _080F9D76 - .4byte _080F9D8A - .4byte _080F9DB4 - .4byte _080F9DBA - .4byte _080F9DCC - .4byte _080F9DE4 -_080F9D30: - ldr r0, _080F9D58 @ =0x00000266 - adds r5, r4, r0 - movs r1, 0 - ldrsh r3, [r5, r1] - ldr r0, _080F9D5C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r3, r0 - bge _080F9D64 - movs r2, 0x98 - lsls r2, 2 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r1, [r5] - movs r2, 0x64 - muls r2, r3 - ldr r3, _080F9D60 @ =gPlayerParty - adds r2, r3 - bl sub_806D90C - b _080F9E0C - .align 2, 0 -_080F9D58: .4byte 0x00000266 -_080F9D5C: .4byte gPlayerPartyCount -_080F9D60: .4byte gPlayerParty -_080F9D64: - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9DD8 -_080F9D70: - bl sub_806DA98 - b _080F9DD0 -_080F9D76: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_806DC34 - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 - b _080F9DD8 -_080F9D8A: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _080F9DB0 @ =0x00000266 - adds r5, r4, r2 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9E0C - movs r0, 0 - strh r0, [r5] - movs r0, 0x99 - lsls r0, 2 - adds r1, r4, r0 - b _080F9DD8 - .align 2, 0 -_080F9DB0: .4byte 0x00000266 -_080F9DB4: - bl sub_806E334 - b _080F9DD0 -_080F9DBA: - bl sub_806E0C4 - ldr r1, _080F9DC8 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _080F9DD8 - .align 2, 0 -_080F9DC8: .4byte 0x0201b000 -_080F9DCC: - bl sub_80F9E1C -_080F9DD0: - ldr r1, _080F9DE0 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 -_080F9DD8: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080F9E12 - .align 2, 0 -_080F9DE0: .4byte 0x0201b000 -_080F9DE4: - ldr r0, _080F9E08 @ =0x00000266 - adds r5, r4, r0 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9E0C - movs r1, 0 - strh r1, [r5] - movs r2, 0x99 - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - movs r0, 0x1 - b _080F9E14 - .align 2, 0 -_080F9E08: .4byte 0x00000266 -_080F9E0C: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9E12: - movs r0, 0 -_080F9E14: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F9CE8 - - thumb_func_start sub_80F9E1C -sub_80F9E1C: @ 80F9E1C - push {r4,lr} - movs r4, 0 - b _080F9E52 -_080F9E22: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080F9E40 @ =gPlayerParty - adds r0, r1 - bl sub_8040574 - lsls r0, 24 - cmp r0, 0 - bne _080F9E44 - adds r0, r4, 0 - movs r1, 0x9A - bl sub_806BC3C - b _080F9E4C - .align 2, 0 -_080F9E40: .4byte gPlayerParty -_080F9E44: - adds r0, r4, 0 - movs r1, 0x8C - bl sub_806BC3C -_080F9E4C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080F9E52: - ldr r0, _080F9E60 @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r4, r0 - bcc _080F9E22 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9E60: .4byte gPlayerPartyCount - thumb_func_end sub_80F9E1C - - thumb_func_start sub_80F9E64 -sub_80F9E64: @ 80F9E64 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080F9E8C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F9EE2 - adds r0, r6, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080F9E90 - cmp r0, 0x2 - beq _080F9ED0 - b _080F9EE2 - .align 2, 0 -_080F9E8C: .4byte gPaletteFade -_080F9E90: - movs r0, 0x5 - bl PlaySE - ldr r4, _080F9EC4 @ =gUnknown_0202E8CC - adds r0, r6, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r5, _080F9EC8 @ =gUnknown_0202E8CE - ldrh r1, [r4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080F9ECC @ =gPlayerParty - adds r0, r1 - bl sub_8040574 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - adds r0, r6, 0 - bl sub_8123138 - b _080F9EE2 - .align 2, 0 -_080F9EC4: .4byte gUnknown_0202E8CC -_080F9EC8: .4byte gUnknown_0202E8CE -_080F9ECC: .4byte gPlayerParty -_080F9ED0: - movs r0, 0x5 - bl PlaySE - ldr r1, _080F9EE8 @ =gUnknown_0202E8CC - movs r0, 0xFF - strh r0, [r1] - adds r0, r6, 0 - bl sub_8123138 -_080F9EE2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9EE8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80F9E64 - - thumb_func_start sub_80F9EEC -sub_80F9EEC: @ 80F9EEC - push {r4,lr} - sub sp, 0x4 - ldr r0, _080F9F20 @ =gPlayerParty - ldr r1, _080F9F24 @ =gUnknown_0202E8CC - ldrb r1, [r1] - ldr r2, _080F9F28 @ =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch - movs r4, 0 - str r4, [sp] - bl sub_809D9F0 - ldr r1, _080F9F30 @ =0x02018000 - movs r0, 0x3 - strb r0, [r1, 0x8] - ldr r1, _080F9F34 @ =gUnknown_0300485C - ldr r0, _080F9F38 @ =sub_8080990 - str r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9F20: .4byte gPlayerParty -_080F9F24: .4byte gUnknown_0202E8CC -_080F9F28: .4byte gPlayerPartyCount -_080F9F2C: .4byte c2_exit_to_overworld_2_switch -_080F9F30: .4byte 0x02018000 -_080F9F34: .4byte gUnknown_0300485C -_080F9F38: .4byte sub_8080990 - thumb_func_end sub_80F9EEC - - thumb_func_start sub_80F9F3C -sub_80F9F3C: @ 80F9F3C - push {r4,r5,lr} - ldr r1, _080F9F78 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - movs r4, 0 - adds r5, r1, 0 -_080F9F48: - ldr r0, _080F9F7C @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080F9F80 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - adds r1, 0xD - bl GetMonData - cmp r0, 0 - beq _080F9F66 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080F9F66: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080F9F48 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9F78: .4byte gScriptResult -_080F9F7C: .4byte gUnknown_0202E8CC -_080F9F80: .4byte gPlayerParty - thumb_func_end sub_80F9F3C - - thumb_func_start sub_80F9F84 -sub_80F9F84: @ 80F9F84 - push {r4,r5,lr} - ldr r0, _080F9FC4 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, _080F9FC8 @ =gPlayerParty - adds r5, r0 - ldr r0, _080F9FCC @ =gUnknown_0202E8CE - ldrh r1, [r0] - adds r1, 0xD - adds r0, r5, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r1, _080F9FD0 @ =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r0, _080F9FD4 @ =gStringVar2 - movs r1, 0xD - muls r1, r4 - ldr r2, _080F9FD8 @ =gMoveNames - adds r1, r2 - bl StringCopy - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9FC4: .4byte gUnknown_0202E8CC -_080F9FC8: .4byte gPlayerParty -_080F9FCC: .4byte gUnknown_0202E8CE -_080F9FD0: .4byte gStringVar1 -_080F9FD4: .4byte gStringVar2 -_080F9FD8: .4byte gMoveNames - thumb_func_end sub_80F9F84 - - thumb_func_start sub_80F9FDC -sub_80F9FDC: @ 80F9FDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r0, 0xD - str r0, [sp, 0x8] - mov r0, r8 - ldr r1, [sp, 0x8] - bl GetMonData - mov r1, sp - adds r1, 0x2 - str r1, [sp, 0x14] - strh r0, [r1] - adds r3, r4, 0 - adds r3, 0xD - str r3, [sp, 0xC] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r7, r5, 0 - adds r7, 0x11 - str r7, [sp, 0x10] - mov r0, r8 - adds r1, r7, 0 - bl GetMonData - mov r1, sp - adds r1, 0x5 - str r1, [sp, 0x18] - strb r0, [r1] - adds r3, r4, 0 - adds r3, 0x11 - str r3, [sp, 0x1C] - mov r0, r8 - adds r1, r3, 0 - bl GetMonData - add r7, sp, 0x4 - mov r10, r7 - strb r0, [r7] - mov r0, r8 - movs r1, 0x15 - bl GetMonData - mov r6, sp - adds r6, 0x6 - strb r0, [r6] - ldr r1, _080FA0D8 @ =gUnknown_08208238 - adds r0, r5, r1 - ldrb r0, [r0] - mov r9, r0 - ldrb r0, [r6] - adds r2, r0, 0 - mov r3, r9 - ands r2, r3 - lsls r5, 1 - asrs r2, r5 - lsls r2, 24 - lsrs r2, 24 - adds r1, r4, r1 - ldrb r3, [r1] - adds r1, r0, 0 - ands r1, r3 - lsls r4, 1 - asrs r1, r4 - lsls r1, 24 - lsrs r1, 24 - mov r7, r9 - bics r0, r7 - strb r0, [r6] - ldrb r0, [r6] - bics r0, r3 - strb r0, [r6] - lsls r2, r4 - lsls r1, r5 - adds r2, r1 - ldrb r0, [r6] - orrs r0, r2 - strb r0, [r6] - mov r0, r8 - ldr r1, [sp, 0x8] - mov r2, sp - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x14] - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0x10] - mov r2, r10 - bl SetMonData - mov r0, r8 - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x18] - bl SetMonData - mov r0, r8 - movs r1, 0x15 - adds r2, r6, 0 - bl SetMonData - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA0D8: .4byte gUnknown_08208238 - thumb_func_end sub_80F9FDC - - thumb_func_start sub_80FA0DC -sub_80FA0DC: @ 80FA0DC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _080FA13C @ =gUnknown_0202E8CC - mov r8, r0 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _080FA140 @ =gPlayerParty - adds r0, r5 - ldr r4, _080FA144 @ =gUnknown_0202E8CE - ldrb r2, [r4] - movs r1, 0 - bl SetMonMoveSlot - mov r1, r8 - ldrh r0, [r1] - muls r0, r6 - adds r0, r5 - ldrb r1, [r4] - bl RemoveMonPPBonus - ldrh r4, [r4] - cmp r4, 0x2 - bhi _080FA130 -_080FA10E: - ldr r0, _080FA13C @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080FA140 @ =gPlayerParty - adds r0, r1 - lsls r1, r4, 24 - lsrs r1, 24 - adds r4, 0x1 - lsls r2, r4, 24 - lsrs r2, 24 - bl sub_80F9FDC - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0x2 - bls _080FA10E -_080FA130: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FA13C: .4byte gUnknown_0202E8CC -_080FA140: .4byte gPlayerParty -_080FA144: .4byte gUnknown_0202E8CE - thumb_func_end sub_80FA0DC - - thumb_func_start sub_80FA148 -sub_80FA148: @ 80FA148 - push {r4,lr} - ldr r0, _080FA170 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080FA174 @ =gPlayerParty - adds r0, r1 - ldr r4, _080FA178 @ =gScriptResult - movs r1, 0 - strh r1, [r4] - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _080FA16A - movs r0, 0x1 - strh r0, [r4] -_080FA16A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA170: .4byte gUnknown_0202E8CC -_080FA174: .4byte gPlayerParty -_080FA178: .4byte gScriptResult - thumb_func_end sub_80FA148 - - thumb_func_start sub_80FA17C -sub_80FA17C: @ 80FA17C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - ldr r7, _080FA1B4 @ =gSaveBlock1 - ldr r0, _080FA1B8 @ =0x00002dd4 - adds r0, r7 - mov r9, r0 - movs r1, 0x1 - mov r8, r1 -_080FA192: - movs r0, 0xA - bl sub_80EB72C - lsls r4, r6, 3 - adds r5, r4, r7 - ldr r2, _080FA1BC @ =0x00002dd8 - adds r1, r5, r2 - strh r0, [r1] - bl Random - mov r1, r8 - ands r1, r0 - cmp r1, 0 - beq _080FA1C0 - movs r0, 0xC - b _080FA1C2 - .align 2, 0 -_080FA1B4: .4byte gSaveBlock1 -_080FA1B8: .4byte 0x00002dd4 -_080FA1BC: .4byte 0x00002dd8 -_080FA1C0: - movs r0, 0xD -_080FA1C2: - bl sub_80EB72C - ldr r2, _080FA214 @ =0x00002dda - adds r1, r5, r2 - strh r0, [r1] - bl Random - adds r3, r4, r7 - mov r2, r8 - ands r2, r0 - ldr r5, _080FA218 @ =0x00002dd5 - adds r3, r5 - lsls r2, 6 - ldrb r0, [r3] - movs r5, 0x41 - negs r5, r5 - adds r1, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - mov r1, r9 - adds r0, r4, r1 - bl sub_80FA740 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA192 - ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4 - movs r1, 0x5 - movs r2, 0 - bl sub_80FA46C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA214: .4byte 0x00002dda -_080FA218: .4byte 0x00002dd5 -_080FA21C: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA17C - - thumb_func_start sub_80FA220 -sub_80FA220: @ 80FA220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FA236 - b _080FA34E -_080FA236: - lsls r0, r1, 2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - mov r10, r0 - movs r1, 0x7F - mov r9, r1 - movs r2, 0x80 - negs r2, r2 - mov r8, r2 -_080FA24A: - ldr r2, [sp] - mov r4, r10 - lsls r0, r4, 3 - ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4 - adds r5, r0, r1 - ldrb r6, [r5, 0x1] - movs r0, 0x40 - ands r0, r6 - cmp r0, 0 - bne _080FA2A0 - ldrb r4, [r5] - lsls r3, r4, 25 - lsrs r1, r3, 25 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r1, r0 - bcc _080FA290 - adds r0, r1, 0 - subs r0, r2 - mov r2, r9 - ands r0, r2 - mov r1, r8 - ands r1, r4 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x7F - ands r1, r0 - cmp r1, 0 - bne _080FA336 - movs r0, 0x40 - orrs r0, r6 - b _080FA334 - .align 2, 0 -_080FA28C: .4byte gSaveBlock1 + 0x2DD4 -_080FA290: - lsrs r0, r3, 25 - subs r2, r0 - mov r0, r8 - ands r0, r4 - strb r0, [r5] - movs r0, 0x40 - orrs r0, r6 - strb r0, [r5, 0x1] -_080FA2A0: - ldrb r7, [r5] - lsls r0, r7, 25 - lsrs r0, 25 - adds r4, r0, r2 - ldrh r0, [r5] - lsls r6, r0, 18 - lsls r0, r4, 16 - lsrs r0, 16 - lsrs r1, r6, 25 - cmp r0, r1 - bls _080FA310 - adds r0, r4, 0 - bl __umodsi3 - adds r3, r0, 0 - lsrs r1, r6, 25 - adds r0, r4, 0 - str r3, [sp, 0x4] - bl __udivsi3 - adds r4, r0, 0 - movs r0, 0x1 - eors r4, r0 - ands r4, r0 - lsls r2, r4, 6 - ldrb r0, [r5, 0x1] - movs r4, 0x41 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x1] - movs r1, 0x40 - ands r0, r1 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _080FA2FA - adds r1, r3, 0 - mov r0, r9 - ands r1, r0 - mov r0, r8 - ands r0, r7 - orrs r0, r1 - strb r0, [r5] - b _080FA336 -_080FA2FA: - ldrh r0, [r5] - lsls r0, 18 - lsrs r0, 25 - subs r0, r3 - mov r1, r9 - ands r0, r1 - mov r1, r8 - ands r1, r7 - orrs r1, r0 - strb r1, [r5] - b _080FA336 -_080FA310: - mov r2, r9 - ands r4, r2 - mov r0, r8 - ands r0, r7 - orrs r0, r4 - strb r0, [r5] - lsls r0, 25 - ldrh r1, [r5] - lsls r1, 18 - lsrs r0, 25 - lsrs r1, 25 - cmp r0, r1 - bne _080FA336 - ldrb r0, [r5, 0x1] - movs r4, 0x41 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 -_080FA334: - strb r0, [r5, 0x1] -_080FA336: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - cmp r0, 0x4 - bls _080FA24A - ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4 - movs r1, 0x5 - movs r2, 0 - bl sub_80FA46C -_080FA34E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA360: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA220 - - thumb_func_start sub_80FA364 -sub_80FA364: @ 80FA364 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - adds r0, r4, 0 - bl sub_80FA7C8 - lsls r0, 24 - cmp r0, 0 - bne _080FA462 - ldr r5, _080FA3B4 @ =0x00000833 - adds r0, r5, 0 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FA3C8 - adds r0, r5, 0 - bl FlagSet - ldr r0, _080FA3B8 @ =0x00000834 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _080FA3C8 - ldr r1, _080FA3BC @ =gSaveBlock1 - ldrh r2, [r4] - ldr r3, _080FA3C0 @ =0x00002dd8 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r4, 0x2] - ldr r2, _080FA3C4 @ =0x00002dda - adds r1, r2 - strh r0, [r1] - movs r0, 0x1 - b _080FA464 - .align 2, 0 -_080FA3B4: .4byte 0x00000833 -_080FA3B8: .4byte 0x00000834 -_080FA3BC: .4byte gSaveBlock1 -_080FA3C0: .4byte 0x00002dd8 -_080FA3C4: .4byte 0x00002dda -_080FA3C8: - ldrh r1, [r4, 0x2] - lsls r1, 16 - ldrh r0, [r4] - orrs r0, r1 - str r0, [sp, 0x4] - movs r1, 0x80 - lsls r1, 7 - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] - mov r0, sp - bl sub_80FA740 - movs r6, 0 -_080FA3E4: - lsls r4, r6, 3 - ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4 - adds r1, r4, r5 - mov r0, sp - movs r2, 0 - bl atk90_changetypestoenemyattacktype - lsls r0, 24 - adds r7, r4, 0 - cmp r0, 0 - beq _080FA450 - movs r3, 0x4 - ldr r0, _080FA448 @ =0xffffd22c - adds r0, r5 - mov r12, r0 - cmp r3, r6 - bls _080FA428 - mov r5, r12 - ldr r4, _080FA44C @ =0x00002dd4 -_080FA40A: - lsls r2, r3, 3 - adds r2, r5 - adds r2, r4 - subs r3, 0x1 - lsls r0, r3, 3 - adds r0, r5 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsls r3, 16 - lsrs r3, 16 - cmp r3, r6 - bhi _080FA40A -_080FA428: - mov r3, r12 - adds r2, r7, r3 - ldr r0, _080FA44C @ =0x00002dd4 - adds r2, r0 - ldr r0, [sp] - ldr r1, [sp, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0 - cmp r6, 0 - bne _080FA464 - movs r0, 0x1 - b _080FA464 - .align 2, 0 -_080FA444: .4byte gSaveBlock1 + 0x2DD4 -_080FA448: .4byte 0xffffd22c -_080FA44C: .4byte 0x00002dd4 -_080FA450: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA3E4 - ldr r0, [sp] - ldr r1, [sp, 0x4] - str r0, [r5, 0x20] - str r1, [r5, 0x24] -_080FA462: - movs r0, 0 -_080FA464: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FA364 - - thumb_func_start sub_80FA46C -sub_80FA46C: @ 80FA46C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r2, 0 - cmp r2, r7 - bcs _080FA4D4 -_080FA488: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, r7 - bcs _080FA4CA - lsls r0, r2, 3 - mov r1, r9 - adds r6, r1, r0 -_080FA49A: - lsls r0, r5, 3 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, r10 - bl atk90_changetypestoenemyattacktype - lsls r0, 24 - cmp r0, 0 - beq _080FA4C0 - ldr r2, [r4] - ldr r3, [r4, 0x4] - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - str r2, [r6] - str r3, [r6, 0x4] -_080FA4C0: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r7 - bcc _080FA49A -_080FA4CA: - mov r1, r8 - lsls r0, r1, 16 - lsrs r2, r0, 16 - cmp r2, r7 - bcc _080FA488 -_080FA4D4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FA46C - - thumb_func_start sub_80FA4E4 -sub_80FA4E4: @ 80FA4E4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r5, r1, 0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r4, 0 - cmp r4, r8 - bcs _080FA520 -_080FA500: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080FA554 @ =0x02007800 - adds r0, r1 - adds r1, r4, 0 - muls r1, r5 - adds r1, r6, r1 - movs r2, 0x28 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _080FA500 -_080FA520: - ldr r5, _080FA554 @ =0x02007800 - movs r0, 0x80 - lsls r0, 1 - adds r3, r5, r0 - movs r7, 0 - movs r4, 0 - cmp r4, r8 - bcs _080FA588 -_080FA530: - movs r6, 0 -_080FA532: - adds r0, r5, 0 - adds r1, r7, 0 - str r3, [sp] - bl sub_80FA828 - lsls r0, 16 - asrs r0, 16 - ldr r3, [sp] - cmp r0, 0 - bge _080FA558 - ldr r0, [r5] - ldr r1, [r5, 0x4] - stm r3!, {r0,r1} - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080FA572 - .align 2, 0 -_080FA554: .4byte 0x02007800 -_080FA558: - lsls r1, r0, 3 - ldr r0, _080FA5B4 @ =0x02007900 - adds r2, r1, r0 - ldrb r1, [r2] - lsls r1, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bcs _080FA572 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r2] - str r1, [r2, 0x4] -_080FA572: - adds r5, 0x8 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _080FA532 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _080FA530 -_080FA588: - ldr r4, _080FA5B4 @ =0x02007900 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x2 - bl sub_80FA46C - adds r5, r4, 0 - ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4 - movs r4, 0 -_080FA59A: - ldm r5!, {r0,r1} - stm r3!, {r0,r1} - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080FA59A - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FA5B4: .4byte 0x02007900 -_080FA5B8: .4byte gSaveBlock1 + 0x2DD4 - thumb_func_end sub_80FA4E4 - - thumb_func_start sub_80FA5BC -sub_80FA5BC: @ 80FA5BC - push {lr} - ldr r0, _080FA5D8 @ =gUnknown_0202E8CC - ldrh r1, [r0] - lsls r1, 3 - ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4 - adds r1, r0 - ldr r0, _080FA5E0 @ =gStringVar1 - adds r1, 0x4 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertEasyChatWordsToString - pop {r0} - bx r0 - .align 2, 0 -_080FA5D8: .4byte gUnknown_0202E8CC -_080FA5DC: .4byte gSaveBlock1 + 0x2DD4 -_080FA5E0: .4byte gStringVar1 - thumb_func_end sub_80FA5BC - - thumb_func_start sub_80FA5E4 -sub_80FA5E4: @ 80FA5E4 - push {r4,lr} - movs r4, 0 - ldr r3, _080FA630 @ =gSaveBlock1 - ldr r1, _080FA634 @ =0x00002dd4 - adds r0, r3, r1 - ldrb r1, [r0] - lsls r1, 25 - lsrs r1, 25 - ldr r2, _080FA638 @ =0x00002ddc - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 25 - lsrs r0, 25 - subs r1, r0 - cmp r1, 0x1 - bgt _080FA626 - ldr r1, _080FA63C @ =0x00002dd5 - adds r0, r3, r1 - ldrb r1, [r0] - movs r2, 0x40 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FA626 - ldr r1, _080FA640 @ =0x00002ddd - adds r0, r3, r1 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r4, r0, 31 -_080FA626: - ldr r0, _080FA644 @ =gScriptResult - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA630: .4byte gSaveBlock1 -_080FA634: .4byte 0x00002dd4 -_080FA638: .4byte 0x00002ddc -_080FA63C: .4byte 0x00002dd5 -_080FA640: .4byte 0x00002ddd -_080FA644: .4byte gScriptResult - thumb_func_end sub_80FA5E4 - - thumb_func_start sub_80FA648 -sub_80FA648: @ 80FA648 - ldr r2, _080FA664 @ =gScriptResult - ldr r0, _080FA668 @ =gSaveBlock1 - ldr r3, _080FA66C @ =0x00002dd8 - adds r1, r0, r3 - adds r3, 0x2 - adds r0, r3 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080FA664: .4byte gScriptResult -_080FA668: .4byte gSaveBlock1 -_080FA66C: .4byte 0x00002dd8 - thumb_func_end sub_80FA648 - - thumb_func_start atk90_changetypestoenemyattacktype -atk90_changetypestoenemyattacktype: @ 80FA670 - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r2, 0 - cmp r2, 0x1 - beq _080FA6B6 - cmp r2, 0x1 - bgt _080FA68A - cmp r2, 0 - beq _080FA690 - b _080FA732 -_080FA68A: - cmp r0, 0x2 - beq _080FA6E2 - b _080FA732 -_080FA690: - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r0, [r3] - lsls r3, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r3, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r3, 25 - lsrs r0, r2, 25 - b _080FA6DA -_080FA6B6: - ldrh r0, [r3] - lsls r4, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bcc _080FA6DE - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E -_080FA6DA: - cmp r1, r0 - bcs _080FA732 -_080FA6DE: - movs r0, 0 - b _080FA73A -_080FA6E2: - ldrb r0, [r3] - lsls r1, r0, 25 - ldrb r0, [r5] - lsls r0, 25 - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r0, [r3] - lsls r4, r0, 18 - ldrh r0, [r5] - lsls r2, r0, 18 - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bhi _080FA72E - lsrs r1, r4, 25 - lsrs r0, r2, 25 - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x2] - ldrh r0, [r5, 0x2] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x4] - ldrh r0, [r5, 0x4] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE - ldrh r1, [r3, 0x6] - ldrh r0, [r5, 0x6] - cmp r1, r0 - bhi _080FA72E - cmp r1, r0 - bcc _080FA6DE -_080FA72E: - movs r0, 0x1 - b _080FA73A -_080FA732: - bl Random - movs r1, 0x1 - ands r0, r1 -_080FA73A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end atk90_changetypestoenemyattacktype - - thumb_func_start sub_80FA740 -sub_80FA740: @ 80FA740 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x32 - bls _080FA782 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x50 - bls _080FA782 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x62 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_080FA782: - adds r1, r4, 0 - adds r1, 0x1E - movs r0, 0x7F - ands r1, r0 - lsls r1, 7 - ldrh r2, [r5] - ldr r0, _080FA7C4 @ =0xffffc07f - ands r0, r2 - orrs r0, r1 - strh r0, [r5] - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0x1 - bl __modsi3 - adds r0, 0x1E - movs r1, 0x7F - ands r0, r1 - ldrb r2, [r5] - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - bl Random - strh r0, [r5, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FA7C4: .4byte 0xffffc07f - thumb_func_end sub_80FA740 - - thumb_func_start sub_80FA7C8 -sub_80FA7C8: @ 80FA7C8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080FA7CE: - lsls r1, r4, 3 - ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8 - adds r1, r0 - adds r0, r5, 0 - bl sub_80FA7FC - lsls r0, 24 - cmp r0, 0 - beq _080FA7E8 - movs r0, 0x1 - b _080FA7F4 - .align 2, 0 -_080FA7E4: .4byte gSaveBlock1 + 0x2DD8 -_080FA7E8: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080FA7CE - movs r0, 0 -_080FA7F4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FA7C8 - - thumb_func_start sub_80FA7FC -sub_80FA7FC: @ 80FA7FC - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - movs r4, 0 -_080FA804: - ldrh r1, [r3] - ldrh r0, [r2] - adds r2, 0x2 - adds r3, 0x2 - cmp r1, r0 - beq _080FA814 - movs r0, 0 - b _080FA820 -_080FA814: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080FA804 - movs r0, 0x1 -_080FA820: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FA7FC - - thumb_func_start sub_80FA828 -sub_80FA828: @ 80FA828 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r6, _080FA84C @ =0x02007900 - movs r4, 0 - cmp r4, r5 - bge _080FA862 -_080FA838: - adds r1, r6, 0x4 - adds r0, r7, 0x4 - bl sub_80FA7FC - lsls r0, 24 - cmp r0, 0 - beq _080FA850 - lsls r0, r4, 16 - asrs r0, 16 - b _080FA866 - .align 2, 0 -_080FA84C: .4byte 0x02007900 -_080FA850: - adds r6, 0x8 - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, r5 - blt _080FA838 -_080FA862: - movs r0, 0x1 - negs r0, r0 -_080FA866: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FA828 - - thumb_func_start sub_80FA86C -sub_80FA86C: @ 80FA86C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - ldr r2, _080FA890 @ =gUnknown_083E5A20 -_080FA87A: - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _080FA894 - movs r0, 0x1 - ldrsb r0, [r2, r0] - cmp r0, r1 - bne _080FA894 - adds r0, r3, 0x1 - b _080FA89E - .align 2, 0 -_080FA890: .4byte gUnknown_083E5A20 -_080FA894: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x15 - bls _080FA87A - movs r0, 0 -_080FA89E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FA86C - - thumb_func_start unref_sub_80FA8A4 -unref_sub_80FA8A4: @ 80FA8A4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_80FA86C - cmp r0, 0 - beq _080FA8C4 - lsls r0, 3 - ldr r1, _080FA8C0 @ =gUnknown_083E5A18 - adds r0, r1 - b _080FA8C6 - .align 2, 0 -_080FA8C0: .4byte gUnknown_083E5A18 -_080FA8C4: - movs r0, 0 -_080FA8C6: - pop {r1} - bx r1 - thumb_func_end unref_sub_80FA8A4 - - thumb_func_start sub_80FA8CC -sub_80FA8CC: @ 80FA8CC - push {lr} - cmp r0, 0 - beq _080FA8E4 - cmp r0, 0x16 - bhi _080FA8E4 - lsls r0, 3 - ldr r1, _080FA8E0 @ =gUnknown_083E5A18 - adds r0, r1 - b _080FA8E6 - .align 2, 0 -_080FA8E0: .4byte gUnknown_083E5A18 -_080FA8E4: - movs r0, 0 -_080FA8E6: - pop {r1} - bx r1 - thumb_func_end sub_80FA8CC - - thumb_func_start sub_80FA8EC -sub_80FA8EC: @ 80FA8EC - push {lr} - lsls r1, 24 - lsrs r1, 24 - bl sub_80FA904 -_080FA8F6: - bl sub_80FA940 - lsls r0, 24 - cmp r0, 0 - bne _080FA8F6 - pop {r0} - bx r0 - thumb_func_end sub_80FA8EC - - thumb_func_start sub_80FA904 -sub_80FA904: @ 80FA904 - push {r4,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080FA928 @ =gUnknown_020388CC - str r0, [r3] - movs r2, 0x79 - adds r2, r0 - mov r12, r2 - movs r2, 0 - mov r4, r12 - strb r2, [r4] - adds r0, 0x78 - strb r1, [r0] - ldr r3, [r3] - cmp r1, 0 - bne _080FA930 - ldr r0, _080FA92C @ =sub_80FAB78 - b _080FA932 - .align 2, 0 -_080FA928: .4byte gUnknown_020388CC -_080FA92C: .4byte sub_80FAB78 -_080FA930: - ldr r0, _080FA93C @ =sub_80FAD04 -_080FA932: - str r0, [r3, 0x18] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FA93C: .4byte sub_80FAD04 - thumb_func_end sub_80FA904 - - thumb_func_start sub_80FA940 -sub_80FA940: @ 80FA940 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, _080FA95C @ =gUnknown_020388CC - ldr r0, [r0] - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0x7 - bls _080FA952 - b _080FAAE2 -_080FA952: - lsls r0, 2 - ldr r1, _080FA960 @ =_080FA964 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FA95C: .4byte gUnknown_020388CC -_080FA960: .4byte _080FA964 - .align 2, 0 -_080FA964: - .4byte _080FA984 - .4byte _080FA998 - .4byte _080FA9AC - .4byte _080FA9BC - .4byte _080FA9D8 - .4byte _080FA9F4 - .4byte _080FAA38 - .4byte _080FAAB4 -_080FA984: - ldr r0, _080FA990 @ =gUnknown_083E5DA0 - ldr r1, _080FA994 @ =0x06008000 - bl LZ77UnCompVram - b _080FAAF4 - .align 2, 0 -_080FA990: .4byte gUnknown_083E5DA0 -_080FA994: .4byte 0x06008000 -_080FA998: - ldr r0, _080FA9A4 @ =gUnknown_083E6B04 - ldr r1, _080FA9A8 @ =0x0600e000 - bl LZ77UnCompVram - b _080FAAF4 - .align 2, 0 -_080FA9A4: .4byte gUnknown_083E6B04 -_080FA9A8: .4byte 0x0600e000 -_080FA9AC: - ldr r0, _080FA9B8 @ =gUnknown_083E5D60 - movs r1, 0x70 - movs r2, 0x60 - bl LoadPalette - b _080FAAF4 - .align 2, 0 -_080FA9B8: .4byte gUnknown_083E5D60 -_080FA9BC: - ldr r0, _080FA9D0 @ =gUnknown_083E5AF0 - ldr r1, _080FA9D4 @ =gUnknown_020388CC - ldr r1, [r1] - movs r2, 0xC0 - lsls r2, 1 - adds r1, r2 - bl LZ77UnCompWram - b _080FAAF4 - .align 2, 0 -_080FA9D0: .4byte gUnknown_083E5AF0 -_080FA9D4: .4byte gUnknown_020388CC -_080FA9D8: - ldr r0, _080FA9EC @ =gUnknown_083E5B34 - ldr r1, _080FA9F0 @ =gUnknown_020388CC - ldr r1, [r1] - movs r3, 0xA0 - lsls r3, 2 - adds r1, r3 - bl LZ77UnCompWram - b _080FAAF4 - .align 2, 0 -_080FA9EC: .4byte gUnknown_083E5B34 -_080FA9F0: .4byte gUnknown_020388CC -_080FA9F4: - bl sub_80FB32C - ldr r4, _080FAA34 @ =gUnknown_020388CC - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x54 - ldrh r1, [r0] - adds r0, 0x20 - strh r1, [r0] - subs r0, 0x1E - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x76 - strh r0, [r1] - ldrh r0, [r2, 0x14] - bl sub_80FB758 - ldr r1, [r4] - strb r0, [r1, 0x16] - ldr r0, [r4] - ldrh r0, [r0, 0x14] - bl sub_80FB9C0 - adds r1, r0, 0 - ldr r0, [r4] - strh r1, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 - b _080FAAF4 - .align 2, 0 -_080FAA34: .4byte gUnknown_020388CC -_080FAA38: - ldr r0, _080FAA60 @ =gUnknown_020388CC - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x78 - ldrb r1, [r0] - cmp r1, 0 - bne _080FAA64 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80FB170 - b _080FAAF4 - .align 2, 0 -_080FAA60: .4byte gUnknown_020388CC -_080FAA64: - adds r1, r4, 0 - adds r1, 0x54 - ldrh r0, [r1] - lsls r0, 3 - subs r0, 0x34 - adds r2, r4, 0 - adds r2, 0x5C - movs r3, 0 - strh r0, [r2] - movs r5, 0x56 - adds r5, r4 - mov r12, r5 - ldrh r0, [r5] - lsls r0, 3 - subs r0, 0x44 - adds r5, r4, 0 - adds r5, 0x5E - strh r0, [r5] - ldrh r1, [r1] - adds r0, r4, 0 - adds r0, 0x64 - strh r1, [r0] - mov r0, r12 - ldrh r1, [r0] - adds r0, r4, 0 - adds r0, 0x66 - strh r1, [r0] - movs r1, 0 - ldrsh r0, [r2, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - movs r2, 0x80 - str r2, [sp] - str r2, [sp, 0x4] - str r3, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - b _080FAAF4 -_080FAAB4: - bl sub_80FBA18 - bl sub_80FB260 - ldr r2, _080FAAE8 @ =gUnknown_020388CC - ldr r0, [r2] - movs r1, 0 - str r1, [r0, 0x1C] - str r1, [r0, 0x20] - adds r0, 0x7A - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x7E - strb r1, [r0] - ldr r1, _080FAAEC @ =REG_BG2CNT - ldr r3, _080FAAF0 @ =0x0000bc8a - adds r0, r3, 0 - strh r0, [r1] - ldr r1, [r2] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080FAAE2: - movs r0, 0 - b _080FAB02 - .align 2, 0 -_080FAAE8: .4byte gUnknown_020388CC -_080FAAEC: .4byte REG_BG2CNT -_080FAAF0: .4byte 0x0000bc8a -_080FAAF4: - ldr r0, _080FAB0C @ =gUnknown_020388CC - ldr r1, [r0] - adds r1, 0x79 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x1 -_080FAB02: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FAB0C: .4byte gUnknown_020388CC - thumb_func_end sub_80FA940 - - thumb_func_start sub_80FAB10 -sub_80FAB10: @ 80FAB10 - push {r4,lr} - ldr r4, _080FAB5C @ =gUnknown_020388CC - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080FAB34 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FAB34: - ldr r0, [r4] - ldr r0, [r0, 0x20] - cmp r0, 0 - beq _080FAB54 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x70 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x72 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FAB54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FAB5C: .4byte gUnknown_020388CC - thumb_func_end sub_80FAB10 - - thumb_func_start sub_80FAB60 -sub_80FAB60: @ 80FAB60 - push {lr} - ldr r0, _080FAB74 @ =gUnknown_020388CC - ldr r0, [r0] - ldr r0, [r0, 0x18] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080FAB74: .4byte gUnknown_020388CC - thumb_func_end sub_80FAB60 - - thumb_func_start sub_80FAB78 -sub_80FAB78: @ 80FAB78 - push {r4,lr} - movs r4, 0 - ldr r2, _080FAC14 @ =gUnknown_020388CC - ldr r0, [r2] - adds r0, 0x7B - strb r4, [r0] - ldr r0, [r2] - adds r0, 0x7C - strb r4, [r0] - ldr r3, _080FAC18 @ =gMain - ldrh r1, [r3, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FABAA - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0x2 - bls _080FABAA - adds r1, 0x7C - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_080FABAA: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FABC8 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x56 - ldrh r0, [r0] - cmp r0, 0xF - bhi _080FABC8 - adds r1, 0x7C - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_080FABC8: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080FABE6 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1 - bls _080FABE6 - adds r1, 0x7B - movs r0, 0xFF - strb r0, [r1] - movs r4, 0x1 -_080FABE6: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080FAC04 - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - cmp r0, 0x1B - bhi _080FAC04 - adds r1, 0x7B - movs r0, 0x1 - strb r0, [r1] - movs r4, 0x1 -_080FAC04: - ldrh r3, [r3, 0x2E] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _080FAC1C - movs r4, 0x4 - b _080FAC26 - .align 2, 0 -_080FAC14: .4byte gUnknown_020388CC -_080FAC18: .4byte gMain -_080FAC1C: - movs r0, 0x2 - ands r0, r3 - cmp r0, 0 - beq _080FAC26 - movs r4, 0x5 -_080FAC26: - cmp r4, 0x1 - bne _080FAC38 - ldr r0, [r2] - adds r0, 0x7A - movs r1, 0x4 - strb r1, [r0] - ldr r1, [r2] - ldr r0, _080FAC40 @ =_swiopen - str r0, [r1, 0x18] -_080FAC38: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FAC40: .4byte _swiopen - thumb_func_end sub_80FAB78 - - thumb_func_start _swiopen -_swiopen: @ 80FAC44 - push {r4,r5,lr} - ldr r5, _080FAC5C @ =gUnknown_020388CC - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7A - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080FAC60 - movs r0, 0x2 - b _080FACFA - .align 2, 0 -_080FAC5C: .4byte gUnknown_020388CC -_080FAC60: - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080FAC76 - adds r1, 0x54 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080FAC76: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080FAC8E - adds r1, 0x54 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_080FAC8E: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080FACA6 - adds r1, 0x56 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080FACA6: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bge _080FACBE - adds r1, 0x56 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_080FACBE: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - adds r1, 0x56 - ldrh r1, [r1] - bl sub_80FB2EC - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_80FB758 - ldr r1, [r5] - strb r0, [r1, 0x16] - ldr r0, [r5] - ldrh r1, [r0, 0x14] - cmp r4, r1 - beq _080FACEE - strh r4, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 -_080FACEE: - bl sub_80FBA18 - ldr r1, [r5] - ldr r0, _080FAD00 @ =sub_80FAB78 - str r0, [r1, 0x18] - movs r0, 0x3 -_080FACFA: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FAD00: .4byte sub_80FAB78 - thumb_func_end _swiopen - - thumb_func_start sub_80FAD04 -sub_80FAD04: @ 80FAD04 - push {r4-r6,lr} - movs r4, 0 - ldr r3, _080FADD4 @ =gUnknown_020388CC - ldr r0, [r3] - mov r12, r0 - adds r0, 0x6A - strh r4, [r0] - mov r5, r12 - adds r5, 0x68 - strh r4, [r5] - ldr r2, _080FADD8 @ =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0 - beq _080FAD3E - mov r0, r12 - adds r0, 0x5E - movs r2, 0 - ldrsh r1, [r0, r2] - movs r0, 0x34 - negs r0, r0 - cmp r1, r0 - ble _080FAD3E - ldr r0, _080FADDC @ =0x0000ffff - strh r0, [r5] - movs r4, 0x1 -_080FAD3E: - ldrh r1, [r3, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FAD5E - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5E - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0x3B - bgt _080FAD5E - adds r1, 0x68 - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_080FAD5E: - ldrh r1, [r3, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080FAD84 - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x5C - movs r5, 0 - ldrsh r1, [r0, r5] - movs r0, 0x2C - negs r0, r0 - cmp r1, r0 - ble _080FAD84 - adds r1, r2, 0 - adds r1, 0x6A - ldr r0, _080FADDC @ =0x0000ffff - strh r0, [r1] - movs r4, 0x1 -_080FAD84: - ldrh r1, [r3, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080FADA4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x5C - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0xAB - bgt _080FADA4 - adds r1, 0x6A - movs r0, 0x1 - strh r0, [r1] - movs r4, 0x1 -_080FADA4: - ldrh r2, [r3, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080FADB0 - movs r4, 0x4 -_080FADB0: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080FADBA - movs r4, 0x5 -_080FADBA: - cmp r4, 0x1 - bne _080FADCA - ldr r0, [r6] - ldr r1, _080FADE0 @ =sub_80FADE4 - str r1, [r0, 0x18] - adds r0, 0x6C - movs r1, 0 - strh r1, [r0] -_080FADCA: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080FADD4: .4byte gUnknown_020388CC -_080FADD8: .4byte gMain -_080FADDC: .4byte 0x0000ffff -_080FADE0: .4byte sub_80FADE4 - thumb_func_end sub_80FAD04 - - thumb_func_start sub_80FADE4 -sub_80FADE4: @ 80FADE4 - push {r4,r5,lr} - ldr r5, _080FAEB4 @ =gUnknown_020388CC - ldr r2, [r5] - adds r3, r2, 0 - adds r3, 0x5E - adds r0, r2, 0 - adds r0, 0x68 - ldrh r0, [r0] - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - adds r1, r2, 0 - adds r1, 0x5C - adds r0, r2, 0 - adds r0, 0x6A - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - movs r4, 0 - ldrsh r0, [r1, r4] - movs r2, 0 - ldrsh r1, [r3, r2] - bl sub_80FB238 - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x6C - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _080FAEBC - adds r0, r2, 0 - adds r0, 0x5C - movs r3, 0 - ldrsh r1, [r0, r3] - adds r0, r1, 0 - adds r0, 0x2C - cmp r0, 0 - bge _080FAE3C - adds r0, 0x7 -_080FAE3C: - asrs r0, 3 - adds r0, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r2, 0 - adds r0, 0x5E - movs r4, 0 - ldrsh r1, [r0, r4] - adds r0, r1, 0 - adds r0, 0x34 - cmp r0, 0 - bge _080FAE56 - adds r0, 0x7 -_080FAE56: - asrs r0, 3 - adds r0, 0x2 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, r2, 0 - adds r4, 0x64 - adds r0, r2, 0 - adds r0, 0x66 - ldrh r2, [r4] - cmp r3, r2 - bne _080FAE72 - ldrh r2, [r0] - cmp r1, r2 - beq _080FAEA0 -_080FAE72: - strh r3, [r4] - strh r1, [r0] - adds r0, r3, 0 - bl sub_80FB2EC - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_80FB758 - ldr r1, [r5] - strb r0, [r1, 0x16] - ldr r0, [r5] - ldrh r3, [r0, 0x14] - cmp r4, r3 - beq _080FAE9C - strh r4, [r0, 0x14] - ldrh r1, [r0, 0x14] - movs r2, 0x10 - bl sub_80FBFB4 -_080FAE9C: - bl sub_80FBA18 -_080FAEA0: - ldr r0, _080FAEB4 @ =gUnknown_020388CC - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x6C - movs r0, 0 - strh r0, [r1] - ldr r0, _080FAEB8 @ =sub_80FAD04 - str r0, [r2, 0x18] - movs r0, 0x3 - b _080FAEBE - .align 2, 0 -_080FAEB4: .4byte gUnknown_020388CC -_080FAEB8: .4byte sub_80FAD04 -_080FAEBC: - movs r0, 0x2 -_080FAEBE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FADE4 - - thumb_func_start sub_80FAEC4 -sub_80FAEC4: @ 80FAEC4 - push {r4-r6,lr} - ldr r1, _080FAF40 @ =gUnknown_020388CC - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - adds r5, r1, 0 - cmp r3, 0 - bne _080FAF48 - subs r0, 0x1A - strh r3, [r0] - subs r0, 0x2 - strh r3, [r0] - str r3, [r2, 0x40] - str r3, [r2, 0x3C] - adds r4, r2, 0 - adds r4, 0x54 - ldrh r0, [r4] - lsls r0, 3 - subs r0, 0x34 - adds r1, r2, 0 - adds r1, 0x60 - strh r0, [r1] - movs r0, 0x56 - adds r0, r2 - mov r12, r0 - ldrh r0, [r0] - lsls r0, 3 - subs r0, 0x44 - adds r3, r2, 0 - adds r3, 0x62 - strh r0, [r3] - movs r6, 0 - ldrsh r0, [r1, r6] - lsls r0, 8 - cmp r0, 0 - bge _080FAF10 - adds r0, 0xF -_080FAF10: - asrs r0, 4 - str r0, [r2, 0x44] - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 8 - cmp r0, 0 - bge _080FAF20 - adds r0, 0xF -_080FAF20: - asrs r0, 4 - str r0, [r2, 0x48] - ldrh r1, [r4] - adds r0, r2, 0 - adds r0, 0x64 - strh r1, [r0] - mov r3, r12 - ldrh r0, [r3] - adds r1, r2, 0 - adds r1, 0x66 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 9 - str r0, [r2, 0x4C] - ldr r0, _080FAF44 @ =0xfffff800 - b _080FAFA6 - .align 2, 0 -_080FAF40: .4byte gUnknown_020388CC -_080FAF44: .4byte 0xfffff800 -_080FAF48: - adds r0, r2, 0 - adds r0, 0x5C - movs r6, 0 - ldrsh r0, [r0, r6] - lsls r0, 8 - str r0, [r2, 0x3C] - adds r0, r2, 0 - adds r0, 0x5E - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0x60 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, [r2, 0x3C] - cmp r0, 0 - bge _080FAF74 - adds r0, 0xF -_080FAF74: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x44] - ldr r0, [r2, 0x40] - cmp r0, 0 - bge _080FAF82 - adds r0, 0xF -_080FAF82: - asrs r0, 4 - negs r0, r0 - str r0, [r2, 0x48] - adds r0, r2, 0 - adds r0, 0x64 - ldrh r1, [r0] - subs r0, 0x10 - strh r1, [r0] - adds r0, 0x12 - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x56 - strh r0, [r1] - movs r0, 0x80 - lsls r0, 8 - str r0, [r2, 0x4C] - movs r0, 0x80 - lsls r0, 4 -_080FAFA6: - str r0, [r2, 0x50] - ldr r0, [r5] - adds r0, 0x6E - movs r1, 0 - strh r1, [r0] - bl sub_80FBCA0 - bl sub_80FBDF8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80FAEC4 - - thumb_func_start sub_80FAFC0 -sub_80FAFC0: @ 80FAFC0 - push {r4-r6,lr} - sub sp, 0xC - ldr r0, _080FAFD8 @ =gUnknown_020388CC - ldr r3, [r0] - adds r2, r3, 0 - adds r2, 0x6E - ldrh r1, [r2] - adds r5, r0, 0 - cmp r1, 0xF - bls _080FAFDC - movs r0, 0 - b _080FB164 - .align 2, 0 -_080FAFD8: .4byte gUnknown_020388CC -_080FAFDC: - adds r0, r1, 0x1 - movs r1, 0 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x10 - bne _080FB050 - str r1, [r3, 0x44] - str r1, [r3, 0x48] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r1, [r0] - subs r0, 0x4 - strh r1, [r0] - adds r0, 0x6 - ldrh r0, [r0] - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - adds r1, 0x1A - ldrb r0, [r1] - movs r2, 0x80 - lsls r2, 9 - cmp r0, 0 - bne _080FB012 - movs r2, 0x80 - lsls r2, 8 -_080FB012: - str r2, [r3, 0x4C] - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _080FB01E - movs r2, 0x1 -_080FB01E: - strb r2, [r1] - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - ldr r2, _080FB048 @ =sub_80FAD04 - cmp r0, 0 - bne _080FB030 - ldr r2, _080FB04C @ =sub_80FAB78 -_080FB030: - str r2, [r1, 0x18] - adds r0, r1, 0 - adds r0, 0x58 - ldrh r0, [r0] - adds r1, 0x5A - ldrh r1, [r1] - bl sub_80FBB3C - bl sub_80FBE24 - movs r4, 0 - b _080FB132 - .align 2, 0 -_080FB048: .4byte sub_80FAD04 -_080FB04C: .4byte sub_80FAB78 -_080FB050: - ldr r2, [r3, 0x3C] - ldr r0, [r3, 0x44] - adds r2, r0 - str r2, [r3, 0x3C] - ldr r0, [r3, 0x40] - ldr r1, [r3, 0x48] - adds r0, r1 - str r0, [r3, 0x40] - asrs r2, 8 - adds r4, r3, 0 - adds r4, 0x5C - strh r2, [r4] - ldr r0, [r3, 0x40] - asrs r0, 8 - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - ldr r0, [r3, 0x4C] - ldr r1, [r3, 0x50] - adds r0, r1 - str r0, [r3, 0x4C] - ldr r2, [r3, 0x44] - cmp r2, 0 - bge _080FB090 - adds r0, r3, 0 - adds r0, 0x60 - movs r6, 0 - ldrsh r1, [r4, r6] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - blt _080FB0A4 -_080FB090: - cmp r2, 0 - ble _080FB0B4 - adds r0, r3, 0 - adds r0, 0x60 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _080FB0B4 -_080FB0A4: - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x60 - ldrh r2, [r0] - subs r0, 0x4 - movs r1, 0 - strh r2, [r0] - str r1, [r3, 0x44] -_080FB0B4: - ldr r2, [r5] - ldr r4, [r2, 0x48] - cmp r4, 0 - bge _080FB0D0 - adds r0, r2, 0 - adds r0, 0x5E - adds r3, r2, 0 - adds r3, 0x62 - movs r6, 0 - ldrsh r1, [r0, r6] - movs r6, 0 - ldrsh r0, [r3, r6] - cmp r1, r0 - blt _080FB0E8 -_080FB0D0: - cmp r4, 0 - ble _080FB0FA - adds r1, r2, 0 - adds r1, 0x5E - adds r0, r2, 0 - adds r0, 0x62 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r1, r0 - ble _080FB0FA -_080FB0E8: - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x62 - ldrh r1, [r0] - adds r3, r2, 0 - adds r3, 0x5E - movs r0, 0 - strh r1, [r3] - str r0, [r2, 0x48] -_080FB0FA: - ldr r0, _080FB118 @ =gUnknown_020388CC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r3, [r0] - cmp r3, 0 - bne _080FB120 - ldr r1, [r2, 0x4C] - ldr r0, _080FB11C @ =0x00007fff - cmp r1, r0 - bgt _080FB130 - adds r0, 0x1 - str r0, [r2, 0x4C] - str r3, [r2, 0x50] - b _080FB130 - .align 2, 0 -_080FB118: .4byte gUnknown_020388CC -_080FB11C: .4byte 0x00007fff -_080FB120: - ldr r0, [r2, 0x4C] - movs r1, 0x80 - lsls r1, 9 - cmp r0, r1 - ble _080FB130 - str r1, [r2, 0x4C] - movs r0, 0 - str r0, [r2, 0x50] -_080FB130: - movs r4, 0x1 -_080FB132: - ldr r0, _080FB16C @ =gUnknown_020388CC - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x5C - movs r1, 0 - ldrsh r0, [r0, r1] - adds r1, r3, 0 - adds r1, 0x5E - movs r2, 0 - ldrsh r1, [r1, r2] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp] - ldr r2, [r3, 0x4C] - lsls r2, 8 - lsrs r2, 16 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - adds r0, r4, 0 -_080FB164: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080FB16C: .4byte gUnknown_020388CC - thumb_func_end sub_80FAFC0 - - thumb_func_start sub_80FB170 -sub_80FB170: @ 80FB170 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r7, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r4, 16 - lsrs r4, 16 - mov r8, r4 - lsls r7, 16 - adds r4, r7, 0 - lsrs r4, 16 - mov r9, r4 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080FB230 @ =gUnknown_020388CC - ldr r6, [r4] - ldr r7, _080FB234 @ =gSineTable - mov r12, r7 - adds r4, r5, 0 - adds r4, 0x40 - lsls r4, 1 - add r4, r12 - movs r7, 0 - ldrsh r4, [r4, r7] - str r4, [sp] - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r10, r4 - str r4, [r6, 0x2C] - lsls r5, 1 - add r5, r12 - movs r7, 0 - ldrsh r5, [r5, r7] - negs r4, r5 - mov r7, r8 - muls r7, r4 - adds r4, r7, 0 - asrs r4, 8 - mov r12, r4 - str r4, [r6, 0x30] - mov r7, r9 - muls r7, r5 - adds r5, r7, 0 - asrs r5, 8 - str r5, [r6, 0x34] - ldr r7, [sp] - mov r4, r9 - muls r4, r7 - asrs r4, 8 - mov r8, r4 - str r4, [r6, 0x38] - lsls r0, 16 - asrs r0, 8 - lsls r2, 16 - asrs r2, 16 - lsls r4, r2, 8 - adds r0, r4 - lsls r3, 16 - asrs r3, 16 - adds r4, r3, 0 - muls r4, r5 - mov r5, r10 - muls r5, r2 - adds r4, r5 - subs r0, r4 - str r0, [r6, 0x24] - lsls r1, 16 - asrs r1, 8 - lsls r0, r3, 8 - adds r1, r0 - mov r0, r8 - muls r0, r3 - mov r3, r12 - muls r3, r2 - adds r2, r3, 0 - adds r0, r2 - subs r1, r0 - str r1, [r6, 0x28] - adds r6, 0x7D - movs r0, 0x1 - strb r0, [r6] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB230: .4byte gUnknown_020388CC -_080FB234: .4byte gSineTable - thumb_func_end sub_80FB170 - - thumb_func_start sub_80FB238 -sub_80FB238: @ 80FB238 - ldr r2, _080FB25C @ =gUnknown_020388CC - ldr r2, [r2] - lsls r0, 16 - asrs r0, 8 - movs r3, 0xE0 - lsls r3, 5 - adds r0, r3 - str r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 8 - movs r0, 0x90 - lsls r0, 6 - adds r1, r0 - str r1, [r2, 0x28] - adds r2, 0x7D - movs r0, 0x1 - strb r0, [r2] - bx lr - .align 2, 0 -_080FB25C: .4byte gUnknown_020388CC - thumb_func_end sub_80FB238 - - thumb_func_start sub_80FB260 -sub_80FB260: @ 80FB260 - push {lr} - ldr r0, _080FB29C @ =gUnknown_020388CC - ldr r2, [r0] - adds r3, r2, 0 - adds r3, 0x7D - ldrb r0, [r3] - cmp r0, 0 - beq _080FB298 - ldr r1, _080FB2A0 @ =REG_BG2PA - ldr r0, [r2, 0x2C] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x34] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x30] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x38] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r2, 0x24] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r2, 0x28] - str r0, [r1] - movs r0, 0 - strb r0, [r3] -_080FB298: - pop {r0} - bx r0 - .align 2, 0 -_080FB29C: .4byte gUnknown_020388CC -_080FB2A0: .4byte REG_BG2PA - thumb_func_end sub_80FB260 - - thumb_func_start sub_80FB2A4 -sub_80FB2A4: @ 80FB2A4 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 16 - asrs r4, r0, 16 - lsls r1, 16 - asrs r5, r1, 16 - movs r0, 0x80 - lsls r0, 1 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x38 - movs r3, 0x48 - bl sub_80FB170 - bl sub_80FB260 - ldr r0, _080FB2E8 @ =gUnknown_020388CC - ldr r2, [r0] - ldr r1, [r2, 0x20] - cmp r1, 0 - beq _080FB2E0 - negs r0, r4 - strh r0, [r1, 0x24] - ldr r1, [r2, 0x20] - negs r0, r5 - strh r0, [r1, 0x26] -_080FB2E0: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FB2E8: .4byte gUnknown_020388CC - thumb_func_end sub_80FB2A4 - - thumb_func_start sub_80FB2EC -sub_80FB2EC: @ 80FB2EC - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - ldr r0, _080FB30C @ =0xfffe0000 - adds r1, r0 - lsrs r2, r1, 16 - cmp r2, 0xE - bhi _080FB306 - cmp r3, 0 - beq _080FB306 - cmp r3, 0x1C - bls _080FB310 -_080FB306: - movs r0, 0x58 - b _080FB324 - .align 2, 0 -_080FB30C: .4byte 0xfffe0000 -_080FB310: - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080FB328 @ =gRegionMapSections - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r1 - ldrb r0, [r0] -_080FB324: - pop {r1} - bx r1 - .align 2, 0 -_080FB328: .4byte gRegionMapSections - thumb_func_end sub_80FB2EC - - thumb_func_start sub_80FB32C -sub_80FB32C: @ 80FB32C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080FB358 @ =gSaveBlock1 - movs r1, 0x4 - ldrsb r1, [r0, r1] - adds r2, r0, 0 - cmp r1, 0x19 - bne _080FB35C - ldrb r0, [r2, 0x5] - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bhi _080FB35C - bl sub_80FB600 - b _080FB5E8 - .align 2, 0 -_080FB358: .4byte gSaveBlock1 -_080FB35C: - movs r0, 0x4 - ldrsb r0, [r2, r0] - movs r1, 0x5 - ldrsb r1, [r2, r1] - bl get_map_light_level_by_bank_and_number - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x8 - bhi _080FB3A4 - lsls r0, 2 - ldr r1, _080FB37C @ =_080FB380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB37C: .4byte _080FB380 - .align 2, 0 -_080FB380: - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3E0 - .4byte _080FB3A4 - .4byte _080FB3A4 - .4byte _080FB3E0 - .4byte _080FB464 - .4byte _080FB428 -_080FB3A4: - ldr r4, _080FB3D4 @ =gUnknown_020388CC - ldr r0, [r4] - ldr r3, _080FB3D8 @ =gMapHeader - ldrb r1, [r3, 0x14] - movs r2, 0 - strh r1, [r0, 0x14] - adds r0, 0x7F - strb r2, [r0] - ldr r0, [r3] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldr r0, _080FB3DC @ =gSaveBlock1 - ldrh r6, [r0] - ldrh r3, [r0, 0x2] - ldr r1, [r4] - ldrh r0, [r1, 0x14] - cmp r0, 0x45 - beq _080FB3CC - b _080FB4CC -_080FB3CC: - adds r1, 0x7F - movs r0, 0x1 - strb r0, [r1] - b _080FB4CC - .align 2, 0 -_080FB3D4: .4byte gUnknown_020388CC -_080FB3D8: .4byte gMapHeader -_080FB3DC: .4byte gSaveBlock1 -_080FB3E0: - ldr r4, _080FB420 @ =gSaveBlock1 - adds r0, r4, 0 - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - adds r1, 0x25 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r0, _080FB424 @ =gUnknown_020388CC - ldr r0, [r0] - ldrb r1, [r2, 0x14] - strh r1, [r0, 0x14] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x28] - ldrh r3, [r4, 0x2A] - b _080FB4CC - .align 2, 0 -_080FB420: .4byte gSaveBlock1 -_080FB424: .4byte gUnknown_020388CC -_080FB428: - ldr r4, _080FB45C @ =gSaveBlock1 - movs r0, 0x14 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x15 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r0, _080FB460 @ =gUnknown_020388CC - ldr r0, [r0] - ldrb r1, [r2, 0x14] - strh r1, [r0, 0x14] - adds r0, 0x7F - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x18] - ldrh r3, [r4, 0x1A] - b _080FB4CC - .align 2, 0 -_080FB45C: .4byte gSaveBlock1 -_080FB460: .4byte gUnknown_020388CC -_080FB464: - ldr r5, _080FB48C @ =gUnknown_020388CC - ldr r0, [r5] - ldr r1, _080FB490 @ =gMapHeader - ldrb r1, [r1, 0x14] - strh r1, [r0, 0x14] - cmp r1, 0x57 - beq _080FB498 - ldr r4, _080FB494 @ =gSaveBlock1 + 0x24 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - b _080FB4B6 - .align 2, 0 -_080FB48C: .4byte gUnknown_020388CC -_080FB490: .4byte gMapHeader -_080FB494: .4byte gSaveBlock1 + 0x24 -_080FB498: - ldr r4, _080FB548 @ =gSaveBlock1 + 0x14 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ldrsb r1, [r4, r1] - lsls r1, 16 - lsrs r1, 16 - bl get_mapheader_by_bank_and_number - adds r2, r0, 0 - ldr r1, [r5] - ldrb r0, [r2, 0x14] - strh r0, [r1, 0x14] -_080FB4B6: - ldr r0, _080FB54C @ =gUnknown_020388CC - ldr r0, [r0] - adds r0, 0x7F - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldrh r2, [r0] - ldrh r0, [r0, 0x4] - mov r8, r0 - ldrh r6, [r4, 0x4] - ldrh r3, [r4, 0x6] -_080FB4CC: - mov r9, r6 - ldr r4, _080FB54C @ =gUnknown_020388CC - ldr r0, [r4] - ldrh r5, [r0, 0x14] - lsls r0, r5, 3 - ldr r1, _080FB550 @ =gRegionMapLocations - adds r0, r1 - mov r10, r0 - ldrb r7, [r0, 0x2] - adds r0, r2, 0 - adds r1, r7, 0 - str r3, [sp] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp] - cmp r1, 0 - bne _080FB4F4 - movs r1, 0x1 -_080FB4F4: - adds r0, r6, 0 - str r3, [sp] - bl __udivsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - cmp r6, r7 - bcc _080FB50C - subs r0, r7, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB50C: - mov r2, r10 - ldrb r4, [r2, 0x3] - mov r0, r8 - adds r1, r4, 0 - str r3, [sp] - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r3, [sp] - cmp r1, 0 - bne _080FB526 - movs r1, 0x1 -_080FB526: - adds r0, r3, 0 - bl __udivsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080FB53A - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 -_080FB53A: - cmp r5, 0x24 - beq _080FB59C - cmp r5, 0x24 - bgt _080FB554 - cmp r5, 0x1D - beq _080FB55E - b _080FB5BE - .align 2, 0 -_080FB548: .4byte gSaveBlock1 + 0x14 -_080FB54C: .4byte gUnknown_020388CC -_080FB550: .4byte gRegionMapLocations -_080FB554: - cmp r5, 0x29 - beq _080FB566 - cmp r5, 0x33 - beq _080FB566 - b _080FB5BE -_080FB55E: - cmp r3, 0 - beq _080FB5BE - movs r6, 0 - b _080FB5BE -_080FB566: - movs r6, 0 - ldr r1, _080FB598 @ =gSaveBlock1 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x20 - ble _080FB574 - movs r6, 0x1 -_080FB574: - cmp r0, 0x33 - ble _080FB57E - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB57E: - movs r3, 0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, 0x25 - ble _080FB58A - movs r3, 0x1 -_080FB58A: - cmp r0, 0x38 - ble _080FB5BE - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - b _080FB5BE - .align 2, 0 -_080FB598: .4byte gSaveBlock1 -_080FB59C: - movs r6, 0 - mov r0, r9 - cmp r0, 0xE - bls _080FB5A6 - movs r6, 0x1 -_080FB5A6: - mov r1, r9 - cmp r1, 0x1C - bls _080FB5B2 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB5B2: - mov r2, r9 - cmp r2, 0x36 - bls _080FB5BE - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FB5BE: - ldr r0, _080FB5F8 @ =gUnknown_020388CC - ldr r2, [r0] - ldrh r0, [r2, 0x14] - lsls r0, 3 - ldr r1, _080FB5FC @ =gRegionMapLocations - adds r0, r1 - ldrb r0, [r0] - adds r0, r6, r0 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2, 0x14] - lsls r0, 3 - ldr r1, _080FB5FC @ =gRegionMapLocations - adds r0, r1 - ldrb r0, [r0, 0x1] - adds r0, r3, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] -_080FB5E8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB5F8: .4byte gUnknown_020388CC -_080FB5FC: .4byte gRegionMapLocations - thumb_func_end sub_80FB32C - - thumb_func_start sub_80FB600 -sub_80FB600: @ 80FB600 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r7, 0 - movs r0, 0 - mov r8, r0 - mov r4, sp - adds r4, 0x1 - mov r5, sp - adds r5, 0x2 - add r6, sp, 0x4 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_810D9EC - lsls r0, 24 - lsrs r0, 24 - mov r10, r5 - cmp r0, 0x4 - bhi _080FB694 - lsls r0, 2 - ldr r1, _080FB63C @ =_080FB640 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB63C: .4byte _080FB640 - .align 2, 0 -_080FB640: - .4byte _080FB694 - .4byte _080FB654 - .4byte _080FB664 - .4byte _080FB674 - .4byte _080FB684 -_080FB654: - ldr r2, _080FB660 @ =gUnknown_020388CC - ldr r1, [r2] - movs r0, 0x8 - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB660: .4byte gUnknown_020388CC -_080FB664: - ldr r2, _080FB670 @ =gUnknown_020388CC - ldr r1, [r2] - movs r0, 0xC - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB670: .4byte gUnknown_020388CC -_080FB674: - ldr r2, _080FB680 @ =gUnknown_020388CC - ldr r1, [r2] - movs r0, 0x27 - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB680: .4byte gUnknown_020388CC -_080FB684: - ldr r2, _080FB690 @ =gUnknown_020388CC - ldr r1, [r2] - movs r0, 0x2E - strh r0, [r1, 0x14] - b _080FB710 - .align 2, 0 -_080FB690: .4byte gUnknown_020388CC -_080FB694: - mov r0, sp - ldrb r0, [r0] - ldrb r1, [r4] - bl get_mapheader_by_bank_and_number - ldr r1, _080FB750 @ =gUnknown_020388CC - mov r9, r1 - ldr r2, [r1] - ldrb r1, [r0, 0x14] - strh r1, [r2, 0x14] - ldr r6, [r0] - ldr r1, _080FB754 @ =gRegionMapLocations - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r5, r0, r1 - ldrb r4, [r5, 0x2] - ldr r0, [r6] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FB6C6 - movs r1, 0x1 -_080FB6C6: - mov r2, r10 - movs r3, 0 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r8, r4 - bcc _080FB6E2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080FB6E2: - ldrb r4, [r5, 0x3] - ldr r0, [r6, 0x4] - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080FB6F6 - movs r1, 0x1 -_080FB6F6: - mov r2, sp - movs r3, 0x4 - ldrsh r0, [r2, r3] - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r2, r9 - cmp r7, r4 - bcc _080FB710 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080FB710: - ldr r0, [r2] - adds r0, 0x7F - movs r1, 0 - strb r1, [r0] - ldr r2, [r2] - ldr r3, _080FB754 @ =gRegionMapLocations - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0] - add r0, r8 - adds r0, 0x1 - adds r1, r2, 0 - adds r1, 0x54 - strh r0, [r1] - ldrh r0, [r2, 0x14] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x1] - adds r0, r7, r0 - adds r0, 0x2 - adds r2, 0x56 - strh r0, [r2] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FB750: .4byte gUnknown_020388CC -_080FB754: .4byte gRegionMapLocations - thumb_func_end sub_80FB600 - - thumb_func_start sub_80FB758 -sub_80FB758: @ 80FB758 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x58 - bls _080FB764 - b _080FB9A0 -_080FB764: - lsls r0, 2 - ldr r1, _080FB770 @ =_080FB774 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FB770: .4byte _080FB774 - .align 2, 0 -_080FB774: - .4byte _080FB8DC - .4byte _080FB8E4 - .4byte _080FB8EA - .4byte _080FB8F4 - .4byte _080FB8FC - .4byte _080FB904 - .4byte _080FB90C - .4byte _080FB914 - .4byte _080FB91C - .4byte _080FB924 - .4byte _080FB92C - .4byte _080FB934 - .4byte _080FB93C - .4byte _080FB944 - .4byte _080FB94C - .4byte _080FB954 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB96C - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB988 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB9A0 - .4byte _080FB8D8 -_080FB8D8: - movs r0, 0 - b _080FB9A2 -_080FB8DC: - ldr r0, _080FB8E0 @ =0x0000080f - b _080FB956 - .align 2, 0 -_080FB8E0: .4byte 0x0000080f -_080FB8E4: - movs r0, 0x81 - lsls r0, 4 - b _080FB956 -_080FB8EA: - ldr r0, _080FB8F0 @ =0x00000811 - b _080FB956 - .align 2, 0 -_080FB8F0: .4byte 0x00000811 -_080FB8F4: - ldr r0, _080FB8F8 @ =0x00000812 - b _080FB956 - .align 2, 0 -_080FB8F8: .4byte 0x00000812 -_080FB8FC: - ldr r0, _080FB900 @ =0x00000813 - b _080FB956 - .align 2, 0 -_080FB900: .4byte 0x00000813 -_080FB904: - ldr r0, _080FB908 @ =0x00000814 - b _080FB956 - .align 2, 0 -_080FB908: .4byte 0x00000814 -_080FB90C: - ldr r0, _080FB910 @ =0x00000815 - b _080FB956 - .align 2, 0 -_080FB910: .4byte 0x00000815 -_080FB914: - ldr r0, _080FB918 @ =0x00000816 - b _080FB956 - .align 2, 0 -_080FB918: .4byte 0x00000816 -_080FB91C: - ldr r0, _080FB920 @ =0x00000817 - b _080FB956 - .align 2, 0 -_080FB920: .4byte 0x00000817 -_080FB924: - ldr r0, _080FB928 @ =0x00000818 - b _080FB956 - .align 2, 0 -_080FB928: .4byte 0x00000818 -_080FB92C: - ldr r0, _080FB930 @ =0x00000819 - b _080FB956 - .align 2, 0 -_080FB930: .4byte 0x00000819 -_080FB934: - ldr r0, _080FB938 @ =0x0000081a - b _080FB956 - .align 2, 0 -_080FB938: .4byte 0x0000081a -_080FB93C: - ldr r0, _080FB940 @ =0x0000081b - b _080FB956 - .align 2, 0 -_080FB940: .4byte 0x0000081b -_080FB944: - ldr r0, _080FB948 @ =0x0000081c - b _080FB956 - .align 2, 0 -_080FB948: .4byte 0x0000081c -_080FB94C: - ldr r0, _080FB950 @ =0x0000081d - b _080FB956 - .align 2, 0 -_080FB950: .4byte 0x0000081d -_080FB954: - ldr r0, _080FB968 @ =0x0000081e -_080FB956: - bl FlagGet - lsls r0, 24 - movs r1, 0x3 - cmp r0, 0 - beq _080FB964 - movs r1, 0x2 -_080FB964: - adds r0, r1, 0 - b _080FB9A2 - .align 2, 0 -_080FB968: .4byte 0x0000081e -_080FB96C: - ldr r0, _080FB984 @ =0x00000848 - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - asrs r0, 31 - movs r1, 0x4 - ands r0, r1 - b _080FB9A2 - .align 2, 0 -_080FB984: .4byte 0x00000848 -_080FB988: - ldr r0, _080FB99C @ =0x00000849 - bl FlagGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _080FB9A2 - .align 2, 0 -_080FB99C: .4byte 0x00000849 -_080FB9A0: - movs r0, 0x1 -_080FB9A2: - pop {r1} - bx r1 - thumb_func_end sub_80FB758 - - thumb_func_start sub_80FB9A8 -sub_80FB9A8: @ 80FB9A8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - bl sub_80FB2EC - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FB9A8 - - thumb_func_start sub_80FB9C0 -sub_80FB9C0: @ 80FB9C0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r0, _080FB9E8 @ =gUnknown_083E7684 - ldrh r1, [r0] - adds r4, r0, 0 - cmp r1, 0x58 - beq _080FB9FC - adds r5, r4, 0 - adds r6, r4, 0x2 -_080FB9D6: - lsls r1, r2, 2 - adds r0, r1, r5 - ldrh r0, [r0] - cmp r0, r3 - bne _080FB9EC - adds r0, r1, r6 - ldrh r0, [r0] - b _080FB9FE - .align 2, 0 -_080FB9E8: .4byte gUnknown_083E7684 -_080FB9EC: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x58 - bne _080FB9D6 -_080FB9FC: - adds r0, r3, 0 -_080FB9FE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FB9C0 - - thumb_func_start sub_80FBA04 -sub_80FBA04: @ 80FBA04 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_80FB9C0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FBA04 - - thumb_func_start sub_80FBA18 -sub_80FBA18: @ 80FBA18 - push {r4-r6,lr} - ldr r0, _080FBA2C @ =gUnknown_020388CC - ldr r1, [r0] - ldrh r0, [r1, 0x14] - cmp r0, 0x58 - bne _080FBA30 - movs r0, 0 - strb r0, [r1, 0x17] - b _080FBA96 - .align 2, 0 -_080FBA2C: .4byte gUnknown_020388CC -_080FBA30: - adds r0, r1, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _080FBA40 - adds r0, r1, 0 - adds r0, 0x54 - b _080FBA44 -_080FBA40: - adds r0, r1, 0 - adds r0, 0x64 -_080FBA44: - ldrh r4, [r0] - adds r0, 0x2 - ldrh r5, [r0] - movs r6, 0 - b _080FBA70 -_080FBA4E: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FB2EC - ldr r1, _080FBA8C @ =gUnknown_020388CC - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1, 0x14] - cmp r0, r1 - bne _080FBA70 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080FBA70: - cmp r4, 0x1 - bhi _080FBA4E - adds r0, r5, 0 - bl sub_80FBAA0 - lsls r0, 24 - cmp r0, 0 - beq _080FBA90 - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - movs r4, 0x1D - b _080FBA70 - .align 2, 0 -_080FBA8C: .4byte gUnknown_020388CC -_080FBA90: - ldr r0, _080FBA9C @ =gUnknown_020388CC - ldr r0, [r0] - strb r6, [r0, 0x17] -_080FBA96: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FBA9C: .4byte gUnknown_020388CC - thumb_func_end sub_80FBA18 - - thumb_func_start sub_80FBAA0 -sub_80FBAA0: @ 80FBAA0 - push {r4,r5,lr} - lsls r0, 16 - ldr r1, _080FBAB4 @ =0xffff0000 - adds r0, r1 - lsrs r5, r0, 16 - ldr r0, _080FBAB8 @ =0x0000ffff - cmp r5, r0 - bne _080FBAC0 - b _080FBAE2 - .align 2, 0 -_080FBAB4: .4byte 0xffff0000 -_080FBAB8: .4byte 0x0000ffff -_080FBABC: - movs r0, 0x1 - b _080FBAE4 -_080FBAC0: - movs r4, 0x1 -_080FBAC2: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FB2EC - ldr r1, _080FBAEC @ =gUnknown_020388CC - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1, 0x14] - cmp r0, r1 - beq _080FBABC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1C - bls _080FBAC2 -_080FBAE2: - movs r0, 0 -_080FBAE4: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080FBAEC: .4byte gUnknown_020388CC - thumb_func_end sub_80FBAA0 - - thumb_func_start sub_80FBAF0 -sub_80FBAF0: @ 80FBAF0 - push {r4,lr} - adds r2, r0, 0 - ldr r0, _080FBB34 @ =gUnknown_020388CC - ldr r1, [r0] - adds r3, r1, 0 - adds r3, 0x7A - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r0, 0 - beq _080FBB2E - adds r0, r1, 0 - adds r0, 0x7B - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r4, [r2, 0x20] - adds r0, r4 - strh r0, [r2, 0x20] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r1, [r2, 0x22] - adds r0, r1 - strh r0, [r2, 0x22] - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] -_080FBB2E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FBB34: .4byte gUnknown_020388CC - thumb_func_end sub_80FBAF0 - - thumb_func_start nullsub_66 -nullsub_66: @ 80FBB38 - bx lr - thumb_func_end nullsub_66 - - thumb_func_start sub_80FBB3C -sub_80FBB3C: @ 80FBB3C - push {r4-r7,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, _080FBBAC @ =gUnknown_083E76E8 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [sp, 0x20] - str r2, [sp, 0x24] - mov r2, sp - ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - lsrs r3, r0, 16 - add r2, sp, 0x18 - ldrh r1, [r2, 0x4] - orrs r1, r0 - str r1, [r2, 0x4] - mov r0, sp - strh r3, [r0] - ldr r0, _080FBBB4 @ =gUnknown_020388CC - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x58 - strh r3, [r0] - ldr r5, _080FBBB8 @ =0xffff0000 - add r1, sp, 0x20 - ldr r0, [r1, 0x4] - ands r0, r5 - orrs r0, r6 - str r0, [r1, 0x4] - mov r0, sp - strh r6, [r0, 0x2] - adds r3, r4, 0 - adds r0, r3, 0 - adds r0, 0x5A - strh r6, [r0] - adds r0, 0x1E - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0 - bne _080FBBC0 - movs r1, 0xC0 - lsls r1, 1 - adds r0, r3, r1 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - subs r1, 0x80 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, _080FBBBC @ =sub_80FBAF0 - b _080FBBD6 - .align 2, 0 -_080FBBAC: .4byte gUnknown_083E76E8 -_080FBBB0: .4byte gSpriteTemplate_83E76F0 -_080FBBB4: .4byte gUnknown_020388CC -_080FBBB8: .4byte 0xffff0000 -_080FBBBC: .4byte sub_80FBAF0 -_080FBBC0: - movs r3, 0xA0 - lsls r3, 2 - adds r0, r4, r3 - str r0, [sp, 0x18] - ldr r0, [r2, 0x4] - ands r0, r5 - movs r1, 0xC0 - lsls r1, 3 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r0, _080FBC38 @ =nullsub_66 -_080FBBD6: - str r0, [sp, 0x14] - adds r0, r2, 0 - bl LoadSpriteSheet - adds r0, r7, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0x38 - movs r2, 0x48 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080FBC90 - ldr r4, _080FBC3C @ =gUnknown_020388CC - ldr r2, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080FBC40 @ =gSprites - adds r3, r0, r1 - str r3, [r2, 0x1C] - adds r2, 0x78 - ldrb r0, [r2] - cmp r0, 0x1 - bne _080FBC44 - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r2, [r4] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x20] - subs r0, 0x8 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x1C] - ldrh r0, [r1, 0x22] - subs r0, 0x8 - strh r0, [r1, 0x22] - ldr r0, [r2, 0x1C] - movs r1, 0x1 - bl StartSpriteAnim - b _080FBC6C - .align 2, 0 -_080FBC38: .4byte nullsub_66 -_080FBC3C: .4byte gUnknown_020388CC -_080FBC40: .4byte gSprites -_080FBC44: - ldrb r1, [r3, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r3, 0x3] - ldr r1, [r4] - ldr r2, [r1, 0x1C] - adds r0, r1, 0 - adds r0, 0x54 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x20] - ldr r2, [r1, 0x1C] - adds r1, 0x56 - ldrh r0, [r1] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x22] -_080FBC6C: - ldr r4, _080FBC98 @ =gUnknown_020388CC - ldr r0, [r4] - ldr r1, [r0, 0x1C] - movs r0, 0x2 - strh r0, [r1, 0x30] - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - ldr r1, [r4] - ldr r2, [r1, 0x1C] - lsls r0, 24 - lsrs r0, 20 - ldr r4, _080FBC9C @ =0x00000101 - adds r0, r4 - strh r0, [r2, 0x32] - ldr r1, [r1, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] -_080FBC90: - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FBC98: .4byte gUnknown_020388CC -_080FBC9C: .4byte 0x00000101 - thumb_func_end sub_80FBB3C - - thumb_func_start sub_80FBCA0 -sub_80FBCA0: @ 80FBCA0 - push {r4,lr} - ldr r4, _080FBCCC @ =gUnknown_020388CC - ldr r0, [r4] - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080FBCC4 - bl DestroySprite - ldr r0, [r4] - adds r0, 0x58 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, 0x5A - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_080FBCC4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FBCCC: .4byte gUnknown_020388CC - thumb_func_end sub_80FBCA0 - - thumb_func_start unref_sub_80FBCD0 -unref_sub_80FBCD0: @ 80FBCD0 - ldr r0, _080FBCDC @ =gUnknown_020388CC - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0x1 - strh r0, [r1, 0x34] - bx lr - .align 2, 0 -_080FBCDC: .4byte gUnknown_020388CC - thumb_func_end unref_sub_80FBCD0 - - thumb_func_start unref_sub_80FBCE0 -unref_sub_80FBCE0: @ 80FBCE0 - ldr r0, _080FBCEC @ =gUnknown_020388CC - ldr r0, [r0] - ldr r1, [r0, 0x1C] - movs r0, 0 - strh r0, [r1, 0x34] - bx lr - .align 2, 0 -_080FBCEC: .4byte gUnknown_020388CC - thumb_func_end unref_sub_80FBCE0 - - thumb_func_start sub_80FBCF0 -sub_80FBCF0: @ 80FBCF0 - push {r4,r5,lr} - sub sp, 0x28 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _080FBD98 @ =gUnknown_083E5C40 - str r2, [sp, 0x18] - movs r2, 0x80 - add r5, sp, 0x18 - lsrs r3, r0, 16 - orrs r0, r2 - str r0, [r5, 0x4] - ldr r0, _080FBD9C @ =gUnknown_083E5C20 - str r0, [sp, 0x20] - ldr r2, _080FBDA0 @ =0xffff0000 - add r4, sp, 0x20 - ldr r0, [r4, 0x4] - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - mov r0, sp - movs r2, 0 - strh r3, [r0] - strh r1, [r0, 0x2] - ldr r0, _080FBDA4 @ =gUnknown_083E7708 - str r0, [sp, 0x4] - ldr r0, _080FBDA8 @ =gUnknown_083E7718 - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, _080FBDB0 @ =SpriteCallbackDummy - str r0, [sp, 0x14] - ldr r0, _080FBDB4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _080FBD42 - ldr r0, _080FBDB8 @ =gUnknown_083E5CE0 - str r0, [sp, 0x18] - ldr r0, _080FBDBC @ =gUnknown_083E5CC0 - str r0, [sp, 0x20] -_080FBD42: - adds r0, r5, 0 - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080FBDC0 @ =gUnknown_020388CC - ldr r2, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080FBDC4 @ =gSprites - adds r1, r0 - str r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0 - bne _080FBDCC - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, _080FBDC8 @ =sub_80FBF34 - b _080FBDEA - .align 2, 0 -_080FBD98: .4byte gUnknown_083E5C40 -_080FBD9C: .4byte gUnknown_083E5C20 -_080FBDA0: .4byte 0xffff0000 -_080FBDA4: .4byte gUnknown_083E7708 -_080FBDA8: .4byte gUnknown_083E7718 -_080FBDAC: .4byte gDummySpriteAffineAnimTable -_080FBDB0: .4byte SpriteCallbackDummy -_080FBDB4: .4byte gSaveBlock2 -_080FBDB8: .4byte gUnknown_083E5CE0 -_080FBDBC: .4byte gUnknown_083E5CC0 -_080FBDC0: .4byte gUnknown_020388CC -_080FBDC4: .4byte gSprites -_080FBDC8: .4byte sub_80FBF34 -_080FBDCC: - adds r0, r2, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r2, 0x20] - adds r0, r2, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r2, 0x20] - ldr r0, _080FBDF4 @ =sub_80FBEA4 -_080FBDEA: - str r0, [r1, 0x1C] - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FBDF4: .4byte sub_80FBEA4 - thumb_func_end sub_80FBCF0 - - thumb_func_start sub_80FBDF8 -sub_80FBDF8: @ 80FBDF8 - push {lr} - ldr r3, _080FBE1C @ =gUnknown_020388CC - ldr r0, [r3] - ldr r2, [r0, 0x20] - cmp r2, 0 - beq _080FBE16 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r1, [r0, 0x20] - ldr r0, _080FBE20 @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_080FBE16: - pop {r0} - bx r0 - .align 2, 0 -_080FBE1C: .4byte gUnknown_020388CC -_080FBE20: .4byte SpriteCallbackDummy - thumb_func_end sub_80FBDF8 - - thumb_func_start sub_80FBE24 -sub_80FBE24: @ 80FBE24 - push {lr} - ldr r0, _080FBE5C @ =gUnknown_020388CC - ldr r3, [r0] - ldr r1, [r3, 0x20] - cmp r1, 0 - beq _080FBE9A - adds r0, r3, 0 - adds r0, 0x78 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080FBE64 - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x30 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 4 - subs r0, 0x42 - strh r0, [r1, 0x22] - ldr r1, [r3, 0x20] - ldr r0, _080FBE60 @ =sub_80FBEA4 - b _080FBE8C - .align 2, 0 -_080FBE5C: .4byte gUnknown_020388CC -_080FBE60: .4byte sub_80FBEA4 -_080FBE64: - adds r0, r3, 0 - adds r0, 0x74 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - movs r2, 0 - strh r0, [r1, 0x20] - ldr r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x76 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x22] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x24] - ldr r0, [r3, 0x20] - strh r2, [r0, 0x26] - ldr r1, [r3, 0x20] - ldr r0, _080FBEA0 @ =sub_80FBF34 -_080FBE8C: - str r0, [r1, 0x1C] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_080FBE9A: - pop {r0} - bx r0 - .align 2, 0 -_080FBEA0: .4byte sub_80FBF34 - thumb_func_end sub_80FBE24 - - thumb_func_start sub_80FBEA4 -sub_80FBEA4: @ 80FBEA4 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080FBF08 @ =gUnknown_020388CC - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x5C - movs r4, 0 - ldrsh r2, [r0, r4] - lsls r2, 1 - negs r2, r2 - strh r2, [r3, 0x24] - adds r1, 0x5E - movs r4, 0 - ldrsh r0, [r1, r4] - lsls r0, 1 - negs r0, r0 - strh r0, [r3, 0x26] - ldrh r1, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r3, 0x2E] - ldrh r1, [r3, 0x20] - adds r1, r2 - adds r2, r3, 0 - adds r2, 0x28 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - adds r2, r1 - strh r2, [r3, 0x30] - adds r0, 0x8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB0 - bhi _080FBF04 - lsls r0, r2, 16 - asrs r2, r0, 16 - movs r0, 0x8 - negs r0, r0 - cmp r2, r0 - blt _080FBF04 - cmp r2, 0xF8 - ble _080FBF0C -_080FBF04: - movs r0, 0 - b _080FBF0E - .align 2, 0 -_080FBF08: .4byte gUnknown_020388CC -_080FBF0C: - movs r0, 0x1 -_080FBF0E: - strh r0, [r3, 0x32] - movs r1, 0x32 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - bne _080FBF20 - adds r0, r3, 0 - bl sub_80FBF40 - b _080FBF2C -_080FBF20: - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080FBF2C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FBEA4 - - thumb_func_start sub_80FBF34 -sub_80FBF34: @ 80FBF34 - push {lr} - bl sub_80FBF40 - pop {r0} - bx r0 - thumb_func_end sub_80FBF34 - - thumb_func_start sub_80FBF40 -sub_80FBF40: @ 80FBF40 - push {lr} - adds r2, r0, 0 - ldr r0, _080FBF80 @ =gUnknown_020388CC - ldr r0, [r0] - adds r0, 0x7E - ldrb r0, [r0] - cmp r0, 0 - beq _080FBF84 - ldrh r0, [r2, 0x3C] - adds r0, 0x1 - strh r0, [r2, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080FBF90 - movs r0, 0 - strh r0, [r2, 0x3C] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080FBF90 - .align 2, 0 -_080FBF80: .4byte gUnknown_020388CC -_080FBF84: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080FBF90: - pop {r0} - bx r0 - thumb_func_end sub_80FBF40 - - thumb_func_start sub_80FBF94 -sub_80FBF94: @ 80FBF94 - push {lr} - ldr r0, _080FBFB0 @ =gUnknown_020388CC - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x7F - ldrb r0, [r0] - cmp r0, 0 - beq _080FBFAA - adds r1, 0x7E - movs r0, 0x1 - strb r0, [r1] -_080FBFAA: - pop {r0} - bx r0 - .align 2, 0 -_080FBFB0: .4byte gUnknown_020388CC - thumb_func_end sub_80FBF94 - - thumb_func_start sub_80FBFB4 -sub_80FBFB4: @ 80FBFB4 - push {lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r1, 0x56 - bne _080FBFCA - bl GetSecretBaseMapName - b _080FBFF2 -_080FBFCA: - cmp r1, 0x57 - bhi _080FBFE4 - ldr r0, _080FBFE0 @ =gRegionMapLocations - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r1, [r1] - adds r0, r3, 0 - bl StringCopy - b _080FBFF2 - .align 2, 0 -_080FBFE0: .4byte gRegionMapLocations -_080FBFE4: - cmp r2, 0 - bne _080FBFEA - movs r2, 0x12 -_080FBFEA: - adds r0, r3, 0 - movs r1, 0 - bl StringFill -_080FBFF2: - pop {r1} - bx r1 - thumb_func_end sub_80FBFB4 - - thumb_func_start sub_80FBFF8 -sub_80FBFF8: @ 80FBFF8 - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x56 - beq _080FC014 - cmp r1, 0x57 - bne _080FC020 - ldr r1, _080FC010 @ =gOtherText_Ferry - bl StringCopy - b _080FC026 - .align 2, 0 -_080FC010: .4byte gOtherText_Ferry -_080FC014: - ldr r1, _080FC01C @ =gOtherText_SecretBase - bl StringCopy - b _080FC026 - .align 2, 0 -_080FC01C: .4byte gOtherText_SecretBase -_080FC020: - movs r2, 0 - bl sub_80FBFB4 -_080FC026: - pop {r1} - bx r1 - thumb_func_end sub_80FBFF8 - - thumb_func_start sub_80FC02C -sub_80FC02C: @ 80FC02C - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x42 - beq _080FC03C - bl sub_80FBFF8 - b _080FC042 -_080FC03C: - ldr r1, _080FC048 @ =gOtherText_Hideout - bl StringCopy -_080FC042: - pop {r1} - bx r1 - .align 2, 0 -_080FC048: .4byte gOtherText_Hideout - thumb_func_end sub_80FC02C - - thumb_func_start sub_80FC04C -sub_80FC04C: @ 80FC04C - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 16 - ldr r4, _080FC070 @ =gRegionMapLocations - lsrs r0, 13 - adds r0, r4 - ldrb r4, [r0] - strh r4, [r1] - ldrb r1, [r0, 0x1] - strh r1, [r2] - ldrb r1, [r0, 0x2] - strh r1, [r3] - ldrb r0, [r0, 0x3] - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC070: .4byte gRegionMapLocations - thumb_func_end sub_80FC04C - - thumb_func_start sub_80FC074 -sub_80FC074: @ 80FC074 - push {r4,lr} - ldr r0, _080FC090 @ =gMain - ldr r1, _080FC094 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _080FC084 - b _080FC1F2 -_080FC084: - lsls r0, 2 - ldr r1, _080FC098 @ =_080FC09C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC090: .4byte gMain -_080FC094: .4byte 0x0000043c -_080FC098: .4byte _080FC09C - .align 2, 0 -_080FC09C: - .4byte _080FC0C4 - .4byte _080FC104 - .4byte _080FC110 - .4byte _080FC120 - .4byte _080FC15C - .4byte _080FC170 - .4byte _080FC184 - .4byte _080FC1A4 - .4byte _080FC1AA - .4byte _080FC1C4 -_080FC0C4: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x10 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080FC1E6 -_080FC104: - ldr r0, _080FC10C @ =gWindowConfig_81E7224 - bl SetUpWindowConfig - b _080FC1E6 - .align 2, 0 -_080FC10C: .4byte gWindowConfig_81E7224 -_080FC110: - ldr r0, _080FC11C @ =gWindowConfig_81E7224 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080FC1E6 - .align 2, 0 -_080FC11C: .4byte gWindowConfig_81E7224 -_080FC120: - ldr r4, _080FC158 @ =0x02000008 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0 - movs r1, 0 - bl sub_80FBB3C - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBCF0 - adds r1, r4, 0 - subs r1, 0x8 - ldrh r0, [r1, 0x1C] - strh r0, [r1, 0x6] - movs r2, 0xA4 - lsls r2, 4 - adds r4, r2 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xC - bl StringFill - bl sub_80FC254 - b _080FC1E6 - .align 2, 0 -_080FC158: .4byte 0x02000008 -_080FC15C: - ldr r0, _080FC168 @ =gUnknown_083E773C - ldr r1, _080FC16C @ =0x0600c000 - bl LZ77UnCompVram - b _080FC1E6 - .align 2, 0 -_080FC168: .4byte gUnknown_083E773C -_080FC16C: .4byte 0x0600c000 -_080FC170: - ldr r0, _080FC17C @ =gUnknown_083E7774 - ldr r1, _080FC180 @ =0x0600f000 - bl LZ77UnCompVram - b _080FC1E6 - .align 2, 0 -_080FC17C: .4byte gUnknown_083E7774 -_080FC180: .4byte 0x0600f000 -_080FC184: - ldr r0, _080FC19C @ =gUnknown_083E771C - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere - movs r1, 0x1 - movs r2, 0x90 - movs r3, 0x1 - bl MenuPrint_PixelCoords - b _080FC1E6 - .align 2, 0 -_080FC19C: .4byte gUnknown_083E771C -_080FC1A0: .4byte gOtherText_FlyToWhere -_080FC1A4: - bl sub_80FC31C - b _080FC1E6 -_080FC1AA: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _080FC1C0 @ =sub_80FC214 - bl SetVBlankCallback - b _080FC1E6 - .align 2, 0 -_080FC1C0: .4byte sub_80FC214 -_080FC1C4: - ldr r1, _080FC1F8 @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - subs r1, 0x46 - ldr r2, _080FC1FC @ =0x00001e0d - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - ldr r2, _080FC200 @ =0x00001741 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080FC204 @ =sub_80FC5B4 - bl sub_80FC244 - ldr r0, _080FC208 @ =sub_80FC228 - bl SetMainCallback2 -_080FC1E6: - ldr r1, _080FC20C @ =gMain - ldr r0, _080FC210 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080FC1F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC1F8: .4byte REG_BLDCNT -_080FC1FC: .4byte 0x00001e0d -_080FC200: .4byte 0x00001741 -_080FC204: .4byte sub_80FC5B4 -_080FC208: .4byte sub_80FC228 -_080FC20C: .4byte gMain -_080FC210: .4byte 0x0000043c - thumb_func_end sub_80FC074 - - thumb_func_start sub_80FC214 -sub_80FC214: @ 80FC214 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80FC214 - - thumb_func_start sub_80FC228 -sub_80FC228: @ 80FC228 - push {lr} - ldr r0, _080FC240 @ =0x02000000 - ldr r0, [r0] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_080FC240: .4byte 0x02000000 - thumb_func_end sub_80FC228 - - thumb_func_start sub_80FC244 -sub_80FC244: @ 80FC244 - ldr r1, _080FC250 @ =0x02000000 - str r0, [r1] - movs r0, 0 - strh r0, [r1, 0x4] - bx lr - .align 2, 0 -_080FC250: .4byte 0x02000000 - thumb_func_end sub_80FC244 - - thumb_func_start sub_80FC254 -sub_80FC254: @ 80FC254 - push {r4,r5,lr} - ldr r4, _080FC2AC @ =0x02000000 - ldrb r0, [r4, 0x1E] - cmp r0, 0x2 - beq _080FC262 - cmp r0, 0x4 - bne _080FC2EC -_080FC262: - movs r1, 0 - ldr r2, _080FC2B0 @ =gUnknown_083E79C0 - adds r5, r4, 0 -_080FC268: - lsls r0, r1, 3 - adds r4, r0, r2 - ldrh r0, [r5, 0x1C] - ldrh r3, [r4, 0x4] - cmp r0, r3 - bne _080FC2B4 - ldrh r0, [r4, 0x6] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC2BE - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - adds r0, 0x8 - movs r1, 0x11 - movs r2, 0xF - bl MenuPrint - ldrb r0, [r5, 0x1F] - ldr r1, [r4] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1D - movs r2, 0x11 - bl sub_8072B4C - b _080FC310 - .align 2, 0 -_080FC2AC: .4byte 0x02000000 -_080FC2B0: .4byte gUnknown_083E79C0 -_080FC2B4: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080FC268 -_080FC2BE: - movs r0, 0 - cmp r0, 0 - bne _080FC310 - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _080FC2E8 @ =0x02000008 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - b _080FC310 - .align 2, 0 -_080FC2E8: .4byte 0x02000008 -_080FC2EC: - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _080FC318 @ =0x00000a48 - adds r0, r4, r1 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint - movs r0, 0x10 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect -_080FC310: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FC318: .4byte 0x00000a48 - thumb_func_end sub_80FC254 - - thumb_func_start sub_80FC31C -sub_80FC31C: @ 80FC31C - push {r4,lr} - sub sp, 0x8 - ldr r0, _080FC360 @ =gUnknown_083E784C - ldr r4, _080FC364 @ =0x02000888 - adds r1, r4, 0 - bl LZ77UnCompWram - str r4, [sp] - ldr r1, _080FC368 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0xE0 - lsls r1, 1 - orrs r0, r1 - ldr r1, _080FC36C @ =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 10 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r0, _080FC370 @ =gUnknown_083E79CC - bl LoadSpritePalette - bl sub_80FC374 - bl sub_80FC484 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC360: .4byte gUnknown_083E784C -_080FC364: .4byte 0x02000888 -_080FC368: .4byte 0xffff0000 -_080FC36C: .4byte 0x0000ffff -_080FC370: .4byte gUnknown_083E79CC - thumb_func_end sub_80FC31C - - thumb_func_start sub_80FC374 -sub_80FC374: @ 80FC374 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _080FC3D4 @ =0x0000080f - str r0, [sp, 0xC] - movs r1, 0 - mov r9, r1 - mov r2, sp - adds r2, 0x6 - str r2, [sp, 0x14] - mov r3, sp - adds r3, 0xA - str r3, [sp, 0x18] - mov r0, sp - adds r0, 0x8 - str r0, [sp, 0x10] - add r1, sp, 0x4 - mov r10, r1 -_080FC39E: - ldr r2, [sp, 0x18] - str r2, [sp] - mov r0, r9 - add r1, sp, 0x4 - mov r2, sp - adds r2, 0x6 - ldr r3, [sp, 0x10] - bl sub_80FC04C - mov r3, r10 - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3] - mov r1, sp - ldrh r0, [r1, 0x6] - adds r0, 0x2 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x6] - ldr r2, [sp, 0x10] - ldrh r0, [r2] - cmp r0, 0x2 - bne _080FC3D8 - movs r7, 0x1 - b _080FC3E4 - .align 2, 0 -_080FC3D4: .4byte 0x0000080f -_080FC3D8: - ldr r3, [sp, 0x18] - ldrh r0, [r3] - movs r7, 0 - cmp r0, 0x2 - bne _080FC3E4 - movs r7, 0x2 -_080FC3E4: - mov r0, r10 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r3, [sp, 0x14] - movs r0, 0 - ldrsh r2, [r3, r0] - ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080FC458 - ldr r1, _080FC434 @ =gSprites - mov r8, r1 - lsls r4, r5, 4 - adds r0, r4, r5 - lsls r6, r0, 2 - adds r2, r6, r1 - lsls r3, r7, 6 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x1] - ldr r0, [sp, 0xC] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC43C - mov r0, r8 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, _080FC438 @ =sub_80FC55C - str r1, [r0] - b _080FC442 - .align 2, 0 -_080FC430: .4byte gSpriteTemplate_83E7A38 -_080FC434: .4byte gSprites -_080FC438: .4byte sub_80FC55C -_080FC43C: - adds r0, r7, 0x3 - lsls r0, 16 - lsrs r7, r0, 16 -_080FC442: - adds r4, r5 - lsls r4, 2 - ldr r0, _080FC480 @ =gSprites - adds r4, r0 - lsls r1, r7, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - mov r2, r9 - strh r2, [r4, 0x2E] -_080FC458: - ldr r0, [sp, 0xC] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0xF - bls _080FC39E - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC480: .4byte gSprites - thumb_func_end sub_80FC374 - - thumb_func_start sub_80FC484 -sub_80FC484: @ 80FC484 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r8, r0 - ldr r6, _080FC54C @ =gUnknown_083E79D4 - ldrh r0, [r6, 0x2] - cmp r0, 0x58 - beq _080FC53C - mov r5, sp - adds r5, 0x6 - add r7, sp, 0x4 - ldr r1, _080FC550 @ =gSprites - mov r9, r1 - movs r0, 0x1C - add r0, r9 - mov r10, r0 -_080FC4AC: - mov r1, r8 - lsls r4, r1, 2 - adds r0, r4, r6 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080FC524 - adds r0, r6, 0x2 - adds r0, r4, r0 - ldrh r6, [r0] - mov r0, sp - adds r0, 0xA - str r0, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - add r3, sp, 0x8 - bl sub_80FC04C - ldrh r0, [r7] - adds r0, 0x1 - lsls r0, 3 - strh r0, [r7] - ldrh r0, [r5] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r5] - movs r0, 0 - ldrsh r1, [r7, r0] - movs r0, 0 - ldrsh r2, [r5, r0] - ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080FC524 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - mov r1, r9 - adds r4, r2, r1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] - add r2, r10 - ldr r0, _080FC558 @ =sub_80FC55C - str r0, [r2] - adds r0, r4, 0 - movs r1, 0x6 - bl StartSpriteAnim - strh r6, [r4, 0x2E] -_080FC524: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r6, _080FC54C @ =gUnknown_083E79D4 - lsls r0, 2 - adds r1, r6, 0x2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0x58 - bne _080FC4AC -_080FC53C: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC54C: .4byte gUnknown_083E79D4 -_080FC550: .4byte gSprites -_080FC554: .4byte gSpriteTemplate_83E7A38 -_080FC558: .4byte sub_80FC55C - thumb_func_end sub_80FC484 - - thumb_func_start sub_80FC55C -sub_80FC55C: @ 80FC55C - push {lr} - adds r2, r0, 0 - ldr r0, _080FC59C @ =0x02000000 - ldrh r1, [r0, 0x1C] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r1, r0 - bne _080FC5A0 - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _080FC5AE - movs r0, 0 - strh r0, [r2, 0x30] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsrs r1, r2, 2 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _080FC5AE - .align 2, 0 -_080FC59C: .4byte 0x02000000 -_080FC5A0: - movs r0, 0x10 - strh r0, [r2, 0x30] - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x15 - ands r0, r1 - strb r0, [r2] -_080FC5AE: - pop {r0} - bx r0 - thumb_func_end sub_80FC55C - - thumb_func_start sub_80FC5B4 -sub_80FC5B4: @ 80FC5B4 - push {r4,lr} - sub sp, 0x4 - ldr r4, _080FC5C8 @ =0x02000000 - ldrh r1, [r4, 0x4] - cmp r1, 0 - beq _080FC5CC - cmp r1, 0x1 - beq _080FC5E4 - b _080FC5F4 - .align 2, 0 -_080FC5C8: .4byte 0x02000000 -_080FC5CC: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _080FC5F4 -_080FC5E4: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080FC5F4 - ldr r0, _080FC5FC @ =sub_80FC600 - bl sub_80FC244 -_080FC5F4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC5FC: .4byte sub_80FC600 - thumb_func_end sub_80FC5B4 - - thumb_func_start sub_80FC600 -sub_80FC600: @ 80FC600 - push {r4,lr} - ldr r0, _080FC620 @ =0x02000000 - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _080FC68A - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080FC68A - lsls r0, 2 - ldr r1, _080FC624 @ =_080FC628 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC620: .4byte 0x02000000 -_080FC624: .4byte _080FC628 - .align 2, 0 -_080FC628: - .4byte _080FC68A - .4byte _080FC68A - .4byte _080FC68A - .4byte _080FC640 - .4byte _080FC646 - .4byte _080FC674 -_080FC640: - bl sub_80FC254 - b _080FC68A -_080FC646: - ldr r4, _080FC668 @ =0x02000000 - ldrb r0, [r4, 0x1E] - cmp r0, 0x2 - beq _080FC652 - cmp r0, 0x4 - bne _080FC68A -_080FC652: - movs r0, 0x5 - bl m4aSongNumStart - ldr r1, _080FC66C @ =0x00000a6e - adds r0, r4, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _080FC670 @ =sub_80FC69C - bl sub_80FC244 - b _080FC68A - .align 2, 0 -_080FC668: .4byte 0x02000000 -_080FC66C: .4byte 0x00000a6e -_080FC670: .4byte sub_80FC69C -_080FC674: - movs r0, 0x5 - bl m4aSongNumStart - ldr r0, _080FC690 @ =0x02000000 - ldr r1, _080FC694 @ =0x00000a6e - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, _080FC698 @ =sub_80FC69C - bl sub_80FC244 -_080FC68A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC690: .4byte 0x02000000 -_080FC694: .4byte 0x00000a6e -_080FC698: .4byte sub_80FC69C - thumb_func_end sub_80FC600 - - thumb_func_start sub_80FC69C -sub_80FC69C: @ 80FC69C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080FC6B0 @ =0x02000000 - ldrh r1, [r4, 0x4] - cmp r1, 0 - beq _080FC6B4 - cmp r1, 0x1 - beq _080FC6CC - b _080FC792 - .align 2, 0 -_080FC6B0: .4byte 0x02000000 -_080FC6B4: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - b _080FC792 -_080FC6CC: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080FC792 - bl sub_80FAB10 - ldr r1, _080FC6F4 @ =0x00000a6e - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FC78C - ldrh r0, [r4, 0x1C] - cmp r0, 0xF - beq _080FC724 - cmp r0, 0xF - bgt _080FC6F8 - cmp r0, 0 - beq _080FC710 - b _080FC748 - .align 2, 0 -_080FC6F4: .4byte 0x00000a6e -_080FC6F8: - cmp r0, 0x3A - beq _080FC708 - cmp r0, 0x49 - bne _080FC748 - movs r0, 0x16 - bl sub_8053538 - b _080FC786 -_080FC708: - movs r0, 0x15 - bl sub_8053538 - b _080FC786 -_080FC710: - ldr r0, _080FC720 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0xD - cmp r0, 0 - bne _080FC73A - movs r1, 0xC - b _080FC73A - .align 2, 0 -_080FC720: .4byte gSaveBlock2 -_080FC724: - ldr r0, _080FC744 @ =0x00000854 - bl FlagGet - lsls r0, 24 - movs r1, 0xB - cmp r0, 0 - beq _080FC73A - ldrb r0, [r4, 0x1F] - cmp r0, 0 - bne _080FC73A - movs r1, 0x14 -_080FC73A: - adds r0, r1, 0 - bl sub_8053538 - b _080FC786 - .align 2, 0 -_080FC744: .4byte 0x00000854 -_080FC748: - ldr r3, _080FC764 @ =gUnknown_083E7920 - ldr r0, _080FC768 @ =0x02000000 - ldrh r1, [r0, 0x1C] - lsls r0, r1, 1 - adds r2, r0, r1 - adds r0, r3, 0x2 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FC76C - bl sub_8053538 - b _080FC786 - .align 2, 0 -_080FC764: .4byte gUnknown_083E7920 -_080FC768: .4byte 0x02000000 -_080FC76C: - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - bl warp1_set_2 -_080FC786: - bl sub_80865BC - b _080FC792 -_080FC78C: - ldr r0, _080FC79C @ =sub_808AD58 - bl SetMainCallback2 -_080FC792: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FC79C: .4byte sub_808AD58 - thumb_func_end sub_80FC69C - - thumb_func_start sub_80FC7A0 -sub_80FC7A0: @ 80FC7A0 - push {lr} - ldr r2, _080FC7E8 @ =gUnknown_03005DEC - ldr r1, [r0, 0x4] - str r1, [r2] - ldr r2, _080FC7EC @ =gUnknown_03005E00 - ldrb r1, [r0, 0x1F] - strb r1, [r2] - ldr r2, _080FC7F0 @ =gUnknown_03005DE8 - ldrb r1, [r0, 0x19] - strb r1, [r2] - ldr r2, _080FC7F4 @ =gUnknown_03005DFC - ldrb r1, [r0, 0x1A] - strb r1, [r2] - ldr r2, _080FC7F8 @ =gUnknown_03005DF8 - ldrb r1, [r0, 0x1B] - strb r1, [r2] - ldr r2, _080FC7FC @ =gUnknown_03005DF0 - ldrb r1, [r0, 0x1C] - strb r1, [r2] - ldr r2, _080FC800 @ =gUnknown_03005E04 - ldrb r1, [r0, 0x1D] - strb r1, [r2] - ldr r2, _080FC804 @ =gUnknown_03005DF4 - ldrb r1, [r0, 0x1E] - strb r1, [r2] - ldrb r0, [r0] - subs r0, 0x2 - cmp r0, 0x22 - bls _080FC7DC - b _080FC928 -_080FC7DC: - lsls r0, 2 - ldr r1, _080FC808 @ =_080FC80C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FC7E8: .4byte gUnknown_03005DEC -_080FC7EC: .4byte gUnknown_03005E00 -_080FC7F0: .4byte gUnknown_03005DE8 -_080FC7F4: .4byte gUnknown_03005DFC -_080FC7F8: .4byte gUnknown_03005DF8 -_080FC7FC: .4byte gUnknown_03005DF0 -_080FC800: .4byte gUnknown_03005E04 -_080FC804: .4byte gUnknown_03005DF4 -_080FC808: .4byte _080FC80C - .align 2, 0 -_080FC80C: - .4byte _080FC898 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC8F8 - .4byte _080FC928 - .4byte _080FC89E - .4byte _080FC8A4 - .4byte _080FC8B8 - .4byte _080FC8CA - .4byte _080FC928 - .4byte _080FC8E0 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC8E6 - .4byte _080FC8C4 - .4byte _080FC8EC - .4byte _080FC8F2 - .4byte _080FC928 - .4byte _080FC928 - .4byte _080FC904 -_080FC898: - bl sub_80FCAA4 - b _080FC928 -_080FC89E: - bl sub_80FCB5C - b _080FC928 -_080FC8A4: - bl sub_80FCD54 - ldr r0, _080FC8B4 @ =gUnknown_03005E00 - ldrb r0, [r0] - bl sub_80FCC18 - b _080FC928 - .align 2, 0 -_080FC8B4: .4byte gUnknown_03005E00 -_080FC8B8: - bl sub_80FCD54 - bl sub_80FCEA4 - bl sub_80FCCBC -_080FC8C4: - bl sub_80FCEA4 - b _080FC928 -_080FC8CA: - bl sub_80FCD54 - bl sub_80FD06C - bl sub_80FD06C - bl sub_80FD114 - bl sub_80FCCBC - b _080FC928 -_080FC8E0: - bl sub_80FCF3C - b _080FC928 -_080FC8E6: - bl sub_80FCD54 - b _080FC928 -_080FC8EC: - bl sub_80FD06C - b _080FC928 -_080FC8F2: - bl sub_80FD114 - b _080FC928 -_080FC8F8: - bl sub_80FCAC4 - movs r0, 0x3 - bl sub_80FC92C - b _080FC928 -_080FC904: - bl sub_80FCD54 - bl sub_80FD06C - bl sub_80FD114 - bl sub_80FCCBC - bl sub_80FCB5C - bl sub_80FCB5C - movs r0, 0x2 - bl sub_80FC92C - movs r0, 0x4 - bl sub_80FC9E4 -_080FC928: - pop {r0} - bx r0 - thumb_func_end sub_80FC7A0 - - thumb_func_start sub_80FC92C -sub_80FC92C: @ 80FC92C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0 - ldr r0, _080FC9CC @ =gUnknown_03005DF0 - mov r8, r0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FC9BE - ldr r1, _080FC9D0 @ =gUnknown_03005DF8 - mov r12, r1 - ldr r3, _080FC9D4 @ =gUnknown_03005E04 - mov r10, r3 - ldr r0, _080FC9D8 @ =gUnknown_03005DE8 - mov r9, r0 -_080FC952: - ldr r1, _080FC9DC @ =gUnknown_03005DFC - ldrb r0, [r1] - adds r0, r2 - mov r3, r10 - ldrb r1, [r3] - muls r0, r1 - lsls r0, 1 - ldr r3, _080FC9E0 @ =gUnknown_03005DEC - ldr r1, [r3] - adds r1, r0 - mov r3, r9 - ldrb r0, [r3] - lsls r0, 1 - adds r3, r1, r0 - movs r4, 0 - adds r5, r2, 0x1 - mov r0, r12 - ldrb r0, [r0] - cmp r4, r0 - bcs _080FC9B2 - movs r6, 0x80 - lsls r6, 8 -_080FC97E: - ldrh r1, [r3] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _080FC9A2 - movs r0, 0x1F - ands r0, r1 - adds r0, r7 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080FC998 - movs r2, 0x1F -_080FC998: - lsls r0, r2, 10 - lsls r1, r2, 5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_080FC9A2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r3, 0x2 - mov r1, r12 - ldrb r1, [r1] - cmp r4, r1 - bcc _080FC97E -_080FC9B2: - lsls r0, r5, 24 - lsrs r2, r0, 24 - mov r3, r8 - ldrb r3, [r3] - cmp r2, r3 - bcc _080FC952 -_080FC9BE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FC9CC: .4byte gUnknown_03005DF0 -_080FC9D0: .4byte gUnknown_03005DF8 -_080FC9D4: .4byte gUnknown_03005E04 -_080FC9D8: .4byte gUnknown_03005DE8 -_080FC9DC: .4byte gUnknown_03005DFC -_080FC9E0: .4byte gUnknown_03005DEC - thumb_func_end sub_80FC92C - - thumb_func_start sub_80FC9E4 -sub_80FC9E4: @ 80FC9E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080FCA8C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCA7C - ldr r1, _080FCA90 @ =gUnknown_03005DF8 - mov r10, r1 -_080FCA02: - ldr r3, _080FCA94 @ =gUnknown_03005DFC - ldrb r0, [r3] - adds r0, r2 - ldr r3, _080FCA98 @ =gUnknown_03005E04 - ldrb r1, [r3] - muls r0, r1 - lsls r0, 1 - ldr r3, _080FCA9C @ =gUnknown_03005DEC - ldr r1, [r3] - adds r1, r0 - ldr r3, _080FCAA0 @ =gUnknown_03005DE8 - ldrb r0, [r3] - lsls r0, 1 - adds r3, r1, r0 - movs r5, 0 - adds r7, r2, 0x1 - mov r0, r10 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FCA70 - movs r1, 0x80 - lsls r1, 8 - mov r9, r1 - movs r0, 0x1F - mov r12, r0 - mov r1, r8 - subs r6, r0, r1 -_080FCA38: - ldrh r1, [r3] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080FCA60 - movs r4, 0x1F - mov r2, r12 - ands r2, r1 - cmp r2, r6 - ble _080FCA56 - mov r1, r8 - lsrs r0, r1, 1 - subs r0, r4, r0 - lsls r0, 24 - lsrs r2, r0, 24 -_080FCA56: - lsls r0, r2, 10 - lsls r1, r2, 5 - orrs r0, r1 - orrs r0, r2 - strh r0, [r3] -_080FCA60: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r3, 0x2 - mov r0, r10 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FCA38 -_080FCA70: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r1, _080FCA8C @ =gUnknown_03005DF0 - ldrb r1, [r1] - cmp r2, r1 - bcc _080FCA02 -_080FCA7C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCA8C: .4byte gUnknown_03005DF0 -_080FCA90: .4byte gUnknown_03005DF8 -_080FCA94: .4byte gUnknown_03005DFC -_080FCA98: .4byte gUnknown_03005E04 -_080FCA9C: .4byte gUnknown_03005DEC -_080FCAA0: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FC9E4 - - thumb_func_start sub_80FCAA4 -sub_80FCAA4: @ 80FCAA4 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080FCAC0 @ =0x00000c7f -_080FCAAA: - lsls r0, r4, 16 - lsrs r0, 16 - bl sub_80FD1C8 - adds r4, 0x1 - cmp r4, r5 - bls _080FCAAA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FCAC0: .4byte 0x00000c7f - thumb_func_end sub_80FCAA4 - - thumb_func_start sub_80FCAC4 -sub_80FCAC4: @ 80FCAC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCB44 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCB36 - ldr r0, _080FCB48 @ =gUnknown_03005DEC - mov r8, r0 - ldr r3, _080FCB4C @ =gUnknown_03005DF8 -_080FCADC: - ldr r0, _080FCB50 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCB54 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCB58 @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCB2A - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCB08: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCB1C - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD39C - strh r0, [r4] - ldr r3, [sp] -_080FCB1C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCB08 -_080FCB2A: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCB44 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCADC -_080FCB36: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCB44: .4byte gUnknown_03005DF0 -_080FCB48: .4byte gUnknown_03005DEC -_080FCB4C: .4byte gUnknown_03005DF8 -_080FCB50: .4byte gUnknown_03005DFC -_080FCB54: .4byte gUnknown_03005E04 -_080FCB58: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCAC4 - - thumb_func_start sub_80FCB5C -sub_80FCB5C: @ 80FCB5C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r2, 0 - ldr r0, _080FCC00 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCBF2 - ldr r0, _080FCC04 @ =gUnknown_03005DEC - mov r8, r0 - ldr r3, _080FCC08 @ =gUnknown_03005E04 -_080FCB74: - ldr r0, _080FCC0C @ =gUnknown_03005DFC - ldrb r1, [r0] - ldrb r0, [r3] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCC10 @ =gUnknown_03005DE8 - ldrb r0, [r0] - adds r0, r2 - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - ldrb r0, [r3] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FCC14 @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - adds r7, r2, 0x1 - cmp r5, r0 - bge _080FCBE6 - ldr r6, _080FCC08 @ =gUnknown_03005E04 -_080FCBAA: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FCBD0 - ldrb r2, [r6] - lsls r2, 1 - adds r2, r4, r2 - mov r0, sp - adds r1, r4, 0 - str r3, [sp, 0x4] - bl sub_80FD68C - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r3, [sp, 0x4] -_080FCBD0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FCC14 @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FCBAA -_080FCBE6: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FCC00 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCB74 -_080FCBF2: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCC00: .4byte gUnknown_03005DF8 -_080FCC04: .4byte gUnknown_03005DEC -_080FCC08: .4byte gUnknown_03005E04 -_080FCC0C: .4byte gUnknown_03005DFC -_080FCC10: .4byte gUnknown_03005DE8 -_080FCC14: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FCB5C - - thumb_func_start sub_80FCC18 -sub_80FCC18: @ 80FCC18 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r2, 0 - ldr r0, _080FCCA4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCC94 - ldr r0, _080FCCA8 @ =gUnknown_03005DEC - mov r9, r0 - ldr r3, _080FCCAC @ =gUnknown_03005DF8 -_080FCC38: - ldr r0, _080FCCB0 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCCB4 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r9 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCCB8 @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCC88 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCC64: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCC7A - adds r0, r4, 0 - mov r1, r8 - str r3, [sp] - bl sub_80FD3D0 - strh r0, [r4] - ldr r3, [sp] -_080FCC7A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCC64 -_080FCC88: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCCA4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCC38 -_080FCC94: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCCA4: .4byte gUnknown_03005DF0 -_080FCCA8: .4byte gUnknown_03005DEC -_080FCCAC: .4byte gUnknown_03005DF8 -_080FCCB0: .4byte gUnknown_03005DFC -_080FCCB4: .4byte gUnknown_03005E04 -_080FCCB8: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCC18 - - thumb_func_start sub_80FCCBC -sub_80FCCBC: @ 80FCCBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCD3C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCD2E - ldr r0, _080FCD40 @ =gUnknown_03005DEC - mov r8, r0 - ldr r3, _080FCD44 @ =gUnknown_03005DF8 -_080FCCD4: - ldr r0, _080FCD48 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCD4C @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCD50 @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCD22 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCD00: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCD14 - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD4DC - strh r0, [r4] - ldr r3, [sp] -_080FCD14: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCD00 -_080FCD22: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCD3C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCCD4 -_080FCD2E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCD3C: .4byte gUnknown_03005DF0 -_080FCD40: .4byte gUnknown_03005DEC -_080FCD44: .4byte gUnknown_03005DF8 -_080FCD48: .4byte gUnknown_03005DFC -_080FCD4C: .4byte gUnknown_03005E04 -_080FCD50: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCCBC - - thumb_func_start sub_80FCD54 -sub_80FCD54: @ 80FCD54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r0, _080FCE8C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r7, r0 - bcs _080FCDE0 - ldr r0, _080FCE90 @ =gUnknown_03005DEC - mov r8, r0 -_080FCD6A: - ldr r0, _080FCE94 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r7 - ldr r0, _080FCE98 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r2, r8 - ldr r1, [r2] - adds r1, r0 - ldr r0, _080FCE9C @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r5, r1, r0 - adds r4, r5, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80FD50C - strh r0, [r5] - movs r6, 0x1 - adds r5, r4, 0 - ldr r0, _080FCEA0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - subs r0, 0x1 - adds r7, 0x1 - cmp r6, r0 - bge _080FCDCA -_080FCDA2: - adds r4, r5, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80FD50C - strh r0, [r5] - subs r1, r5, 0x2 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r5, r4, 0 - ldr r0, _080FCEA0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - subs r0, 0x1 - cmp r6, r0 - blt _080FCDA2 -_080FCDCA: - subs r1, r5, 0x2 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - lsls r0, r7, 24 - lsrs r7, r0, 24 - ldr r0, _080FCE8C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r7, r0 - bcc _080FCD6A -_080FCDE0: - movs r6, 0 - ldr r0, _080FCEA0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r6, r0 - bcs _080FCE80 - ldr r3, _080FCE90 @ =gUnknown_03005DEC - mov r9, r3 - ldr r0, _080FCE98 @ =gUnknown_03005E04 - mov r8, r0 -_080FCDF2: - ldr r0, _080FCE94 @ =gUnknown_03005DFC - ldrb r0, [r0] - mov r2, r8 - ldrb r1, [r2] - muls r0, r1 - lsls r0, 1 - mov r3, r9 - ldr r2, [r3] - adds r2, r0 - ldr r0, _080FCE9C @ =gUnknown_03005DE8 - ldrb r0, [r0] - adds r0, r6 - lsls r0, 1 - adds r5, r2, r0 - lsls r1, 1 - adds r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - movs r7, 0x1 - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - adds r5, r0 - ldr r0, _080FCE8C @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, 0x1 - cmp r7, r0 - bge _080FCE64 - ldr r4, _080FCE98 @ =gUnknown_03005E04 -_080FCE32: - ldrb r1, [r4] - lsls r1, 1 - adds r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - ldrb r1, [r4] - lsls r1, 1 - subs r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] - lsls r0, 1 - adds r5, r0 - ldr r0, _080FCE8C @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r7, r0 - blt _080FCE32 -_080FCE64: - mov r2, r8 - ldrb r1, [r2] - lsls r1, 1 - subs r1, r5, r1 - adds r0, r5, 0 - bl sub_80FD50C - strh r0, [r5] - lsls r0, r6, 24 - lsrs r6, r0, 24 - ldr r0, _080FCEA0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r6, r0 - bcc _080FCDF2 -_080FCE80: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCE8C: .4byte gUnknown_03005DF0 -_080FCE90: .4byte gUnknown_03005DEC -_080FCE94: .4byte gUnknown_03005DFC -_080FCE98: .4byte gUnknown_03005E04 -_080FCE9C: .4byte gUnknown_03005DE8 -_080FCEA0: .4byte gUnknown_03005DF8 - thumb_func_end sub_80FCD54 - - thumb_func_start sub_80FCEA4 -sub_80FCEA4: @ 80FCEA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FCF24 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FCF16 - ldr r0, _080FCF28 @ =gUnknown_03005DEC - mov r8, r0 - ldr r3, _080FCF2C @ =gUnknown_03005DF8 -_080FCEBC: - ldr r0, _080FCF30 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FCF34 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r4, r8 - ldr r1, [r4] - adds r1, r0 - ldr r0, _080FCF38 @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - adds r6, r2, 0x1 - ldrb r0, [r3] - cmp r5, r0 - bcs _080FCF0A - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FCEE8: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FCEFC - adds r0, r4, 0 - str r3, [sp] - bl sub_80FD53C - strh r0, [r4] - ldr r3, [sp] -_080FCEFC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r5, r0 - bcc _080FCEE8 -_080FCF0A: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FCF24 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FCEBC -_080FCF16: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FCF24: .4byte gUnknown_03005DF0 -_080FCF28: .4byte gUnknown_03005DEC -_080FCF2C: .4byte gUnknown_03005DF8 -_080FCF30: .4byte gUnknown_03005DFC -_080FCF34: .4byte gUnknown_03005E04 -_080FCF38: .4byte gUnknown_03005DE8 - thumb_func_end sub_80FCEA4 - - thumb_func_start sub_80FCF3C -sub_80FCF3C: @ 80FCF3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _080FD068 @ =gUnknown_03005DEC - ldr r4, [r0] - movs r6, 0 - movs r0, 0x80 - lsls r0, 8 - adds r5, r0, 0 -_080FCF54: - movs r7, 0 -_080FCF56: - ldrh r0, [r4] - ands r0, r5 - cmp r0, 0 - bne _080FCF66 - adds r0, r4, 0 - bl sub_80FD53C - strh r0, [r4] -_080FCF66: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, 0x2 - cmp r7, 0x3F - bls _080FCF56 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080FCF54 - movs r7, 0 - ldr r1, _080FD068 @ =gUnknown_03005DEC - mov r10, r1 - mov r3, sp - movs r2, 0x80 - lsls r2, 8 - mov r9, r2 -_080FCF8A: - lsls r0, r7, 1 - mov r2, r10 - ldr r1, [r2] - adds r4, r1, r0 - ldrh r1, [r4] - strh r1, [r3] - mov r1, r9 - strh r1, [r4] - movs r6, 0x1 - adds r4, 0x80 - adds r5, r0, 0 -_080FCFA0: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - ands r0, r2 - cmp r0, 0 - bne _080FCFC0 - adds r2, r4, 0 - adds r2, 0x80 - mov r0, sp - adds r1, r4, 0 - str r3, [sp, 0x4] - bl sub_80FD7AC - strh r0, [r4] - ldr r3, [sp, 0x4] - strh r0, [r3] -_080FCFC0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, 0x80 - cmp r6, 0x3E - bls _080FCFA0 - mov r0, r9 - strh r0, [r4] - mov r1, r10 - ldr r0, [r1] - adds r4, r0, r5 - ldrh r0, [r4] - strh r0, [r3] - mov r2, r9 - strh r2, [r4] - movs r6, 0x1 - adds r4, 0x80 - movs r0, 0x80 - lsls r0, 8 - mov r8, r0 -_080FCFE8: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - adds r5, r4, 0 - adds r5, 0x80 - cmp r0, 0 - bne _080FD008 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - str r3, [sp, 0x4] - bl sub_80FD7AC - strh r0, [r4] - ldr r3, [sp, 0x4] - strh r0, [r3] -_080FD008: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, r5, 0 - cmp r6, 0x3E - bls _080FCFE8 - mov r2, r9 - strh r2, [r4] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3F - bls _080FCF8A - ldr r0, _080FD068 @ =gUnknown_03005DEC - ldr r4, [r0] - movs r6, 0 - movs r0, 0x80 - lsls r0, 8 - mov r8, r0 -_080FD02E: - movs r7, 0 - adds r5, r6, 0x1 -_080FD032: - ldrh r0, [r4] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080FD044 - adds r0, r4, 0 - bl sub_80FD53C - strh r0, [r4] -_080FD044: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, 0x2 - cmp r7, 0x3F - bls _080FD032 - lsls r0, r5, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080FD02E - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD068: .4byte gUnknown_03005DEC - thumb_func_end sub_80FCF3C - - thumb_func_start sub_80FD06C -sub_80FD06C: @ 80FD06C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FD0FC @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FD0EE - ldr r0, _080FD100 @ =gUnknown_03005DEC - mov r8, r0 -_080FD082: - ldr r0, _080FD104 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FD108 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FD10C @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - adds r4, 0x2 - ldr r0, _080FD110 @ =gUnknown_03005DF8 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r2, 0x1 - cmp r5, r0 - bge _080FD0E2 - movs r0, 0x80 - lsls r0, 8 - adds r7, r0, 0 -_080FD0BA: - ldrh r0, [r4] - ands r0, r7 - cmp r0, 0 - bne _080FD0D0 - mov r0, sp - adds r1, r4, 0 - bl sub_80FD568 - strh r0, [r4] - mov r1, sp - strh r0, [r1] -_080FD0D0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FD110 @ =gUnknown_03005DF8 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FD0BA -_080FD0E2: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FD0FC @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FD082 -_080FD0EE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD0FC: .4byte gUnknown_03005DF0 -_080FD100: .4byte gUnknown_03005DEC -_080FD104: .4byte gUnknown_03005DFC -_080FD108: .4byte gUnknown_03005E04 -_080FD10C: .4byte gUnknown_03005DE8 -_080FD110: .4byte gUnknown_03005DF8 - thumb_func_end sub_80FD06C - - thumb_func_start sub_80FD114 -sub_80FD114: @ 80FD114 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r2, 0 - ldr r0, _080FD1B0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FD1A2 - ldr r0, _080FD1B4 @ =gUnknown_03005DEC - mov r8, r0 - ldr r7, _080FD1B8 @ =gUnknown_03005E04 -_080FD12C: - ldr r0, _080FD1BC @ =gUnknown_03005DFC - ldrb r1, [r0] - ldrb r0, [r7] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FD1C0 @ =gUnknown_03005DE8 - ldrb r0, [r0] - adds r0, r2 - lsls r0, 1 - adds r4, r1, r0 - ldrh r1, [r4] - mov r0, sp - strh r1, [r0] - movs r5, 0x1 - ldrb r0, [r7] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FD1C4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - adds r6, r2, 0x1 - cmp r5, r0 - bge _080FD196 - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FD166: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - bne _080FD180 - mov r0, sp - adds r1, r4, 0 - str r2, [sp, 0x4] - bl sub_80FD568 - strh r0, [r4] - mov r1, sp - strh r0, [r1] - ldr r2, [sp, 0x4] -_080FD180: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r7] - lsls r0, 1 - adds r4, r0 - ldr r0, _080FD1C4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r5, r0 - blt _080FD166 -_080FD196: - lsls r0, r6, 24 - lsrs r2, r0, 24 - ldr r0, _080FD1B0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FD12C -_080FD1A2: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FD1B0: .4byte gUnknown_03005DF8 -_080FD1B4: .4byte gUnknown_03005DEC -_080FD1B8: .4byte gUnknown_03005E04 -_080FD1BC: .4byte gUnknown_03005DFC -_080FD1C0: .4byte gUnknown_03005DE8 -_080FD1C4: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FD114 - - thumb_func_start sub_80FD1C8 -sub_80FD1C8: @ 80FD1C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r2, sp - ldr r3, _080FD234 @ =gUnknown_083E7A50 - lsls r1, r0, 1 - add r1, r10 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r2, 0x1] - mov r5, sp - adds r0, r3, 0x2 - adds r1, r0 - ldrb r4, [r1] - lsls r2, r4, 24 - lsrs r1, r2, 27 - movs r0, 0x7 - ands r1, r0 - strh r1, [r5, 0x2] - lsrs r2, 25 - mov r9, r2 - movs r0, 0x3 - ands r2, r0 - mov r9, r2 - movs r5, 0x1 - ands r5, r4 - movs r4, 0x1 - mov r8, r4 - cmp r8, r1 - bcs _080FD27A - mov r3, sp -_080FD21A: - cmp r5, 0 - bne _080FD238 - mov r0, r8 - lsls r2, r0, 2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - mov r4, r8 - subs r0, r4 - strb r0, [r1] - ldrb r0, [r3, 0x1] - add r0, r8 - b _080FD24A - .align 2, 0 -_080FD234: .4byte gUnknown_083E7A50 -_080FD238: - mov r0, r8 - lsls r2, r0, 2 - mov r4, sp - adds r1, r4, r2 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r3, 0x1] - subs r0, 0x1 -_080FD24A: - strb r0, [r1, 0x1] - add r2, sp - ldrb r0, [r2] - cmp r0, 0x3F - bhi _080FD25A - ldrb r0, [r2, 0x1] - cmp r0, 0x3F - bls _080FD262 -_080FD25A: - mov r0, r8 - subs r0, 0x1 - strh r0, [r3, 0x2] - b _080FD27A -_080FD262: - ldrh r0, [r3, 0x2] - mov r1, r8 - subs r0, r1 - strh r0, [r2, 0x2] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r3, 0x2] - cmp r8, r0 - bcc _080FD21A -_080FD27A: - movs r2, 0 - mov r8, r2 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r8, r0 - bcc _080FD288 - b _080FD38A -_080FD288: - movs r3, 0x1F -_080FD28A: - ldr r1, _080FD2E8 @ =gUnknown_03005DEC - mov r4, r8 - lsls r0, r4, 2 - mov r2, sp - adds r6, r2, r0 - ldrb r0, [r6, 0x1] - lsls r0, 7 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r6] - lsls r0, 1 - adds r2, r1, r0 - ldrh r1, [r2] - movs r4, 0x80 - lsls r4, 8 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080FD376 - movs r7, 0x1F - ands r7, r1 - lsls r0, r1, 16 - lsrs r5, r0, 21 - ands r5, r3 - lsrs r4, r0, 26 - ands r4, r3 - mov r0, r9 - cmp r0, 0 - blt _080FD36C - cmp r0, 0x1 - ble _080FD2EC - cmp r0, 0x3 - bgt _080FD36C - ldrh r0, [r6, 0x2] - adds r1, r7, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r1, r5, r0 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r7, 0x1F - bls _080FD360 - movs r7, 0x1F - b _080FD360 - .align 2, 0 -_080FD2E8: .4byte gUnknown_03005DEC -_080FD2EC: - mov r1, r10 - lsls r0, r1, 1 - add r0, r10 - ldr r1, _080FD320 @ =gUnknown_083E7A50 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsrs r0, 3 - movs r1, 0x7 - ands r0, r1 - movs r1, 0x3 - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x1C] - cmp r0, 0x1 - beq _080FD33C - cmp r0, 0x1 - bgt _080FD324 - cmp r0, 0 - beq _080FD32A - b _080FD36C - .align 2, 0 -_080FD320: .4byte gUnknown_083E7A50 -_080FD324: - cmp r0, 0x2 - beq _080FD34E - b _080FD36C -_080FD32A: - ldrh r0, [r6, 0x2] - cmp r7, r0 - bcc _080FD338 - subs r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - b _080FD36C -_080FD338: - movs r7, 0 - b _080FD36C -_080FD33C: - ldrh r0, [r6, 0x2] - cmp r5, r0 - bcc _080FD34A - subs r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - b _080FD36C -_080FD34A: - movs r5, 0 - b _080FD36C -_080FD34E: - ldrh r0, [r6, 0x2] - cmp r4, r0 - bcc _080FD35C - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - b _080FD36C -_080FD35C: - movs r4, 0 - b _080FD36C -_080FD360: - cmp r5, 0x1F - bls _080FD366 - movs r5, 0x1F -_080FD366: - cmp r4, 0x1F - bls _080FD36C - movs r4, 0x1F -_080FD36C: - lsls r0, r4, 10 - lsls r1, r5, 5 - orrs r0, r1 - orrs r7, r0 - strh r7, [r2] -_080FD376: - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r8, r0 - bcs _080FD38A - b _080FD28A -_080FD38A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD1C8 - - thumb_func_start sub_80FD39C -sub_80FD39C: @ 80FD39C - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 10 - lsls r2, r1, 5 - orrs r0, r2 - orrs r0, r1 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FD39C - - thumb_func_start sub_80FD3D0 -sub_80FD3D0: @ 80FD3D0 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrh r0, [r0] - movs r2, 0x1F - movs r1, 0x1F - ands r1, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r2 - lsrs r0, 26 - ands r0, r2 - cmp r1, 0x10 - bhi _080FD400 - cmp r3, 0x10 - bhi _080FD400 - cmp r0, 0x10 - bhi _080FD400 - adds r0, r4, 0 - bl sub_80FD40C - lsls r0, 16 - lsrs r0, 16 - b _080FD402 -_080FD400: - ldr r0, _080FD408 @ =0x00007fff -_080FD402: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080FD408: .4byte 0x00007fff - thumb_func_end sub_80FD3D0 - - thumb_func_start sub_80FD40C -sub_80FD40C: @ 80FD40C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - mov r8, r0 - movs r6, 0 - movs r7, 0 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _080FD4C4 - lsls r0, 2 - ldr r1, _080FD450 @ =_080FD454 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FD450: .4byte _080FD454 - .align 2, 0 -_080FD454: - .4byte _080FD46C - .4byte _080FD47C - .4byte _080FD48C - .4byte _080FD49A - .4byte _080FD4A8 - .4byte _080FD4B6 -_080FD46C: - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r6, r0, 16 - adds r7, r6, 0 - movs r1, 0 - mov r8, r1 - b _080FD4C4 -_080FD47C: - movs r7, 0 - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r6, r8 - b _080FD4C4 -_080FD48C: - movs r0, 0x15 - subs r0, r5 - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - mov r8, r7 - b _080FD4C4 -_080FD49A: - movs r7, 0 - movs r6, 0 - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - b _080FD4C2 -_080FD4A8: - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - mov r8, r6 - b _080FD4C4 -_080FD4B6: - movs r7, 0 - movs r0, 0x17 - subs r0, r5 - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0 -_080FD4C2: - mov r8, r0 -_080FD4C4: - lsls r0, r7, 10 - lsls r1, r6, 5 - orrs r0, r1 - mov r1, r8 - orrs r1, r0 - lsls r0, r1, 16 - lsrs r0, 16 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD40C - - thumb_func_start sub_80FD4DC -sub_80FD4DC: @ 80FD4DC - push {lr} - ldrh r0, [r0] - movs r2, 0x1F - movs r1, 0x1F - ands r1, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r2 - lsrs r0, 26 - ands r0, r2 - cmp r1, 0x10 - bhi _080FD500 - cmp r3, 0x10 - bhi _080FD500 - cmp r0, 0x10 - bhi _080FD500 - movs r0, 0 - b _080FD502 -_080FD500: - ldr r0, _080FD508 @ =0x00007fff -_080FD502: - pop {r1} - bx r1 - .align 2, 0 -_080FD508: .4byte 0x00007fff - thumb_func_end sub_80FD4DC - - thumb_func_start sub_80FD50C -sub_80FD50C: @ 80FD50C - push {r4,lr} - adds r4, r0, 0 - ldrh r3, [r4] - cmp r3, 0 - beq _080FD534 - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _080FD526 - adds r0, r2, 0 - b _080FD536 -_080FD526: - ldrh r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080FD534 - ldrh r0, [r4] - b _080FD536 -_080FD534: - movs r0, 0 -_080FD536: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FD50C - - thumb_func_start sub_80FD53C -sub_80FD53C: @ 80FD53C - push {r4,lr} - ldrh r1, [r0] - movs r0, 0x1F - movs r3, 0x1F - ands r3, r1 - lsls r1, 16 - lsrs r2, r1, 21 - lsrs r1, 26 - subs r3, r0, r3 - adds r4, r0, 0 - bics r4, r2 - adds r2, r4, 0 - bics r0, r1 - lsls r0, 10 - lsls r2, 5 - orrs r0, r2 - orrs r0, r3 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FD53C - - thumb_func_start sub_80FD568 -sub_80FD568: @ 80FD568 - push {r4-r7,lr} - sub sp, 0x14 - adds r7, r1, 0 - ldrh r4, [r0] - ldrh r5, [r7] - lsls r6, r4, 16 - lsls r0, r5, 16 - mov r12, r0 - cmp r4, r5 - beq _080FD5DA - mov r2, sp - movs r3, 0x1F - movs r1, 0x1F - adds r0, r1, 0 - ands r0, r4 - strh r0, [r2] - lsrs r0, r6, 21 - ands r0, r3 - strh r0, [r2, 0x2] - lsrs r0, r6, 26 - ands r0, r3 - strh r0, [r2, 0x4] - mov r0, sp - ands r1, r5 - strh r1, [r0, 0x6] - mov r1, sp - mov r2, r12 - lsrs r0, r2, 21 - ands r0, r3 - strh r0, [r1, 0x8] - lsrs r0, r2, 26 - ands r0, r3 - strh r0, [r1, 0xA] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0x19 - bls _080FD5C2 - mov r0, sp - ldrh r0, [r0, 0x2] - cmp r0, 0x19 - bls _080FD5C2 - mov r0, sp - ldrh r0, [r0, 0x4] - cmp r0, 0x19 - bhi _080FD5DA -_080FD5C2: - mov r0, sp - ldrh r0, [r0, 0x6] - cmp r0, 0x19 - bls _080FD5DE - mov r0, sp - ldrh r0, [r0, 0x8] - cmp r0, 0x19 - bls _080FD5DE - mov r0, sp - ldrh r0, [r0, 0xA] - cmp r0, 0x19 - bls _080FD5DE -_080FD5DA: - ldrh r0, [r7] - b _080FD684 -_080FD5DE: - movs r4, 0 - add r6, sp, 0xC - mov r7, sp - adds r7, 0x6 - adds r5, r6, 0 -_080FD5E8: - lsls r2, r4, 1 - mov r1, sp - adds r0, r1, r2 - adds r1, r7, r2 - ldrh r3, [r0] - ldrh r0, [r1] - cmp r3, r0 - bls _080FD5FE - adds r1, r5, r2 - subs r0, r3, r0 - b _080FD602 -_080FD5FE: - adds r1, r5, r2 - subs r0, r3 -_080FD602: - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080FD5E8 - adds r1, r6, 0 - ldrh r0, [r1, 0x2] - ldrh r3, [r1] - cmp r3, r0 - bcc _080FD628 - ldrh r2, [r1, 0x4] - cmp r3, r2 - bcc _080FD622 - adds r2, r3, 0 - b _080FD63C -_080FD622: - cmp r0, r2 - bcs _080FD62E - b _080FD636 -_080FD628: - ldrh r2, [r1, 0x4] - cmp r0, r2 - bcc _080FD632 -_080FD62E: - ldrh r2, [r1, 0x2] - b _080FD63C -_080FD632: - cmp r2, r3 - bcc _080FD63A -_080FD636: - ldrh r2, [r1, 0x4] - b _080FD63C -_080FD63A: - ldrh r2, [r6] -_080FD63C: - mov r0, sp - ldrh r1, [r0, 0x6] - lsrs r0, r2, 1 - movs r6, 0x1F - subs r6, r0 - adds r0, r1, 0 - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r0, sp - ldrh r0, [r0, 0x8] - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - ldrh r0, [r0, 0xA] - muls r0, r6 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - lsls r4, 5 - orrs r0, r4 - orrs r5, r0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 -_080FD684: - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD568 - - thumb_func_start sub_80FD68C -sub_80FD68C: @ 80FD68C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - mov r10, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, r10 - ldrh r0, [r0] - cmp r1, r0 - bne _080FD6B4 - ldrh r0, [r2] - cmp r0, r1 - bne _080FD6B4 - mov r1, r10 - ldrh r0, [r1] - b _080FD79C -_080FD6B4: - mov r2, r10 - ldrh r0, [r2] - movs r1, 0x1F - mov r9, r1 - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - lsls r0, 16 - lsrs r2, r0, 21 - mov r1, r9 - ands r1, r2 - mov r8, r1 - lsrs r0, 26 - mov r2, r9 - ands r2, r0 - str r2, [sp, 0x4] - ldrh r2, [r3] - adds r0, r4, 0 - ands r0, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r3, r9 - ands r1, r3 - adds r0, r1 - lsrs r2, 26 - ands r2, r3 - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, 0x4] - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, 16 - lsrs r0, r1, 21 - mov r2, r9 - ands r0, r2 - adds r4, r0 - lsrs r1, 26 - ands r1, r2 - adds r4, r1 - adds r0, r4, 0 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r7, r6 - bne _080FD736 - cmp r1, r6 - bne _080FD736 - mov r3, r10 - ldrh r0, [r3] - b _080FD79C -_080FD736: - cmp r7, r6 - bls _080FD73E - subs r0, r7, r6 - b _080FD740 -_080FD73E: - subs r0, r6, r7 -_080FD740: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, r6 - bls _080FD74C - subs r0, r1, r6 - b _080FD74E -_080FD74C: - subs r0, r6, r1 -_080FD74E: - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - bcc _080FD758 - adds r0, r2, 0 -_080FD758: - lsrs r0, 1 - movs r4, 0x1F - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r8 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, [sp, 0x4] - adds r0, r1, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - mov r2, r8 - lsls r1, r2, 5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, 16 - lsrs r0, 16 -_080FD79C: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD68C - - thumb_func_start sub_80FD7AC -sub_80FD7AC: @ 80FD7AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r3, r0, 0 - mov r10, r1 - str r2, [sp] - ldrh r1, [r3] - mov r0, r10 - ldrh r0, [r0] - cmp r1, r0 - bne _080FD7D4 - ldrh r0, [r2] - cmp r0, r1 - bne _080FD7D4 - mov r1, r10 - ldrh r0, [r1] - b _080FD8BA -_080FD7D4: - mov r2, r10 - ldrh r0, [r2] - movs r1, 0x1F - mov r9, r1 - movs r4, 0x1F - adds r5, r4, 0 - ands r5, r0 - lsls r0, 16 - lsrs r2, r0, 21 - mov r1, r9 - ands r1, r2 - mov r8, r1 - lsrs r0, 26 - mov r2, r9 - ands r2, r0 - str r2, [sp, 0x4] - ldrh r2, [r3] - adds r0, r4, 0 - ands r0, r2 - lsls r2, 16 - lsrs r1, r2, 21 - mov r3, r9 - ands r1, r3 - adds r0, r1 - lsrs r2, 26 - ands r2, r3 - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r1, r8 - adds r0, r5, r1 - ldr r2, [sp, 0x4] - adds r0, r2 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, [sp] - ldrh r1, [r3] - ands r4, r1 - lsls r1, 16 - lsrs r0, r1, 21 - mov r2, r9 - ands r0, r2 - adds r4, r0 - lsrs r1, 26 - ands r1, r2 - adds r4, r1 - adds r0, r4, 0 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r7, r6 - bne _080FD856 - cmp r1, r6 - bne _080FD856 - mov r3, r10 - ldrh r0, [r3] - b _080FD8BA -_080FD856: - cmp r7, r6 - bls _080FD85E - subs r0, r7, r6 - b _080FD860 -_080FD85E: - subs r0, r6, r7 -_080FD860: - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, r6 - bls _080FD86C - subs r0, r1, r6 - b _080FD86E -_080FD86C: - subs r0, r6, r1 -_080FD86E: - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - bcc _080FD878 - adds r0, r2, 0 -_080FD878: - movs r4, 0x1F - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r8 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, [sp, 0x4] - adds r0, r1, 0 - muls r0, r4 - movs r1, 0x1F - bl __divsi3 - lsls r0, 16 - lsrs r0, 6 - mov r2, r8 - lsls r1, r2, 5 - orrs r0, r1 - orrs r5, r0 - lsls r0, r5, 16 - lsrs r0, 16 -_080FD8BA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FD7AC - - thumb_func_start sub_80FD8CC -sub_80FD8CC: @ 80FD8CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldrb r1, [r0, 0x1D] - lsrs r5, r1, 3 - ldrb r1, [r0, 0x1E] - lsrs r1, 3 - str r1, [sp, 0x8] - ldr r1, [r0, 0x4] - str r1, [sp] - ldr r2, [r0, 0x10] - str r2, [sp, 0x4] - ldrh r0, [r0, 0x16] - cmp r0, 0x2 - bne _080FD97C - movs r1, 0 - ldr r0, [sp, 0x8] - cmp r1, r0 - bcc _080FD8FA - b _080FDA08 -_080FD8FA: - movs r0, 0 - adds r2, r1, 0x1 - mov r10, r2 - cmp r0, r5 - bcs _080FD96E - adds r2, r1, 0 - muls r2, r5 - mov r9, r2 - lsls r1, 3 - mov r8, r1 -_080FD90E: - movs r4, 0 - lsls r6, r0, 4 - adds r7, r0, 0x1 - add r0, r9 - lsls r0, 6 - ldr r1, [sp, 0x4] - adds r1, r0 - mov r12, r1 -_080FD91E: - lsls r0, r4, 3 - mov r2, r12 - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, 3 - muls r0, r5 - lsls r0, 1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r0, [r2, 0x2] - lsls r0, 8 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r3] - ldrh r0, [r2, 0x6] - lsls r0, 8 - ldrh r1, [r2, 0x4] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r0, [r2, 0xA] - lsls r0, 8 - ldrh r1, [r2, 0x8] - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r2, 0xE] - lsls r0, 8 - ldrh r1, [r2, 0xC] - orrs r0, r1 - strh r0, [r3, 0x6] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080FD91E - lsls r0, r7, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _080FD90E -_080FD96E: - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldr r2, [sp, 0x8] - cmp r1, r2 - bcc _080FD8FA - b _080FDA08 -_080FD97C: - movs r1, 0 - ldr r0, [sp, 0x8] - cmp r1, r0 - bcs _080FDA08 -_080FD984: - movs r0, 0 - adds r2, r1, 0x1 - mov r10, r2 - cmp r0, r5 - bcs _080FD9FC - adds r2, r1, 0 - muls r2, r5 - mov r9, r2 - lsls r1, 3 - mov r8, r1 -_080FD998: - movs r4, 0 - lsls r6, r0, 4 - adds r7, r0, 0x1 - add r0, r9 - lsls r0, 5 - ldr r1, [sp, 0x4] - adds r1, r0 - mov r12, r1 -_080FD9A8: - lsls r0, r4, 2 - mov r2, r12 - adds r3, r2, r0 - mov r1, r8 - adds r0, r1, r4 - lsls r0, 3 - muls r0, r5 - lsls r0, 1 - ldr r2, [sp] - adds r0, r2, r0 - adds r2, r0, r6 - ldrh r1, [r2, 0x2] - lsls r1, 4 - ldrh r0, [r2] - orrs r1, r0 - ldrh r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2, 0x6] - lsls r0, 12 - orrs r1, r0 - strh r1, [r3] - ldrh r1, [r2, 0xA] - lsls r1, 4 - ldrh r0, [r2, 0x8] - orrs r1, r0 - ldrh r0, [r2, 0xC] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2, 0xE] - lsls r0, 12 - orrs r1, r0 - strh r1, [r3, 0x2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080FD9A8 - lsls r0, r7, 16 - lsrs r0, 16 - cmp r0, r5 - bcc _080FD998 -_080FD9FC: - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldr r2, [sp, 0x8] - cmp r1, r2 - bcc _080FD984 -_080FDA08: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FD8CC - - thumb_func_start sub_80FDA18 -sub_80FDA18: @ 80FDA18 - push {lr} - ldr r2, _080FDA68 @ =gUnknown_03005E0C - ldrb r1, [r0, 0x18] - lsls r1, 4 - strh r1, [r2] - ldr r3, _080FDA6C @ =gUnknown_03005E08 - ldrh r2, [r2] - lsls r2, 1 - ldr r1, [r0, 0x8] - adds r1, r2 - str r1, [r3] - ldr r2, _080FDA70 @ =gUnknown_03005DEC - ldr r1, [r0, 0x4] - str r1, [r2] - ldr r2, _080FDA74 @ =gUnknown_03005DE8 - ldrb r1, [r0, 0x19] - strb r1, [r2] - ldr r2, _080FDA78 @ =gUnknown_03005DFC - ldrb r1, [r0, 0x1A] - strb r1, [r2] - ldr r2, _080FDA7C @ =gUnknown_03005DF8 - ldrb r1, [r0, 0x1B] - strb r1, [r2] - ldr r2, _080FDA80 @ =gUnknown_03005DF0 - ldrb r1, [r0, 0x1C] - strb r1, [r2] - ldr r2, _080FDA84 @ =gUnknown_03005E04 - ldrb r1, [r0, 0x1D] - strb r1, [r2] - ldr r2, _080FDA88 @ =gUnknown_03005DF4 - ldrb r1, [r0, 0x1E] - strb r1, [r2] - ldrh r0, [r0, 0x14] - cmp r0, 0x5 - bhi _080FDADE - lsls r0, 2 - ldr r1, _080FDA8C @ =_080FDA90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FDA68: .4byte gUnknown_03005E0C -_080FDA6C: .4byte gUnknown_03005E08 -_080FDA70: .4byte gUnknown_03005DEC -_080FDA74: .4byte gUnknown_03005DE8 -_080FDA78: .4byte gUnknown_03005DFC -_080FDA7C: .4byte gUnknown_03005DF8 -_080FDA80: .4byte gUnknown_03005DF0 -_080FDA84: .4byte gUnknown_03005E04 -_080FDA88: .4byte gUnknown_03005DF4 -_080FDA8C: .4byte _080FDA90 - .align 2, 0 -_080FDA90: - .4byte _080FDAA8 - .4byte _080FDAB0 - .4byte _080FDAB8 - .4byte _080FDAC2 - .4byte _080FDACC - .4byte _080FDAD6 -_080FDAA8: - movs r0, 0 - bl sub_80FDC18 - b _080FDADE -_080FDAB0: - movs r0, 0x1 - bl sub_80FDC18 - b _080FDADE -_080FDAB8: - bl sub_80FDAE4 - bl sub_80FDF88 - b _080FDADE -_080FDAC2: - bl sub_80FDBE4 - bl sub_80FDED8 - b _080FDADE -_080FDACC: - bl sub_80FDBA8 - bl sub_80FDE28 - b _080FDADE -_080FDAD6: - bl sub_80FDB8C - bl sub_80FDD70 -_080FDADE: - pop {r0} - bx r0 - thumb_func_end sub_80FDA18 - - thumb_func_start sub_80FDAE4 -sub_80FDAE4: @ 80FDAE4 - ldr r2, _080FDB4C @ =gUnknown_03005E08 - ldr r1, [r2] - movs r0, 0 - strh r0, [r1] - ldr r0, [r2] - ldr r2, _080FDB50 @ =0x000018c6 - adds r1, r2, 0 - strh r1, [r0, 0x2] - ldr r2, _080FDB54 @ =0x000077bd - adds r1, r2, 0 - strh r1, [r0, 0x4] - ldr r2, _080FDB58 @ =0x00002d6b - adds r1, r2, 0 - strh r1, [r0, 0x6] - ldr r2, _080FDB5C @ =0x000018dd - adds r1, r2, 0 - strh r1, [r0, 0x8] - ldr r2, _080FDB60 @ =0x00001ba6 - adds r1, r2, 0 - strh r1, [r0, 0xA] - ldr r2, _080FDB64 @ =0x000074c6 - adds r1, r2, 0 - strh r1, [r0, 0xC] - ldr r2, _080FDB68 @ =0x00001bbd - adds r1, r2, 0 - strh r1, [r0, 0xE] - ldr r2, _080FDB6C @ =0x000074dd - adds r1, r2, 0 - strh r1, [r0, 0x10] - ldr r2, _080FDB70 @ =0x000077a6 - adds r1, r2, 0 - strh r1, [r0, 0x12] - ldr r2, _080FDB74 @ =0x0000197d - adds r1, r2, 0 - strh r1, [r0, 0x14] - ldr r2, _080FDB78 @ =0x00001bab - adds r1, r2, 0 - strh r1, [r0, 0x16] - ldr r2, _080FDB7C @ =0x00007566 - adds r1, r2, 0 - strh r1, [r0, 0x18] - ldr r2, _080FDB80 @ =0x00002cdd - adds r1, r2, 0 - strh r1, [r0, 0x1A] - ldr r2, _080FDB84 @ =0x00002fa6 - adds r1, r2, 0 - strh r1, [r0, 0x1C] - ldr r2, _080FDB88 @ =0x000074cb - adds r1, r2, 0 - strh r1, [r0, 0x1E] - bx lr - .align 2, 0 -_080FDB4C: .4byte gUnknown_03005E08 -_080FDB50: .4byte 0x000018c6 -_080FDB54: .4byte 0x000077bd -_080FDB58: .4byte 0x00002d6b -_080FDB5C: .4byte 0x000018dd -_080FDB60: .4byte 0x00001ba6 -_080FDB64: .4byte 0x000074c6 -_080FDB68: .4byte 0x00001bbd -_080FDB6C: .4byte 0x000074dd -_080FDB70: .4byte 0x000077a6 -_080FDB74: .4byte 0x0000197d -_080FDB78: .4byte 0x00001bab -_080FDB7C: .4byte 0x00007566 -_080FDB80: .4byte 0x00002cdd -_080FDB84: .4byte 0x00002fa6 -_080FDB88: .4byte 0x000074cb - thumb_func_end sub_80FDAE4 - - thumb_func_start sub_80FDB8C -sub_80FDB8C: @ 80FDB8C - ldr r2, _080FDBA0 @ =gUnknown_03005E08 - ldr r0, [r2] - movs r1, 0 - strh r1, [r0] - ldr r2, [r2] - strh r1, [r2, 0x2] - ldr r1, _080FDBA4 @ =0x00007fff - adds r0, r1, 0 - strh r0, [r2, 0x4] - bx lr - .align 2, 0 -_080FDBA0: .4byte gUnknown_03005E08 -_080FDBA4: .4byte 0x00007fff - thumb_func_end sub_80FDB8C - - thumb_func_start sub_80FDBA8 -sub_80FDBA8: @ 80FDBA8 - push {r4,r5,lr} - ldr r1, _080FDBE0 @ =gUnknown_03005E08 - ldr r0, [r1] - movs r2, 0 - strh r2, [r0] - ldr r0, [r1] - strh r2, [r0, 0x2] - movs r4, 0 - adds r5, r1, 0 -_080FDBBA: - ldr r0, [r5] - lsls r2, r4, 1 - adds r2, r0 - adds r0, r4, 0x2 - lsls r3, r0, 1 - lsls r1, r0, 11 - lsls r0, 6 - orrs r1, r0 - orrs r1, r3 - strh r1, [r2, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xD - bls _080FDBBA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FDBE0: .4byte gUnknown_03005E08 - thumb_func_end sub_80FDBA8 - - thumb_func_start sub_80FDBE4 -sub_80FDBE4: @ 80FDBE4 - push {r4,lr} - ldr r2, _080FDC14 @ =gUnknown_03005E08 - ldr r1, [r2] - movs r0, 0 - strh r0, [r1] - movs r3, 0 - adds r4, r2, 0 -_080FDBF2: - ldr r0, [r4] - lsls r2, r3, 1 - adds r2, r0 - lsls r0, r3, 10 - lsls r1, r3, 5 - orrs r0, r1 - orrs r0, r3 - strh r0, [r2, 0x2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _080FDBF2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FDC14: .4byte gUnknown_03005E08 - thumb_func_end sub_80FDBE4 - - thumb_func_start sub_80FDC18 -sub_80FDC18: @ 80FDC18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - movs r1, 0xDF - mov r9, r1 - cmp r0, 0 - bne _080FDC30 - movs r2, 0xFF - mov r9, r2 -_080FDC30: - movs r6, 0 - ldr r3, _080FDCB4 @ =gUnknown_03005E08 - mov r12, r3 - mov r0, r9 - lsls r4, r0, 1 - ldr r5, _080FDCB8 @ =gUnknown_03005DF0 - cmp r6, r9 - bcs _080FDC54 - movs r2, 0 -_080FDC42: - ldr r0, [r3] - lsls r1, r6, 1 - adds r1, r0 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r9 - bcc _080FDC42 -_080FDC54: - mov r1, r12 - ldr r0, [r1] - adds r0, r4, r0 - ldr r2, _080FDCBC @ =0x00003def - adds r1, r2, 0 - strh r1, [r0] - movs r3, 0 - ldrb r5, [r5] - cmp r3, r5 - bcs _080FDD58 -_080FDC68: - ldr r2, _080FDCC0 @ =gUnknown_03005DEC - ldr r0, _080FDCC4 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r3 - ldr r0, _080FDCC8 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - ldr r1, [r2] - adds r1, r0 - ldr r0, _080FDCCC @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r6, 0 - ldr r0, _080FDCD0 @ =gUnknown_03005DF8 - adds r2, r0, 0 - adds r3, 0x1 - mov r10, r3 - ldrb r3, [r2] - cmp r6, r3 - bcs _080FDD4A - ldr r0, _080FDCD4 @ =gUnknown_03005E0C - mov r8, r0 -_080FDC98: - ldrh r0, [r4] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FDCD8 - mov r1, r8 - ldrh r0, [r1] - strh r0, [r4] - adds r6, 0x1 - adds r7, r4, 0x2 - b _080FDD3E - .align 2, 0 -_080FDCB4: .4byte gUnknown_03005E08 -_080FDCB8: .4byte gUnknown_03005DF0 -_080FDCBC: .4byte 0x00003def -_080FDCC0: .4byte gUnknown_03005DEC -_080FDCC4: .4byte gUnknown_03005DFC -_080FDCC8: .4byte gUnknown_03005E04 -_080FDCCC: .4byte gUnknown_03005DE8 -_080FDCD0: .4byte gUnknown_03005DF8 -_080FDCD4: .4byte gUnknown_03005E0C -_080FDCD8: - adds r0, r4, 0 - bl sub_80FE038 - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0x1 - adds r6, 0x1 - adds r7, r4, 0x2 - cmp r3, r9 - bcs _080FDD34 - ldr r0, _080FDD04 @ =gUnknown_03005E08 - ldr r2, [r0] - ldrh r1, [r2, 0x2] - mov r12, r0 - cmp r1, 0 - bne _080FDD08 - strh r5, [r2, 0x2] - mov r2, r8 - ldrh r0, [r2] - adds r0, 0x1 - b _080FDD32 - .align 2, 0 -_080FDD04: .4byte gUnknown_03005E08 -_080FDD08: - mov r2, r12 - ldr r1, [r2] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r5 - beq _080FDD2C - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r9 - bcs _080FDD34 - lsls r0, r3, 1 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - bne _080FDD08 - strh r5, [r1] -_080FDD2C: - mov r1, r8 - ldrh r0, [r1] - adds r0, r3 -_080FDD32: - strh r0, [r4] -_080FDD34: - ldr r2, _080FDD68 @ =gUnknown_03005DF8 - cmp r3, r9 - bne _080FDD3E - mov r3, r9 - strh r3, [r4] -_080FDD3E: - lsls r0, r6, 24 - lsrs r6, r0, 24 - adds r4, r7, 0 - ldrb r0, [r2] - cmp r6, r0 - bcc _080FDC98 -_080FDD4A: - mov r1, r10 - lsls r0, r1, 24 - lsrs r3, r0, 24 - ldr r0, _080FDD6C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r3, r0 - bcc _080FDC68 -_080FDD58: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDD68: .4byte gUnknown_03005DF8 -_080FDD6C: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDC18 - - thumb_func_start sub_80FDD70 -sub_80FDD70: @ 80FDD70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r2, 0 - ldr r0, _080FDDC4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDE14 - ldr r0, _080FDDC8 @ =gUnknown_03005DEC - mov r8, r0 -_080FDD84: - ldr r0, _080FDDCC @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDDD0 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDDD4 @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r6, 0 - ldr r0, _080FDDD8 @ =gUnknown_03005DF8 - adds r3, r0, 0 - adds r7, r2, 0x1 - ldrb r0, [r3] - cmp r6, r0 - bcs _080FDE08 - ldr r5, _080FDDDC @ =gUnknown_03005E0C -_080FDDB0: - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080FDDE0 - ldrh r0, [r5] - strh r0, [r4] - b _080FDDFA - .align 2, 0 -_080FDDC4: .4byte gUnknown_03005DF0 -_080FDDC8: .4byte gUnknown_03005DEC -_080FDDCC: .4byte gUnknown_03005DFC -_080FDDD0: .4byte gUnknown_03005E04 -_080FDDD4: .4byte gUnknown_03005DE8 -_080FDDD8: .4byte gUnknown_03005DF8 -_080FDDDC: .4byte gUnknown_03005E0C -_080FDDE0: - adds r0, r4, 0 - bl sub_80FD4DC - lsls r0, 16 - cmp r0, 0 - bne _080FDDF2 - ldrh r0, [r5] - adds r0, 0x1 - b _080FDDF6 -_080FDDF2: - ldrh r0, [r5] - adds r0, 0x2 -_080FDDF6: - strh r0, [r4] - ldr r3, _080FDE20 @ =gUnknown_03005DF8 -_080FDDFA: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, 0x2 - ldrb r0, [r3] - cmp r6, r0 - bcc _080FDDB0 -_080FDE08: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDE24 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDD84 -_080FDE14: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDE20: .4byte gUnknown_03005DF8 -_080FDE24: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDD70 - - thumb_func_start sub_80FDE28 -sub_80FDE28: @ 80FDE28 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDE7C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDEC4 - ldr r0, _080FDE80 @ =gUnknown_03005DEC - mov r8, r0 -_080FDE3E: - ldr r0, _080FDE84 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDE88 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDE8C @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDE90 @ =gUnknown_03005DF8 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FDEB8 - ldr r6, _080FDE94 @ =gUnknown_03005E0C - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDE6E: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDE98 - ldrh r0, [r6] - strh r0, [r4] - b _080FDEA8 - .align 2, 0 -_080FDE7C: .4byte gUnknown_03005DF0 -_080FDE80: .4byte gUnknown_03005DEC -_080FDE84: .4byte gUnknown_03005DFC -_080FDE88: .4byte gUnknown_03005E04 -_080FDE8C: .4byte gUnknown_03005DE8 -_080FDE90: .4byte gUnknown_03005DF8 -_080FDE94: .4byte gUnknown_03005E0C -_080FDE98: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE17C - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FDEA8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FDED0 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDE6E -_080FDEB8: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDED4 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDE3E -_080FDEC4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDED0: .4byte gUnknown_03005DF8 -_080FDED4: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDE28 - - thumb_func_start sub_80FDED8 -sub_80FDED8: @ 80FDED8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDF2C @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FDF74 - ldr r0, _080FDF30 @ =gUnknown_03005DEC - mov r8, r0 -_080FDEEE: - ldr r0, _080FDF34 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDF38 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDF3C @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDF40 @ =gUnknown_03005DF8 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FDF68 - ldr r6, _080FDF44 @ =gUnknown_03005E0C - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDF1E: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDF48 - ldrh r0, [r6] - strh r0, [r4] - b _080FDF58 - .align 2, 0 -_080FDF2C: .4byte gUnknown_03005DF0 -_080FDF30: .4byte gUnknown_03005DEC -_080FDF34: .4byte gUnknown_03005DFC -_080FDF38: .4byte gUnknown_03005E04 -_080FDF3C: .4byte gUnknown_03005DE8 -_080FDF40: .4byte gUnknown_03005DF8 -_080FDF44: .4byte gUnknown_03005E0C -_080FDF48: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE1B0 - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FDF58: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FDF80 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDF1E -_080FDF68: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FDF84 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDEEE -_080FDF74: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FDF80: .4byte gUnknown_03005DF8 -_080FDF84: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDED8 - - thumb_func_start sub_80FDF88 -sub_80FDF88: @ 80FDF88 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r2, 0 - ldr r0, _080FDFDC @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcs _080FE024 - ldr r0, _080FDFE0 @ =gUnknown_03005DEC - mov r8, r0 -_080FDF9E: - ldr r0, _080FDFE4 @ =gUnknown_03005DFC - ldrb r1, [r0] - adds r1, r2 - ldr r0, _080FDFE8 @ =gUnknown_03005E04 - ldrb r0, [r0] - muls r0, r1 - lsls r0, 1 - mov r3, r8 - ldr r1, [r3] - adds r1, r0 - ldr r0, _080FDFEC @ =gUnknown_03005DE8 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r1, r0 - movs r5, 0 - ldr r0, _080FDFF0 @ =gUnknown_03005DF8 - adds r7, r2, 0x1 - ldrb r0, [r0] - cmp r5, r0 - bcs _080FE018 - ldr r6, _080FDFF4 @ =gUnknown_03005E0C - movs r0, 0x80 - lsls r0, 8 - adds r2, r0, 0 -_080FDFCE: - ldrh r0, [r4] - ands r0, r2 - cmp r0, 0 - beq _080FDFF8 - ldrh r0, [r6] - strh r0, [r4] - b _080FE008 - .align 2, 0 -_080FDFDC: .4byte gUnknown_03005DF0 -_080FDFE0: .4byte gUnknown_03005DEC -_080FDFE4: .4byte gUnknown_03005DFC -_080FDFE8: .4byte gUnknown_03005E04 -_080FDFEC: .4byte gUnknown_03005DE8 -_080FDFF0: .4byte gUnknown_03005DF8 -_080FDFF4: .4byte gUnknown_03005E0C -_080FDFF8: - adds r0, r4, 0 - str r2, [sp] - bl sub_80FE0AC - ldrh r1, [r6] - adds r0, r1 - strh r0, [r4] - ldr r2, [sp] -_080FE008: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x2 - ldr r0, _080FE030 @ =gUnknown_03005DF8 - ldrb r0, [r0] - cmp r5, r0 - bcc _080FDFCE -_080FE018: - lsls r0, r7, 24 - lsrs r2, r0, 24 - ldr r0, _080FE034 @ =gUnknown_03005DF0 - ldrb r0, [r0] - cmp r2, r0 - bcc _080FDF9E -_080FE024: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE030: .4byte gUnknown_03005DF8 -_080FE034: .4byte gUnknown_03005DF0 - thumb_func_end sub_80FDF88 - - thumb_func_start sub_80FE038 -sub_80FE038: @ 80FE038 - push {r4,lr} - ldrh r0, [r0] - movs r1, 0x1F - movs r4, 0x1F - ands r4, r0 - lsls r0, 16 - lsrs r3, r0, 21 - ands r3, r1 - lsrs r2, r0, 26 - ands r2, r1 - movs r1, 0x3 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE05C - movs r0, 0x1C - ands r0, r4 - adds r4, r0, 0x4 -_080FE05C: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE06A - movs r0, 0x1C - ands r0, r3 - adds r3, r0, 0x4 -_080FE06A: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE078 - movs r0, 0x1C - ands r0, r2 - adds r2, r0, 0x4 -_080FE078: - cmp r4, 0x5 - bhi _080FE07E - movs r4, 0x6 -_080FE07E: - cmp r4, 0x1E - bls _080FE084 - movs r4, 0x1E -_080FE084: - cmp r3, 0x5 - bhi _080FE08A - movs r3, 0x6 -_080FE08A: - cmp r3, 0x1E - bls _080FE090 - movs r3, 0x1E -_080FE090: - cmp r2, 0x5 - bhi _080FE096 - movs r2, 0x6 -_080FE096: - cmp r2, 0x1E - bls _080FE09C - movs r2, 0x1E -_080FE09C: - lsls r0, r2, 10 - lsls r1, r3, 5 - orrs r0, r1 - orrs r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FE038 - - thumb_func_start sub_80FE0AC -sub_80FE0AC: @ 80FE0AC - push {lr} - ldrh r0, [r0] - movs r1, 0x1F - movs r3, 0x1F - ands r3, r0 - lsls r0, 16 - lsrs r2, r0, 21 - ands r2, r1 - lsrs r0, 26 - ands r0, r1 - cmp r3, 0xB - bhi _080FE0D0 - cmp r2, 0xA - bhi _080FE0D0 - cmp r0, 0xA - bhi _080FE0D0 - movs r0, 0x1 - b _080FE176 -_080FE0D0: - cmp r3, 0x13 - bls _080FE0F4 - cmp r2, 0x13 - bls _080FE0DC - cmp r0, 0x13 - bhi _080FE100 -_080FE0DC: - cmp r3, 0x13 - bls _080FE0F4 - cmp r2, 0x13 - bls _080FE0EA - cmp r0, 0xE - bhi _080FE100 - b _080FE138 -_080FE0EA: - cmp r0, 0x13 - bls _080FE0F4 - cmp r2, 0xE - bhi _080FE100 - b _080FE114 -_080FE0F4: - cmp r2, 0x13 - bls _080FE104 - cmp r0, 0x13 - bls _080FE104 - cmp r3, 0xE - bls _080FE15C -_080FE100: - movs r0, 0x2 - b _080FE176 -_080FE104: - cmp r3, 0x13 - bls _080FE128 - cmp r2, 0xB - bls _080FE11C - cmp r0, 0xB - bls _080FE118 - cmp r2, r0 - bcs _080FE138 -_080FE114: - movs r0, 0x8 - b _080FE176 -_080FE118: - movs r0, 0xA - b _080FE176 -_080FE11C: - cmp r0, 0xB - bls _080FE124 - movs r0, 0xD - b _080FE176 -_080FE124: - movs r0, 0x4 - b _080FE176 -_080FE128: - cmp r2, 0x13 - bls _080FE14C - cmp r3, 0xB - bls _080FE140 - cmp r0, 0xB - bls _080FE13C - cmp r3, r0 - bcc _080FE15C -_080FE138: - movs r0, 0x7 - b _080FE176 -_080FE13C: - movs r0, 0xB - b _080FE176 -_080FE140: - cmp r0, 0xB - bls _080FE148 - movs r0, 0xE - b _080FE176 -_080FE148: - movs r0, 0x5 - b _080FE176 -_080FE14C: - cmp r0, 0x13 - bls _080FE174 - cmp r3, 0xB - bls _080FE160 - cmp r2, 0xB - bls _080FE168 - cmp r3, r2 - bcs _080FE114 -_080FE15C: - movs r0, 0x9 - b _080FE176 -_080FE160: - cmp r2, 0xB - bls _080FE168 - movs r0, 0xC - b _080FE176 -_080FE168: - cmp r0, 0xB - bls _080FE170 - movs r0, 0xF - b _080FE176 -_080FE170: - movs r0, 0x6 - b _080FE176 -_080FE174: - movs r0, 0x3 -_080FE176: - pop {r1} - bx r1 - thumb_func_end sub_80FE0AC - - thumb_func_start sub_80FE17C -sub_80FE17C: @ 80FE17C - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - movs r1, 0x1E - ands r0, r1 - lsls r0, 16 - cmp r0, 0 - beq _080FE1A8 - lsrs r0, 17 - b _080FE1AA -_080FE1A8: - movs r0, 0x1 -_080FE1AA: - pop {r1} - bx r1 - thumb_func_end sub_80FE17C - - thumb_func_start sub_80FE1B0 -sub_80FE1B0: @ 80FE1B0 - push {lr} - ldrh r1, [r0] - movs r3, 0x1F - movs r0, 0x1F - ands r0, r1 - lsls r1, 16 - lsrs r2, r1, 21 - ands r2, r3 - lsrs r1, 26 - ands r1, r3 - adds r0, r2 - adds r0, r1 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80FE1B0 - - thumb_func_start sub_80FE1DC -sub_80FE1DC: @ 80FE1DC - push {lr} - sub sp, 0x8 - bl sub_80FE2B4 - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080FE218 @ =gUnknown_083EC604 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - ldr r0, _080FE21C @ =gUnknown_020388D4 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE218: .4byte gUnknown_083EC604 -_080FE21C: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE1DC - - thumb_func_start sub_80FE220 -sub_80FE220: @ 80FE220 - push {lr} - ldr r1, _080FE238 @ =gUnknown_020388D4 - movs r0, 0 - strb r0, [r1] - bl ScriptContext2_Enable - bl sub_80FE1DC - bl sub_80FE394 - pop {r0} - bx r0 - .align 2, 0 -_080FE238: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE220 - - thumb_func_start sub_80FE23C -sub_80FE23C: @ 80FE23C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80FE220 - ldr r1, _080FE25C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE260 @ =sub_80FE2EC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE25C: .4byte gTasks -_080FE260: .4byte sub_80FE2EC - thumb_func_end sub_80FE23C - - thumb_func_start sub_80FE264 -sub_80FE264: @ 80FE264 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE23C - ldr r1, _080FE284 @ =0x0201f000 - ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A - str r0, [r1] - adds r0, 0x10 - str r0, [r1, 0x4] - movs r2, 0 - movs r0, 0x10 - strb r0, [r1, 0x8] - strb r2, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE284: .4byte 0x0201f000 -_080FE288: .4byte gSaveBlock1 + 0x1A1A - thumb_func_end sub_80FE264 - - thumb_func_start sub_80FE28C -sub_80FE28C: @ 80FE28C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE23C - ldr r1, _080FE2AC @ =0x0201f000 - ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688 - str r0, [r1] - adds r0, 0xC - str r0, [r1, 0x4] - movs r0, 0xC - strb r0, [r1, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_080FE2AC: .4byte 0x0201f000 -_080FE2B0: .4byte gSaveBlock1 + 0x2688 - thumb_func_end sub_80FE28C - - thumb_func_start sub_80FE2B4 -sub_80FE2B4: @ 80FE2B4 - push {lr} - sub sp, 0x8 - ldr r1, _080FE2E8 @ =gUnknown_083EC654 - mov r0, sp - movs r2, 0x6 - bl memcpy - add r0, sp, 0x4 - movs r1, 0xDF - movs r2, 0x2 - bl LoadPalette - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FE2E8: .4byte gUnknown_083EC654 - thumb_func_end sub_80FE2B4 - - thumb_func_start sub_80FE2EC -sub_80FE2EC: @ 80FE2EC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - ldr r0, _080FE368 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r5, 0x80 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080FE38C - ldr r4, _080FE36C @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE324 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - ldr r1, _080FE370 @ =gUnknown_020388D4 - strb r0, [r1] - bl sub_80FE394 -_080FE324: - ldrh r1, [r4, 0x2E] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE342 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - ldr r1, _080FE370 @ =gUnknown_020388D4 - strb r0, [r1] - bl sub_80FE394 -_080FE342: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE378 - movs r0, 0x5 - bl PlaySE - ldr r1, _080FE374 @ =gUnknown_083EC604 - ldr r0, _080FE370 @ =gUnknown_020388D4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 - b _080FE38C - .align 2, 0 -_080FE368: .4byte gPaletteFade -_080FE36C: .4byte gMain -_080FE370: .4byte gUnknown_020388D4 -_080FE374: .4byte gUnknown_083EC604 -_080FE378: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE38C - movs r0, 0x5 - bl PlaySE - adds r0, r7, 0 - bl gpu_pal_decompress_alloc_tag_and_upload -_080FE38C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FE2EC - - thumb_func_start sub_80FE394 -sub_80FE394: @ 80FE394 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - ldr r1, _080FE3BC @ =gUnknown_083EC624 - ldr r0, _080FE3C0 @ =gUnknown_020388D4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_080FE3BC: .4byte gUnknown_083EC624 -_080FE3C0: .4byte gUnknown_020388D4 - thumb_func_end sub_80FE394 - - thumb_func_start gpu_pal_decompress_alloc_tag_and_upload -gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0x9 - bl MenuZeroFillWindowRect - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080FE404 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _080FE40C - ldr r0, _080FE408 @ =gUnknown_0815F399 - bl ScriptContext1_SetupScript - adds r0, r4, 0 - bl DestroyTask - b _080FE412 - .align 2, 0 -_080FE404: .4byte 0x0201f000 -_080FE408: .4byte gUnknown_0815F399 -_080FE40C: - adds r0, r4, 0 - bl sub_8139E24 -_080FE412: - pop {r4} - pop {r0} - bx r0 - thumb_func_end gpu_pal_decompress_alloc_tag_and_upload - - thumb_func_start sub_80FE418 -sub_80FE418: @ 80FE418 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE5AC - pop {r0} - bx r0 - thumb_func_end sub_80FE418 - - thumb_func_start sub_80FE428 -sub_80FE428: @ 80FE428 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FE464 @ =gUnknown_020388D4 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - bl sub_80FE394 - ldr r1, _080FE468 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE46C @ =sub_80FE2EC - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE464: .4byte gUnknown_020388D4 -_080FE468: .4byte gTasks -_080FE46C: .4byte sub_80FE2EC - thumb_func_end sub_80FE428 - - thumb_func_start sub_80FE470 -sub_80FE470: @ 80FE470 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - mov r8, r1 - mov r9, r2 - adds r5, r3, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072CBC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r7, _080FE51C @ =gStringVar4 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x5 - mov r10, r0 - strb r0, [r7, 0x1] - strb r5, [r7, 0x2] - adds r7, 0x3 - ldr r1, _080FE520 @ =gUnknown_083EC5E4 - lsls r0, r4, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - adds r0, r4, 0 - bl sub_8134194 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - movs r2, 0x56 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xBA - strb r0, [r7] - adds r7, 0x1 - ldr r0, _080FE524 @ =gDecorationInventories - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x4] - adds r0, r7, 0 - movs r2, 0x68 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - movs r0, 0xFC - strb r0, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r0, _080FE51C @ =gStringVar4 - mov r1, r8 - mov r2, r9 - bl MenuPrint - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FE51C: .4byte gStringVar4 -_080FE520: .4byte gUnknown_083EC5E4 -_080FE524: .4byte gDecorationInventories - thumb_func_end sub_80FE470 - - thumb_func_start sub_80FE528 -sub_80FE528: @ 80FE528 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - movs r5, 0 - ldr r1, _080FE574 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 -_080FE548: - ldr r0, _080FE578 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FE57C - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080FE57C - cmp r5, 0x6 - beq _080FE57C - cmp r5, 0x7 - beq _080FE57C - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xD - bl sub_80FE470 - b _080FE58E - .align 2, 0 -_080FE574: .4byte gTasks -_080FE578: .4byte 0x0201f000 -_080FE57C: - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0xFF - bl sub_80FE470 -_080FE58E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _080FE548 - ldr r0, _080FE5A8 @ =gUnknownText_Exit - movs r1, 0x1 - movs r2, 0x11 - bl MenuPrint - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FE5A8: .4byte gUnknownText_Exit - thumb_func_end sub_80FE528 - - thumb_func_start sub_80FE5AC -sub_80FE5AC: @ 80FE5AC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE528 - ldr r0, _080FE5F8 @ =gUnknown_020388F6 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x9 - bl InitMenu - ldr r1, _080FE5FC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE600 @ =sub_80FE604 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE5F8: .4byte gUnknown_020388F6 -_080FE5FC: .4byte gTasks -_080FE600: .4byte sub_80FE604 - thumb_func_end sub_80FE5AC - - thumb_func_start sub_80FE604 -sub_80FE604: @ 80FE604 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _080FE638 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE61C - b _080FE720 -_080FE61C: - ldr r2, _080FE63C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080FE640 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080FE720 - .align 2, 0 -_080FE638: .4byte gPaletteFade -_080FE63C: .4byte gMain -_080FE640: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080FE656 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080FE720 -_080FE656: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FE70C - movs r0, 0x5 - bl PlaySE - bl GetMenuCursorPos - ldr r4, _080FE6C0 @ =gUnknown_020388F6 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - beq _080FE704 - ldrb r0, [r4] - bl sub_8134194 - ldr r1, _080FE6C4 @ =gUnknown_020388D5 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080FE6DC - ldrb r0, [r4] - bl sub_8134104 - ldr r2, _080FE6C8 @ =gUnknown_020388D0 - ldr r1, _080FE6CC @ =gDecorationInventories - ldrb r0, [r4] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - adds r0, r5, 0 - bl sub_80FEF50 - bl sub_80F944C - ldr r0, _080FE6D0 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9480 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, _080FE6D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE6D8 @ =sub_80FE868 - str r1, [r0] - b _080FE720 - .align 2, 0 -_080FE6C0: .4byte gUnknown_020388F6 -_080FE6C4: .4byte gUnknown_020388D5 -_080FE6C8: .4byte gUnknown_020388D0 -_080FE6CC: .4byte gDecorationInventories -_080FE6D0: .4byte gUnknown_020388F7 -_080FE6D4: .4byte gTasks -_080FE6D8: .4byte sub_80FE868 -_080FE6DC: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors - ldr r2, _080FE700 @ =sub_80FE418 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FE720 - .align 2, 0 -_080FE6FC: .4byte gSecretBaseText_NoDecors -_080FE700: .4byte sub_80FE418 -_080FE704: - adds r0, r5, 0 - bl sub_80FE728 - b _080FE720 -_080FE70C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FE720 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80FE728 -_080FE720: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE604 - - thumb_func_start sub_80FE728 -sub_80FE728: @ 80FE728 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080FE748 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0x3 - beq _080FE74C - adds r0, r2, 0 - bl sub_80FE758 - b _080FE752 - .align 2, 0 -_080FE748: .4byte gTasks -_080FE74C: - adds r0, r2, 0 - bl sub_8109DAC -_080FE752: - pop {r0} - bx r0 - thumb_func_end sub_80FE728 - - thumb_func_start sub_80FE758 -sub_80FE758: @ 80FE758 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080FE794 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r0, 0x2 - beq _080FE79C - bl sub_80FE1DC - bl MenuDisplayMessageBox - bl sub_80FE394 - ldr r0, _080FE798 @ =sub_80FE2EC - str r0, [r5] - b _080FE7A2 - .align 2, 0 -_080FE794: .4byte gTasks -_080FE798: .4byte sub_80FE2EC -_080FE79C: - adds r0, r4, 0 - bl sub_80B3068 -_080FE7A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80FE758 - - thumb_func_start sub_80FE7A8 -sub_80FE7A8: @ 80FE7A8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FE7CC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - movs r2, 0x3 - strh r2, [r1, 0x1E] - ldr r1, _080FE7D0 @ =gUnknown_020388F6 - strb r3, [r1] - bl sub_80FE5AC - pop {r0} - bx r0 - .align 2, 0 -_080FE7CC: .4byte gTasks -_080FE7D0: .4byte gUnknown_020388F6 - thumb_func_end sub_80FE7A8 - - thumb_func_start sub_80FE7D4 -sub_80FE7D4: @ 80FE7D4 - push {lr} - lsls r1, 24 - ldr r2, _080FE7E8 @ =gUnknown_083EC5E4 - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080FE7E8: .4byte gUnknown_083EC5E4 - thumb_func_end sub_80FE7D4 - - thumb_func_start sub_80FE7EC -sub_80FE7EC: @ 80FE7EC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FEC94 - ldr r0, _080FE858 @ =gUnknown_020388F6 - ldrb r0, [r0] - bl sub_80FECB8 - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r4, _080FE85C @ =gUnknown_020388F2 - ldr r0, _080FE860 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - ldr r0, _080FE864 @ =gUnknown_020388F3 - ldrb r3, [r0] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE858: .4byte gUnknown_020388F6 -_080FE85C: .4byte gUnknown_020388F2 -_080FE860: .4byte gUnknown_020388F4 -_080FE864: .4byte gUnknown_020388F3 - thumb_func_end sub_80FE7EC - - thumb_func_start sub_80FE868 -sub_80FE868: @ 80FE868 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80FE7EC - ldr r1, _080FE88C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FE890 @ =sub_80FE948 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE88C: .4byte gTasks -_080FE890: .4byte sub_80FE948 - thumb_func_end sub_80FE868 - - thumb_func_start sub_80FE894 -sub_80FE894: @ 80FE894 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0 - mov r10, r0 - ldr r6, _080FE920 @ =gUnknown_020388F2 - ldrb r1, [r6] - ldr r4, _080FE924 @ =gUnknown_020388F4 - ldrb r0, [r4] - adds r1, r0 - ldr r2, _080FE928 @ =gUnknown_020388D5 - mov r9, r2 - ldrb r0, [r2] - cmp r1, r0 - bne _080FE8C8 - movs r1, 0x1 - mov r10, r1 -_080FE8C8: - movs r0, 0x5 - bl PlaySE - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0 - beq _080FE8DC - bl MoveMenuCursor - strb r0, [r6] -_080FE8DC: - cmp r7, 0 - beq _080FE8EE - ldrb r0, [r4] - adds r0, r7 - strb r0, [r4] - mov r0, r8 - movs r1, 0x1 - bl sub_80FEABC -_080FE8EE: - ldrb r0, [r6] - ldrb r1, [r4] - adds r0, r1 - mov r2, r9 - ldrb r2, [r2] - cmp r0, r2 - beq _080FE92C - mov r0, r10 - cmp r0, 0 - beq _080FE90E - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow -_080FE90E: - ldrb r0, [r4] - ldrb r6, [r6] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - b _080FE938 - .align 2, 0 -_080FE920: .4byte gUnknown_020388F2 -_080FE924: .4byte gUnknown_020388F4 -_080FE928: .4byte gUnknown_020388D5 -_080FE92C: - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect -_080FE938: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FE894 - - thumb_func_start sub_80FE948 -sub_80FE948: @ 80FE948 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FE980 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080FE95C - b _080FEAAC -_080FE95C: - ldr r0, _080FE984 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x40 - bne _080FE9A0 - ldr r0, _080FE988 @ =gUnknown_020388F2 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE98C - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - movs r2, 0 - bl sub_80FE894 - b _080FE9A0 - .align 2, 0 -_080FE980: .4byte gPaletteFade -_080FE984: .4byte gMain -_080FE988: .4byte gUnknown_020388F2 -_080FE98C: - ldr r0, _080FE9C4 @ =gUnknown_020388F4 - ldrb r0, [r0] - cmp r0, 0 - beq _080FE9A0 - movs r2, 0x1 - negs r2, r2 - adds r0, r4, 0 - movs r1, 0 - bl sub_80FE894 -_080FE9A0: - ldr r0, _080FE9C8 @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0x80 - bne _080FE9EE - ldr r2, _080FE9CC @ =gUnknown_020388F2 - ldr r1, _080FE9D0 @ =gUnknown_020388F3 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9D4 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_80FE894 - b _080FE9EE - .align 2, 0 -_080FE9C4: .4byte gUnknown_020388F4 -_080FE9C8: .4byte gMain -_080FE9CC: .4byte gUnknown_020388F2 -_080FE9D0: .4byte gUnknown_020388F3 -_080FE9D4: - ldr r0, _080FEA38 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - ldr r1, _080FEA3C @ =gUnknown_020388D5 - ldrb r1, [r1] - cmp r0, r1 - beq _080FE9EE - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - bl sub_80FE894 -_080FE9EE: - ldr r0, _080FEA40 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080FEA7C - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r2, _080FEA44 @ =gUnknown_020388F5 - ldr r1, _080FEA48 @ =gUnknown_020388F2 - ldr r0, _080FEA38 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r1 - strb r0, [r2] - ldr r1, _080FEA3C @ =gUnknown_020388D5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEA54 - ldr r1, _080FEA4C @ =gUnknown_083EC634 - ldr r2, _080FEA50 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - b _080FEA68 - .align 2, 0 -_080FEA38: .4byte gUnknown_020388F4 -_080FEA3C: .4byte gUnknown_020388D5 -_080FEA40: .4byte gMain -_080FEA44: .4byte gUnknown_020388F5 -_080FEA48: .4byte gUnknown_020388F2 -_080FEA4C: .4byte gUnknown_083EC634 -_080FEA50: .4byte gTasks -_080FEA54: - ldr r2, _080FEA74 @ =gUnknown_083EC634 - ldr r1, _080FEA78 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1E - ldrsh r0, [r0, r1] - lsls r0, 3 - adds r0, r2 -_080FEA68: - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080FEAAC - .align 2, 0 -_080FEA74: .4byte gUnknown_083EC634 -_080FEA78: .4byte gTasks -_080FEA7C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FEAAC - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r1, _080FEAB4 @ =gUnknown_083EC634 - ldr r2, _080FEAB8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r2, 0x1E - ldrsh r0, [r0, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080FEAAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FEAB4: .4byte gUnknown_083EC634 -_080FEAB8: .4byte gTasks - thumb_func_end sub_80FE948 - - thumb_func_start sub_80FEABC -sub_80FEABC: @ 80FEABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080FEB58 @ =gUnknown_020388F4 - ldrb r0, [r4] - cmp r0, 0 - bne _080FEADE - movs r0, 0 - bl SetBgTilemapBuffer - ldrb r0, [r4] - cmp r0, 0 - beq _080FEAE8 -_080FEADE: - movs r0, 0 - movs r1, 0x3C - movs r2, 0x8 - bl sub_80F953C -_080FEAE8: - ldr r5, _080FEB58 @ =gUnknown_020388F4 - ldrb r0, [r5] - adds r0, 0x7 - ldr r4, _080FEB5C @ =gUnknown_020388D5 - ldrb r1, [r4] - cmp r0, r1 - bne _080FEAFC - movs r0, 0x1 - bl SetBgTilemapBuffer -_080FEAFC: - ldrb r0, [r5] - adds r0, 0x7 - ldrb r4, [r4] - cmp r0, r4 - bge _080FEB10 - movs r0, 0x1 - movs r1, 0x3C - movs r2, 0x98 - bl sub_80F953C -_080FEB10: - ldrb r4, [r5] - adds r0, r4, 0 - adds r0, 0x8 - cmp r4, r0 - blt _080FEB1C - b _080FEC7E -_080FEB1C: - adds r7, r5, 0 -_080FEB1E: - ldrb r1, [r7] - subs r1, r4, r1 - lsls r0, r1, 25 - movs r2, 0x80 - lsls r2, 18 - adds r0, r2 - lsrs r6, r0, 24 - ldr r0, _080FEB60 @ =gUnknown_020388F7 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080FEB3C - adds r0, r1, 0 - bl sub_80F94F8 -_080FEB3C: - ldr r0, _080FEB5C @ =gUnknown_020388D5 - ldrb r0, [r0] - cmp r4, r0 - bne _080FEB68 - lsls r2, r6, 3 - movs r0, 0x1 - str r0, [sp] - ldr r0, _080FEB64 @ =gUnknownText_Exit - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEC7E - .align 2, 0 -_080FEB58: .4byte gUnknown_020388F4 -_080FEB5C: .4byte gUnknown_020388D5 -_080FEB60: .4byte gUnknown_020388F7 -_080FEB64: .4byte gUnknownText_Exit -_080FEB68: - ldr r0, _080FEBC0 @ =gUnknown_020388D0 - ldr r1, [r0] - adds r2, r1, r4 - ldrb r1, [r2] - mov r12, r0 - adds r5, r4, 0x1 - cmp r1, 0 - bne _080FEB7A - b _080FEC70 -_080FEB7A: - ldr r0, _080FEBC4 @ =0x0201f000 - ldrb r5, [r0, 0x9] - cmp r5, 0x1 - bne _080FEBDC - ldr r0, _080FEBC8 @ =gUnknown_020388F6 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FEBDC - cmp r0, 0x7 - beq _080FEBDC - ldr r0, _080FEBCC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r3, 0x1E - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080FEBDC - ldrb r1, [r2] - lsls r1, 5 - ldr r0, _080FEBD0 @ =gDecorations + 0x1 - adds r1, r0 - ldr r0, _080FEBD4 @ =gStringVar1 - bl StringCopy - lsls r2, r6, 3 - str r5, [sp] - ldr r0, _080FEBD8 @ =gUnknown_083EC65A - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 - b _080FEBF8 - .align 2, 0 -_080FEBC0: .4byte gUnknown_020388D0 -_080FEBC4: .4byte 0x0201f000 -_080FEBC8: .4byte gUnknown_020388F6 -_080FEBCC: .4byte gTasks -_080FEBD0: .4byte gDecorations + 0x1 -_080FEBD4: .4byte gStringVar1 -_080FEBD8: .4byte gUnknown_083EC65A -_080FEBDC: - mov r1, r12 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 5 - ldr r1, _080FEC00 @ =gDecorations + 0x1 - adds r0, r1 - lsls r2, r6, 3 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x8 - movs r3, 0x68 - bl sub_8072A18 -_080FEBF8: - movs r1, 0 - adds r5, r4, 0x1 - b _080FEC0A - .align 2, 0 -_080FEC00: .4byte gDecorations + 0x1 -_080FEC04: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC0A: - cmp r1, 0xF - bhi _080FEC34 - ldr r0, _080FEC38 @ =gUnknown_020388D6 - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC04 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC3C @ =gUnknown_020388F7 - adds r1, r3, r1 - lsls r3, 20 - movs r2, 0xC0 - lsls r2, 13 - adds r3, r2 - asrs r3, 16 - movs r0, 0x4 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC34: - movs r1, 0 - b _080FEC46 - .align 2, 0 -_080FEC38: .4byte gUnknown_020388D6 -_080FEC3C: .4byte gUnknown_020388F7 -_080FEC40: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 -_080FEC46: - cmp r1, 0xB - bhi _080FEC70 - ldr r0, _080FEC8C @ =gUnknown_020388E6 - adds r0, r1, r0 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, r4 - bne _080FEC40 - ldrb r3, [r7] - subs r3, r4, r3 - ldr r1, _080FEC90 @ =gUnknown_020388F7 - adds r1, r3, r1 - lsls r3, 20 - movs r0, 0xC0 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x5 - movs r2, 0x6C - bl sub_80F94A4 -_080FEC70: - lsls r0, r5, 16 - lsrs r4, r0, 16 - ldrb r0, [r7] - adds r0, 0x8 - cmp r4, r0 - bge _080FEC7E - b _080FEB1E -_080FEC7E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEC8C: .4byte gUnknown_020388E6 -_080FEC90: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEABC - - thumb_func_start sub_80FEC94 -sub_80FEC94: @ 80FEC94 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0 - bl sub_80FEABC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FEC94 - - thumb_func_start sub_80FECB8 -sub_80FECB8: @ 80FECB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x1 - movs r3, 0xFF - bl sub_80FE470 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FECB8 - - thumb_func_start sub_80FECE0 -sub_80FECE0: @ 80FECE0 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080FED14 @ =gDecorations - ldr r1, _080FED18 @ =gUnknown_020388D0 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 5 - adds r2, 0x18 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x30 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x80 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080FED14: .4byte gDecorations -_080FED18: .4byte gUnknown_020388D0 - thumb_func_end sub_80FECE0 - - thumb_func_start sub_80FED1C -sub_80FED1C: @ 80FED1C - push {lr} - movs r0, 0xF - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuZeroFillWindowRect - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80FED1C - - thumb_func_start sub_80FED3C -sub_80FED3C: @ 80FED3C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r1, _080FED5C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FED60 @ =sub_80FE868 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FED5C: .4byte gTasks -_080FED60: .4byte sub_80FE868 - thumb_func_end sub_80FED3C - - thumb_func_start sub_80FED64 -sub_80FED64: @ 80FED64 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _080FED7C @ =gUnknown_020388D6 -_080FED6E: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FED80 - movs r0, 0x1 - b _080FED8C - .align 2, 0 -_080FED7C: .4byte gUnknown_020388D6 -_080FED80: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080FED6E - movs r0, 0 -_080FED8C: - pop {r1} - bx r1 - thumb_func_end sub_80FED64 - - thumb_func_start sub_80FED90 -sub_80FED90: @ 80FED90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r3, 0 - ldr r4, _080FEE30 @ =gUnknown_020388D6 - movs r1, 0 - ldr r2, _080FEE34 @ =gUnknown_020388E6 -_080FEDA4: - adds r0, r3, r4 - strb r1, [r0] - cmp r3, 0xB - bhi _080FEDB0 - adds r0, r3, r2 - strb r1, [r0] -_080FEDB0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDA4 - movs r3, 0 - ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A - mov r10, r0 - ldr r1, _080FEE3C @ =gDecorationInventories - mov r9, r1 - ldr r2, _080FEE40 @ =gUnknown_020388F6 - mov r8, r2 -_080FEDC8: - mov r1, r10 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080FEE5A - movs r1, 0 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEE5A - ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A - adds r0, r3 - mov r12, r0 - ldr r7, _080FEE30 @ =gUnknown_020388D6 -_080FEDEA: - ldr r0, _080FEE44 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - mov r1, r12 - ldrb r1, [r1] - cmp r0, r1 - bne _080FEE48 - movs r1, 0 - cmp r1, r6 - bcs _080FEE1E - ldrb r0, [r7] - cmp r0, r4 - beq _080FEE1E - ldr r5, _080FEE30 @ =gUnknown_020388D6 - adds r2, r4, 0 -_080FEE0C: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEE1E - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEE0C -_080FEE1E: - cmp r1, r6 - bne _080FEE48 - adds r0, r6, r7 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEE5A - .align 2, 0 -_080FEE30: .4byte gUnknown_020388D6 -_080FEE34: .4byte gUnknown_020388E6 -_080FEE38: .4byte gSaveBlock1 + 0x1A1A -_080FEE3C: .4byte gDecorationInventories -_080FEE40: .4byte gUnknown_020388F6 -_080FEE44: .4byte gUnknown_020388D0 -_080FEE48: - lsls r0, r4, 16 - lsrs r1, r0, 16 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 3 - add r0, r9 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEDEA -_080FEE5A: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080FEDC8 - movs r6, 0 - movs r3, 0 - ldr r0, _080FEEE4 @ =gDecorationInventories - mov r8, r0 -_080FEE6C: - ldr r0, _080FEEE8 @ =gSaveBlock1 - ldr r1, _080FEEEC @ =0x00002688 - adds r0, r1 - adds r2, r3, r0 - ldrb r0, [r2] - adds r7, r3, 0x1 - cmp r0, 0 - beq _080FEF0E - movs r1, 0 - ldr r0, _080FEEF0 @ =gUnknown_020388F6 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcs _080FEF0E - adds r5, r2, 0 -_080FEE8E: - ldr r0, _080FEEF4 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - adds r4, r1, 0x1 - ldrb r2, [r5] - cmp r0, r2 - bne _080FEEFC - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80FED64 - lsls r0, 24 - cmp r0, 0 - bne _080FEEFC - movs r1, 0 - cmp r1, r6 - bcs _080FEED0 - ldr r2, _080FEEF8 @ =gUnknown_020388E6 - ldrb r0, [r2] - cmp r0, r4 - beq _080FEED0 - adds r3, r2, 0 - adds r2, r4, 0 -_080FEEBE: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r6 - bcs _080FEED0 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _080FEEBE -_080FEED0: - cmp r1, r6 - bne _080FEEFC - ldr r0, _080FEEF8 @ =gUnknown_020388E6 - adds r0, r6, r0 - strb r4, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - b _080FEF0E - .align 2, 0 -_080FEEE4: .4byte gDecorationInventories -_080FEEE8: .4byte gSaveBlock1 -_080FEEEC: .4byte 0x00002688 -_080FEEF0: .4byte gUnknown_020388F6 -_080FEEF4: .4byte gUnknown_020388D0 -_080FEEF8: .4byte gUnknown_020388E6 -_080FEEFC: - lsls r0, r4, 16 - lsrs r1, r0, 16 - ldr r0, _080FEF24 @ =gUnknown_020388F6 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldrb r0, [r0, 0x4] - cmp r1, r0 - bcc _080FEE8E -_080FEF0E: - lsls r0, r7, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bls _080FEE6C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080FEF24: .4byte gUnknown_020388F6 - thumb_func_end sub_80FED90 - - thumb_func_start sub_80FEF28 -sub_80FEF28: @ 80FEF28 - push {lr} - ldr r0, _080FEF38 @ =gUnknown_020388D5 - ldrb r1, [r0] - cmp r1, 0x7 - bhi _080FEF40 - ldr r0, _080FEF3C @ =gUnknown_020388F3 - strb r1, [r0] - b _080FEF46 - .align 2, 0 -_080FEF38: .4byte gUnknown_020388D5 -_080FEF3C: .4byte gUnknown_020388F3 -_080FEF40: - ldr r1, _080FEF4C @ =gUnknown_020388F3 - movs r0, 0x7 - strb r0, [r1] -_080FEF46: - pop {r0} - bx r0 - .align 2, 0 -_080FEF4C: .4byte gUnknown_020388F3 - thumb_func_end sub_80FEF28 - - thumb_func_start sub_80FEF50 -sub_80FEF50: @ 80FEF50 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80FED90 - bl sub_80FEF28 - ldr r0, _080FEF6C @ =gUnknown_020388F2 - movs r1, 0 - strb r1, [r0] - ldr r0, _080FEF70 @ =gUnknown_020388F4 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080FEF6C: .4byte gUnknown_020388F2 -_080FEF70: .4byte gUnknown_020388F4 - thumb_func_end sub_80FEF50 - - thumb_func_start sub_80FEF74 -sub_80FEF74: @ 80FEF74 - push {lr} - ldr r0, _080FEFA0 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - .align 2, 0 -_080FEFA0: .4byte gUnknown_020388F7 - thumb_func_end sub_80FEF74 - - thumb_func_start sub_80FEFA4 -sub_80FEFA4: @ 80FEFA4 - push {r4,lr} - movs r2, 0 - ldr r0, _080FEFD0 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldr r1, _080FEFD4 @ =gUnknown_020388F2 - ldrb r1, [r1] - adds r0, r1 - adds r1, r0, 0x1 - ldr r4, _080FEFD8 @ =gUnknown_020388D6 - ldr r3, _080FEFDC @ =gUnknown_020388E6 -_080FEFB8: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r1 - beq _080FEFCC - cmp r2, 0xB - bhi _080FEFE0 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _080FEFE0 -_080FEFCC: - movs r0, 0 - b _080FEFEC - .align 2, 0 -_080FEFD0: .4byte gUnknown_020388F4 -_080FEFD4: .4byte gUnknown_020388F2 -_080FEFD8: .4byte gUnknown_020388D6 -_080FEFDC: .4byte gUnknown_020388E6 -_080FEFE0: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _080FEFB8 - movs r0, 0x1 -_080FEFEC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FEFA4 - - thumb_func_start sub_80FEFF4 -sub_80FEFF4: @ 80FEFF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080FF028 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080FF00E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080FF020 -_080FF00E: - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldr r0, _080FF02C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080FF030 @ =sub_80FE868 - str r0, [r1] -_080FF020: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF028: .4byte gMain -_080FF02C: .4byte gTasks -_080FF030: .4byte sub_80FE868 - thumb_func_end sub_80FEFF4 - - thumb_func_start sub_80FF034 -sub_80FF034: @ 80FF034 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FE5AC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF034 - - thumb_func_start sub_80FF058 -sub_80FF058: @ 80FF058 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080FF08C @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - bl BuyMenuFreeMemory - ldr r1, _080FF090 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080FF094 @ =sub_80FF034 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF08C: .4byte gUnknown_020388F7 -_080FF090: .4byte gTasks -_080FF094: .4byte sub_80FF034 - thumb_func_end sub_80FF058 - - thumb_func_start sub_80FF098 -sub_80FF098: @ 80FF098 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080FF0D4 @ =gUnknown_020388D5 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r3, _080FF0D8 @ =gUnknown_020388F4 - ldrb r2, [r3] - adds r0, r2, 0x7 - ldrb r1, [r1] - cmp r0, r1 - ble _080FF0BA - cmp r2, 0 - beq _080FF0BA - subs r0, r2, 0x1 - strb r0, [r3] -_080FF0BA: - ldr r0, _080FF0DC @ =gUnknown_020388F6 - ldrb r0, [r0] - bl sub_8134104 - adds r0, r4, 0 - bl sub_80FED90 - bl sub_80FEF28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF0D4: .4byte gUnknown_020388D5 -_080FF0D8: .4byte gUnknown_020388F4 -_080FF0DC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF098 - - thumb_func_start sub_80FF0E0 -sub_80FF0E0: @ 80FF0E0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF10C @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r4, r2, r3 - ldr r1, _080FF110 @ =gSaveBlock1 - ldrh r0, [r1] - strh r0, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x10] - adds r3, 0x8 - adds r2, r3 - adds r1, r2, 0x2 - adds r0, r2, 0 - bl PlayerGetDestCoords - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF10C: .4byte gTasks -_080FF110: .4byte gSaveBlock1 - thumb_func_end sub_80FF0E0 - - thumb_func_start sub_80FF114 -sub_80FF114: @ 80FF114 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl DrawWholeMapView - ldr r1, _080FF158 @ =gSaveBlock1 - movs r0, 0x4 - ldrsb r0, [r1, r0] - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - ldr r3, _080FF15C @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r3 - movs r3, 0xE - ldrsb r3, [r4, r3] - ldrb r4, [r4, 0x10] - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl warp1_set - bl warp_in - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF158: .4byte gSaveBlock1 -_080FF15C: .4byte gTasks - thumb_func_end sub_80FF114 - - thumb_func_start sub_80FF160 -sub_80FF160: @ 80FF160 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _080FF188 - ldr r1, _080FF180 @ =gSecretBaseText_NoDecors - ldr r2, _080FF184 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF1A2 - .align 2, 0 -_080FF180: .4byte gSecretBaseText_NoDecors -_080FF184: .4byte sub_80FE428 -_080FF188: - ldr r1, _080FF1A8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x1E] - ldr r0, _080FF1AC @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_080FF1A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF1A8: .4byte gTasks -_080FF1AC: .4byte gUnknown_020388F6 - thumb_func_end sub_80FF160 - - thumb_func_start sub_80FF1B0 -sub_80FF1B0: @ 80FF1B0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080FF1D0 @ =0x0000ffff - cmp r2, 0x22 - beq _080FF1D8 - cmp r2, 0x26 - bne _080FF1E2 - ldr r0, _080FF1D4 @ =gUnknown_083EC97C - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 - b _080FF1E2 - .align 2, 0 -_080FF1D0: .4byte 0x0000ffff -_080FF1D4: .4byte gUnknown_083EC97C -_080FF1D8: - ldr r0, _080FF1E8 @ =gUnknown_083EC984 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 16 -_080FF1E2: - pop {r1} - bx r1 - .align 2, 0 -_080FF1E8: .4byte gUnknown_083EC984 - thumb_func_end sub_80FF1B0 - - thumb_func_start sub_80FF1EC -sub_80FF1EC: @ 80FF1EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - ldr r4, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0xC] - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x10] - movs r2, 0 - lsls r0, r3, 16 - cmp r2, r3 - bcc _080FF222 - b _080FF384 -_080FF222: - ldr r1, [sp, 0x8] - str r1, [sp, 0x28] - str r0, [sp, 0x2C] -_080FF228: - ldr r3, [sp, 0x4] - ldr r4, [sp, 0xC] - subs r1, r3, r4 - lsls r0, r2, 16 - asrs r0, 16 - adds r0, 0x1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r10, r0 - adds r1, r2, 0x1 - str r1, [sp, 0x30] - ldr r3, [sp, 0x28] - cmp r10, r3 - bcc _080FF24C - b _080FF374 -_080FF24C: - ldr r4, [sp, 0x10] - lsls r4, 5 - str r4, [sp, 0x18] - ldr r0, _080FF2B4 @ =gDecorations + 0x1C - adds r0, r4, r0 - str r0, [sp, 0x1C] - ldr r0, _080FF2B8 @ =gDecorations - adds r0, r4, r0 - str r0, [sp, 0x24] - ldr r3, [sp, 0x8] - adds r1, r2, 0 - muls r1, r3 - str r1, [sp, 0x20] -_080FF266: - ldr r0, [sp] - add r0, r10 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, [sp, 0x20] - add r1, r10 - ldr r4, [sp, 0x1C] - ldr r0, [r4] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - lsls r4, r0, 16 - lsls r0, r4, 8 - lsrs r0, 24 - bl sub_8057288 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FF2AC - ldr r3, [sp, 0x24] - ldrb r0, [r3, 0x11] - cmp r0, 0x1 - beq _080FF2BC - lsrs r0, r4, 28 - cmp r0, 0 - beq _080FF2BC -_080FF2AC: - movs r4, 0xC0 - lsls r4, 4 - mov r8, r4 - b _080FF2C0 - .align 2, 0 -_080FF2B4: .4byte gDecorations + 0x1C -_080FF2B8: .4byte gDecorations -_080FF2BC: - movs r0, 0 - mov r8, r0 -_080FF2C0: - ldr r1, [sp, 0x24] - ldrb r0, [r1, 0x11] - lsls r7, r5, 16 - ldr r2, [sp, 0x14] - lsls r2, 16 - mov r9, r2 - cmp r0, 0x3 - beq _080FF2EA - asrs r0, r7, 16 - asrs r1, r2, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1 - cmp r0, 0x1 - beq _080FF2EC -_080FF2EA: - movs r6, 0 -_080FF2EC: - ldr r3, [sp, 0x18] - ldr r4, _080FF334 @ =gDecorations - adds r0, r3, r4 - ldrb r0, [r0] - ldr r4, [sp, 0x20] - add r4, r10 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_80FF1B0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080FF338 @ =0x0000ffff - cmp r5, r0 - beq _080FF33C - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - orrs r3, r5 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileEntryAt - b _080FF362 - .align 2, 0 -_080FF334: .4byte gDecorations -_080FF338: .4byte 0x0000ffff -_080FF33C: - asrs r0, r7, 16 - mov r2, r9 - asrs r1, r2, 16 - ldr r3, [sp, 0x1C] - ldr r2, [r3] - lsls r3, r4, 1 - adds r3, r2 - movs r4, 0x80 - lsls r4, 2 - adds r2, r4, 0 - orrs r6, r2 - ldrh r3, [r3] - adds r2, r6, r3 - mov r3, r8 - orrs r3, r2 - lsls r2, r3, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt -_080FF362: - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r4, [sp, 0x28] - cmp r10, r4 - bcs _080FF374 - b _080FF266 -_080FF374: - ldr r1, [sp, 0x30] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r3, [sp, 0x2C] - lsrs r0, r3, 16 - cmp r2, r0 - bcs _080FF384 - b _080FF228 -_080FF384: - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF1EC - - thumb_func_start sub_80FF394 -sub_80FF394: @ 80FF394 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _080FF3BC @ =gDecorations - lsls r0, r2, 5 - adds r0, r1 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bhi _080FF46C - lsls r0, 2 - ldr r1, _080FF3C0 @ =_080FF3C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF3BC: .4byte gDecorations -_080FF3C0: .4byte _080FF3C4 - .align 2, 0 -_080FF3C4: - .4byte _080FF3EC - .4byte _080FF3F6 - .4byte _080FF400 - .4byte _080FF410 - .4byte _080FF41A - .4byte _080FF424 - .4byte _080FF434 - .4byte _080FF43E - .4byte _080FF44E - .4byte _080FF45E -_080FF3EC: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF408 -_080FF3F6: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF408 -_080FF400: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF408: - movs r3, 0x1 - bl sub_80FF1EC - b _080FF46C -_080FF410: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x4 - b _080FF42C -_080FF41A: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - b _080FF42C -_080FF424: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 -_080FF42C: - movs r3, 0x2 - bl sub_80FF1EC - b _080FF46C -_080FF434: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x1 - b _080FF456 -_080FF43E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x4 - bl sub_80FF1EC - b _080FF46C -_080FF44E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 -_080FF456: - movs r3, 0x3 - bl sub_80FF1EC - b _080FF46C -_080FF45E: - str r2, [sp] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80FF1EC -_080FF46C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80FF394 - - thumb_func_start sub_80FF474 -sub_80FF474: @ 80FF474 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0 - ldr r0, _080FF54C @ =gMapHeader - mov r8, r0 - ldr r1, _080FF550 @ =gUnknown_0202E8CE - mov r9, r1 - ldr r2, _080FF554 @ =gUnknown_0202E8D0 - mov r10, r2 - ldr r7, _080FF558 @ =gSaveBlock1 -_080FF490: - adds r5, r6, 0 - adds r5, 0xAE - adds r4, r5, 0 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF570 - adds r0, r4, 0 - bl FlagReset - movs r2, 0 - mov r4, r8 - ldr r0, [r4, 0x4] - ldrb r6, [r0] - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r0, 0x4] - ldrh r0, [r0, 0x14] - cmp r0, r5 - beq _080FF4E0 - ldr r0, _080FF54C @ =gMapHeader - ldr r3, [r0, 0x4] - ldrb r6, [r3] - adds r4, r5, 0 -_080FF4C6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r6 - bcs _080FF4E0 - ldr r0, [r3, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _080FF4C6 -_080FF4E0: - mov r1, r8 - ldr r0, [r1, 0x4] - ldr r1, [r0, 0x4] - lsls r4, r2, 1 - adds r4, r2 - lsls r4, 3 - adds r1, r4, r1 - ldr r2, _080FF55C @ =0x00003f20 - adds r0, r2, 0 - ldrb r1, [r1, 0x1] - adds r0, r1 - ldr r1, _080FF560 @ =gUnknown_02038900 - ldr r1, [r1] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - bl VarSet - mov r5, r8 - ldr r0, [r5, 0x4] - ldr r0, [r0, 0x4] - adds r4, r0 - ldrb r0, [r4] - mov r6, r9 - strh r0, [r6] - ldr r1, _080FF564 @ =gUnknown_020391A4 - ldrh r1, [r1] - mov r2, r10 - strh r1, [r2] - ldr r1, _080FF568 @ =gUnknown_020391A6 - ldrh r1, [r1] - ldr r4, _080FF56C @ =gUnknown_0202E8D2 - strh r1, [r4] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl show_sprite - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - mov r5, r10 - movs r6, 0 - ldrsh r3, [r5, r6] - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - bl sub_805C0F8 - mov r6, r9 - ldrb r0, [r6] - ldrb r1, [r7, 0x5] - ldrb r2, [r7, 0x4] - bl sub_805C78C - b _080FF57A - .align 2, 0 -_080FF54C: .4byte gMapHeader -_080FF550: .4byte gUnknown_0202E8CE -_080FF554: .4byte gUnknown_0202E8D0 -_080FF558: .4byte gSaveBlock1 -_080FF55C: .4byte 0x00003f20 -_080FF560: .4byte gUnknown_02038900 -_080FF564: .4byte gUnknown_020391A4 -_080FF568: .4byte gUnknown_020391A6 -_080FF56C: .4byte gUnknown_0202E8D2 -_080FF570: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xD - bls _080FF490 -_080FF57A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF474 - - thumb_func_start sub_80FF58C -sub_80FF58C: @ 80FF58C - push {lr} - movs r1, 0 - ldr r0, _080FF5A8 @ =0x0201f000 - ldrb r2, [r0, 0x8] - cmp r1, r2 - bcs _080FF5B6 - ldr r3, [r0] -_080FF59A: - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080FF5AC - movs r0, 0x1 - b _080FF5B8 - .align 2, 0 -_080FF5A8: .4byte 0x0201f000 -_080FF5AC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080FF59A -_080FF5B6: - movs r0, 0 -_080FF5B8: - pop {r1} - bx r1 - thumb_func_end sub_80FF58C - - thumb_func_start sub_80FF5BC -sub_80FF5BC: @ 80FF5BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080FF5E4 @ =0x0201f000 - ldrb r0, [r0, 0x9] - cmp r0, 0x1 - bne _080FF5F0 - ldr r0, _080FF5E8 @ =gUnknown_020388F6 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080FF5F0 - cmp r0, 0x7 - beq _080FF5F0 - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace - b _080FF66E - .align 2, 0 -_080FF5E4: .4byte 0x0201f000 -_080FF5E8: .4byte gUnknown_020388F6 -_080FF5EC: .4byte gSecretBaseText_DecorCantPlace -_080FF5F0: - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF688 - bl sub_80FF58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF62C - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _080FF624 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _080FF628 @ =sub_80FF6AC - str r1, [r0] - b _080FF69C - .align 2, 0 -_080FF624: .4byte gTasks -_080FF628: .4byte sub_80FF6AC -_080FF62C: - bl sub_80FEF74 - bl sub_80FED1C - ldr r0, _080FF654 @ =gStringVar1 - ldr r4, _080FF658 @ =0x0201f000 - ldrb r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldrb r0, [r4, 0x9] - cmp r0, 0 - bne _080FF664 - ldr r0, _080FF65C @ =gStringVar4 - ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor - bl StringExpandPlaceholders - b _080FF66C - .align 2, 0 -_080FF654: .4byte gStringVar1 -_080FF658: .4byte 0x0201f000 -_080FF65C: .4byte gStringVar4 -_080FF660: .4byte gSecretBaseText_NoMoreDecor -_080FF664: - ldr r0, _080FF67C @ =gStringVar4 - ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2 - bl StringExpandPlaceholders -_080FF66C: - ldr r1, _080FF67C @ =gStringVar4 -_080FF66E: - ldr r2, _080FF684 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _080FF69C - .align 2, 0 -_080FF67C: .4byte gStringVar4 -_080FF680: .4byte gSecretBaseText_NoMoreDecor2 -_080FF684: .4byte sub_80FEFF4 -_080FF688: - bl sub_80FEF74 - bl sub_80FED1C - ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready - ldr r2, _080FF6A8 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_080FF69C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080FF6A4: .4byte gSecretBaseText_InUseAlready -_080FF6A8: .4byte sub_80FEFF4 - thumb_func_end sub_80FF5BC - - thumb_func_start sub_80FF6AC -sub_80FF6AC: @ 80FF6AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080FF6D0 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0xC - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _080FF714 - cmp r0, 0x1 - bgt _080FF6D4 - cmp r0, 0 - beq _080FF6DA - b _080FF77A - .align 2, 0 -_080FF6D0: .4byte gTasks -_080FF6D4: - cmp r0, 0x2 - beq _080FF764 - b _080FF77A -_080FF6DA: - ldr r0, _080FF70C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080FF77A - adds r0, r6, 0 - bl sub_80FF0E0 - movs r0, 0 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r0, _080FF710 @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - bl BuyMenuFreeMemory - movs r0, 0x1 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF70C: .4byte gPaletteFade -_080FF710: .4byte gUnknown_020388F7 -_080FF714: - ldr r4, _080FF754 @ =gPaletteFade - ldrb r0, [r4, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4, 0x8] - ldr r5, _080FF758 @ =gUnknown_02038900 - ldr r0, _080FF75C @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _080FF760 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - bl AddDecorationIconObjectFromFieldObject - adds r0, r6, 0 - bl sub_80FF960 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetUpPlacingDecorationPlayerAvatar - bl pal_fill_black - ldrb r1, [r4, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - movs r0, 0x2 - strh r0, [r7, 0xC] - b _080FF77A - .align 2, 0 -_080FF754: .4byte gPaletteFade -_080FF758: .4byte gUnknown_02038900 -_080FF75C: .4byte gUnknown_020388F5 -_080FF760: .4byte gUnknown_020388D0 -_080FF764: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FF77A - movs r0, 0 - strh r0, [r7, 0x20] - adds r0, r6, 0 - bl sub_810065C -_080FF77A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80FF6AC - - thumb_func_start AddDecorationIconObjectFromFieldObject -AddDecorationIconObjectFromFieldObject: @ 80FF780 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl sub_80FEF74 - bl sub_80FED1C - adds r0, r5, 0 - bl sub_81006D0 - lsls r4, 5 - ldr r0, _080FF810 @ =gDecorations - adds r4, r0 - str r4, [r5] - ldrb r0, [r4, 0x11] - cmp r0, 0x4 - beq _080FF834 - adds r0, r5, 0 - bl sub_81008BC - ldr r0, [r5] - ldrb r0, [r0, 0x12] - bl sub_8100930 - adds r0, r5, 0 - bl sub_8100874 - ldr r1, _080FF814 @ =0x00000884 - adds r0, r5, r1 - ldr r1, _080FF818 @ =gMapHeader - ldr r1, [r1] - ldr r2, [r1, 0x14] - ldr r1, [r5] - ldr r1, [r1, 0x1C] - ldrh r1, [r1] - ldr r2, [r2, 0xC] - lsls r1, 4 - adds r1, r2 - ldrh r1, [r1, 0xE] - lsrs r1, 12 - bl sub_810070C - ldr r0, _080FF81C @ =gUnknown_083EC954 - bl LoadSpritePalette - ldr r3, _080FF820 @ =gUnknown_020391A8 - ldr r2, _080FF824 @ =gSprites - ldr r4, _080FF828 @ =gUnknown_03004880 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C - ldr r3, _080FF830 @ =gUnknown_083EC900 - ldr r1, [r5] - ldrb r2, [r1, 0x12] - lsls r2, 2 - adds r2, r3 - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - b _080FF87E - .align 2, 0 -_080FF810: .4byte gDecorations -_080FF814: .4byte 0x00000884 -_080FF818: .4byte gMapHeader -_080FF81C: .4byte gUnknown_083EC954 -_080FF820: .4byte gUnknown_020391A8 -_080FF824: .4byte gSprites -_080FF828: .4byte gUnknown_03004880 -_080FF82C: .4byte gSpriteTemplate_83EC93C -_080FF830: .4byte gUnknown_083EC900 -_080FF834: - ldr r2, _080FF888 @ =gUnknown_020391A8 - ldr r6, _080FF88C @ =gSprites - ldr r5, _080FF890 @ =gUnknown_03004880 - ldr r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r0, [r0, 0x2E] - strb r0, [r2] - ldr r0, [r4, 0x1C] - ldrh r0, [r0] - ldr r1, _080FF894 @ =sub_81009A8 - ldr r2, _080FF898 @ =gUnknown_083EC900 - ldrb r3, [r4, 0x12] - lsls r3, 2 - adds r3, r2 - ldrb r2, [r3, 0x2] - ldrb r3, [r3, 0x3] - movs r4, 0x1 - str r4, [sp] - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r0, 24 - str r0, [r5, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] -_080FF87E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080FF888: .4byte gUnknown_020391A8 -_080FF88C: .4byte gSprites -_080FF890: .4byte gUnknown_03004880 -_080FF894: .4byte sub_81009A8 -_080FF898: .4byte gUnknown_083EC900 - thumb_func_end AddDecorationIconObjectFromFieldObject - - thumb_func_start SetUpPlacingDecorationPlayerAvatar -SetUpPlacingDecorationPlayerAvatar: @ 80FF89C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080FF8F0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r2, [r2, 0x12] - ldr r3, _080FF8F4 @ =gUnknown_083EC900 - ldr r0, [r1] - ldrb r4, [r0, 0x12] - lsls r1, r4, 2 - adds r1, r3 - lsls r0, r2, 4 - ldrb r1, [r1, 0x2] - adds r0, r1 - subs r2, 0x1 - lsls r2, 3 - subs r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r4, 0x2 - beq _080FF8D6 - cmp r4, 0x8 - beq _080FF8D6 - cmp r4, 0x9 - bne _080FF8DE -_080FF8D6: - adds r0, r2, 0 - subs r0, 0x8 - lsls r0, 24 - lsrs r2, r0, 24 -_080FF8DE: - ldr r0, _080FF8F8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080FF900 - ldr r1, _080FF8FC @ =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _080FF908 - .align 2, 0 -_080FF8F0: .4byte gTasks -_080FF8F4: .4byte gUnknown_083EC900 -_080FF8F8: .4byte gSaveBlock2 -_080FF8FC: .4byte SpriteCallbackDummy -_080FF900: - ldr r1, _080FF94C @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_080FF908: - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _080FF950 @ =gUnknown_020391A9 - strb r0, [r1] - ldr r3, _080FF954 @ =gSprites - ldr r0, _080FF950 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r4, _080FF958 @ =gUnknown_020391A8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - bl DestroySprite - ldr r0, _080FF95C @ =gUnknown_03004880 - ldr r0, [r0, 0x4] - strb r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FF94C: .4byte SpriteCallbackDummy -_080FF950: .4byte gUnknown_020391A9 -_080FF954: .4byte gSprites -_080FF958: .4byte gUnknown_020391A8 -_080FF95C: .4byte gUnknown_03004880 - thumb_func_end SetUpPlacingDecorationPlayerAvatar - - thumb_func_start sub_80FF960 -sub_80FF960: @ 80FF960 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080FF98C @ =gDecorations - ldr r0, _080FF990 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _080FF994 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r2 - ldrb r0, [r0, 0x12] - cmp r0, 0x9 - bls _080FF980 - b _080FFAA6 -_080FF980: - lsls r0, 2 - ldr r1, _080FF998 @ =_080FF99C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FF98C: .4byte gDecorations -_080FF990: .4byte gUnknown_020388F5 -_080FF994: .4byte gUnknown_020388D0 -_080FF998: .4byte _080FF99C - .align 2, 0 -_080FF99C: - .4byte _080FF9C4 - .4byte _080FF9D8 - .4byte _080FF9F0 - .4byte _080FFA08 - .4byte _080FFA1C - .4byte _080FFA30 - .4byte _080FFA44 - .4byte _080FFA64 - .4byte _080FFA7C - .4byte _080FFA94 -_080FF9C4: - ldr r0, _080FF9D4 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _080FFA88 - .align 2, 0 -_080FF9D4: .4byte gTasks -_080FF9D8: - ldr r1, _080FF9EC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FF9EC: .4byte gTasks -_080FF9F0: - ldr r1, _080FFA04 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x12] - movs r1, 0x1 - b _080FFAA4 - .align 2, 0 -_080FFA04: .4byte gTasks -_080FFA08: - ldr r1, _080FFA18 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x4 - b _080FFAA0 - .align 2, 0 -_080FFA18: .4byte gTasks -_080FFA1C: - ldr r0, _080FFA2C @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - b _080FFA88 - .align 2, 0 -_080FFA2C: .4byte gTasks -_080FFA30: - ldr r1, _080FFA40 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - b _080FFAA0 - .align 2, 0 -_080FFA40: .4byte gTasks -_080FFA44: - ldr r0, _080FFA60 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x12] - movs r0, 0x3 - strh r0, [r1, 0x14] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - b _080FFAA6 - .align 2, 0 -_080FFA60: .4byte gTasks -_080FFA64: - ldr r1, _080FFA78 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0, 0x12] - movs r1, 0x4 - b _080FFAA4 - .align 2, 0 -_080FFA78: .4byte gTasks -_080FFA7C: - ldr r0, _080FFA90 @ =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 -_080FFA88: - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - b _080FFAA6 - .align 2, 0 -_080FFA90: .4byte gTasks -_080FFA94: - ldr r1, _080FFAAC @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 -_080FFAA0: - strh r1, [r0, 0x12] - movs r1, 0x2 -_080FFAA4: - strh r1, [r0, 0x14] -_080FFAA6: - pop {r0} - bx r0 - .align 2, 0 -_080FFAAC: .4byte gTasks - thumb_func_end sub_80FF960 - - thumb_func_start sub_80FFAB0 -sub_80FFAB0: @ 80FFAB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFAF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFAFC @ =gSprites - ldr r0, _080FFB00 @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB04 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8100038 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFAF8: .4byte gTasks -_080FFAFC: .4byte gSprites -_080FFB00: .4byte gUnknown_020391A8 -_080FFB04: .4byte gUnknown_020391A9 - thumb_func_end sub_80FFAB0 - - thumb_func_start sub_80FFB08 -sub_80FFB08: @ 80FFB08 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080FFB54 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r3, _080FFB58 @ =gSprites - ldr r0, _080FFB5C @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x3C] - ldr r0, _080FFB60 @ =gUnknown_020391A9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x3C] - bl sub_810045C - ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating - ldr r2, _080FFB68 @ =sub_8100248 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FFB54: .4byte gTasks -_080FFB58: .4byte gSprites -_080FFB5C: .4byte gUnknown_020391A8 -_080FFB60: .4byte gUnknown_020391A9 -_080FFB64: .4byte gSecretBaseText_CancelDecorating -_080FFB68: .4byte sub_8100248 - thumb_func_end sub_80FFB08 - - thumb_func_start sub_80FFB6C -sub_80FFB6C: @ 80FFB6C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080FFB86 - cmp r4, 0 - beq _080FFB8A -_080FFB86: - movs r0, 0 - b _080FFB8C -_080FFB8A: - movs r0, 0x1 -_080FFB8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80FFB6C - - thumb_func_start sub_80FFB94 -sub_80FFB94: @ 80FFB94 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r5, r3, 16 - lsls r1, 16 - asrs r1, 16 - ldr r3, _080FFBD0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r3, 0xE - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - lsls r1, r4, 16 - asrs r1, 16 - movs r3, 0x10 - ldrsh r0, [r2, r3] - adds r0, 0x7 - cmp r1, r0 - bne _080FFBD4 - cmp r5, 0 - beq _080FFBD4 - movs r0, 0 - b _080FFBD6 - .align 2, 0 -_080FFBD0: .4byte gTasks -_080FFBD4: - movs r0, 0x1 -_080FFBD6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80FFB94 - - thumb_func_start sub_80FFBDC -sub_80FFBDC: @ 80FFBDC - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057274 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC1C - ldrb r0, [r5] - cmp r0, 0x21 - bne _080FFC0A - adds r0, r4, 0 - bl sub_8057300 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080FFC18 -_080FFC0A: - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - beq _080FFC1C -_080FFC18: - movs r0, 0x1 - b _080FFC1E -_080FFC1C: - movs r0, 0 -_080FFC1E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80FFBDC - - thumb_func_start sub_80FFC24 -sub_80FFC24: @ 80FFC24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r1, _080FFC60 @ =gTasks - lsls r0, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r2, [r0, 0x14] - str r2, [sp, 0x4] - ldrb r0, [r0, 0x12] - str r0, [sp, 0x8] - ldr r3, [sp] - ldrb r0, [r3, 0x11] - adds r2, r1, 0 - cmp r0, 0x4 - bls _080FFC56 - b _08100024 -_080FFC56: - lsls r0, 2 - ldr r1, _080FFC64 @ =_080FFC68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080FFC60: .4byte gTasks -_080FFC64: .4byte _080FFC68 - .align 2, 0 -_080FFC68: - .4byte _080FFC7C - .4byte _080FFC7C - .4byte _080FFD68 - .4byte _080FFF1C - .4byte _080FFFA0 -_080FFC7C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFC86 - b _08100024 -_080FFC86: - mov r1, r10 - lsls r1, 2 - str r1, [sp, 0x1C] -_080FFC8C: - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - ldr r3, _080FFD64 @ =gTasks - adds r0, r3 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _080FFD56 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0xC] - asrs r1, 16 - mov r9, r1 -_080FFCB8: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r2, _080FFD64 @ =gTasks - adds r0, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - adds r0, r6, 0 - mov r1, r9 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - ldr r1, [sp] - bl sub_80FFBDC - lsls r0, 24 - cmp r0, 0 - bne _080FFD1A - b _080FFFF4 -_080FFD1A: - mov r0, r10 - adds r1, r6, 0 - mov r2, r9 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFD2E - b _080FFFF4 -_080FFD2E: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0xC] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFD4A - cmp r4, 0x10 - beq _080FFD4A - b _080FFFF4 -_080FFD4A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFCB8 -_080FFD56: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x4] - cmp r6, r2 - bcc _080FFC8C - b _08100024 - .align 2, 0 -_080FFD64: .4byte gTasks -_080FFD68: - movs r6, 0 - mov r3, r10 - lsls r3, 2 - str r3, [sp, 0x1C] - ldr r0, [sp, 0x4] - subs r0, 0x1 - str r0, [sp, 0x18] - cmp r6, r0 - bge _080FFE54 - adds r0, r3, 0 - add r0, r10 - lsls r0, 3 - str r0, [sp, 0x10] -_080FFD82: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - adds r6, 0x1 - str r6, [sp, 0x14] - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFE48 - lsls r0, 16 - str r0, [sp, 0x20] -_080FFDA0: - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x14] - subs r0, r3, r1 - ldr r2, [sp, 0x8] - adds r1, r0, 0 - muls r1, r2 - adds r1, r7 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80FFB6C - lsls r0, 24 - cmp r0, 0 - bne _080FFE0C - b _080FFFF4 -_080FFE0C: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFE22 - b _080FFFF4 -_080FFE22: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080FFE3A - b _080FFFF4 -_080FFE3A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080FFF18 @ =gTasks - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFDA0 -_080FFE48: - ldr r1, [sp, 0x14] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - cmp r6, r3 - blt _080FFD82 -_080FFE54: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - ldr r1, [sp, 0x4] - subs r0, r1 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE74 - b _08100024 -_080FFE74: - lsls r0, 16 - str r0, [sp, 0x20] -_080FFE78: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - ldr r1, _080FFF18 @ =gTasks - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - mov r8, r0 - asrs r6, r0, 16 - mov r2, r9 - lsls r1, r2, 16 - adds r0, r6, 0 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldr r0, [r3, 0x1C] - lsls r1, r7, 1 - adds r1, r0 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl GetBehaviorByMetatileId - movs r3, 0xF0 - lsls r3, 8 - adds r1, r3, 0 - adds r5, r1, 0 - ands r5, r0 - adds r0, r4, 0 - bl sub_805729C - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - adds r0, r4, 0 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - bne _080FFEDA - b _080FFFF4 -_080FFEDA: - mov r0, r10 - adds r1, r6, 0 - ldr r3, [sp, 0x20] - asrs r2, r3, 16 - adds r3, r5, 0 - bl sub_80FFB94 - lsls r0, 24 - cmp r0, 0 - bne _080FFEF0 - b _080FFFF4 -_080FFEF0: - mov r1, r8 - lsrs r0, r1, 16 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080FFF0A - cmp r4, 0x10 - bne _080FFFF4 -_080FFF0A: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFE78 - b _08100024 - .align 2, 0 -_080FFF18: .4byte gTasks -_080FFF1C: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 -_080FFF26: - mov r1, r10 - lsls r0, r1, 2 - add r0, r10 - lsls r1, r0, 3 - ldr r2, _080FFF9C @ =gTasks - adds r0, r1, r2 - ldrh r0, [r0, 0xA] - subs r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r7, 0 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcs _080FFF8C - adds r0, r2, 0 - adds r1, r0 - mov r8, r1 - mov r1, r9 - lsls r0, r1, 16 - asrs r5, r0, 16 -_080FFF50: - mov r2, r8 - ldrh r0, [r2, 0x8] - adds r0, r7 - lsls r0, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl sub_80572B0 - lsls r0, 24 - cmp r0, 0 - beq _080FFFF4 - adds r0, r4, 0 - adds r1, r5, 0x1 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - beq _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFF50 -_080FFF8C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x4] - cmp r6, r0 - bcc _080FFF26 - b _08100024 - .align 2, 0 -_080FFF9C: .4byte gTasks -_080FFFA0: - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0xA] - mov r9, r0 - movs r7, 0 - str r1, [sp, 0x1C] - ldr r0, [sp, 0x8] - cmp r7, r0 - bcs _08100024 - adds r6, r2, 0 - mov r1, r9 - lsls r1, 16 - str r1, [sp, 0x20] -_080FFFC0: - ldr r0, [sp, 0x1C] - add r0, r10 - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x8] - adds r0, r7 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - mov r2, r9 - lsls r1, r2, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - ldr r3, [sp] - ldrb r0, [r3, 0x12] - cmp r0, 0x5 - bne _080FFFF8 -_080FFFE8: - adds r0, r4, 0 - bl sub_80572EC - lsls r0, 24 - cmp r0, 0 - bne _08100004 -_080FFFF4: - movs r0, 0 - b _08100026 -_080FFFF8: - adds r0, r4, 0 - bl sub_80572D8 - lsls r0, 24 - cmp r0, 0 - beq _080FFFE8 -_08100004: - adds r0, r5, 0 - ldr r2, [sp, 0x20] - lsrs r1, r2, 16 - movs r2, 0 - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - bne _080FFFF4 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, [sp, 0x8] - cmp r7, r3 - bcc _080FFFC0 -_08100024: - movs r0, 0x1 -_08100026: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80FFC24 - - thumb_func_start sub_8100038 -sub_8100038: @ 8100038 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810006C @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _08100070 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r1, 5 - ldr r0, _08100074 @ =gDecorations - adds r1, r0 - adds r0, r4, 0 - bl sub_80FFC24 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100080 - ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere - ldr r2, _0810007C @ =sub_81000A0 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08100092 - .align 2, 0 -_0810006C: .4byte gUnknown_020388F5 -_08100070: .4byte gUnknown_020388D0 -_08100074: .4byte gDecorations -_08100078: .4byte gSecretBaseText_PlaceItHere -_0810007C: .4byte sub_81000A0 -_08100080: - movs r0, 0x20 - bl PlaySE - ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere - ldr r2, _0810009C @ =sub_81006A8 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100092: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100098: .4byte gSecretBaseText_CantBePlacedHere -_0810009C: .4byte sub_81006A8 - thumb_func_end sub_8100038 - - thumb_func_start sub_81000A0 -sub_81000A0: @ 81000A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _081000C0 @ =gUnknown_083EC95C - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081000C0: .4byte gUnknown_083EC95C - thumb_func_end sub_81000A0 - - thumb_func_start sub_81000C4 -sub_81000C4: @ 81000C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_8100174 - ldr r2, _0810010C @ =gDecorations - ldr r0, _08100110 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _08100114 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r3, [r0] - lsls r0, r3, 5 - adds r0, r2 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - beq _0810011C - ldr r0, _08100118 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - ldrh r1, [r1, 0xA] - adds r2, r3, 0 - bl sub_80FF394 - b _0810013C - .align 2, 0 -_0810010C: .4byte gDecorations -_08100110: .4byte gUnknown_020388F5 -_08100114: .4byte gUnknown_020388D0 -_08100118: .4byte gTasks -_0810011C: - ldr r2, _0810015C @ =gUnknown_020391A4 - ldr r0, _08100160 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - subs r0, 0x7 - strh r0, [r2] - ldr r2, _08100164 @ =gUnknown_020391A6 - ldrh r0, [r1, 0xA] - subs r0, 0x7 - strh r0, [r2] - ldr r0, _08100168 @ =gUnknown_081A2F7B - bl ScriptContext1_SetupScript -_0810013C: - ldr r2, _0810016C @ =gSprites - ldr r0, _08100170 @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - adds r1, 0x2 - strh r1, [r0, 0x22] - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810015C: .4byte gUnknown_020391A4 -_08100160: .4byte gTasks -_08100164: .4byte gUnknown_020391A6 -_08100168: .4byte gUnknown_081A2F7B -_0810016C: .4byte gSprites -_08100170: .4byte gUnknown_020391A8 - thumb_func_end sub_81000C4 - - thumb_func_start sub_8100174 -sub_8100174: @ 8100174 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r3, 0 - ldr r0, _081001B0 @ =0x0201f000 - ldrb r1, [r0, 0x8] - adds r5, r0, 0 - cmp r3, r1 - bcs _0810019A - ldr r4, [r5] -_08100188: - adds r2, r4, r3 - ldrb r0, [r2] - cmp r0, 0 - beq _081001B8 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _08100188 -_0810019A: - ldrb r0, [r5, 0x9] - cmp r0, 0 - bne _08100204 - movs r3, 0 - ldr r0, _081001B4 @ =gUnknown_020388D6 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _081001F0 - b _08100210 - .align 2, 0 -_081001B0: .4byte 0x0201f000 -_081001B4: .4byte gUnknown_020388D6 -_081001B8: - ldr r0, _081001E4 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _081001E8 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r5, 0x4] - adds r2, r3 - ldr r0, _081001EC @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x8] - subs r0, 0x7 - lsls r0, 4 - ldrb r1, [r1, 0xA] - subs r1, 0x7 - adds r0, r1 - strb r0, [r2] - b _0810019A - .align 2, 0 -_081001E4: .4byte gUnknown_020388F5 -_081001E8: .4byte gUnknown_020388D0 -_081001EC: .4byte gTasks -_081001F0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _081001F0 - b _08100236 -_08100204: - movs r3, 0 - ldr r0, _0810021C @ =gUnknown_020388E6 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0 - bne _08100224 -_08100210: - ldr r0, _08100220 @ =gUnknown_020388F5 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r2] - b _0810023E - .align 2, 0 -_0810021C: .4byte gUnknown_020388E6 -_08100220: .4byte gUnknown_020388F5 -_08100224: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xB - bhi _0810023E - adds r1, r3, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _08100224 -_08100236: - ldr r0, _08100244 @ =gUnknown_020388F5 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] -_0810023E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100244: .4byte gUnknown_020388F5 - thumb_func_end sub_8100174 - - thumb_func_start sub_8100248 -sub_8100248: @ 8100248 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08100268 @ =gUnknown_083EC964 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100268: .4byte gUnknown_083EC964 - thumb_func_end sub_8100248 - - thumb_func_start sub_810026C -sub_810026C: @ 810026C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_810028C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810026C - - thumb_func_start sub_810028C -sub_810028C: @ 810028C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081002B4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081002B8 @ =c1_overworld_prev_quest - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081002B4: .4byte gTasks -_081002B8: .4byte c1_overworld_prev_quest - thumb_func_end sub_810028C - - thumb_func_start c1_overworld_prev_quest -c1_overworld_prev_quest: @ 81002BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _081002DC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081002E0 - cmp r0, 0x1 - beq _08100300 - b _0810031C - .align 2, 0 -_081002DC: .4byte gTasks -_081002E0: - bl ScriptContext2_Enable - ldr r0, _081002FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810031C - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _0810031C - .align 2, 0 -_081002FC: .4byte gPaletteFade -_08100300: - bl sub_81016F4 - ldr r0, _08100324 @ =0x00000bb8 - bl FreeSpritePaletteByTag - ldr r1, _08100328 @ =gUnknown_0300485C - ldr r0, _0810032C @ =sub_8100364 - str r0, [r1] - ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0810031C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100324: .4byte 0x00000bb8 -_08100328: .4byte gUnknown_0300485C -_0810032C: .4byte sub_8100364 -_08100330: .4byte c2_exit_to_overworld_2_switch - thumb_func_end c1_overworld_prev_quest - - thumb_func_start sub_8100334 -sub_8100334: @ 8100334 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100354 - ldr r0, _0810035C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08100360 @ =sub_80FE948 - str r0, [r1] -_08100354: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810035C: .4byte gTasks -_08100360: .4byte sub_80FE948 - thumb_func_end sub_8100334 - - thumb_func_start sub_8100364 -sub_8100364: @ 8100364 - push {lr} - bl ScriptContext2_Enable - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - bl pal_fill_black - ldr r0, _08100388 @ =sub_8100334 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_80FE7EC - pop {r0} - bx r0 - .align 2, 0 -_08100388: .4byte sub_8100334 - thumb_func_end sub_8100364 - - thumb_func_start sub_810038C -sub_810038C: @ 810038C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _081003BC @ =gTasks + 0x8 - adds r2, r1, r0 - ldr r0, _081003C0 @ =gUnknown_020391AA - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0x1 - bne _081003C4 - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r4, 0xC - ldrsh r1, [r2, r4] - subs r0, r1 - subs r0, 0x6 - cmp r0, 0 - bge _081003C4 - ldrh r0, [r2, 0x2] - adds r0, 0x1 - b _081003DE - .align 2, 0 -_081003BC: .4byte gTasks + 0x8 -_081003C0: .4byte gUnknown_020391AA -_081003C4: - ldrb r0, [r3] - cmp r0, 0x2 - bne _081003E8 - movs r0, 0x2 - ldrsh r1, [r2, r0] - subs r1, 0x7 - ldr r0, _081003E4 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r1, r0 - blt _081003E8 - ldrh r0, [r2, 0x2] - subs r0, 0x1 -_081003DE: - strh r0, [r2, 0x2] - movs r0, 0 - b _0810042A - .align 2, 0 -_081003E4: .4byte gMapHeader -_081003E8: - ldrb r0, [r3] - cmp r0, 0x3 - bne _081003FE - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, 0x7 - cmp r0, 0 - bge _081003FE - ldrh r0, [r2] - adds r0, 0x1 - b _0810041E -_081003FE: - ldrb r0, [r3] - cmp r0, 0x4 - bne _08100428 - movs r3, 0 - ldrsh r1, [r2, r3] - movs r4, 0xA - ldrsh r0, [r2, r4] - adds r1, r0 - subs r1, 0x8 - ldr r0, _08100424 @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0] - cmp r1, r0 - blt _08100428 - ldrh r0, [r2] - subs r0, 0x1 -_0810041E: - strh r0, [r2] - movs r0, 0 - b _0810042A - .align 2, 0 -_08100424: .4byte gMapHeader -_08100428: - movs r0, 0x1 -_0810042A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810038C - - thumb_func_start sub_8100430 -sub_8100430: @ 8100430 - push {lr} - ldr r0, _08100450 @ =gMain - ldrh r0, [r0, 0x2C] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - beq _08100454 - cmp r1, 0x80 - beq _08100454 - cmp r1, 0x20 - beq _08100454 - cmp r1, 0x10 - beq _08100454 - movs r0, 0 - b _08100456 - .align 2, 0 -_08100450: .4byte gMain -_08100454: - movs r0, 0x1 -_08100456: - pop {r1} - bx r1 - thumb_func_end sub_8100430 - - thumb_func_start sub_810045C -sub_810045C: @ 810045C - push {r4,lr} - ldr r1, _08100488 @ =gUnknown_020391AA - movs r0, 0 - strb r0, [r1] - ldr r4, _0810048C @ =gSprites - ldr r3, _08100490 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r2, 0 - strh r2, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100488: .4byte gUnknown_020391AA -_0810048C: .4byte gSprites -_08100490: .4byte gUnknown_020391A8 - thumb_func_end sub_810045C - - thumb_func_start sub_8100494 -sub_8100494: @ 8100494 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _081004D0 @ =gSprites - ldr r3, _081004D4 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x36 - ldrsh r6, [r0, r1] - cmp r6, 0 - beq _081004B2 - b _081005DE -_081004B2: - ldr r1, _081004D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _081004E0 - ldr r0, _081004DC @ =gUnknown_083EC96C - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - b _081004EE - .align 2, 0 -_081004D0: .4byte gSprites -_081004D4: .4byte gUnknown_020391A8 -_081004D8: .4byte gTasks -_081004DC: .4byte gUnknown_083EC96C -_081004E0: - cmp r0, 0x2 - bne _08100500 - ldr r0, _081004FC @ =gUnknown_083EC96C - movs r3, 0x20 - ldrsh r1, [r2, r3] - lsls r1, 3 - adds r0, 0x4 -_081004EE: - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 - b _0810063C - .align 2, 0 -_081004FC: .4byte gUnknown_083EC96C -_08100500: - ldr r7, _08100644 @ =gMain - ldrh r1, [r7, 0x2C] - movs r0, 0xF0 - mov r12, r0 - ands r0, r1 - cmp r0, 0x40 - bne _08100534 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x1 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C @ =0x0000fffe - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] -_08100534: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x80 - bne _08100564 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x34] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] -_08100564: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x20 - bne _08100594 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x3 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0810064C @ =0x0000fffe - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - subs r0, 0x1 - strh r0, [r2, 0x8] -_08100594: - ldrh r1, [r7, 0x2C] - mov r0, r12 - ands r0, r1 - cmp r0, 0x10 - bne _081005C4 - ldr r1, _08100648 @ =gUnknown_020391AA - movs r0, 0x4 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0, 0x32] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x34] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_081005C4: - bl sub_8100430 - lsls r0, 24 - cmp r0, 0 - beq _081005DA - adds r0, r4, 0 - bl sub_810038C - lsls r0, 24 - cmp r0, 0 - bne _081005DE -_081005DA: - bl sub_810045C -_081005DE: - ldr r0, _08100648 @ =gUnknown_020391AA - ldrb r0, [r0] - cmp r0, 0 - beq _0810060C - ldr r3, _08100650 @ =gSprites - ldr r2, _08100654 @ =gUnknown_020391A8 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x36] - adds r1, 0x1 - strh r1, [r0, 0x36] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r2, [r1, 0x36] - movs r0, 0x7 - ands r0, r2 - strh r0, [r1, 0x36] -_0810060C: - ldr r0, _08100658 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x1C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _0810063C - ldr r4, _08100644 @ =gMain - ldrh r1, [r4, 0x2E] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810062E - strh r3, [r2, 0x1C] -_0810062E: - ldrh r1, [r4, 0x2E] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810063C - strh r3, [r2, 0x1C] -_0810063C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100644: .4byte gMain -_08100648: .4byte gUnknown_020391AA -_0810064C: .4byte 0x0000fffe -_08100650: .4byte gSprites -_08100654: .4byte gUnknown_020391A8 -_08100658: .4byte gTasks - thumb_func_end sub_8100494 - - thumb_func_start sub_810065C -sub_810065C: @ 810065C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08100698 @ =gSprites - ldr r0, _0810069C @ =gUnknown_020391A8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - strh r2, [r0, 0x3C] - ldr r1, _081006A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _081006A4 @ =sub_8100494 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100698: .4byte gSprites -_0810069C: .4byte gUnknown_020391A8 -_081006A0: .4byte gTasks -_081006A4: .4byte sub_8100494 - thumb_func_end sub_810065C - - thumb_func_start sub_81006A8 -sub_81006A8: @ 81006A8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081006CC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081006C2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081006C8 -_081006C2: - adds r0, r2, 0 - bl sub_810065C -_081006C8: - pop {r0} - bx r0 - .align 2, 0 -_081006CC: .4byte gMain - thumb_func_end sub_81006A8 - - thumb_func_start sub_81006D0 -sub_81006D0: @ 81006D0 - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0 - adds r2, r3, 0 - adds r2, 0x84 - movs r5, 0 - ldr r4, _08100708 @ =0x000007ff -_081006DE: - adds r0, r2, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bls _081006DE - movs r1, 0 - adds r2, r3, 0x4 - movs r3, 0 -_081006F2: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3F - bls _081006F2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100708: .4byte 0x000007ff - thumb_func_end sub_81006D0 - - thumb_func_start sub_810070C -sub_810070C: @ 810070C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - movs r2, 0 - ldr r0, _0810073C @ =gMapHeader - ldr r0, [r0] - ldr r0, [r0, 0x10] - lsrs r4, r1, 12 - ldr r3, [r0, 0x8] -_0810071E: - lsls r1, r2, 1 - adds r1, r5 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xF - bls _0810071E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810073C: .4byte gMapHeader - thumb_func_end sub_810070C - - thumb_func_start sub_8100740 -sub_8100740: @ 8100740 - push {r4-r7,lr} - sub sp, 0x20 - adds r7, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - lsrs r3, r1, 26 - cmp r2, 0 - beq _08100754 - ldr r0, _08100784 @ =0x000003ff - ands r2, r0 -_08100754: - movs r5, 0 - ldr r0, _08100788 @ =gMapHeader - ldr r6, [r0] - lsls r4, r2, 5 -_0810075C: - mov r0, sp - adds r2, r0, r5 - ldr r0, [r6, 0x10] - ldr r0, [r0, 0x4] - adds r1, r4, r5 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810075C - cmp r3, 0x1 - beq _081007AE - cmp r3, 0x1 - bgt _0810078C - cmp r3, 0 - beq _08100796 - b _0810086A - .align 2, 0 -_08100784: .4byte 0x000003ff -_08100788: .4byte gMapHeader -_0810078C: - cmp r3, 0x2 - beq _0810080E - cmp r3, 0x3 - beq _08100846 - b _0810086A -_08100796: - movs r5, 0 -_08100798: - adds r1, r7, r5 - mov r2, sp - adds r0, r2, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _08100798 - b _0810086A -_081007AE: - movs r5, 0 - movs r6, 0xF -_081007B2: - lsls r4, r5, 2 - adds r4, r7 - adds r5, 0x1 - lsls r3, r5, 2 - subs r0, r3, 0x1 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4] - subs r0, r3, 0x2 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x1] - subs r0, r3, 0x3 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x2] - subs r3, 0x4 - mov r1, sp - adds r0, r1, r3 - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r4, 0x3] - lsls r5, 16 - lsrs r5, 16 - cmp r5, 0x7 - bls _081007B2 - b _0810086A -_0810080E: - movs r5, 0 - movs r3, 0x7 -_08100812: - lsls r2, r5, 2 - adds r2, r7 - subs r1, r3, r5 - lsls r1, 2 - mov r4, sp - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r1, 0x1 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x1] - adds r0, r1, 0x2 - add r0, sp - ldrb r0, [r0] - strb r0, [r2, 0x2] - adds r1, 0x3 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _08100812 - b _0810086A -_08100846: - movs r5, 0 - movs r4, 0x1F - movs r6, 0xF -_0810084C: - adds r3, r7, r5 - subs r0, r4, r5 - add r0, sp - ldrb r2, [r0] - lsrs r1, r2, 4 - adds r0, r6, 0 - ands r0, r2 - lsls r0, 4 - adds r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1F - bls _0810084C -_0810086A: - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8100740 - - thumb_func_start sub_8100874 -sub_8100874: @ 8100874 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0810087A: - lsls r0, r4, 5 - adds r0, 0x84 - adds r0, r5, r0 - lsls r2, r4, 1 - adds r1, r5, 0x4 - adds r1, r2 - ldrh r1, [r1] - bl sub_8100740 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3F - bls _0810087A - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100874 - - thumb_func_start sub_810089C -sub_810089C: @ 810089C - lsls r0, 16 - ldr r1, _081008B4 @ =gMapHeader - ldr r1, [r1] - ldr r1, [r1, 0x14] - ldr r1, [r1, 0xC] - lsrs r0, 15 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _081008B8 @ =0x00000fff - ands r0, r1 - bx lr - .align 2, 0 -_081008B4: .4byte gMapHeader -_081008B8: .4byte 0x00000fff - thumb_func_end sub_810089C - - thumb_func_start sub_81008BC -sub_81008BC: @ 81008BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x12] - movs r6, 0 - ldr r1, _0810092C @ =gUnknown_083EC860 - lsls r5, r0, 4 - adds r0, r5, r1 - ldrb r0, [r0, 0xC] - cmp r6, r0 - bcs _08100920 - adds r7, r1, 0 -_081008D8: - mov r4, r8 - ldm r4!, {r1} - adds r0, r7, 0x4 - adds r0, r5, r0 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - ldr r1, [r1, 0x1C] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r5, r1 - ldr r1, [r1] - adds r1, r6 - lsls r0, 3 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl sub_810089C - adds r2, r5, r7 - ldr r1, [r2] - adds r1, r6 - ldrb r1, [r1] - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r2, [r2, 0xC] - cmp r6, r2 - bcc _081008D8 -_08100920: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810092C: .4byte gUnknown_083EC860 - thumb_func_end sub_81008BC - - thumb_func_start sub_8100930 -sub_8100930: @ 8100930 - push {r4,r5,lr} - lsls r0, 24 - ldr r3, _08100998 @ =gUnknown_020391AC - movs r1, 0 - strb r1, [r3] - ldrb r2, [r3, 0x1] - subs r1, 0x4 - ands r1, r2 - movs r4, 0xD - negs r4, r4 - ands r1, r4 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - subs r2, 0x10 - ands r1, r2 - strb r1, [r3, 0x1] - ldr r1, _0810099C @ =gUnknown_083EC900 - lsrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - movs r5, 0x3F - lsls r1, 6 - strb r1, [r3, 0x1] - ldrh r2, [r3, 0x2] - ldr r1, _081009A0 @ =0xfffffe00 - ands r1, r2 - strh r1, [r3, 0x2] - ldrb r2, [r3, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - strb r1, [r3, 0x3] - ldrb r0, [r0, 0x1] - lsls r0, 6 - ands r5, r1 - orrs r5, r0 - strb r5, [r3, 0x3] - ldrh r1, [r3, 0x4] - ldr r0, _081009A4 @ =0xfffffc00 - ands r0, r1 - strh r0, [r3, 0x4] - ldrb r0, [r3, 0x5] - ands r4, r0 - movs r0, 0x4 - orrs r4, r0 - movs r0, 0xF - ands r4, r0 - strb r4, [r3, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100998: .4byte gUnknown_020391AC -_0810099C: .4byte gUnknown_083EC900 -_081009A0: .4byte 0xfffffe00 -_081009A4: .4byte 0xfffffc00 - thumb_func_end sub_8100930 - - thumb_func_start sub_81009A8 -sub_81009A8: @ 81009A8 - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - ldr r1, _081009BC @ =sub_81009C0 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_081009BC: .4byte sub_81009C0 - thumb_func_end sub_81009A8 - - thumb_func_start sub_81009C0 -sub_81009C0: @ 81009C0 - push {lr} - adds r2, r0, 0 - movs r1, 0x3C - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _081009FA - movs r1, 0x3A - ldrsh r0, [r2, r1] - cmp r0, 0xE - bgt _081009E2 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _081009EC -_081009E2: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 -_081009EC: - strb r0, [r3] - ldrh r0, [r2, 0x3A] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x3A] - b _08100A06 -_081009FA: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08100A06: - pop {r0} - bx r0 - thumb_func_end sub_81009C0 - - thumb_func_start sub_8100A0C -sub_8100A0C: @ 8100A0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8100D38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100A44 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08100A3C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08100A40 @ =sub_8100E70 - str r1, [r0] - b _08100A50 - .align 2, 0 -_08100A3C: .4byte gTasks -_08100A40: .4byte sub_8100E70 -_08100A44: - ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse - ldr r2, _08100A5C @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100A50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100A58: .4byte gSecretBaseText_NoDecorInUse -_08100A5C: .4byte sub_80FE428 - thumb_func_end sub_8100A0C - - thumb_func_start sub_8100A60 -sub_8100A60: @ 8100A60 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08100A78 @ =0x0201f000 - ldr r1, [r3] - adds r1, r0 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3, 0x4] - adds r1, r0 - strb r2, [r1] - bx lr - .align 2, 0 -_08100A78: .4byte 0x0201f000 - thumb_func_end sub_8100A60 - - thumb_func_start sub_8100A7C -sub_8100A7C: @ 8100A7C - push {r4-r6,lr} - ldr r6, _08100A9C @ =gUnknown_0202E8CE - movs r0, 0 - strh r0, [r6] - ldr r2, _08100AA0 @ =gScriptResult - strh r0, [r2] - ldr r4, _08100AA4 @ =gUnknown_0202E8CC - ldr r1, _08100AA8 @ =gUnknown_02039234 - ldrh r0, [r4] - ldrb r1, [r1] - cmp r0, r1 - bne _08100AB8 - movs r0, 0x1 - strh r0, [r2] - b _08100B0A - .align 2, 0 -_08100A9C: .4byte gUnknown_0202E8CE -_08100AA0: .4byte gScriptResult -_08100AA4: .4byte gUnknown_0202E8CC -_08100AA8: .4byte gUnknown_02039234 -_08100AAC: - ldr r1, _08100AB4 @ =gUnknown_0202E8D0 - ldrb r0, [r2] - strh r0, [r1] - b _08100B0A - .align 2, 0 -_08100AB4: .4byte gUnknown_0202E8D0 -_08100AB8: - ldr r3, _08100B10 @ =gDecorations - ldr r2, _08100B14 @ =0x0201f000 - ldr r1, _08100B18 @ =gUnknown_020391B4 - ldrh r0, [r4] - lsls r0, 3 - adds r4, r0, r1 - ldrb r1, [r4] - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r3 - ldrb r0, [r0, 0x11] - cmp r0, 0x4 - bne _08100B0A - ldrh r0, [r4, 0x4] - strh r0, [r6] - ldrb r0, [r4] - bl sub_8100A60 - movs r1, 0 - ldr r0, _08100B1C @ =gMapHeader - ldr r0, [r0, 0x4] - ldrb r2, [r0] - cmp r1, r2 - bcs _08100B0A - ldr r5, [r0, 0x4] - ldrh r4, [r6] - adds r3, r2, 0 -_08100AF2: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0, r5 - ldrh r0, [r2, 0x14] - cmp r0, r4 - beq _08100AAC - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bcc _08100AF2 -_08100B0A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100B10: .4byte gDecorations -_08100B14: .4byte 0x0201f000 -_08100B18: .4byte gUnknown_020391B4 -_08100B1C: .4byte gMapHeader - thumb_func_end sub_8100A7C - - thumb_func_start sub_8100B20 -sub_8100B20: @ 8100B20 - push {r4-r6,lr} - movs r2, 0 - ldr r0, _08100B4C @ =gMapHeader - ldr r0, [r0, 0x4] - ldrb r1, [r0] - cmp r2, r1 - bcs _08100B64 - adds r3, r0, 0 - ldr r5, [r3, 0x4] - ldr r0, _08100B50 @ =gUnknown_0202E8CC - ldrh r4, [r0] - ldr r6, _08100B54 @ =gUnknown_0202E8CE -_08100B38: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r5 - ldrh r0, [r1, 0x14] - cmp r0, r4 - bne _08100B58 - ldrb r0, [r1] - strh r0, [r6] - b _08100B64 - .align 2, 0 -_08100B4C: .4byte gMapHeader -_08100B50: .4byte gUnknown_0202E8CC -_08100B54: .4byte gUnknown_0202E8CE -_08100B58: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3] - cmp r2, r0 - bcc _08100B38 -_08100B64: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8100B20 - - thumb_func_start sub_8100B6C -sub_8100B6C: @ 8100B6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r7, 0 - b _08100C64 -_08100B7C: - lsls r3, r7, 3 - ldr r0, _08100BE0 @ =gUnknown_020391B4 - adds r4, r3, r0 - ldrb r1, [r4] - ldr r2, _08100BE4 @ =0x0201f000 - ldr r0, [r2] - adds r0, r1 - ldrb r6, [r0] - lsls r0, r6, 5 - ldr r5, _08100BE8 @ =gDecorations - adds r0, r5 - ldrb r2, [r0, 0x11] - ldr r5, _08100BE4 @ =0x0201f000 - ldr r0, [r5, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r1, r0, 4 - mov r9, r1 - movs r5, 0xF - mov r10, r5 - mov r1, r10 - ands r1, r0 - mov r10, r1 - adds r5, r3, 0 - adds r3, r7, 0x1 - str r3, [sp] - cmp r2, 0x4 - beq _08100C5E - cmp r6, 0x29 - bne _08100BD0 - mov r0, r9 - adds r0, 0x7 - adds r1, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _08100BD0 - ldrb r0, [r4, 0x2] - adds r0, 0x1 - strb r0, [r4, 0x2] -_08100BD0: - movs r6, 0 - ldr r1, _08100BE0 @ =gUnknown_020391B4 - adds r2, r5, 0 - adds r0, r5, r1 - adds r3, r7, 0x1 - str r3, [sp] - b _08100C4E - .align 2, 0 -_08100BE0: .4byte gUnknown_020391B4 -_08100BE4: .4byte 0x0201f000 -_08100BE8: .4byte gDecorations -_08100BEC: - movs r4, 0 - adds r0, r2, r1 - adds r7, r6, 0x1 - str r7, [sp, 0x4] - ldrb r0, [r0, 0x1] - cmp r4, r0 - bcs _08100C42 - ldr r0, _08100C7C @ =gUnknown_020391B4 - adds r0, r5 - mov r8, r0 - subs r1, r6, 0x7 - str r1, [sp, 0x8] -_08100C04: - adds r0, r4, 0x7 - add r0, r9 - ldr r1, _08100C80 @ =gMapHeader - ldr r3, [r1] - mov r7, r10 - subs r2, r7, r6 - ldr r1, [r3] - muls r2, r1 - mov r7, r9 - adds r1, r7, r4 - adds r1, r2 - ldr r2, [r3, 0xC] - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r3, 0xC0 - lsls r3, 6 - adds r2, r3, 0 - orrs r2, r1 - mov r7, r10 - ldr r3, [sp, 0x8] - subs r1, r7, r3 - bl MapGridSetMetatileEntryAt - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r7, r8 - ldrb r7, [r7, 0x1] - cmp r4, r7 - bcc _08100C04 -_08100C42: - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r6, r0, 24 - ldr r1, _08100C7C @ =gUnknown_020391B4 - adds r2, r5, 0 - adds r0, r5, r1 -_08100C4E: - ldrb r0, [r0, 0x2] - cmp r6, r0 - bcc _08100BEC - ldr r2, _08100C7C @ =gUnknown_020391B4 - adds r0, r5, r2 - ldrb r0, [r0] - bl sub_8100A60 -_08100C5E: - ldr r3, [sp] - lsls r0, r3, 24 - lsrs r7, r0, 24 -_08100C64: - ldr r0, _08100C84 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r7, r0 - bcc _08100B7C - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08100C7C: .4byte gUnknown_020391B4 -_08100C80: .4byte gMapHeader -_08100C84: .4byte gUnknown_02039234 - thumb_func_end sub_8100B6C - - thumb_func_start sub_8100C88 -sub_8100C88: @ 8100C88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08100CAC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08100CC4 - cmp r0, 0x1 - bgt _08100CB0 - cmp r0, 0 - beq _08100CBA - b _08100D24 - .align 2, 0 -_08100CAC: .4byte gTasks -_08100CB0: - cmp r0, 0x2 - beq _08100CF4 - cmp r0, 0x3 - beq _08100D08 - b _08100D24 -_08100CBA: - bl sub_8100B6C - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08100D24 -_08100CC4: - ldr r0, _08100CEC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100D24 - bl DrawWholeMapView - ldr r0, _08100CF0 @ =gUnknown_081A2F8A - bl ScriptContext1_SetupScript - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x2 - strh r0, [r5, 0xC] - b _08100D24 - .align 2, 0 -_08100CEC: .4byte gPaletteFade -_08100CF0: .4byte gUnknown_081A2F8A -_08100CF4: - bl ScriptContext2_Enable - adds r0, r4, 0 - bl sub_80FED90 - bl pal_fill_black - movs r0, 0x3 - strh r0, [r5, 0xC] - b _08100D24 -_08100D08: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100D24 - ldr r0, _08100D2C @ =0x0000ffff - strh r0, [r5, 0x22] - ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned - ldr r2, _08100D34 @ =sub_81010F0 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08100D24: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08100D2C: .4byte 0x0000ffff -_08100D30: .4byte gSecretBaseText_DecorReturned -_08100D34: .4byte sub_81010F0 - thumb_func_end sub_8100C88 - - thumb_func_start sub_8100D38 -sub_8100D38: @ 8100D38 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _08100D68 @ =0x0201f000 - adds r4, r0, 0 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcs _08100D7C - adds r5, r4, 0 - ldr r1, _08100D6C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r1 -_08100D56: - ldr r0, [r5] - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08100D70 - strh r2, [r1, 0x22] - movs r0, 0x1 - b _08100D7E - .align 2, 0 -_08100D68: .4byte 0x0201f000 -_08100D6C: .4byte gTasks -_08100D70: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x8] - cmp r2, r0 - bcc _08100D56 -_08100D7C: - movs r0, 0 -_08100D7E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8100D38 - - thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar -SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - bl player_get_direction_lower_nybble - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r3, _08100DD8 @ =gUnknown_020391A8 - ldr r2, _08100DDC @ =gSprites - ldr r4, _08100DE0 @ =gUnknown_03004880 - ldr r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strb r0, [r3] - bl sub_81016C8 - ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - str r0, [r4, 0x4] - ldr r0, _08100DE8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08100DF0 - ldr r1, _08100DEC @ =SpriteCallbackDummy - str r0, [sp] - movs r0, 0xC1 - b _08100DF8 - .align 2, 0 -_08100DD8: .4byte gUnknown_020391A8 -_08100DDC: .4byte gSprites -_08100DE0: .4byte gUnknown_03004880 -_08100DE4: .4byte gSpriteTemplate_83ECA88 -_08100DE8: .4byte gSaveBlock2 -_08100DEC: .4byte SpriteCallbackDummy -_08100DF0: - ldr r1, _08100E5C @ =SpriteCallbackDummy - movs r0, 0 - str r0, [sp] - movs r0, 0xC2 -_08100DF8: - movs r2, 0x88 - movs r3, 0x48 - bl AddPseudoFieldObject - ldr r1, _08100E60 @ =gUnknown_020391A9 - strb r0, [r1] - ldr r6, _08100E64 @ =gSprites - ldr r0, _08100E60 @ =gUnknown_020391A9 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r5, _08100E68 @ =gUnknown_020391A8 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r0, _08100E6C @ =gUnknown_03004880 - ldr r0, [r0, 0x4] - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r0, 0x5] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100E5C: .4byte SpriteCallbackDummy -_08100E60: .4byte gUnknown_020391A9 -_08100E64: .4byte gSprites -_08100E68: .4byte gUnknown_020391A8 -_08100E6C: .4byte gUnknown_03004880 - thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar - - thumb_func_start sub_8100E70 -sub_8100E70: @ 8100E70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08100E94 @ =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08100EC4 - cmp r0, 0x1 - bgt _08100E98 - cmp r0, 0 - beq _08100E9E - b _08100EE6 - .align 2, 0 -_08100E94: .4byte gTasks + 0x8 -_08100E98: - cmp r0, 0x2 - beq _08100ED2 - b _08100EE6 -_08100E9E: - ldr r0, _08100EC0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08100EE6 - adds r0, r5, 0 - bl sub_80FF0E0 - movs r0, 0x1 - strh r0, [r4, 0x4] - strh r0, [r4, 0xC] - strh r0, [r4, 0xA] - bl sub_8072DEC - b _08100EE6 - .align 2, 0 -_08100EC0: .4byte gPaletteFade -_08100EC4: - bl SetUpPuttingAwayDecorationPlayerAvatar - bl pal_fill_black - movs r0, 0x2 - strh r0, [r4, 0x4] - b _08100EE6 -_08100ED2: - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08100EE6 - strh r0, [r4, 0x18] - adds r0, r5, 0 - bl sub_8100EEC -_08100EE6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8100E70 - - thumb_func_start sub_8100EEC -sub_8100EEC: @ 8100EEC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r4, _08100F70 @ =gSprites - ldr r3, _08100F74 @ =gUnknown_020391A8 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - strh r6, [r0, 0x3C] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08100F78 @ =sub_8101698 - str r1, [r0] - ldr r2, _08100F7C @ =gUnknown_020391A9 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x88 - strh r1, [r0, 0x20] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x48 - strh r1, [r0, 0x22] - ldr r1, _08100F80 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x1C] - ldr r1, _08100F84 @ =sub_8100494 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08100F70: .4byte gSprites -_08100F74: .4byte gUnknown_020391A8 -_08100F78: .4byte sub_8101698 -_08100F7C: .4byte gUnknown_020391A9 -_08100F80: .4byte gTasks -_08100F84: .4byte sub_8100494 - thumb_func_end sub_8100EEC - - thumb_func_start sub_8100F88 -sub_8100F88: @ 8100F88 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08100FB0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - adds r0, r4, 0 - bl sub_8101024 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08100FB0: .4byte gTasks - thumb_func_end sub_8100F88 - - thumb_func_start sub_8100FB4 -sub_8100FB4: @ 8100FB4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0810100C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - bl sub_810045C - ldr r3, _08101010 @ =gSprites - ldr r5, _08101014 @ =gUnknown_020391A8 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _08101018 @ =SpriteCallbackDummy - str r1, [r0] - ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor - ldr r2, _08101020 @ =sub_810156C - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810100C: .4byte gTasks -_08101010: .4byte gSprites -_08101014: .4byte gUnknown_020391A8 -_08101018: .4byte SpriteCallbackDummy -_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor -_08101020: .4byte sub_810156C - thumb_func_end sub_8100FB4 - - thumb_func_start sub_8101024 -sub_8101024: @ 8101024 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8101460 - ldr r0, _08101040 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r0, 0 - beq _0810104C - ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor - ldr r2, _08101048 @ =sub_8101518 - b _081010B0 - .align 2, 0 -_08101040: .4byte gUnknown_02039234 -_08101044: .4byte gSecretBaseText_ReturnDecor -_08101048: .4byte sub_8101518 -_0810104C: - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _081010BC @ =gTasks + 0x8 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8057238 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101082 - adds r0, r4, 0 - bl sub_805738C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081010D4 -_08101082: - ldr r3, _081010C0 @ =gSprites - ldr r4, _081010C4 @ =gUnknown_020391A8 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r1, _081010C8 @ =SpriteCallbackDummy - str r1, [r0] - ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor - ldr r2, _081010D0 @ =sub_810156C -_081010B0: - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _081010E0 - .align 2, 0 -_081010BC: .4byte gTasks + 0x8 -_081010C0: .4byte gSprites -_081010C4: .4byte gUnknown_020391A8 -_081010C8: .4byte SpriteCallbackDummy -_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor -_081010D0: .4byte sub_810156C -_081010D4: - ldr r1, _081010E8 @ =gSecretBaseText_NoDecor - ldr r2, _081010EC @ =sub_81010F0 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_081010E0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081010E8: .4byte gSecretBaseText_NoDecor -_081010EC: .4byte sub_81010F0 - thumb_func_end sub_8101024 - - thumb_func_start sub_81010F0 -sub_81010F0: @ 81010F0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08101114 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810110A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101110 -_0810110A: - adds r0, r2, 0 - bl sub_8100EEC -_08101110: - pop {r0} - bx r0 - .align 2, 0 -_08101114: .4byte gMain - thumb_func_end sub_81010F0 - - thumb_func_start sub_8101118 -sub_8101118: @ 8101118 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - ldr r1, _08101130 @ =gDecorations - lsrs r0, 19 - adds r0, r1 - ldrb r1, [r0, 0x12] - cmp r1, 0 - bne _08101134 - movs r0, 0x1 - strb r0, [r2, 0x1] - b _08101192 - .align 2, 0 -_08101130: .4byte gDecorations -_08101134: - cmp r1, 0x1 - bne _08101140 - movs r0, 0x2 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - b _08101194 -_08101140: - cmp r1, 0x2 - bne _0810114C - movs r0, 0x3 - strb r0, [r2, 0x1] - movs r0, 0x1 - b _08101192 -_0810114C: - cmp r1, 0x3 - bne _08101154 - movs r0, 0x4 - b _0810118E -_08101154: - cmp r1, 0x4 - bne _0810115E - movs r0, 0x2 - strb r0, [r2, 0x1] - b _08101192 -_0810115E: - cmp r1, 0x5 - bne _08101166 - movs r0, 0x1 - b _0810118E -_08101166: - cmp r1, 0x6 - bne _08101172 - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r0, 0x3 - b _08101192 -_08101172: - cmp r1, 0x7 - bne _0810117E - movs r0, 0x2 - strb r0, [r2, 0x1] - movs r0, 0x4 - b _08101192 -_0810117E: - cmp r1, 0x8 - bne _08101188 - movs r0, 0x3 - strb r0, [r2, 0x1] - b _08101192 -_08101188: - cmp r1, 0x9 - bne _08101194 - movs r0, 0x3 -_0810118E: - strb r0, [r2, 0x1] - movs r0, 0x2 -_08101192: - strb r0, [r2, 0x2] -_08101194: - pop {r0} - bx r0 - thumb_func_end sub_8101118 - - thumb_func_start sub_8101198 -sub_8101198: @ 8101198 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - ldr r5, _081011F0 @ =gSprites - ldr r6, _081011F4 @ =gUnknown_020391A8 - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - adds r2, 0x3E - ldrb r3, [r2] - movs r4, 0x4 - orrs r3, r4 - strb r3, [r2] - ldrb r3, [r6] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r3, r5, 0 - adds r3, 0x1C - adds r2, r3 - ldr r3, _081011F8 @ =SpriteCallbackDummy - str r3, [r2] - ldr r4, _081011FC @ =gUnknown_020391A9 - ldrb r3, [r4] - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r5 - lsrs r0, 20 - adds r0, 0x88 - strh r0, [r2, 0x20] - ldrb r2, [r4] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - lsrs r1, 20 - adds r1, 0x48 - strh r1, [r0, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081011F0: .4byte gSprites -_081011F4: .4byte gUnknown_020391A8 -_081011F8: .4byte SpriteCallbackDummy -_081011FC: .4byte gUnknown_020391A9 - thumb_func_end sub_8101198 - - thumb_func_start sub_8101200 -sub_8101200: @ 8101200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810128C @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - ldrb r0, [r2, 0x8] - subs r0, 0x7 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r2, 0xA] - subs r0, 0x7 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _08101290 @ =0x0201f000 - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r4, r0, 4 - movs r5, 0xF - ands r5, r0 - ldr r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x29 - bne _0810125A - adds r0, r4, 0x7 - adds r1, r5, 0x7 - bl MapGridGetMetatileIdAt - movs r1, 0xA3 - lsls r1, 2 - cmp r0, r1 - bne _0810125A - ldrb r0, [r6, 0x2] - subs r0, 0x1 - strb r0, [r6, 0x2] -_0810125A: - cmp r7, r4 - bcc _08101294 - ldrb r1, [r6, 0x1] - adds r0, r4, r1 - cmp r7, r0 - bge _08101294 - ldrb r0, [r6, 0x2] - subs r0, r5, r0 - cmp r8, r0 - ble _08101294 - cmp r8, r5 - bhi _08101294 - subs r0, r7, r4 - adds r0, 0x1 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - subs r1, r5, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_8101198 - movs r0, 0x1 - b _08101296 - .align 2, 0 -_0810128C: .4byte gTasks -_08101290: .4byte 0x0201f000 -_08101294: - movs r0, 0 -_08101296: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8101200 - - thumb_func_start sub_81012A0 -sub_81012A0: @ 81012A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0810130C @ =0x0201f000 - ldr r3, _08101310 @ =gUnknown_020391B4 - ldr r0, _08101314 @ =gUnknown_02039234 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r3 - ldrb r1, [r0] - ldr r0, [r2, 0x4] - adds r0, r1 - ldrb r0, [r0] - lsrs r7, r0, 4 - movs r6, 0xF - ands r6, r0 - movs r5, 0 - ldr r0, _08101318 @ =gSaveBlock1 - mov r8, r0 - mov r9, r3 -_081012CA: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldr r2, _0810131C @ =0x00000c24 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r7 - bne _08101328 - ldr r2, _08101320 @ =0x00000c26 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r6 - bne _08101328 - ldr r0, _08101324 @ =0x00000c34 - adds r4, r1, r0 - ldrh r0, [r4] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08101328 - ldr r0, _08101314 @ =gUnknown_02039234 - ldrb r0, [r0] - lsls r0, 3 - add r0, r9 - ldrh r1, [r4] - strh r1, [r0, 0x4] - b _08101332 - .align 2, 0 -_0810130C: .4byte 0x0201f000 -_08101310: .4byte gUnknown_020391B4 -_08101314: .4byte gUnknown_02039234 -_08101318: .4byte gSaveBlock1 -_0810131C: .4byte 0x00000c24 -_08101320: .4byte 0x00000c26 -_08101324: .4byte 0x00000c34 -_08101328: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3F - bls _081012CA -_08101332: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81012A0 - - thumb_func_start sub_8101340 -sub_8101340: @ 8101340 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - b _081013A2 -_0810134A: - ldr r0, [r0] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _0810139C - ldr r0, _08101390 @ =gDecorations - ldrb r2, [r1] - lsls r1, r2, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _0810139C - ldr r5, _08101394 @ =gUnknown_020391B4 - adds r0, r2, 0 - adds r1, r5, 0 - bl sub_8101118 - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r7, 0 - adds r2, r5, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0810139C - strb r6, [r5] - bl sub_81012A0 - ldr r0, _08101398 @ =gUnknown_02039234 - strb r4, [r0] - movs r0, 0x1 - b _081013AC - .align 2, 0 -_08101390: .4byte gDecorations -_08101394: .4byte gUnknown_020391B4 -_08101398: .4byte gUnknown_02039234 -_0810139C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081013A2: - ldr r0, _081013B4 @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r6, r1 - bcc _0810134A - movs r0, 0 -_081013AC: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081013B4: .4byte 0x0201f000 - thumb_func_end sub_8101340 - - thumb_func_start sub_81013B8 -sub_81013B8: @ 81013B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - ldr r7, _08101450 @ =0x0201f000 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcs _0810143E - adds r6, r7, 0 - ldr r5, _08101454 @ =gUnknown_02039234 -_081013EA: - ldr r0, [r6] - adds r0, r4 - ldrb r1, [r0] - ldr r0, [r6, 0x4] - adds r0, r4 - ldrb r0, [r0] - lsrs r3, r0, 4 - movs r2, 0xF - ands r2, r0 - cmp r1, 0 - beq _08101432 - ldr r0, _08101458 @ =gDecorations - lsls r1, 5 - adds r1, r0 - ldrb r0, [r1, 0x11] - cmp r0, 0x4 - bne _08101432 - ldr r0, [sp] - cmp r0, r3 - bhi _08101432 - cmp r10, r2 - bhi _08101432 - cmp r9, r3 - bcc _08101432 - cmp r8, r2 - bcc _08101432 - ldr r0, _0810145C @ =gUnknown_020391B4 - ldrb r1, [r5] - lsls r1, 3 - adds r1, r0 - strb r4, [r1] - bl sub_81012A0 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_08101432: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r7, 0x8] - cmp r4, r0 - bcc _081013EA -_0810143E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101450: .4byte 0x0201f000 -_08101454: .4byte gUnknown_02039234 -_08101458: .4byte gDecorations -_0810145C: .4byte gUnknown_020391B4 - thumb_func_end sub_81013B8 - - thumb_func_start sub_8101460 -sub_8101460: @ 8101460 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _081014B8 @ =gUnknown_02039234 - movs r0, 0 - strb r0, [r4] - adds r0, r6, 0 - bl sub_8101340 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08101504 - movs r5, 0 - ldr r0, _081014BC @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcs _081014D2 - adds r7, r4, 0 -_08101486: - ldr r0, [r0] - adds r0, r5 - ldrb r1, [r0] - cmp r1, 0 - beq _081014C4 - ldr r4, _081014C0 @ =gUnknown_020391B4 - adds r0, r1, 0 - adds r1, r4, 0 - bl sub_8101118 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8101200 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081014C4 - strb r5, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _081014D2 - .align 2, 0 -_081014B8: .4byte gUnknown_02039234 -_081014BC: .4byte 0x0201f000 -_081014C0: .4byte gUnknown_020391B4 -_081014C4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810150C @ =0x0201f000 - ldrb r1, [r0, 0x8] - cmp r5, r1 - bcc _08101486 -_081014D2: - ldr r0, _08101510 @ =gUnknown_02039234 - ldrb r0, [r0] - cmp r0, 0 - beq _08101504 - ldr r0, _0810150C @ =0x0201f000 - ldr r2, _08101514 @ =gUnknown_020391B4 - ldrb r1, [r2] - ldr r0, [r0, 0x4] - adds r0, r1 - ldrb r1, [r0] - lsrs r0, r1, 4 - movs r3, 0xF - ands r3, r1 - ldrb r1, [r2, 0x2] - subs r1, r3, r1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r2, 0x1] - adds r2, r0 - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - bl sub_81013B8 -_08101504: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810150C: .4byte 0x0201f000 -_08101510: .4byte gUnknown_02039234 -_08101514: .4byte gUnknown_020391B4 - thumb_func_end sub_8101460 - - thumb_func_start sub_8101518 -sub_8101518: @ 8101518 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101538 @ =gUnknown_083EC9CC - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101538: .4byte gUnknown_083EC9CC - thumb_func_end sub_8101518 - - thumb_func_start sub_810153C -sub_810153C: @ 810153C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _08101564 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _08101568 @ =sub_8100C88 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101564: .4byte gTasks -_08101568: .4byte sub_8100C88 - thumb_func_end sub_810153C - - thumb_func_start sub_810156C -sub_810156C: @ 810156C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810158C @ =gUnknown_083EC9D4 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810158C: .4byte gUnknown_083EC9D4 - thumb_func_end sub_810156C - - thumb_func_start sub_8101590 -sub_8101590: @ 8101590 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_81015B0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101590 - - thumb_func_start sub_81015B0 -sub_81015B0: @ 81015B0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0 - bl fade_screen - ldr r1, _081015D8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r1, _081015DC @ =sub_81015E0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081015D8: .4byte gTasks -_081015DC: .4byte sub_81015E0 - thumb_func_end sub_81015B0 - - thumb_func_start sub_81015E0 -sub_81015E0: @ 81015E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08101600 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08101604 - cmp r0, 0x1 - beq _08101620 - b _08101636 - .align 2, 0 -_08101600: .4byte gTasks -_08101604: - ldr r0, _0810161C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101636 - adds r0, r4, 0 - bl sub_80FF114 - movs r0, 0x1 - strh r0, [r5, 0xC] - b _08101636 - .align 2, 0 -_0810161C: .4byte gPaletteFade -_08101620: - bl sub_81016F4 - ldr r0, _0810163C @ =gUnknown_0300485C - ldr r1, _08101640 @ =sub_8101678 - str r1, [r0] - ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08101636: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810163C: .4byte gUnknown_0300485C -_08101640: .4byte sub_8101678 -_08101644: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_81015E0 - - thumb_func_start sub_8101648 -sub_8101648: @ 8101648 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101668 - ldr r0, _08101670 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08101674 @ =sub_80FE2EC - str r0, [r1] -_08101668: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101670: .4byte gTasks -_08101674: .4byte sub_80FE2EC - thumb_func_end sub_8101648 - - thumb_func_start sub_8101678 -sub_8101678: @ 8101678 - push {lr} - bl pal_fill_black - bl MenuDisplayMessageBox - bl sub_80FE220 - ldr r0, _08101694 @ =sub_8101648 - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08101694: .4byte sub_8101648 - thumb_func_end sub_8101678 - - thumb_func_start sub_8101698 -sub_8101698: @ 8101698 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - strh r0, [r2, 0x2E] - cmp r0, 0xF - ble _081016B8 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081016C4 -_081016B8: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081016C4: - pop {r0} - bx r0 - thumb_func_end sub_8101698 - - thumb_func_start sub_81016C8 -sub_81016C8: @ 81016C8 - push {lr} - ldr r0, _081016DC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _081016E4 - ldr r0, _081016E0 @ =gUnknown_083ECA5C - bl LoadSpritePalette - b _081016EA - .align 2, 0 -_081016DC: .4byte gSaveBlock2 -_081016E0: .4byte gUnknown_083ECA5C -_081016E4: - ldr r0, _081016F0 @ =gUnknown_083ECA64 - bl LoadSpritePalette -_081016EA: - pop {r0} - bx r0 - .align 2, 0 -_081016F0: .4byte gUnknown_083ECA64 - thumb_func_end sub_81016C8 - - thumb_func_start sub_81016F4 -sub_81016F4: @ 81016F4 - push {lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end sub_81016F4 - - thumb_func_start sub_8101700 -sub_8101700: @ 8101700 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101728 - ldr r1, _08101720 @ =gSecretBaseText_NoDecors - ldr r2, _08101724 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101742 - .align 2, 0 -_08101720: .4byte gSecretBaseText_NoDecors -_08101724: .4byte sub_80FE428 -_08101728: - ldr r1, _08101748 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x1E] - ldr r0, _0810174C @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101742: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101748: .4byte gTasks -_0810174C: .4byte gUnknown_020388F6 - thumb_func_end sub_8101700 - - thumb_func_start unref_sub_8101750 -unref_sub_8101750: @ 8101750 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_81341D4 - lsls r0, 24 - cmp r0, 0 - bne _08101778 - ldr r1, _08101770 @ =gSecretBaseText_NoDecors - ldr r2, _08101774 @ =sub_80FE428 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101792 - .align 2, 0 -_08101770: .4byte gSecretBaseText_NoDecors -_08101774: .4byte sub_80FE428 -_08101778: - ldr r1, _08101798 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x1E] - ldr r0, _0810179C @ =gUnknown_020388F6 - strb r2, [r0] - adds r0, r4, 0 - bl sub_80FE5AC -_08101792: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101798: .4byte gTasks -_0810179C: .4byte gUnknown_020388F6 - thumb_func_end unref_sub_8101750 - - thumb_func_start sub_81017A0 -sub_81017A0: @ 81017A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80FEF74 - bl sub_80FED1C - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08101808 - ldr r0, _081017EC @ =gStringVar1 - ldr r1, _081017F0 @ =gUnknown_020388F5 - ldrb r2, [r1] - ldr r1, _081017F4 @ =gUnknown_020388D0 - ldr r1, [r1] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 5 - ldr r2, _081017F8 @ =gDecorations + 0x1 - adds r1, r2 - bl StringCopy - ldr r4, _081017FC @ =gStringVar4 - ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _08101804 @ =sub_8101824 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - b _08101814 - .align 2, 0 -_081017EC: .4byte gStringVar1 -_081017F0: .4byte gUnknown_020388F5 -_081017F4: .4byte gUnknown_020388D0 -_081017F8: .4byte gDecorations + 0x1 -_081017FC: .4byte gStringVar4 -_08101800: .4byte gSecretBaseText_WillBeDiscarded -_08101804: .4byte sub_8101824 -_08101808: - ldr r1, _0810181C @ =gSecretBaseText_DecorInUse - ldr r2, _08101820 @ =sub_80FEFF4 - adds r0, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField -_08101814: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810181C: .4byte gSecretBaseText_DecorInUse -_08101820: .4byte sub_80FEFF4 - thumb_func_end sub_81017A0 - - thumb_func_start sub_8101824 -sub_8101824: @ 8101824 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _08101844 @ =gUnknown_083ECAA0 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101844: .4byte gUnknown_083ECAA0 - thumb_func_end sub_8101824 - - thumb_func_start sub_8101848 -sub_8101848: @ 8101848 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xE - bl MenuZeroFillWindowRect - ldr r6, _08101890 @ =gUnknown_020388F5 - ldrb r1, [r6] - ldr r5, _08101894 @ =gUnknown_020388D0 - ldr r0, [r5] - adds r0, r1 - ldrb r0, [r0] - bl sub_8109A30 - ldrb r1, [r6] - ldr r0, [r5] - adds r0, r1 - movs r1, 0 - strb r1, [r0] - adds r0, r4, 0 - bl sub_80FF098 - ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway - ldr r2, _0810189C @ =sub_80FEFF4 - adds r0, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08101890: .4byte gUnknown_020388F5 -_08101894: .4byte gUnknown_020388D0 -_08101898: .4byte gSecretBaseText_DecorThrownAway -_0810189C: .4byte sub_80FEFF4 - thumb_func_end sub_8101848 - - thumb_func_start sub_81018A0 -sub_81018A0: @ 81018A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_81019B0 - ldr r0, _081018B4 @ =sub_81018B8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081018B4: .4byte sub_81018B8 - thumb_func_end sub_81018A0 - - thumb_func_start sub_81018B8 -sub_81018B8: @ 81018B8 - push {lr} - ldr r0, _081018D0 @ =gMain - ldr r1, _081018D4 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _0810194A - lsls r0, 2 - ldr r1, _081018D8 @ =_081018DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081018D0: .4byte gMain -_081018D4: .4byte 0x0000043c -_081018D8: .4byte _081018DC - .align 2, 0 -_081018DC: - .4byte _081018F8 - .4byte _08101902 - .4byte _08101908 - .4byte _08101912 - .4byte _08101918 - .4byte _0810191E - .4byte _08101938 -_081018F8: - bl sub_8101A28 - bl sub_8101BA4 - b _08101922 -_08101902: - bl sub_8101A8C - b _08101922 -_08101908: - bl sub_8101AE0 - bl sub_8101B04 - b _08101922 -_08101912: - bl sub_8101C84 - b _08101922 -_08101918: - bl sub_8101CA0 - b _08101922 -_0810191E: - bl sub_8101CC0 -_08101922: - ldr r1, _08101930 @ =gMain - ldr r0, _08101934 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810194A - .align 2, 0 -_08101930: .4byte gMain -_08101934: .4byte 0x0000043c -_08101938: - bl sub_8101CD4 - bl sub_8101CEC - bl sub_8101A44 - ldr r0, _08101950 @ =sub_8101954 - bl SetMainCallback2 -_0810194A: - pop {r0} - bx r0 - .align 2, 0 -_08101950: .4byte sub_8101954 - thumb_func_end sub_81018B8 - - thumb_func_start sub_8101954 -sub_8101954: @ 8101954 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8101954 - - thumb_func_start sub_810196C -sub_810196C: @ 810196C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _081019A8 @ =REG_WIN0H - ldr r2, _081019AC @ =0x02000000 - adds r0, r2, 0 - adds r0, 0x58 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5A - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5C - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r0, r2, 0 - adds r0, 0x5E - ldrh r0, [r0] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081019A8: .4byte REG_WIN0H -_081019AC: .4byte 0x02000000 - thumb_func_end sub_810196C - - thumb_func_start sub_81019B0 -sub_81019B0: @ 81019B0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081019E4 @ =nullsub_67 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _081019E8 @ =gTasks - adds r0, r1 - strh r4, [r0, 0x8] - adds r0, 0xA - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081019E4: .4byte nullsub_67 -_081019E8: .4byte gTasks - thumb_func_end sub_81019B0 - - thumb_func_start sub_81019EC -sub_81019EC: @ 81019EC - push {lr} - ldr r0, _08101A18 @ =nullsub_67 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, _08101A1C @ =gTasks - adds r2, r0 - ldr r1, _08101A20 @ =0x02000000 - ldrh r0, [r2, 0x8] - strb r0, [r1, 0x1] - adds r2, 0xA - adds r1, 0x64 - adds r0, r2, 0 - bl LoadWordFromTwoHalfwords - pop {r0} - bx r0 - .align 2, 0 -_08101A18: .4byte nullsub_67 -_08101A1C: .4byte gTasks -_08101A20: .4byte 0x02000000 - thumb_func_end sub_81019EC - - thumb_func_start nullsub_67 -nullsub_67: @ 8101A24 - bx lr - thumb_func_end nullsub_67 - - thumb_func_start sub_8101A28 -sub_8101A28: @ 8101A28 - 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 sub_8101A28 - - thumb_func_start sub_8101A44 -sub_8101A44: @ 8101A44 - push {r4,lr} - ldr r0, _08101A7C @ =sub_810196C - bl SetVBlankCallback - ldr r3, _08101A80 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08101A84 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08101A88 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101A7C: .4byte sub_810196C -_08101A80: .4byte 0x04000208 -_08101A84: .4byte 0x04000200 -_08101A88: .4byte REG_DISPSTAT - thumb_func_end sub_8101A44 - - thumb_func_start sub_8101A8C -sub_8101A8C: @ 8101A8C - 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, _08101AD8 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08101ADC @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08101AAA: - 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 _08101AAA - 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 -_08101AD8: .4byte 0x040000d4 -_08101ADC: .4byte 0x81000800 - thumb_func_end sub_8101A8C - - thumb_func_start sub_8101AE0 -sub_8101AE0: @ 8101AE0 - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _08101AFC @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08101B00 @ =0x81000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08101AFC: .4byte 0x040000d4 -_08101B00: .4byte 0x81000200 - thumb_func_end sub_8101AE0 - - thumb_func_start sub_8101B04 -sub_8101B04: @ 8101B04 - push {r4,r5,lr} - ldr r5, _08101B70 @ =REG_BG0CNT - movs r1, 0 - strh r1, [r5] - ldr r2, _08101B74 @ =REG_BG1CNT - strh r1, [r2] - ldr r3, _08101B78 @ =REG_BG2CNT - strh r1, [r3] - ldr r4, _08101B7C @ =REG_BG3CNT - strh r1, [r4] - ldr r0, _08101B80 @ =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] - ldr r1, _08101B84 @ =0x00001f08 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _08101B88 @ =0x00001c01 - adds r0, r1, 0 - strh r0, [r2] - ldr r2, _08101B8C @ =0x00001d02 - adds r0, r2, 0 - strh r0, [r3] - ldr r1, _08101B90 @ =0x00001e02 - adds r0, r1, 0 - strh r0, [r4] - ldr r0, _08101B94 @ =REG_WININ - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08101B98 @ =REG_BLDCNT - ldr r2, _08101B9C @ =0x00001048 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08101BA0 @ =0x00000809 - adds r0, r2, 0 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08101B70: .4byte REG_BG0CNT -_08101B74: .4byte REG_BG1CNT -_08101B78: .4byte REG_BG2CNT -_08101B7C: .4byte REG_BG3CNT -_08101B80: .4byte REG_BG0HOFS -_08101B84: .4byte 0x00001f08 -_08101B88: .4byte 0x00001c01 -_08101B8C: .4byte 0x00001d02 -_08101B90: .4byte 0x00001e02 -_08101B94: .4byte REG_WININ -_08101B98: .4byte REG_BLDCNT -_08101B9C: .4byte 0x00001048 -_08101BA0: .4byte 0x00000809 - thumb_func_end sub_8101B04 - - thumb_func_start sub_8101BA4 -sub_8101BA4: @ 8101BA4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_81019EC - ldr r5, _08101C74 @ =0x02000000 - movs r4, 0 - strb r4, [r5] - strb r4, [r5, 0x2] - bl Random - movs r1, 0x1 - ands r1, r0 - strb r1, [r5, 0x3] - strb r4, [r5, 0x4] - movs r0, 0 - strh r4, [r5, 0x8] - strb r0, [r5, 0xA] - strb r0, [r5, 0xB] - ldr r0, _08101C78 @ =gSaveBlock1 - ldr r1, _08101C7C @ =0x00000494 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0xC] - strh r4, [r5, 0xE] - strh r4, [r5, 0x10] - strh r4, [r5, 0x12] - strh r4, [r5, 0x18] - movs r0, 0x8 - strh r0, [r5, 0x1A] - adds r1, r5, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r5, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl GetCurrentMapMusic - adds r1, r5, 0 - adds r1, 0x60 - strh r0, [r1] - movs r7, 0 - adds r6, r5, 0 - ldr r2, _08101C80 @ =gUnknown_083ECCF8 - mov r9, r2 - movs r0, 0x1C - adds r0, r6 - mov r8, r0 -_08101C14: - lsls r5, r7, 1 - adds r0, r6, 0 - adds r0, 0x22 - adds r0, r5, r0 - movs r1, 0 - strh r1, [r0] - adds r4, r6, 0 - adds r4, 0x28 - adds r4, r5, r4 - ldrb r0, [r6, 0x3] - lsls r0, 1 - lsls r1, r7, 2 - adds r0, r1 - add r0, r9 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x15 - bl __modsi3 - strh r0, [r4] - add r5, r8 - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - movs r2, 0xFC - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r5] - movs r1, 0 - ldrsh r0, [r5, r1] - adds r1, r2, 0 - bl __modsi3 - strh r0, [r5] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08101C14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101C74: .4byte 0x02000000 -_08101C78: .4byte gSaveBlock1 -_08101C7C: .4byte 0x00000494 -_08101C80: .4byte gUnknown_083ECCF8 - thumb_func_end sub_8101BA4 - - thumb_func_start sub_8101C84 -sub_8101C84: @ 8101C84 - push {r4,lr} - ldr r4, _08101C9C @ =gWindowConfig_81E7128 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101C9C: .4byte gWindowConfig_81E7128 - thumb_func_end sub_8101C84 - - thumb_func_start sub_8101CA0 -sub_8101CA0: @ 8101CA0 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - ldr r1, _08101CBC @ =gOamLimit - movs r0, 0x80 - strb r0, [r1] - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - .align 2, 0 -_08101CBC: .4byte gOamLimit - thumb_func_end sub_8101CA0 - - thumb_func_start sub_8101CC0 -sub_8101CC0: @ 8101CC0 - push {lr} - bl sub_8106448 - bl sub_81064B8 - bl sub_81063C0 - pop {r0} - bx r0 - thumb_func_end sub_8101CC0 - - thumb_func_start sub_8101CD4 -sub_8101CD4: @ 8101CD4 - push {lr} - bl sub_8104EA8 - bl sub_8104F8C - bl sub_8103DC8 - bl sub_81050C4 - pop {r0} - bx r0 - thumb_func_end sub_8101CD4 - - thumb_func_start sub_8101CEC -sub_8101CEC: @ 8101CEC - push {lr} - bl sub_8104048 - bl sub_8102DA8 - bl sub_8104C5C - bl sub_8101D04 - pop {r0} - bx r0 - thumb_func_end sub_8101CEC - - thumb_func_start sub_8101D04 -sub_8101D04: @ 8101D04 - push {r4,lr} - ldr r4, _08101D20 @ =sub_8101D24 - 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 -_08101D20: .4byte sub_8101D24 - thumb_func_end sub_8101D04 - - thumb_func_start sub_8101D24 -sub_8101D24: @ 8101D24 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08101D50 @ =gUnknown_083ECAAC - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _08101D54 @ =0x02000000 - ldr r5, _08101D58 @ =gTasks -_08101D36: - 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 _08101D36 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101D50: .4byte gUnknown_083ECAAC -_08101D54: .4byte 0x02000000 -_08101D58: .4byte gTasks - thumb_func_end sub_8101D24 - - thumb_func_start sub_8101D5C -sub_8101D5C: @ 8101D5C - push {r4,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 r4, _08101D88 @ =0x02000000 - ldrb r0, [r4, 0x2] - bl sub_810423C - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101D88: .4byte 0x02000000 - thumb_func_end sub_8101D5C - - thumb_func_start sub_8101D8C -sub_8101D8C: @ 8101D8C - push {lr} - ldr r0, _08101DA8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101DA2 - ldr r1, _08101DAC @ =0x02000000 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08101DA2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101DA8: .4byte gPaletteFade -_08101DAC: .4byte 0x02000000 - thumb_func_end sub_8101D8C - - thumb_func_start sub_8101DB0 -sub_8101DB0: @ 8101DB0 - push {lr} - ldr r2, _08101DD8 @ =0x02000000 - movs r0, 0 - strh r0, [r2, 0xE] - strh r0, [r2, 0x12] - strh r0, [r2, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r2, 0x4] - movs r0, 0x4 - strb r0, [r2] - movs r1, 0xC - ldrsh r0, [r2, r1] - cmp r0, 0 - bgt _08101DDC - movs r0, 0x19 - strb r0, [r2] - b _08101DEC - .align 2, 0 -_08101DD8: .4byte 0x02000000 -_08101DDC: - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _08101DEC - movs r0, 0x3 - strb r0, [r2] - movs r0, 0x4 - bl sub_8104CAC -_08101DEC: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8101DB0 - - thumb_func_start sub_8101DF4 -sub_8101DF4: @ 8101DF4 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _08101E06 - ldr r1, _08101E0C @ =0x02000000 - movs r0, 0x4 - strb r0, [r1] -_08101E06: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101E0C: .4byte 0x02000000 - thumb_func_end sub_8101DF4 - - thumb_func_start sub_8101E10 -sub_8101E10: @ 8101E10 - push {lr} - movs r0, 0 - bl sub_8104CAC - ldr r2, _08101E34 @ =0x02000000 - movs r0, 0x5 - strb r0, [r2] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08101E38 @ =0x0000270e - cmp r1, r0 - ble _08101E2C - movs r0, 0x17 - strb r0, [r2] -_08101E2C: - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08101E34: .4byte 0x02000000 -_08101E38: .4byte 0x0000270e - thumb_func_end sub_8101E10 - - thumb_func_start sub_8101E3C -sub_8101E3C: @ 8101E3C - push {r4,lr} - ldr r0, _08101E58 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08101E60 - movs r0, 0 - bl sub_8104AB8 - ldr r1, _08101E5C @ =0x02000000 - movs r0, 0x8 - strb r0, [r1] - b _08101F1A - .align 2, 0 -_08101E58: .4byte gMain -_08101E5C: .4byte 0x02000000 -_08101E60: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08101EC2 - ldr r2, _08101EB8 @ =0x02000000 - movs r1, 0xC - ldrsh r0, [r2, r1] - subs r0, 0x3 - movs r3, 0x12 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0 - blt _08101EBC - ldrh r4, [r2, 0x12] - adds r0, r1, 0 - cmp r0, 0x2 - bgt _08101E9C -_08101E84: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8103D50 - lsls r0, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _08101E84 -_08101E9C: - ldr r1, _08101EB8 @ =0x02000000 - ldrh r0, [r1, 0xC] - subs r0, 0x3 - ldrh r3, [r1, 0x12] - adds r0, r3 - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0x9 - strb r0, [r1] - movs r0, 0x5F - bl PlaySE - b _08101F1A - .align 2, 0 -_08101EB8: .4byte 0x02000000 -_08101EBC: - movs r0, 0x6 - strb r0, [r2] - b _08101F1A -_08101EC2: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08101EEC - ldr r4, _08101F24 @ =0x02000000 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08101EEC - movs r0, 0x5F - bl PlaySE - ldrb r0, [r4, 0x12] - bl sub_8103D50 - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_08101EEC: - ldr r0, _08101F24 @ =0x02000000 - movs r2, 0x12 - ldrsh r1, [r0, r2] - ldr r2, _08101F28 @ =gMain - adds r3, r0, 0 - cmp r1, 0x2 - bgt _08101F08 - cmp r1, 0 - beq _08101F0C - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08101F0C -_08101F08: - movs r0, 0x9 - strb r0, [r3] -_08101F0C: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101F1A - movs r0, 0x15 - strb r0, [r3] -_08101F1A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101F24: .4byte 0x02000000 -_08101F28: .4byte gMain - thumb_func_end sub_8101E3C - - thumb_func_start sub_8101F2C -sub_8101F2C: @ 8101F2C - push {r4,lr} - adds r4, r0, 0 - bl MenuDisplayMessageBox - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101F2C - - thumb_func_start sub_8101F44 -sub_8101F44: @ 8101F44 - push {lr} - ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins - bl sub_8101F2C - ldr r1, _08101F5C @ =0x02000000 - movs r0, 0x7 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F58: .4byte gOtherText_DontHaveThreeCoins -_08101F5C: .4byte 0x02000000 - thumb_func_end sub_8101F44 - - thumb_func_start sub_8101F60 -sub_8101F60: @ 8101F60 - push {lr} - ldr r0, _08101F80 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08101F78 - bl MenuZeroFillScreen - ldr r1, _08101F84 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1] -_08101F78: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F80: .4byte gMain -_08101F84: .4byte 0x02000000 - thumb_func_end sub_8101F60 - - thumb_func_start sub_8101F88 -sub_8101F88: @ 8101F88 - push {lr} - bl sub_8104AEC - lsls r0, 24 - cmp r0, 0 - beq _08101F9A - ldr r1, _08101FA0 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1] -_08101F9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101FA0: .4byte 0x02000000 - thumb_func_end sub_8101F88 - - thumb_func_start sub_8101FA4 -sub_8101FA4: @ 8101FA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8102484 - bl sub_8104DA4 - movs r0, 0 - bl sub_8102DEC - movs r0, 0x1 - bl sub_8102DEC - movs r0, 0x2 - bl sub_8102DEC - movs r0, 0 - strh r0, [r4, 0x8] - ldr r4, _08101FDC @ =0x02000000 - ldrb r1, [r4, 0x4] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08101FE0 - bl sub_810430C - movs r0, 0xA - b _08101FE8 - .align 2, 0 -_08101FDC: .4byte 0x02000000 -_08101FE0: - movs r0, 0x1 - bl sub_8104CAC - movs r0, 0xB -_08101FE8: - strb r0, [r4] - ldr r4, _08102004 @ =0x02000000 - movs r0, 0x8 - strh r0, [r4, 0x1A] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08101FFC - bl dp15_jump_random_unknown - strh r0, [r4, 0x1A] -_08101FFC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102004: .4byte 0x02000000 - thumb_func_end sub_8101FA4 - - thumb_func_start sub_8102008 -sub_8102008: @ 8102008 - push {lr} - bl sub_810432C - lsls r0, 24 - cmp r0, 0 - beq _08102028 - movs r0, 0x1 - bl sub_8104CAC - ldr r1, _08102030 @ =0x02000000 - ldrb r2, [r1, 0x4] - movs r0, 0xDF - ands r0, r2 - strb r0, [r1, 0x4] - movs r0, 0xB - strb r0, [r1] -_08102028: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102030: .4byte 0x02000000 - thumb_func_end sub_8102008 - - thumb_func_start sub_8102034 -sub_8102034: @ 8102034 - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _0810204E - bl sub_81024F0 - ldr r1, _08102054 @ =0x02000000 - movs r0, 0xC - strb r0, [r1] -_0810204E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102054: .4byte 0x02000000 - thumb_func_end sub_8102034 - - thumb_func_start sub_8102058 -sub_8102058: @ 8102058 - push {r4,lr} - ldr r0, _08102088 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810207E - movs r0, 0x18 - bl PlaySE - ldr r4, _0810208C @ =0x02000000 - ldrb r0, [r4, 0x18] - bl sub_8102E1C - ldrb r0, [r4, 0x18] - bl sub_8103C14 - movs r0, 0xD - strb r0, [r4] -_0810207E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102088: .4byte gMain -_0810208C: .4byte 0x02000000 - thumb_func_end sub_8102058 - - thumb_func_start sub_8102090 -sub_8102090: @ 8102090 - push {r4,lr} - ldr r4, _081020BC @ =0x02000000 - ldrb r0, [r4, 0x18] - bl sub_8102E40 - lsls r0, 24 - cmp r0, 0 - bne _081020C0 - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - movs r1, 0xC - strb r1, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _081020B6 - movs r0, 0xE - strb r0, [r4] -_081020B6: - movs r0, 0x1 - b _081020C2 - .align 2, 0 -_081020BC: .4byte 0x02000000 -_081020C0: - movs r0, 0 -_081020C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102090 - - thumb_func_start sub_81020C8 -sub_81020C8: @ 81020C8 - push {r4,lr} - ldr r4, _08102128 @ =0x02000000 - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r4, 0x4] - bl sub_81027A0 - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _081020E8 - subs r0, 0x1 - strb r0, [r4, 0xA] - ldrb r0, [r4, 0xB] - adds r0, 0x1 - strb r0, [r4, 0xB] -_081020E8: - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _081021B4 - movs r0, 0xF - strb r0, [r4] - bl sub_8102A24 - bl sub_8103F70 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _0810210C - movs r0, 0 - strh r0, [r4, 0x10] -_0810210C: - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102130 - ldr r0, _0810212C @ =0x00000185 - bl PlayFanfare - movs r0, 0x6 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102128: .4byte 0x02000000 -_0810212C: .4byte 0x00000185 -_08102130: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810214C - ldr r0, _08102148 @ =0x00000185 - bl PlayFanfare - movs r0, 0x5 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102148: .4byte 0x00000185 -_0810214C: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0x2 - bl sub_8104CAC -_0810215A: - ldr r1, _081021B0 @ =0x02000000 - ldrh r3, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 1 - ands r0, r3 - adds r2, r1, 0 - cmp r0, 0 - beq _08102192 - ldrb r1, [r2, 0x4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0 - strb r0, [r2, 0x4] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - strb r1, [r2, 0xA] - strb r1, [r2, 0xB] - strb r1, [r2, 0x3] - movs r0, 0x80 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - movs r0, 0x1 - strb r0, [r2, 0x3] -_08102192: - ldrh r1, [r2, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081021D2 - ldrb r0, [r2, 0x2] - cmp r0, 0xF - bhi _081021D2 - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r2, 0x2] - bl sub_8104064 - b _081021D2 - .align 2, 0 -_081021B0: .4byte 0x02000000 -_081021B4: - movs r0, 0x3 - bl sub_8104CAC - movs r0, 0x14 - strb r0, [r4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldr r1, _081021DC @ =0x0000270f - cmp r0, r1 - ble _081021D2 - strh r1, [r4, 0x10] -_081021D2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081021DC: .4byte 0x0000270f - thumb_func_end sub_81020C8 - - thumb_func_start sub_81021E0 -sub_81021E0: @ 81021E0 - push {lr} - bl sub_8102A44 - lsls r0, 24 - cmp r0, 0 - beq _081021F2 - ldr r1, _081021F8 @ =0x02000000 - movs r0, 0x10 - strb r0, [r1] -_081021F2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081021F8: .4byte 0x02000000 - thumb_func_end sub_81021E0 - - thumb_func_start sub_81021FC -sub_81021FC: @ 81021FC - push {r4,lr} - bl sub_8103FA0 - lsls r0, 24 - cmp r0, 0 - beq _08102256 - ldr r4, _08102260 @ =0x02000000 - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102220 - movs r0, 0x1C - bl sav12_xor_increment -_08102220: - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08102236 - movs r0, 0 - strh r0, [r4, 0x18] - movs r0, 0x9 - strb r0, [r4] -_08102236: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08102242 - movs r0, 0x11 - strb r0, [r4] -_08102242: - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102256 - cmp r2, 0 - beq _08102256 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102256: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102260: .4byte 0x02000000 - thumb_func_end sub_81021FC - - thumb_func_start sub_8102264 -sub_8102264: @ 8102264 - push {r4,lr} - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _08102294 - ldr r4, _0810229C @ =0x02000000 - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08102294 - movs r0, 0x9 - strb r0, [r4] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102294 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102294: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810229C: .4byte 0x02000000 - thumb_func_end sub_8102264 - - thumb_func_start sub_81022A0 -sub_81022A0: @ 81022A0 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081022C0 - ldr r2, _081022C8 @ =0x02000000 - movs r0, 0x13 - strb r0, [r2] - ldrh r1, [r2, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081022C0 - movs r0, 0x9 - strb r0, [r2] -_081022C0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022C8: .4byte 0x02000000 - thumb_func_end sub_81022A0 - - thumb_func_start sub_81022CC -sub_81022CC: @ 81022CC - push {lr} - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r1, _081022EC @ =0x02000000 - movs r0, 0x2 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022EC: .4byte 0x02000000 - thumb_func_end sub_81022CC - - thumb_func_start sub_81022F0 -sub_81022F0: @ 81022F0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _0810230C - movs r0, 0 - strh r0, [r1, 0xA] - ldr r1, _08102314 @ =0x02000000 - movs r0, 0x13 - strb r0, [r1] -_0810230C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102314: .4byte 0x02000000 - thumb_func_end sub_81022F0 - - thumb_func_start sub_8102318 -sub_8102318: @ 8102318 - push {lr} - ldr r0, _0810233C @ =gOtherText_QuitGamePrompt - bl sub_8101F2C - movs r0, 0x15 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - bl sub_814AB84 - ldr r1, _08102340 @ =0x02000000 - movs r0, 0x16 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810233C: .4byte gOtherText_QuitGamePrompt -_08102340: .4byte 0x02000000 - thumb_func_end sub_8102318 - - thumb_func_start sub_8102344 -sub_8102344: @ 8102344 - push {lr} - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0810237C - bl MenuZeroFillScreen - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r0, _08102378 @ =0x02000000 - ldrh r1, [r0, 0x12] - ldrh r2, [r0, 0xC] - adds r1, r2 - strh r1, [r0, 0xC] - movs r1, 0x1B - strb r1, [r0] - b _08102392 - .align 2, 0 -_08102378: .4byte 0x02000000 -_0810237C: - cmp r1, 0x1 - beq _08102388 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08102392 -_08102388: - bl MenuZeroFillScreen - ldr r1, _08102398 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1] -_08102392: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102398: .4byte 0x02000000 - thumb_func_end sub_8102344 - - thumb_func_start sub_810239C -sub_810239C: @ 810239C - push {lr} - ldr r0, _081023B0 @ =gOtherText_MaxCoins - bl sub_8101F2C - ldr r1, _081023B4 @ =0x02000000 - movs r0, 0x18 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023B0: .4byte gOtherText_MaxCoins -_081023B4: .4byte 0x02000000 - thumb_func_end sub_810239C - - thumb_func_start sub_81023B8 -sub_81023B8: @ 81023B8 - push {lr} - ldr r0, _081023D8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081023D0 - bl MenuZeroFillScreen - ldr r1, _081023DC @ =0x02000000 - movs r0, 0x5 - strb r0, [r1] -_081023D0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023D8: .4byte gMain -_081023DC: .4byte 0x02000000 - thumb_func_end sub_81023B8 - - thumb_func_start sub_81023E0 -sub_81023E0: @ 81023E0 - push {lr} - ldr r0, _081023F4 @ =gOtherText_OutOfCoins - bl sub_8101F2C - ldr r1, _081023F8 @ =0x02000000 - movs r0, 0x1A - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023F4: .4byte gOtherText_OutOfCoins -_081023F8: .4byte 0x02000000 - thumb_func_end sub_81023E0 - - thumb_func_start sub_81023FC -sub_81023FC: @ 81023FC - push {lr} - ldr r0, _0810241C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08102414 - bl MenuZeroFillScreen - ldr r1, _08102420 @ =0x02000000 - movs r0, 0x1B - strb r0, [r1] -_08102414: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810241C: .4byte gMain -_08102420: .4byte 0x02000000 - thumb_func_end sub_81023FC - - thumb_func_start sub_8102424 -sub_8102424: @ 8102424 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08102454 @ =gSaveBlock1 - ldr r4, _08102458 @ =0x02000000 - ldrh r1, [r4, 0xC] - ldr r2, _0810245C @ =0x00000494 - adds r0, r2 - movs r2, 0 - strh r1, [r0] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102454: .4byte gSaveBlock1 -_08102458: .4byte 0x02000000 -_0810245C: .4byte 0x00000494 - thumb_func_end sub_8102424 - - thumb_func_start sub_8102460 -sub_8102460: @ 8102460 - push {lr} - ldr r0, _0810247C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08102476 - ldr r0, _08102480 @ =0x02000000 - ldr r0, [r0, 0x64] - bl SetMainCallback2 -_08102476: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810247C: .4byte gPaletteFade -_08102480: .4byte 0x02000000 - thumb_func_end sub_8102460 - - thumb_func_start sub_8102484 -sub_8102484: @ 8102484 - push {r4,lr} - ldr r4, _081024E4 @ =0x02000000 - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _081024DC - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _081024DC - bl sub_8102540 - lsls r0, 24 - cmp r0, 0 - beq _081024C0 - bl sub_8102578 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - beq _081024C0 - ldr r1, _081024E8 @ =gUnknown_083ECE42 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - orrs r0, r1 - strb r0, [r4, 0x4] - cmp r3, 0x1 - bne _081024DC -_081024C0: - bl sub_81025BC - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - beq _081024DC - ldr r2, _081024E4 @ =0x02000000 - ldr r1, _081024EC @ =gUnknown_083ECE48 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] -_081024DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081024E4: .4byte 0x02000000 -_081024E8: .4byte gUnknown_083ECE42 -_081024EC: .4byte gUnknown_083ECE48 - thumb_func_end sub_8102484 - - thumb_func_start sub_81024F0 -sub_81024F0: @ 81024F0 - push {lr} - ldr r1, _08102508 @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x6] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08102502 - movs r0, 0x1 - strb r0, [r1, 0x6] -_08102502: - pop {r0} - bx r0 - .align 2, 0 -_08102508: .4byte 0x02000000 - thumb_func_end sub_81024F0 - - thumb_func_start sub_810250C -sub_810250C: @ 810250C - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - movs r3, 0x1 - ldr r4, _08102528 @ =gUnknown_083ECE3A -_08102518: - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0810252C - adds r0, r2, r4 - ldrb r0, [r0] - b _0810253A - .align 2, 0 -_08102528: .4byte gUnknown_083ECE3A -_0810252C: - lsrs r1, 1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _08102518 - movs r0, 0 -_0810253A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810250C - - thumb_func_start sub_8102540 -sub_8102540: @ 8102540 - push {r4,lr} - bl Random - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08102568 @ =gUnknown_083ECD04 - ldr r1, _0810256C @ =0x02000000 - movs r3, 0x12 - ldrsh r2, [r1, r3] - ldrb r3, [r1, 0x1] - lsls r1, r3, 1 - adds r1, r3 - subs r1, 0x1 - adds r2, r1 - adds r2, r4 - ldrb r1, [r2] - cmp r1, r0 - bhi _08102570 - movs r0, 0 - b _08102572 - .align 2, 0 -_08102568: .4byte gUnknown_083ECD04 -_0810256C: .4byte 0x02000000 -_08102570: - movs r0, 0x1 -_08102572: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102540 - - thumb_func_start sub_8102578 -sub_8102578: @ 8102578 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081025B4 @ =gUnknown_083ECD16 -_0810257E: - bl Random - movs r2, 0xFF - ldr r3, _081025B8 @ =0x02000000 - lsls r1, r5, 16 - asrs r4, r1, 16 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 1 - ldrb r3, [r3, 0x1] - adds r1, r3 - adds r1, r6 - ldrb r1, [r1] - ands r2, r0 - cmp r1, r2 - bgt _081025AA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0810257E -_081025AA: - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081025B4: .4byte gUnknown_083ECD16 -_081025B8: .4byte 0x02000000 - thumb_func_end sub_8102578 - - thumb_func_start sub_81025BC -sub_81025BC: @ 81025BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _08102600 @ =gUnknown_083ECD28 - mov r8, r0 - ldr r5, _08102604 @ =0x02000000 - movs r7, 0x80 - lsls r7, 17 -_081025CE: - bl Random - movs r4, 0xFF - ands r4, r0 - lsls r2, r6, 16 - asrs r1, r2, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldrb r3, [r5, 0x1] - adds r0, r3 - add r0, r8 - ldrb r3, [r0] - cmp r1, 0 - bne _08102608 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102608 - adds r3, 0xA - asrs r0, r7, 16 - cmp r3, r0 - ble _08102622 - adds r3, r0, 0 - b _08102622 - .align 2, 0 -_08102600: .4byte gUnknown_083ECD28 -_08102604: .4byte 0x02000000 -_08102608: - asrs r0, r2, 16 - cmp r0, 0x4 - bne _08102622 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102622 - lsls r0, r3, 16 - ldr r1, _08102648 @ =0xfff60000 - adds r0, r1 - lsrs r3, r0, 16 - cmp r0, 0 - bge _08102622 - movs r3, 0 -_08102622: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r4 - bgt _08102638 - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081025CE -_08102638: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08102648: .4byte 0xfff60000 - thumb_func_end sub_81025BC - - thumb_func_start sub_810264C -sub_810264C: @ 810264C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _08102660 @ =0x02000000 - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _08102668 - ldr r0, _08102664 @ =gUnknown_083ECDAC - b _0810266A - .align 2, 0 -_08102660: .4byte 0x02000000 -_08102664: .4byte gUnknown_083ECDAC -_08102668: - ldr r0, _0810267C @ =gUnknown_083ECD46 -_0810266A: - lsls r1, r2, 4 - adds r1, r2 - ldrb r3, [r3, 0x2] - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0810267C: .4byte gUnknown_083ECD46 - thumb_func_end sub_810264C - - thumb_func_start sub_8102680 -sub_8102680: @ 8102680 - push {r4-r6,lr} - ldr r1, _081026A4 @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x5] - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081026D2 - movs r6, 0x5 - b _081026AE - .align 2, 0 -_081026A4: .4byte 0x02000000 -_081026A8: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081026AE: - lsls r0, r6, 16 - asrs r5, r0, 16 - cmp r5, 0 - ble _081026CE - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _081026A8 -_081026CE: - ldr r0, _081026D8 @ =0x02000000 - strb r6, [r0, 0x5] -_081026D2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081026D8: .4byte 0x02000000 - thumb_func_end sub_8102680 - - thumb_func_start sub_81026DC -sub_81026DC: @ 81026DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - movs r1, 0xFF - ands r1, r0 - ldr r0, _081026FC @ =gUnknown_083ECE12 - lsls r4, 1 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcc _08102700 - movs r0, 0 - b _08102702 - .align 2, 0 -_081026FC: .4byte gUnknown_083ECE12 -_08102700: - movs r0, 0x1 -_08102702: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81026DC - - thumb_func_start dp15_jump_random_unknown -dp15_jump_random_unknown: @ 8102708 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _0810271C @ =0x02000000 - movs r2, 0x10 - ldrsh r1, [r0, r2] - ldr r0, _08102720 @ =0x0000012b - cmp r1, r0 - ble _08102724 - movs r4, 0x4 - b _0810273A - .align 2, 0 -_0810271C: .4byte 0x02000000 -_08102720: .4byte 0x0000012b -_08102724: - cmp r1, 0xF9 - ble _0810272C - movs r4, 0x3 - b _0810273A -_0810272C: - cmp r1, 0xC7 - ble _08102734 - movs r4, 0x2 - b _0810273A -_08102734: - cmp r1, 0x95 - ble _0810273A - movs r4, 0x1 -_0810273A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _0810275C @ =gUnknown_083ECE1C - lsls r4, 2 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r1, r0 - bcs _08102760 - movs r0, 0x4 - b _0810279A - .align 2, 0 -_0810275C: .4byte gUnknown_083ECE1C -_08102760: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - adds r2, r5, 0x2 - adds r2, r4, r2 - ldr r3, _08102790 @ =gUnknown_083ECE30 - ldr r1, _08102794 @ =0x02000000 - ldrb r1, [r1, 0xB] - lsls r1, 1 - adds r1, r3 - ldrb r1, [r1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - cmp r0, r1 - bcc _08102798 - movs r0, 0x8 - b _0810279A - .align 2, 0 -_08102790: .4byte gUnknown_083ECE30 -_08102794: .4byte 0x02000000 -_08102798: - movs r0, 0x2 -_0810279A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end dp15_jump_random_unknown - - thumb_func_start sub_81027A0 -sub_81027A0: @ 81027A0 - push {r4,lr} - ldr r4, _081027CC @ =0x02000000 - movs r0, 0 - strh r0, [r4, 0x8] - bl sub_81027D0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - ble _081027B8 - bl sub_8102840 -_081027B8: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - ble _081027C4 - bl sub_810290C -_081027C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081027CC: .4byte 0x02000000 - thumb_func_end sub_81027A0 - - thumb_func_start sub_81027D0 -sub_81027D0: @ 81027D0 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x2 - bl sub_8102BA4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x2 - bl sub_8102BA4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810282E - ldr r2, _08102834 @ =0x02000000 - ldr r0, _08102838 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _0810283C @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0 - bl sub_8103E04 -_0810282E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102834: .4byte 0x02000000 -_08102838: .4byte gUnknown_083ECE6C -_0810283C: .4byte gUnknown_083ECE5A - thumb_func_end sub_81027D0 - - thumb_func_start sub_8102840 -sub_8102840: @ 8102840 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810289E - cmp r1, 0 - bne _0810287C - movs r1, 0x1 -_0810287C: - ldr r2, _08102900 @ =0x02000000 - ldr r0, _08102904 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x1 - bl sub_8103E04 -_0810289E: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081028FA - cmp r1, 0 - bne _081028D8 - movs r1, 0x1 -_081028D8: - ldr r2, _08102900 @ =0x02000000 - ldr r0, _08102904 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x2 - bl sub_8103E04 -_081028FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102900: .4byte 0x02000000 -_08102904: .4byte gUnknown_083ECE6C -_08102908: .4byte gUnknown_083ECE5A - thumb_func_end sub_8102840 - - thumb_func_start sub_810290C -sub_810290C: @ 810290C - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _08102968 - cmp r1, 0 - beq _08102962 - ldr r2, _081029C8 @ =0x02000000 - ldr r0, _081029CC @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_08102962: - movs r0, 0x3 - bl sub_8103E04 -_08102968: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081029C2 - cmp r1, 0 - beq _081029BC - ldr r2, _081029C8 @ =0x02000000 - ldr r0, _081029CC @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_081029BC: - movs r0, 0x4 - bl sub_8103E04 -_081029C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081029C8: .4byte 0x02000000 -_081029CC: .4byte gUnknown_083ECE6C -_081029D0: .4byte gUnknown_083ECE5A - thumb_func_end sub_810290C - - thumb_func_start sub_81029D4 -sub_81029D4: @ 81029D4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r3, r1 - bne _081029F8 - cmp r3, r2 - bne _081029F8 - ldr r0, _081029F4 @ =gUnknown_083ECE52 - adds r0, r3, r0 - ldrb r0, [r0] - b _08102A1E - .align 2, 0 -_081029F4: .4byte gUnknown_083ECE52 -_081029F8: - cmp r3, 0 - bne _08102A04 - cmp r1, 0 - bne _08102A04 - cmp r2, 0x1 - beq _08102A10 -_08102A04: - cmp r3, 0x1 - bne _08102A14 - cmp r1, 0x1 - bne _08102A14 - cmp r2, 0 - bne _08102A14 -_08102A10: - movs r0, 0x6 - b _08102A1E -_08102A14: - cmp r3, 0x4 - beq _08102A1C - movs r0, 0x9 - b _08102A1E -_08102A1C: - movs r0, 0 -_08102A1E: - pop {r1} - bx r1 - thumb_func_end sub_81029D4 - - thumb_func_start sub_8102A24 -sub_8102A24: @ 8102A24 - push {r4,lr} - ldr r4, _08102A40 @ =sub_8102A64 - adds r0, r4, 0 - movs r1, 0x4 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102A40: .4byte sub_8102A64 - thumb_func_end sub_8102A24 - - thumb_func_start sub_8102A44 -sub_8102A44: @ 8102A44 - push {lr} - ldr r0, _08102A58 @ =sub_8102A64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08102A5C - movs r0, 0 - b _08102A5E - .align 2, 0 -_08102A58: .4byte sub_8102A64 -_08102A5C: - movs r0, 0x1 -_08102A5E: - pop {r1} - bx r1 - thumb_func_end sub_8102A44 - - thumb_func_start sub_8102A64 -sub_8102A64: @ 8102A64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102A94 @ =gUnknown_083ECB20 - ldr r2, _08102A98 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102A76: - 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 _08102A76 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102A94: .4byte gUnknown_083ECB20 -_08102A98: .4byte gTasks - thumb_func_end sub_8102A64 - - thumb_func_start sub_8102A9C -sub_8102A9C: @ 8102A9C - push {r4,lr} - adds r4, r0, 0 - bl sub_8103E38 - lsls r0, 24 - cmp r0, 0 - beq _08102AC8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _08102AC4 @ =0x02000000 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102AC8 - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08102ACA - .align 2, 0 -_08102AC4: .4byte 0x02000000 -_08102AC8: - movs r0, 0 -_08102ACA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102A9C - - thumb_func_start sub_8102AD0 -sub_8102AD0: @ 8102AD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08102B22 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102AF6 - movs r0, 0x15 - bl PlaySE -_08102AF6: - ldr r2, _08102B70 @ =0x02000000 - ldrh r0, [r2, 0xE] - subs r0, 0x1 - strh r0, [r2, 0xE] - ldrh r3, [r2, 0xC] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08102B74 @ =0x0000270e - cmp r1, r0 - bgt _08102B0E - adds r0, r3, 0x1 - strh r0, [r2, 0xC] -_08102B0E: - movs r0, 0x8 - strh r0, [r4, 0xA] - ldr r0, _08102B78 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08102B22 - movs r0, 0x4 - strh r0, [r4, 0xA] -_08102B22: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102B58 - ldr r0, _08102B78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08102B58 - movs r0, 0x15 - bl PlaySE - ldr r1, _08102B70 @ =0x02000000 - ldrh r0, [r1, 0xE] - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - ldr r2, _08102B7C @ =0x0000270f - cmp r0, r2 - ble _08102B54 - strh r2, [r1, 0xC] -_08102B54: - movs r0, 0 - strh r0, [r1, 0xE] -_08102B58: - ldr r0, _08102B70 @ =0x02000000 - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102B68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08102B68: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102B70: .4byte 0x02000000 -_08102B74: .4byte 0x0000270e -_08102B78: .4byte gMain -_08102B7C: .4byte 0x0000270f - thumb_func_end sub_8102AD0 - - thumb_func_start sub_8102B80 -sub_8102B80: @ 8102B80 - push {lr} - bl sub_8103E7C - lsls r0, 24 - cmp r0, 0 - beq _08102B9A - ldr r0, _08102BA0 @ =sub_8102A64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08102B9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102BA0: .4byte sub_8102A64 - thumb_func_end sub_8102B80 - - thumb_func_start sub_8102BA4 -sub_8102BA4: @ 8102BA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _08102BF0 @ =0x02000000 - lsls r2, r4, 1 - adds r0, 0x28 - adds r2, r0 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r1, 16 - asrs r1, 16 - adds r0, r1 - movs r1, 0x15 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102BD4 - adds r0, 0x15 - lsls r0, 16 - lsrs r1, r0, 16 -_08102BD4: - ldr r2, _08102BF4 @ =gUnknown_083ECCB2 - lsls r1, 16 - asrs r1, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - adds r0, r4 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102BF0: .4byte 0x02000000 -_08102BF4: .4byte gUnknown_083ECCB2 - thumb_func_end sub_8102BA4 - - thumb_func_start sub_8102BF8 -sub_8102BF8: @ 8102BF8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - movs r6, 0 - ldr r0, _08102C40 @ =0x02000000 - lsls r1, r5, 1 - adds r0, 0x1C - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - beq _08102C20 - ldr r6, _08102C44 @ =0x0000ffff -_08102C20: - lsls r1, r4, 16 - asrs r1, 16 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102C40: .4byte 0x02000000 -_08102C44: .4byte 0x0000ffff - thumb_func_end sub_8102BF8 - - thumb_func_start sub_8102C48 -sub_8102C48: @ 8102C48 - push {lr} - ldr r1, _08102C7C @ =0x02000000 - movs r2, 0x16 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - adds r1, r0 - adds r0, r1, 0 - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102C6E - adds r0, 0x6 - lsls r0, 16 - lsrs r1, r0, 16 -_08102C6E: - ldr r0, _08102C80 @ =gUnknown_083ECCF1 - lsls r1, 16 - asrs r1, 16 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08102C7C: .4byte 0x02000000 -_08102C80: .4byte gUnknown_083ECCF1 - thumb_func_end sub_8102C48 - - thumb_func_start sub_8102C84 -sub_8102C84: @ 8102C84 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - ldr r6, _08102CC8 @ =0x02000000 - lsrs r5, 23 - adds r4, r6, 0 - adds r4, 0x1C - adds r4, r5, r4 - lsls r1, 16 - asrs r1, 16 - ldrh r0, [r4] - adds r1, r0 - strh r1, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xFC - lsls r1, 1 - bl __modsi3 - strh r0, [r4] - adds r6, 0x28 - adds r5, r6 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl __divsi3 - movs r1, 0x15 - subs r1, r0 - strh r1, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08102CC8: .4byte 0x02000000 - thumb_func_end sub_8102C84 - - thumb_func_start sub_8102CCC -sub_8102CCC: @ 8102CCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r0, _08102D24 @ =0x02000000 - lsls r1, r6, 1 - adds r0, 0x1C - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D18 - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D00 - lsrs r4, r2, 16 -_08102D00: - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r6, 0 - bl sub_8102C84 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D18: - lsls r0, 16 - asrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102D24: .4byte 0x02000000 - thumb_func_end sub_8102CCC - - thumb_func_start sub_8102D28 -sub_8102D28: @ 8102D28 - push {r4,lr} - ldr r4, _08102D58 @ =0x02000000 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl __divsi3 - movs r1, 0x6 - subs r1, r0 - strh r1, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102D58: .4byte 0x02000000 - thumb_func_end sub_8102D28 - - thumb_func_start sub_8102D5C -sub_8102D5C: @ 8102D5C - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _08102DA4 @ =0x02000000 - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D9A - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D84 - lsrs r4, r2, 16 -_08102D84: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D9A: - lsls r0, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08102DA4: .4byte 0x02000000 - thumb_func_end sub_8102D5C - - thumb_func_start sub_8102DA8 -sub_8102DA8: @ 8102DA8 - push {r4-r7,lr} - movs r4, 0 - ldr r5, _08102DE0 @ =sub_8102E68 - ldr r7, _08102DE4 @ =gTasks - ldr r6, _08102DE8 @ =0x0200003a -_08102DB2: - adds r0, r5, 0 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - strh r4, [r1, 0x26] - adds r1, r4, r6 - strb r0, [r1] - bl _call_via_r5 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08102DB2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08102DE0: .4byte sub_8102E68 -_08102DE4: .4byte gTasks -_08102DE8: .4byte 0x0200003a - thumb_func_end sub_8102DA8 - - thumb_func_start sub_8102DEC -sub_8102DEC: @ 8102DEC - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08102E14 @ =gTasks - ldr r1, _08102E18 @ =0x02000000 - adds r1, 0x3A - adds r0, r1 - ldrb r2, [r0] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0x1 - strh r2, [r1, 0x8] - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r2, [r0, 0x24] - bx lr - .align 2, 0 -_08102E14: .4byte gTasks -_08102E18: .4byte 0x02000000 - thumb_func_end sub_8102DEC - - thumb_func_start sub_8102E1C -sub_8102E1C: @ 8102E1C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E38 @ =gTasks - ldr r1, _08102E3C @ =0x02000000 - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bx lr - .align 2, 0 -_08102E38: .4byte gTasks -_08102E3C: .4byte 0x02000000 - thumb_func_end sub_8102E1C - - thumb_func_start sub_8102E40 -sub_8102E40: @ 8102E40 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E60 @ =gTasks - ldr r1, _08102E64 @ =0x02000000 - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x24] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08102E60: .4byte gTasks -_08102E64: .4byte 0x02000000 - thumb_func_end sub_8102E40 - - thumb_func_start sub_8102E68 -sub_8102E68: @ 8102E68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102E98 @ =gUnknown_083ECB2C - ldr r2, _08102E9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102E7A: - 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 _08102E7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102E98: .4byte gUnknown_083ECB2C -_08102E9C: .4byte gTasks - thumb_func_end sub_8102E68 - - thumb_func_start sub_8102EA0 -sub_8102EA0: @ 8102EA0 - movs r0, 0 - bx lr - thumb_func_end sub_8102EA0 - - thumb_func_start sub_8102EA4 -sub_8102EA4: @ 8102EA4 - push {lr} - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08102EBC @ =0x02000000 - movs r2, 0x1A - ldrsh r1, [r1, r2] - bl sub_8102C84 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102EBC: .4byte 0x02000000 - thumb_func_end sub_8102EA4 - - thumb_func_start sub_8102EC0 -sub_8102EC0: @ 8102EC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x8] - ldr r3, _08102F40 @ =0x02000000 - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x34 - adds r0, r1 - strh r2, [r0] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x2E - adds r0, r1 - strh r2, [r0] - ldrb r0, [r3, 0xA] - cmp r0, 0 - bne _08102F28 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _08102F12 - ldrb r0, [r3, 0x6] - cmp r0, 0 - beq _08102F12 - ldr r1, _08102F44 @ =gUnknown_083ECB40 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - cmp r0, 0 - bne _08102F28 -_08102F12: - ldr r1, _08102F40 @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, _08102F48 @ =gUnknown_083ECB4C - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08102F28: - ldr r0, _08102F40 @ =0x02000000 - movs r2, 0x26 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r0, 0x2E - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0xA] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102F40: .4byte 0x02000000 -_08102F44: .4byte gUnknown_083ECB40 -_08102F48: .4byte gUnknown_083ECB4C - thumb_func_end sub_8102EC0 - - thumb_func_start sub_8102F4C -sub_8102F4C: @ 8102F4C - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, _08102F8C @ =gUnknown_083ECB58 - mov r0, sp - movs r2, 0xA - bl memcpy - ldr r5, _08102F90 @ =0x02000000 - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r6, r0, 1 - adds r7, r5, 0 - adds r7, 0x1C - adds r0, r6, r7 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - beq _08102F94 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1A - ldrsh r1, [r5, r6] - bl sub_8102CCC - b _08102FC8 - .align 2, 0 -_08102F8C: .4byte gUnknown_083ECB58 -_08102F90: .4byte 0x02000000 -_08102F94: - adds r0, r5, 0 - adds r0, 0x2E - adds r1, r6, r0 - ldrh r3, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08102FCC - subs r0, r3, 0x1 - strh r0, [r1] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r5, r2] - bl sub_8102C84 - movs r6, 0x26 - ldrsh r0, [r4, r6] - lsls r0, 1 - adds r0, r7 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 -_08102FC8: - lsls r0, 16 - lsrs r2, r0, 16 -_08102FCC: - cmp r2, 0 - bne _08102FF8 - ldr r1, _08103004 @ =0x02000000 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r1, 0x2E - adds r0, r1 - movs r6, 0 - ldrsh r1, [r0, r6] - cmp r1, 0 - bne _08102FF8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] -_08102FF8: - movs r0, 0 - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08103004: .4byte 0x02000000 - thumb_func_end sub_8102F4C - - thumb_func_start sub_8103008 -sub_8103008: @ 8103008 - push {r4,lr} - adds r2, r0, 0 - ldr r1, _08103058 @ =0x02000000 - movs r3, 0x26 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r4, r1, 0 - adds r4, 0x22 - adds r0, r4 - ldrh r1, [r2, 0xA] - strh r1, [r0] - ldrh r0, [r2, 0xA] - negs r3, r0 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08103038 - lsls r0, r3, 16 - asrs r0, 17 - strh r0, [r2, 0xA] -_08103038: - movs r0, 0xA - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _0810304E - strh r3, [r2, 0x8] - strh r3, [r2, 0x24] - movs r1, 0x26 - ldrsh r0, [r2, r1] - lsls r0, 1 - adds r0, r4 - strh r3, [r0] -_0810304E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103058: .4byte 0x02000000 - thumb_func_end sub_8103008 - - thumb_func_start sub_810305C -sub_810305C: @ 810305C - push {r4,r5,lr} - ldr r4, _0810309C @ =0x02000000 - ldrb r0, [r4, 0x4] - bl sub_810250C - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _0810307A - movs r5, 0 - movs r3, 0x1 -_0810307A: - ldr r1, _081030A0 @ =gUnknown_083ECB64 - movs r2, 0x12 - ldrsh r0, [r4, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r3, 0 - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810309C: .4byte 0x02000000 -_081030A0: .4byte gUnknown_083ECB64 - thumb_func_end sub_810305C - - thumb_func_start sub_81030A4 -sub_81030A4: @ 81030A4 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - asrs r3, 16 - movs r0, 0 - adds r1, r3, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, r4 - beq _081030CC - cmp r0, r5 - bne _081030D8 -_081030CC: - ldr r0, _081030D4 @ =0x02000000 - strb r1, [r0, 0x7] - movs r0, 0x1 - b _081030DA - .align 2, 0 -_081030D4: .4byte 0x02000000 -_081030D8: - movs r0, 0 -_081030DA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81030A4 - - thumb_func_start sub_81030E0 -sub_81030E0: @ 81030E0 - push {r4,lr} - movs r1, 0x1 - lsls r0, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x2 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x3 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0810312C -_08103128: - movs r0, 0x1 - b _0810312E -_0810312C: - movs r0, 0 -_0810312E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81030E0 - - thumb_func_start sub_8103134 -sub_8103134: @ 8103134 - push {lr} - ldr r0, _08103148 @ =0x02000000 - ldrb r1, [r0, 0x4] - movs r0, 0xC2 - ands r0, r1 - cmp r0, 0 - bne _0810314C - movs r0, 0 - b _0810314E - .align 2, 0 -_08103148: .4byte 0x02000000 -_0810314C: - movs r0, 0x1 -_0810314E: - pop {r1} - bx r1 - thumb_func_end sub_8103134 - - thumb_func_start sub_8103154 -sub_8103154: @ 8103154 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - movs r5, 0 - movs r0, 0x2 - mov r9, r0 - ldr r6, _08103194 @ =0x02000000 -_0810316E: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r1, r9 - subs r0, r1, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r8 - adds r2, r7, 0 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103198 - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r5, [r6, 0x2E] - movs r0, 0x1 - b _081031A6 - .align 2, 0 -_08103194: .4byte 0x02000000 -_08103198: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810316E - movs r0, 0 -_081031A6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8103154 - - thumb_func_start sub_81031B4 -sub_81031B4: @ 81031B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - bl sub_8103134 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081031E2 - movs r0, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _0810321E -_081031E2: - movs r0, 0x1 - mov r8, r0 - ldr r5, _0810320C @ =0x02000000 - movs r7, 0 -_081031EA: - mov r1, r8 - lsls r0, r1, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103210 - mov r0, r8 - strh r0, [r5, 0x34] - strh r7, [r5, 0x2E] - movs r0, 0x1 - b _081032B2 - .align 2, 0 -_0810320C: .4byte 0x02000000 -_08103210: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x3 - ble _081031EA -_0810321E: - movs r0, 0x1 - mov r8, r0 - adds r7, r6, 0 - ldr r6, _0810326C @ =0x02000000 -_08103226: - mov r1, r8 - lsls r5, r1, 16 - cmp r7, 0 - bne _0810323A - asrs r0, r5, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081032A0 -_0810323A: - movs r0, 0x1 - asrs r4, r5, 16 - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _081032A0 - cmp r4, 0x1 - bne _08103270 - cmp r7, 0 - bne _08103266 - movs r0, 0x3 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103270 -_08103266: - movs r0, 0x3 - strh r0, [r6, 0x34] - b _0810329A - .align 2, 0 -_0810326C: .4byte 0x02000000 -_08103270: - asrs r0, r5, 16 - cmp r0, 0x3 - bgt _08103294 - adds r4, r0, 0x1 - cmp r7, 0 - bne _0810328A - lsls r0, r4, 16 - asrs r0, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103294 -_0810328A: - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r4, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_08103294: - movs r0, 0x1 - strh r0, [r6, 0x34] - mov r0, r8 -_0810329A: - strh r0, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_081032A0: - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x4 - ble _08103226 - movs r0, 0 -_081032B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81031B4 - - thumb_func_start sub_81032C0 -sub_81032C0: @ 81032C0 - push {lr} - ldr r1, _081032E0 @ =gUnknown_083ECB70 - ldr r0, _081032E4 @ =0x02000000 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_081032E0: .4byte gUnknown_083ECB70 -_081032E4: .4byte 0x02000000 - thumb_func_end sub_81032C0 - - thumb_func_start sub_81032E8 -sub_81032E8: @ 81032E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08103320 @ =0x02000000 - movs r6, 0 - ldrh r1, [r0, 0x34] - mov r8, r1 - movs r1, 0x34 - ldrsh r7, [r0, r1] - adds r5, r0, 0 -_081032FC: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r5, 0x7] - cmp r0, r1 - bne _08103324 - mov r0, r8 - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - movs r0, 0x1 - b _08103332 - .align 2, 0 -_08103320: .4byte 0x02000000 -_08103324: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081032FC - movs r0, 0 -_08103332: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81032E8 - - thumb_func_start sub_810333C -sub_810333C: @ 810333C - push {r4-r7,lr} - bl sub_81032E8 - lsls r0, 24 - cmp r0, 0 - beq _0810339A - ldr r1, _0810338C @ =0x02000000 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _08103396 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _08103396 - cmp r0, 0x4 - beq _08103396 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_08103364: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103364 - b _08103396 - .align 2, 0 -_0810338C: .4byte 0x02000000 -_08103390: - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] -_08103396: - movs r0, 0x1 - b _081033D2 -_0810339A: - ldr r1, _081033D8 @ =0x02000000 - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _081033D0 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_081033AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081033AA -_081033D0: - movs r0, 0 -_081033D2: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081033D8: .4byte 0x02000000 - thumb_func_end sub_810333C - - thumb_func_start sub_81033DC -sub_81033DC: @ 81033DC - push {r4,lr} - ldr r0, _08103414 @ =0x02000000 - ldrb r3, [r0, 0x7] - adds r4, r3, 0 - ldrb r2, [r0, 0x4] - movs r1, 0x40 - ands r1, r2 - cmp r1, 0 - beq _081033F6 - movs r3, 0 - cmp r4, 0 - bne _081033F6 - movs r3, 0x1 -_081033F6: - ldr r1, _08103418 @ =gUnknown_083ECB7C - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r3, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103414: .4byte 0x02000000 -_08103418: .4byte gUnknown_083ECB7C - thumb_func_end sub_81033DC - - thumb_func_start sub_810341C -sub_810341C: @ 810341C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _0810345C @ =0x02000000 - movs r5, 0 - ldrh r1, [r0, 0x36] - mov r8, r1 - movs r1, 0x36 - ldrsh r7, [r0, r1] - adds r6, r0, 0 -_08103438: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r9 - bne _08103460 - mov r0, r8 - strh r0, [r6, 0x38] - strh r5, [r6, 0x32] - movs r0, 0x1 - b _0810346E - .align 2, 0 -_0810345C: .4byte 0x02000000 -_08103460: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103438 - movs r0, 0 -_0810346E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810341C - - thumb_func_start sub_810347C -sub_810347C: @ 810347C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081034A0 @ =0x02000000 - movs r2, 0x34 - ldrsh r1, [r0, r2] - movs r2, 0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _081034B4 - adds r0, r6, 0 - bl sub_810341C - lsls r0, 24 - lsrs r0, 24 - b _081034EA - .align 2, 0 -_081034A0: .4byte 0x02000000 -_081034A4: - ldr r0, _081034B0 @ =0x02000000 - strh r5, [r0, 0x32] - mov r1, r8 - strh r1, [r0, 0x38] - movs r0, 0x1 - b _081034EA - .align 2, 0 -_081034B0: .4byte 0x02000000 -_081034B4: - movs r2, 0x1 - mov r8, r2 - cmp r1, 0x1 - bne _081034C0 - movs r0, 0x3 - mov r8, r0 -_081034C0: - movs r5, 0 - mov r7, r8 -_081034C4: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _081034A4 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081034C4 - movs r0, 0 -_081034EA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810347C - - thumb_func_start sub_81034F4 -sub_81034F4: @ 81034F4 - push {r4,r5,lr} - movs r5, 0 - b _08103500 -_081034FA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103500: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081034FA - ldr r0, _0810351C @ =0x02000000 - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810351C: .4byte 0x02000000 - thumb_func_end sub_81034F4 - - thumb_func_start sub_8103520 -sub_8103520: @ 8103520 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0810352E - movs r0, 0x1 - b _08103538 -_0810352E: - cmp r0, 0x1 - beq _08103536 - movs r0, 0 - b _0810353C -_08103536: - movs r0, 0 -_08103538: - strb r0, [r1] - movs r0, 0x1 -_0810353C: - pop {r1} - bx r1 - thumb_func_end sub_8103520 - - thumb_func_start sub_8103540 -sub_8103540: @ 8103540 - push {lr} - ldr r1, _0810355C @ =gUnknown_083ECB88 - ldr r0, _08103560 @ =0x02000000 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_0810355C: .4byte gUnknown_083ECB88 -_08103560: .4byte 0x02000000 - thumb_func_end sub_8103540 - - thumb_func_start sub_8103564 -sub_8103564: @ 8103564 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _081035D0 @ =0x02000000 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081035E0 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081035E0 - ldrh r0, [r4, 0x2E] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _081035E0 - movs r5, 0 - mov r7, sp - movs r0, 0x2 - mov r8, r0 - adds r6, r4, 0 -_081035AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r0, r8 - subs r1, r0, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081035D4 - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] - b _081035E0 - .align 2, 0 -_081035D0: .4byte 0x02000000 -_081035D4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081035AA -_081035E0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103564 - - thumb_func_start j5_08111E84 -j5_08111E84: @ 81035EC - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _08103650 @ =0x02000000 - ldrh r2, [r4, 0x34] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08103660 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103660 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _08103660 - movs r6, 0 - mov r7, sp - adds r5, r4, 0 -_0810362A: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08103654 - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _08103660 - .align 2, 0 -_08103650: .4byte 0x02000000 -_08103654: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810362A -_08103660: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end j5_08111E84 - - thumb_func_start sub_8103668 -sub_8103668: @ 8103668 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _0810368C @ =0x02000000 - ldrh r3, [r4, 0x34] - movs r0, 0x34 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _0810375A - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810375A - cmp r2, 0x2 - bne _081036AE - bl j5_08111E84 - b _0810375A - .align 2, 0 -_0810368C: .4byte 0x02000000 -_08103690: - ldr r0, _0810369C @ =0x02000000 - movs r1, 0 - strh r6, [r0, 0x36] - strh r1, [r0, 0x30] - b _0810375A - .align 2, 0 -_0810369C: .4byte 0x02000000 -_081036A0: - movs r0, 0x2 - strh r0, [r5, 0x36] - adds r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_081036AA: - movs r0, 0x3 - b _08103736 -_081036AE: - ldrh r1, [r4, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _0810375A - movs r6, 0x2 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _081036D8 - movs r6, 0x3 -_081036D8: - movs r5, 0 - mov r7, sp -_081036DC: - lsls r0, r6, 16 - asrs r4, r0, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _08103690 - lsls r1, r5, 16 - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r5, r1, 16 - asrs r1, 16 - cmp r1, 0x1 - ble _081036DC - movs r6, 0x1 - mov r7, sp - ldr r5, _0810373C @ =0x02000000 -_0810370E: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0810374E - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08103740 - cmp r4, 0x2 - ble _081036A0 -_08103736: - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _0810375A - .align 2, 0 -_0810373C: .4byte 0x02000000 -_08103740: - cmp r4, 0x2 - ble _081036AA - movs r0, 0x2 - strh r0, [r5, 0x36] - subs r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_0810374E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810370E -_0810375A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103668 - - thumb_func_start sub_8103764 -sub_8103764: @ 8103764 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r0, 0 - bne _08103778 - cmp r1, 0x1 - beq _08103780 -_08103778: - cmp r0, 0x1 - bne _08103784 - cmp r2, 0 - bne _08103784 -_08103780: - movs r0, 0x1 - b _08103786 -_08103784: - movs r0, 0 -_08103786: - pop {r1} - bx r1 - thumb_func_end sub_8103764 - - thumb_func_start sub_810378C -sub_810378C: @ 810378C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037A6 - cmp r1, 0x1 - bne _081037A6 - cmp r2, 0 - beq _081037B2 -_081037A6: - cmp r0, 0x1 - bne _081037B6 - cmp r1, 0 - bne _081037B6 - cmp r2, 0x1 - bne _081037B6 -_081037B2: - movs r0, 0x1 - b _081037B8 -_081037B6: - movs r0, 0 -_081037B8: - pop {r1} - bx r1 - thumb_func_end sub_810378C - - thumb_func_start sub_81037BC -sub_81037BC: @ 81037BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037D6 - cmp r1, 0x1 - bne _081037D6 - cmp r2, 0 - beq _08103802 -_081037D6: - cmp r0, 0x1 - bne _081037E2 - cmp r1, 0 - bne _081037E2 - cmp r2, 0x1 - beq _08103802 -_081037E2: - cmp r0, 0 - bne _081037EE - cmp r1, 0 - bne _081037EE - cmp r2, 0x1 - beq _08103802 -_081037EE: - cmp r0, 0x1 - bne _081037FA - cmp r1, 0x1 - bne _081037FA - cmp r2, 0 - beq _08103802 -_081037FA: - cmp r0, r1 - bne _08103806 - cmp r0, r2 - bne _08103806 -_08103802: - movs r0, 0 - b _08103808 -_08103806: - movs r0, 0x1 -_08103808: - pop {r1} - bx r1 - thumb_func_end sub_81037BC - - thumb_func_start sub_810380C -sub_810380C: @ 810380C - push {lr} - ldr r1, _08103828 @ =gUnknown_083ECB94 - ldr r0, _0810382C @ =0x02000000 - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_08103828: .4byte gUnknown_083ECB94 -_0810382C: .4byte 0x02000000 - thumb_func_end sub_810380C - - thumb_func_start sub_8103830 -sub_8103830: @ 8103830 - push {r4-r7,lr} - movs r6, 0 - ldr r7, _08103868 @ =0x02000000 - ldrh r1, [r7, 0x2E] - movs r4, 0x2 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x30] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, r1 - bne _081038A0 - movs r4, 0x2 - b _08103876 - .align 2, 0 -_08103868: .4byte 0x02000000 -_0810386C: - lsls r0, r6, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r6, r0, 16 -_08103876: - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0810386C - cmp r5, 0 - bne _08103896 - cmp r0, 0x1 - beq _0810386C -_08103896: - cmp r5, 0x1 - bne _08103900 - cmp r0, 0 - beq _0810386C - b _08103900 -_081038A0: - adds r0, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103900 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081038DC - movs r7, 0x2 -_081038B8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08103900 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081038B8 -_081038DC: - movs r6, 0 - movs r7, 0x2 - b _081038E8 -_081038E2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081038E8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _081038E2 -_08103900: - ldr r0, _0810390C @ =0x02000000 - strh r6, [r0, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810390C: .4byte 0x02000000 - thumb_func_end sub_8103830 - - thumb_func_start sub_8103910 -sub_8103910: @ 8103910 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _08103978 @ =0x02000000 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _081039A6 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - bne _081039A6 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081039A6 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _081039A6 - movs r5, 0 - b _08103982 - .align 2, 0 -_08103978: .4byte 0x02000000 -_0810397C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103982: - lsls r6, r5, 16 - asrs r5, r6, 16 - cmp r5, 0x4 - bgt _081039A6 - ldr r0, _08103A34 @ =0x02000000 - ldrh r1, [r0, 0x36] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, r4 - bne _0810397C - lsrs r6, 16 - str r6, [sp] -_081039A6: - ldr r0, _08103A34 @ =0x02000000 - mov r9, r0 -_081039AA: - movs r5, 0x1 - movs r1, 0 - mov r8, r1 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 -_081039B6: - mov r3, r9 - ldrh r1, [r3, 0x2E] - lsls r5, 16 - asrs r4, r5, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r9 - ldrh r1, [r0, 0x30] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r10 - asrs r0, r1, 16 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103A38 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103A24 - mov r2, r9 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103A38 -_08103A24: - mov r3, r8 - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - mov r8, r0 - b _08103A46 - .align 2, 0 -_08103A34: .4byte 0x02000000 -_08103A38: - movs r2, 0x80 - lsls r2, 9 - adds r0, r5, r2 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081039B6 -_08103A46: - mov r3, r8 - cmp r3, 0 - beq _08103A5C - ldr r1, [sp] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r0, 16 - str r0, [sp] - b _081039AA -_08103A5C: - ldr r0, _08103A74 @ =0x02000000 - mov r3, sp - ldrh r3, [r3] - strh r3, [r0, 0x32] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103A74: .4byte 0x02000000 - thumb_func_end sub_8103910 - - thumb_func_start sub_8103A78 -sub_8103A78: @ 8103A78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_8103910 - ldr r4, _08103B10 @ =0x02000000 - movs r0, 0x36 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08103B20 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - beq _08103B20 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103B20 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103B20 - movs r1, 0x1 - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _08103AE0 - movs r1, 0x3 -_08103AE0: - movs r3, 0 - lsls r1, 16 - mov r8, r1 - adds r7, r4, 0 -_08103AE8: - ldrh r2, [r7, 0x32] - lsls r0, r3, 16 - asrs r5, r0, 16 - adds r2, r5, r2 - mov r3, r8 - asrs r1, r3, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r6, r4 - bne _08103B14 - ldrh r0, [r7, 0x32] - adds r0, r5, r0 - strh r0, [r7, 0x32] - b _08103B20 - .align 2, 0 -_08103B10: .4byte 0x02000000 -_08103B14: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103AE8 -_08103B20: - ldr r7, _08103B90 @ =0x02000000 -_08103B22: - ldrh r0, [r7, 0x2E] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103B94 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103B88 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103B94 -_08103B88: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B22 - .align 2, 0 -_08103B90: .4byte 0x02000000 -_08103B94: - ldr r7, _08103C04 @ =0x02000000 -_08103B96: - ldrh r0, [r7, 0x2E] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103C08 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103BFC - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103C08 -_08103BFC: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B96 - .align 2, 0 -_08103C04: .4byte 0x02000000 -_08103C08: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103A78 - - thumb_func_start sub_8103C14 -sub_8103C14: @ 8103C14 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08103C40 @ =sub_8103C48 - adds r0, r5, 0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103C44 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x26] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08103C40: .4byte sub_8103C48 -_08103C44: .4byte gTasks - thumb_func_end sub_8103C14 - - thumb_func_start sub_8103C48 -sub_8103C48: @ 8103C48 - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08103C70 @ =gUnknown_083ECBA0 - ldr r2, _08103C74 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r4, 0x8 - ldrsh r2, [r0, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103C70: .4byte gUnknown_083ECBA0 -_08103C74: .4byte gTasks - thumb_func_end sub_8103C48 - - thumb_func_start sub_8103C78 -sub_8103C78: @ 8103C78 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _08103CA8 @ =gUnknown_083ECBAC - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x73 - str r1, [sp] - movs r1, 0x62 - movs r2, 0x63 - movs r3, 0x72 - bl sub_81065A8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CA8: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103C78 - - thumb_func_start sub_8103CAC -sub_8103CAC: @ 8103CAC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08103CC4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08103CC4: - pop {r0} - bx r0 - thumb_func_end sub_8103CAC - - thumb_func_start sub_8103CC8 -sub_8103CC8: @ 8103CC8 - push {r4,lr} - sub sp, 0x4 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, _08103CFC @ =gUnknown_083ECBAC - movs r2, 0x26 - ldrsh r0, [r0, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x53 - str r1, [sp] - movs r1, 0x42 - movs r2, 0x43 - movs r3, 0x52 - bl sub_81065A8 - adds r0, r4, 0 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CFC: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103CC8 - - thumb_func_start sub_8103D00 -sub_8103D00: @ 8103D00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D20 @ =gUnknown_083EDD08 - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D24 @ =gUnknown_083EDD30 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D20: .4byte gUnknown_083EDD08 -_08103D24: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D00 - - thumb_func_start sub_8103D28 -sub_8103D28: @ 8103D28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D48 @ =gUnknown_083EDD1C - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D4C @ =gUnknown_083EDD30 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D48: .4byte gUnknown_083EDD1C -_08103D4C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D28 - - thumb_func_start sub_8103D50 -sub_8103D50: @ 8103D50 - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103D84 @ =gUnknown_083EDD3B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103D7C - ldr r7, _08103D88 @ =gUnknown_083EDD35 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103D68: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D00 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103D68 -_08103D7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103D84: .4byte gUnknown_083EDD3B -_08103D88: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D50 - - thumb_func_start sub_8103D8C -sub_8103D8C: @ 8103D8C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103DC0 @ =gUnknown_083EDD3B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103DB8 - ldr r7, _08103DC4 @ =gUnknown_083EDD35 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103DA4: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D28 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103DA4 -_08103DB8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103DC0: .4byte gUnknown_083EDD3B -_08103DC4: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D8C - - thumb_func_start sub_8103DC8 -sub_8103DC8: @ 8103DC8 - push {r4-r6,lr} - movs r4, 0 - ldr r6, _08103DF8 @ =gSprites - ldr r5, _08103DFC @ =0x02000044 -_08103DD0: - ldr r0, _08103E00 @ =sub_8103EE4 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r4, [r1, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103DD0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08103DF8: .4byte gSprites -_08103DFC: .4byte 0x02000044 -_08103E00: .4byte sub_8103EE4 - thumb_func_end sub_8103DC8 - - thumb_func_start sub_8103E04 -sub_8103E04: @ 8103E04 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08103E30 @ =0x02000000 - adds r1, 0x44 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08103E34 @ =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x30] - movs r1, 0x4 - strh r1, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - movs r1, 0x2 - strh r1, [r0, 0x38] - strh r2, [r0, 0x3C] - bx lr - .align 2, 0 -_08103E30: .4byte 0x02000000 -_08103E34: .4byte gSprites - thumb_func_end sub_8103E04 - - thumb_func_start sub_8103E38 -sub_8103E38: @ 8103E38 - push {r4,r5,lr} - movs r2, 0 - ldr r4, _08103E60 @ =0x02000044 - ldr r3, _08103E64 @ =gSprites -_08103E40: - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r3 - movs r5, 0x30 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r5, 0x32 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r0, 0 - b _08103E74 - .align 2, 0 -_08103E60: .4byte 0x02000044 -_08103E64: .4byte gSprites -_08103E68: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _08103E40 - movs r0, 0x1 -_08103E74: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E38 - - thumb_func_start sub_8103E7C -sub_8103E7C: @ 8103E7C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08103E94 @ =0x02000044 -_08103E82: - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8103EAC - lsls r0, 24 - cmp r0, 0 - bne _08103E98 - movs r0, 0 - b _08103EA4 - .align 2, 0 -_08103E94: .4byte 0x02000044 -_08103E98: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103E82 - movs r0, 0x1 -_08103EA4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E7C - - thumb_func_start sub_8103EAC -sub_8103EAC: @ 8103EAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08103EC8 @ =gSprites - adds r1, r0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08103ECC - movs r0, 0x1 - b _08103EDE - .align 2, 0 -_08103EC8: .4byte gSprites -_08103ECC: - ldrh r2, [r1, 0x3C] - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08103EDA - movs r0, 0 - strh r0, [r1, 0x30] -_08103EDA: - lsls r0, r2, 24 - lsrs r0, 24 -_08103EDE: - pop {r1} - bx r1 - thumb_func_end sub_8103EAC - - thumb_func_start sub_8103EE4 -sub_8103EE4: @ 8103EE4 - push {r4-r7,lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F66 - ldrh r0, [r2, 0x34] - subs r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08103F4E - movs r0, 0 - strh r0, [r2, 0x3C] - movs r6, 0x1 - strh r6, [r2, 0x34] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r0, r1, r3 - strh r0, [r2, 0x36] - movs r4, 0x4 - ldrh r5, [r2, 0x32] - movs r7, 0x32 - ldrsh r3, [r2, r7] - cmp r3, 0 - beq _08103F20 - movs r4, 0x8 -_08103F20: - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bgt _08103F38 - strh r6, [r2, 0x3C] - negs r0, r1 - strh r0, [r2, 0x38] - cmp r3, 0 - beq _08103F4E - subs r0, r5, 0x1 - strh r0, [r2, 0x32] - b _08103F40 -_08103F38: - cmp r0, r4 - blt _08103F40 - negs r0, r1 - strh r0, [r2, 0x38] -_08103F40: - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F4E - ldrh r0, [r2, 0x34] - lsls r0, 1 - strh r0, [r2, 0x34] -_08103F4E: - ldr r1, _08103F6C @ =gUnknown_083EDD30 - movs r3, 0x2E - ldrsh r0, [r2, r3] - adds r0, r1 - ldrb r0, [r0] - ldrh r3, [r2, 0x36] - lsls r3, 24 - lsrs r3, 24 - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyPaletteRGBComponents -_08103F66: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103F6C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103EE4 - - thumb_func_start sub_8103F70 -sub_8103F70: @ 8103F70 - push {r4,lr} - ldr r4, _08103F98 @ =sub_8103FE8 - adds r0, r4, 0 - movs r1, 0x6 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103F9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1 - strh r2, [r1, 0xE] - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103F98: .4byte sub_8103FE8 -_08103F9C: .4byte gTasks - thumb_func_end sub_8103F70 - - thumb_func_start sub_8103FA0 -sub_8103FA0: @ 8103FA0 - push {lr} - ldr r0, _08103FC4 @ =sub_8103FE8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08103FC8 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08103FCC - movs r0, 0 - b _08103FE0 - .align 2, 0 -_08103FC4: .4byte sub_8103FE8 -_08103FC8: .4byte gTasks -_08103FCC: - adds r0, r2, 0 - bl DestroyTask - ldr r0, _08103FE4 @ =gUnknown_083EDDAC - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 -_08103FE0: - pop {r1} - bx r1 - .align 2, 0 -_08103FE4: .4byte gUnknown_083EDDAC - thumb_func_end sub_8103FA0 - - thumb_func_start sub_8103FE8 -sub_8103FE8: @ 8103FE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08104040 @ =gTasks - adds r2, r1, r0 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08104026 - movs r0, 0x4 - strh r0, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r3, [r2, 0xC] - adds r0, r1, r3 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _08104022 - cmp r0, 0x2 - bne _08104026 -_08104022: - negs r0, r1 - strh r0, [r2, 0xE] -_08104026: - ldr r0, _08104044 @ =gUnknown_083EDDA0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08104040: .4byte gTasks -_08104044: .4byte gUnknown_083EDDA0 - thumb_func_end sub_8103FE8 - - thumb_func_start sub_8104048 -sub_8104048: @ 8104048 - push {lr} - ldr r0, _0810405C @ =sub_81040E8 - movs r1, 0x8 - bl CreateTask - ldr r1, _08104060 @ =0x02000000 - adds r1, 0x3E - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0810405C: .4byte sub_81040E8 -_08104060: .4byte 0x02000000 - thumb_func_end sub_8104048 - - thumb_func_start sub_8104064 -sub_8104064: @ 8104064 - push {r4,lr} - ldr r0, _08104090 @ =0x02000000 - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08104094 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r1, 0x1 - strh r1, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - strh r1, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104090: .4byte 0x02000000 -_08104094: .4byte gTasks - thumb_func_end sub_8104064 - - thumb_func_start sub_8104098 -sub_8104098: @ 8104098 - push {r4,lr} - ldr r0, _081040C0 @ =0x02000000 - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _081040C4 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r0, 0x3 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081040C0: .4byte 0x02000000 -_081040C4: .4byte gTasks - thumb_func_end sub_8104098 - - thumb_func_start sub_81040C8 -sub_81040C8: @ 81040C8 - ldr r2, _081040E0 @ =gTasks - ldr r0, _081040E4 @ =0x02000000 - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_081040E0: .4byte gTasks -_081040E4: .4byte 0x02000000 - thumb_func_end sub_81040C8 - - thumb_func_start sub_81040E8 -sub_81040E8: @ 81040E8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104110 @ =gUnknown_083ECBB4 - ldr r2, _08104114 @ =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 -_08104110: .4byte gUnknown_083ECBB4 -_08104114: .4byte gTasks - thumb_func_end sub_81040E8 - - thumb_func_start nullsub_68 -nullsub_68: @ 8104118 - bx lr - thumb_func_end nullsub_68 - - thumb_func_start sub_810411C -sub_810411C: @ 810411C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - lsls r0, 19 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - asrs r0, 16 - movs r1, 0x14 - bl sub_8105B1C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810411C - - thumb_func_start sub_8104144 -sub_8104144: @ 8104144 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08104174 @ =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0810419E - ldrh r1, [r4, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _08104178 - movs r0, 0x1 - b _0810417E - .align 2, 0 -_08104174: .4byte gSprites -_08104178: - cmp r1, 0x10 - bne _0810417E - movs r0, 0x2 -_0810417E: - lsls r1, r2, 16 - asrs r1, 15 - ldr r2, _081041A4 @ =0x0600e800 - adds r1, r2 - adds r1, 0x80 - ldr r2, _081041A8 @ =gUnknown_083ECBC4 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r4, 0xC] - bl sub_8105B88 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x26] -_0810419E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081041A4: .4byte 0x0600e800 -_081041A8: .4byte gUnknown_083ECBC4 - thumb_func_end sub_8104144 - - thumb_func_start sub_81041AC -sub_81041AC: @ 81041AC - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _081041C6 - movs r2, 0x1 - b _081041CC -_081041C6: - cmp r1, 0x10 - bne _081041CC - movs r2, 0x2 -_081041CC: - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _081041F0 - lsls r0, r4, 16 - asrs r0, 15 - ldr r1, _08104214 @ =0x0600e800 - adds r0, r1 - adds r0, 0x80 - ldr r1, _08104218 @ =gUnknown_083ECBC4 - lsls r2, 2 - adds r1, 0x2 - adds r2, r1 - ldrh r1, [r2] - strh r1, [r0] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] -_081041F0: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _08104202 - movs r0, 0 - strh r0, [r3, 0xC] -_08104202: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0810420E - strh r0, [r3, 0x8] - strh r0, [r3, 0x26] -_0810420E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104214: .4byte 0x0600e800 -_08104218: .4byte gUnknown_083ECBC4 - thumb_func_end sub_81041AC - - thumb_func_start sub_810421C -sub_810421C: @ 810421C - push {lr} - movs r1, 0x2 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0 -_08104226: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104226 - pop {r0} - bx r0 - thumb_func_end sub_810421C - - thumb_func_start sub_810423C -sub_810423C: @ 810423C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x3 - ldr r6, _08104268 @ =0x0600e800 - movs r4, 0 - ldr r0, _0810426C @ =gTasks - mov r8, r0 - ldr r1, _08104270 @ =0x02000000 - mov r12, r1 - cmp r4, r5 - bge _081042A6 - ldr r7, _08104274 @ =gUnknown_083ECBC4 -_0810425A: - movs r3, 0 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - bne _08104278 - movs r3, 0x1 - b _0810427E - .align 2, 0 -_08104268: .4byte 0x0600e800 -_0810426C: .4byte gTasks -_08104270: .4byte 0x02000000 -_08104274: .4byte gUnknown_083ECBC4 -_08104278: - cmp r0, 0xF - bne _0810427E - movs r3, 0x2 -_0810427E: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, r5 - blt _0810425A -_081042A6: - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - bgt _081042F0 - ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2 -_081042B0: - movs r3, 0 - asrs r0, r1, 16 - cmp r0, 0 - bne _081042C0 - movs r3, 0x1 - b _081042C6 - .align 2, 0 -_081042BC: .4byte gUnknown_083ECBC4 + 0x2 -_081042C0: - cmp r0, 0xF - bne _081042C6 - movs r3, 0x2 -_081042C6: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - ble _081042B0 -_081042F0: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r8 - strh r5, [r0, 0xA] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810423C - - thumb_func_start sub_810430C -sub_810430C: @ 810430C - push {r4,lr} - ldr r4, _08104328 @ =sub_810434C - adds r0, r4, 0 - movs r1, 0x7 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104328: .4byte sub_810434C - thumb_func_end sub_810430C - - thumb_func_start sub_810432C -sub_810432C: @ 810432C - push {lr} - ldr r0, _08104340 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104344 - movs r0, 0 - b _08104346 - .align 2, 0 -_08104340: .4byte sub_810434C -_08104344: - movs r0, 0x1 -_08104346: - pop {r1} - bx r1 - thumb_func_end sub_810432C - - thumb_func_start sub_810434C -sub_810434C: @ 810434C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104374 @ =gUnknown_083ECBD0 - ldr r2, _08104378 @ =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 -_08104374: .4byte gUnknown_083ECBD0 -_08104378: .4byte gTasks - thumb_func_end sub_810434C - - thumb_func_start sub_810437C -sub_810437C: @ 810437C - push {lr} - ldr r1, _081043DC @ =0x02000000 - movs r2, 0 - strb r2, [r1, 0xA] - strh r2, [r1, 0x14] - strh r2, [r1, 0x16] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - movs r1, 0x1E - strh r1, [r0, 0xC] - movs r1, 0xA0 - lsls r1, 3 - strh r1, [r0, 0x10] - ldr r0, _081043E0 @ =gSpriteCoordOffsetX - strh r2, [r0] - ldr r0, _081043E4 @ =gSpriteCoordOffsetY - strh r2, [r0] - ldr r0, _081043E8 @ =REG_BG1HOFS - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - movs r0, 0x1E - movs r1, 0 - bl sub_8104A40 - bl sub_81051C0 - bl sub_8105100 - bl sub_81052EC - bl sub_81053A0 - bl sub_810545C - bl sub_8102680 - bl StopMapMusic - movs r0, 0xC4 - lsls r0, 1 - bl PlayNewMapMusic - pop {r0} - bx r0 - .align 2, 0 -_081043DC: .4byte 0x02000000 -_081043E0: .4byte gSpriteCoordOffsetX -_081043E4: .4byte gSpriteCoordOffsetY -_081043E8: .4byte REG_BG1HOFS - thumb_func_end sub_810437C - - thumb_func_start sub_81043EC -sub_81043EC: @ 81043EC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810445C @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r4, 0xA] - adds r2, 0x8 - strh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xF0 - movs r1, 0xFF - ands r0, r1 - lsrs r3, r0, 3 - ldr r1, _08104460 @ =REG_BG1HOFS - ldr r0, _08104464 @ =0x000001ff - ands r2, r0 - strh r2, [r1] - adds r2, r3, 0 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r2, r0 - beq _08104438 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x12 - bgt _08104438 - strh r3, [r4, 0xC] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 19 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - adds r0, r2, 0 - bl sub_8104A40 -_08104438: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0xC7 - ble _0810444A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xE] -_0810444A: - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810445C: .4byte gSpriteCoordOffsetX -_08104460: .4byte REG_BG1HOFS -_08104464: .4byte 0x000001ff - thumb_func_end sub_81043EC - - thumb_func_start sub_8104468 -sub_8104468: @ 8104468 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104492 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105578 - bl sub_81056F0 -_08104492: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104468 - - thumb_func_start sub_8104498 -sub_8104498: @ 8104498 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r7, r0, 0 - ldr r1, _08104534 @ =gUnknown_083ECC1C - mov r0, sp - movs r2, 0x4 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _08104538 @ =gUnknown_083ECC20 - movs r2, 0x8 - bl memcpy - add r6, sp, 0xC - ldr r1, _0810453C @ =gUnknown_083ECC28 - adds r0, r6, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r7, 0x10] - subs r0, 0x4 - strh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - movs r5, 0x4 - subs r5, r0 - lsls r4, r5, 1 - add r8, r4 - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_8105688 - adds r6, r4 - movs r1, 0 - ldrsh r0, [r6, r1] - bl sub_81057E8 - ldr r0, _08104540 @ =0x02000000 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104544 @ =gSprites - adds r0, r1 - mov r2, sp - adds r1, r2, r5 - ldrb r1, [r1] - bl StartSpriteAnimIfDifferent - movs r1, 0x10 - ldrsh r0, [r7, r1] - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bgt _08104526 - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - strh r1, [r7, 0x10] - movs r0, 0 - strh r0, [r7, 0x12] -_08104526: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104534: .4byte gUnknown_083ECC1C -_08104538: .4byte gUnknown_083ECC20 -_0810453C: .4byte gUnknown_083ECC28 -_08104540: .4byte 0x02000000 -_08104544: .4byte gSprites - thumb_func_end sub_8104498 - - thumb_func_start sub_8104548 -sub_8104548: @ 8104548 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0810458A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] - movs r0, 0x2 - bl sub_81057E8 - ldr r0, _08104590 @ =0x02000000 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104594 @ =gSprites - adds r0, r1 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent -_0810458A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104590: .4byte 0x02000000 -_08104594: .4byte gSprites - thumb_func_end sub_8104548 - - thumb_func_start sub_8104598 -sub_8104598: @ 8104598 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x80 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _081045C4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] -_081045C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104598 - - thumb_func_start sub_81045CC -sub_81045CC: @ 81045CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _08104634 - movs r0, 0 - strh r0, [r4, 0x12] - ldr r1, _0810460C @ =0x02000000 - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _08104610 - ldrb r1, [r1, 0xA] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0810462E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C - .align 2, 0 -_0810460C: .4byte 0x02000000 -_08104610: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0810461E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C -_0810461E: - ldrh r0, [r4, 0x14] - bl sub_81026DC - lsls r0, 24 - cmp r0, 0 - beq _0810462E - movs r0, 0xE -_0810462C: - strh r0, [r4, 0x8] -_0810462E: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] -_08104634: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81045CC - - thumb_func_start sub_810463C -sub_810463C: @ 810463C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _08104660 @ =0x02000000 - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r0, 0 - beq _08104664 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D5C - b _08104688 - .align 2, 0 -_08104660: .4byte 0x02000000 -_08104664: - movs r0, 0x1 - bl sub_8102C48 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x5] - cmp r0, r1 - beq _08104692 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 -_08104688: - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] -_08104692: - lsls r0, r5, 16 - asrs r5, r0, 16 - cmp r5, 0 - bne _081046B4 - movs r0, 0x1 - bl sub_8102C48 - ldr r1, _081046BC @ =0x02000000 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x5] - cmp r0, r1 - bne _081046B4 - strh r5, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081046B4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081046BC: .4byte 0x02000000 - thumb_func_end sub_810463C - - thumb_func_start sub_81046C0 -sub_81046C0: @ 81046C0 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - movs r7, 0 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104758 - bl StopMapMusic - bl sub_81056C0 - bl sub_8105804 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r5, _08104710 @ =0x02000000 - ldrb r0, [r5, 0x5] - cmp r0, 0 - bne _0810471C - movs r0, 0xA0 - strh r0, [r4, 0x10] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104714 @ =gSprites - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldr r0, _08104718 @ =0x00000187 - bl PlayFanfare - b _08104758 - .align 2, 0 -_08104710: .4byte 0x02000000 -_08104714: .4byte gSprites -_08104718: .4byte 0x00000187 -_0810471C: - movs r0, 0xC0 - strh r0, [r4, 0x10] - adds r6, r5, 0 - adds r6, 0x3F - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08104760 @ =gSprites - adds r0, r4 - movs r1, 0x4 - bl StartSpriteAnimIfDifferent - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2B - strb r7, [r0] - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _08104750 - bl sub_8104098 - strb r7, [r5, 0x2] -_08104750: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare -_08104758: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104760: .4byte gSprites - thumb_func_end sub_81046C0 - - thumb_func_start sub_8104764 -sub_8104764: @ 8104764 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0810477C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0810478C -_0810477C: - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _0810478C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0810478C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104764 - - thumb_func_start sub_8104794 -sub_8104794: @ 8104794 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _081047D4 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r3, 0xA] - adds r2, 0x8 - strh r2, [r3, 0xA] - ldrh r0, [r3, 0xE] - adds r0, 0x8 - strh r0, [r3, 0xE] - movs r1, 0xA - ldrsh r0, [r3, r1] - subs r0, 0x8 - movs r1, 0xFF - ands r0, r1 - lsrs r4, r0, 3 - ldr r1, _081047D8 @ =REG_BG1HOFS - ldr r0, _081047DC @ =0x000001ff - ands r2, r0 - strh r2, [r1] - ldrh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 19 - cmp r0, 0x19 - bgt _081047E0 - adds r0, r4, 0 - bl sub_8104A88 - b _081047E6 - .align 2, 0 -_081047D4: .4byte gSpriteCoordOffsetX -_081047D8: .4byte REG_BG1HOFS -_081047DC: .4byte 0x000001ff -_081047E0: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_081047E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104794 - - thumb_func_start sub_81047EC -sub_81047EC: @ 81047EC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _08104834 @ =0x02000000 - movs r6, 0 - strb r6, [r4, 0xB] - ldrb r0, [r4, 0x5] - strb r0, [r4, 0xA] - ldr r0, _08104838 @ =gSpriteCoordOffsetX - strh r6, [r0] - ldr r0, _0810483C @ =REG_BG1HOFS - strh r6, [r0] - movs r0, 0x8 - strh r0, [r4, 0x1A] - bl sub_810514C - bl sub_81054B8 - bl sub_8105524 - adds r0, r4, 0 - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _08104844 - ldr r0, _08104840 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _0810485A - .align 2, 0 -_08104834: .4byte 0x02000000 -_08104838: .4byte gSpriteCoordOffsetX -_0810483C: .4byte REG_BG1HOFS -_08104840: .4byte sub_810434C -_08104844: - movs r0, 0x4 - bl sub_8104CAC - bl dp15_jump_random_unknown - strh r0, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0810485A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81047EC - - thumb_func_start sub_8104860 -sub_8104860: @ 8104860 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _0810487C @ =0x02000000 - ldrh r0, [r5, 0x1A] - lsls r6, r0, 16 - asrs r1, r6, 16 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08104880 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081048A2 - .align 2, 0 -_0810487C: .4byte 0x02000000 -_08104880: - movs r1, 0x1C - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _081048A2 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081048A2 - asrs r0, r6, 17 - strh r0, [r5, 0x1A] -_081048A2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8104860 - - thumb_func_start sub_81048A8 -sub_81048A8: @ 81048A8 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081048C2 - ldr r0, _081048C8 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081048C2: - pop {r0} - bx r0 - .align 2, 0 -_081048C8: .4byte sub_810434C - thumb_func_end sub_81048A8 - - thumb_func_start sub_81048CC -sub_81048CC: @ 81048CC - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81054B8 - bl sub_81056C0 - bl sub_8105804 - bl sub_8105854 - ldr r5, _08104934 @ =gSprites - ldr r3, _08104938 @ =0x02000000 - adds r0, r3, 0 - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r3, 0x3F - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - bl StopMapMusic - ldr r0, _0810493C @ =0x00000187 - bl PlayFanfare - movs r0, 0xB2 - bl PlaySE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104934: .4byte gSprites -_08104938: .4byte 0x02000000 -_0810493C: .4byte 0x00000187 - thumb_func_end sub_81048CC - - thumb_func_start sub_8104940 -sub_8104940: @ 8104940 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _081049B8 @ =gSpriteCoordOffsetY - ldrh r1, [r4, 0x10] - strh r1, [r0] - ldr r0, _081049BC @ =REG_BG1VOFS - strh r1, [r0] - ldrh r1, [r4, 0x12] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810495E - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] -_0810495E: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _08104974 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 17 - strh r0, [r4, 0x10] -_08104974: - movs r0, 0x10 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081049B0 - bl sub_81058A0 - bl sub_81058C4 - bl sub_8105284 - bl sub_81059E8 - ldr r2, _081049C0 @ =gSprites - ldr r0, _081049C4 @ =0x02000000 - adds r0, 0x4E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - strh r5, [r4, 0x12] -_081049B0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081049B8: .4byte gSpriteCoordOffsetY -_081049BC: .4byte REG_BG1VOFS -_081049C0: .4byte gSprites -_081049C4: .4byte 0x02000000 - thumb_func_end sub_8104940 - - thumb_func_start sub_81049C8 -sub_81049C8: @ 81049C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _081049F0 @ =gSpriteCoordOffsetY - movs r1, 0 - strh r1, [r0] - ldr r0, _081049F4 @ =REG_BG1VOFS - strh r1, [r0] - bl sub_8105ACC - lsls r0, 24 - cmp r0, 0 - beq _081049EA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105AEC -_081049EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081049F0: .4byte gSpriteCoordOffsetY -_081049F4: .4byte REG_BG1VOFS - thumb_func_end sub_81049C8 - - thumb_func_start sub_81049F8 -sub_81049F8: @ 81049F8 - push {lr} - ldr r0, _08104A30 @ =gSpriteCoordOffsetX - movs r1, 0 - strh r1, [r0] - ldr r0, _08104A34 @ =REG_BG1HOFS - strh r1, [r0] - ldr r0, _08104A38 @ =0x02000000 - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - bl sub_810514C - bl sub_8105554 - bl sub_8105524 - bl sub_81059B8 - ldr r0, _08104A3C @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104A30: .4byte gSpriteCoordOffsetX -_08104A34: .4byte REG_BG1HOFS -_08104A38: .4byte 0x02000000 -_08104A3C: .4byte sub_810434C - thumb_func_end sub_81049F8 - - thumb_func_start sub_8104A40 -sub_8104A40: @ 8104A40 - push {r4-r7,lr} - movs r3, 0x4 - ldr r7, _08104A80 @ =gReelTimeWindowTilemap - lsls r1, 16 - asrs r5, r1, 16 - lsls r0, 16 - asrs r4, r0, 16 - ldr r6, _08104A84 @ =0x0600e000 -_08104A50: - lsls r2, r3, 16 - asrs r2, 16 - subs r1, r2, 0x4 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5, r0 - lsls r0, 1 - adds r0, r7 - ldrh r1, [r0] - lsls r0, r2, 5 - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - cmp r2, 0xE - ble _08104A50 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104A80: .4byte gReelTimeWindowTilemap -_08104A84: .4byte 0x0600e000 - thumb_func_end sub_8104A40 - - thumb_func_start sub_8104A88 -sub_8104A88: @ 8104A88 - push {r4,r5,lr} - movs r2, 0x4 - lsls r0, 16 - asrs r3, r0, 16 - ldr r5, _08104AB4 @ =0x0600e000 - movs r4, 0 -_08104A94: - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r2, r1, 16 - asrs r1, 16 - cmp r1, 0xE - ble _08104A94 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AB4: .4byte 0x0600e000 - thumb_func_end sub_8104A88 - - thumb_func_start sub_8104AB8 -sub_8104AB8: @ 8104AB8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08104AE4 @ =sub_8104B0C - adds r0, r5, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08104AE8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AE4: .4byte sub_8104B0C -_08104AE8: .4byte gTasks - thumb_func_end sub_8104AB8 - - thumb_func_start sub_8104AEC -sub_8104AEC: @ 8104AEC - push {lr} - ldr r0, _08104B00 @ =sub_8104B0C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104B04 - movs r0, 0 - b _08104B06 - .align 2, 0 -_08104B00: .4byte sub_8104B0C -_08104B04: - movs r0, 0x1 -_08104B06: - pop {r1} - bx r1 - thumb_func_end sub_8104AEC - - thumb_func_start sub_8104B0C -sub_8104B0C: @ 8104B0C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104B34 @ =gUnknown_083ECC30 - ldr r2, _08104B38 @ =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 -_08104B34: .4byte gUnknown_083ECC30 -_08104B38: .4byte gTasks - thumb_func_end sub_8104B0C - - thumb_func_start sub_8104B3C -sub_8104B3C: @ 8104B3C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104B3C - - thumb_func_start sub_8104B60 -sub_8104B60: @ 8104B60 - push {lr} - adds r2, r0, 0 - ldr r0, _08104B7C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08104B76 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08104B76: - pop {r0} - bx r0 - .align 2, 0 -_08104B7C: .4byte gPaletteFade - thumb_func_end sub_8104B60 - - thumb_func_start sub_8104B80 -sub_8104B80: @ 8104B80 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8104DA4 - bl sub_81065DC - ldr r0, _08104BC0 @ =gWindowConfig_81E7144 - bl BasicInitMenuWindow - ldr r0, _08104BC4 @ =gOtherText_ReelTime - movs r1, 0xA - movs r2, 0x20 - movs r3, 0x1 - bl MenuPrint_PixelCoords - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BC0: .4byte gWindowConfig_81E7144 -_08104BC4: .4byte gOtherText_ReelTime - thumb_func_end sub_8104B80 - - thumb_func_start sub_8104BC8 -sub_8104BC8: @ 8104BC8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _08104BF8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _08104BF0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08104BF0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BF8: .4byte gMain - thumb_func_end sub_8104BC8 - - thumb_func_start sub_8104BFC -sub_8104BFC: @ 8104BFC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl MenuZeroFillScreen - ldr r0, _08104C3C @ =gWindowConfig_81E7128 - bl BasicInitMenuWindow - bl sub_81064B8 - ldrb r0, [r4, 0xA] - bl sub_8104CAC - ldr r0, _08104C40 @ =0x02000000 - ldrb r0, [r0, 0x2] - bl sub_810423C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104C3C: .4byte gWindowConfig_81E7128 -_08104C40: .4byte 0x02000000 - thumb_func_end sub_8104BFC - - thumb_func_start sub_8104C44 -sub_8104C44: @ 8104C44 - push {lr} - ldr r0, _08104C58 @ =sub_8104B0C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104C58: .4byte sub_8104B0C - thumb_func_end sub_8104C44 - - thumb_func_start sub_8104C5C -sub_8104C5C: @ 8104C5C - push {lr} - ldr r0, _08104C9C @ =sub_8104E74 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08104CA0 @ =0x02000000 - adds r0, 0x3D - strb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104CA4 @ =gTasks - adds r0, r1 - ldr r1, _08104CA8 @ =0x0000ffff - strh r1, [r0, 0xA] - movs r1, 0x4 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0x40 -_08104C86: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104C86 - pop {r0} - bx r0 - .align 2, 0 -_08104C9C: .4byte sub_8104E74 -_08104CA0: .4byte 0x02000000 -_08104CA4: .4byte gTasks -_08104CA8: .4byte 0x0000ffff - thumb_func_end sub_8104C5C - - thumb_func_start sub_8104CAC -sub_8104CAC: @ 8104CAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8104DA4 - ldr r0, _08104D24 @ =0x02000000 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104D28 @ =gTasks - adds r7, r0, r1 - strh r4, [r7, 0xA] - movs r6, 0 - ldr r1, _08104D2C @ =gUnknown_083ED048 - lsls r5, r4, 2 - adds r0, r5, r1 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xFF - beq _08104D18 - mov r8, r1 -_08104CE0: - mov r0, r8 - adds r4, r5, r0 - ldr r0, [r4] - lsls r2, r6, 2 - adds r2, r0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - movs r3, 0x2 - ldrsh r2, [r2, r3] - bl sub_8105BB4 - lsls r0, 24 - lsrs r0, 24 - adds r2, r6, 0x4 - lsls r2, 1 - adds r1, r7, 0 - adds r1, 0x8 - adds r1, r2 - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, [r4] - lsls r0, r6, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08104CE0 -_08104D18: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104D24: .4byte 0x02000000 -_08104D28: .4byte gTasks -_08104D2C: .4byte gUnknown_083ED048 - thumb_func_end sub_8104CAC - - thumb_func_start sub_8104D30 -sub_8104D30: @ 8104D30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r1 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08104D84 @ =0x02000000 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104D88 @ =gTasks - adds r0, r1 - mov r12, r0 - movs r5, 0x4 - lsls r4, 16 - asrs r6, r4, 16 - lsls r2, 16 - lsls r3, 16 -_08104D5C: - lsls r0, r5, 1 - mov r1, r12 - adds r1, 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _08104D8C - str r6, [sp] - adds r0, r7, 0 - mov r1, r8 - asrs r2, 16 - asrs r3, 16 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _08104D96 - .align 2, 0 -_08104D84: .4byte 0x02000000 -_08104D88: .4byte gTasks -_08104D8C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104D5C -_08104D96: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8104D30 - - thumb_func_start sub_8104DA4 -sub_8104DA4: @ 8104DA4 - push {r4-r6,lr} - ldr r0, _08104E04 @ =0x02000000 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E08 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldr r0, _08104E0C @ =0x0000ffff - cmp r1, r0 - beq _08104DCE - ldr r0, _08104E10 @ =gUnknown_083ED064 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08104DCE: - movs r5, 0x4 - adds r6, r4, 0 - adds r6, 0x8 -_08104DD4: - lsls r0, r5, 1 - adds r4, r6, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _08104DF4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104E14 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0x40 - strh r0, [r4] -_08104DF4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104DD4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104E04: .4byte 0x02000000 -_08104E08: .4byte gTasks -_08104E0C: .4byte 0x0000ffff -_08104E10: .4byte gUnknown_083ED064 -_08104E14: .4byte gSprites - thumb_func_end sub_8104DA4 - - thumb_func_start sub_8104E18 -sub_8104E18: @ 8104E18 - push {r4,r5,lr} - ldr r0, _08104E54 @ =0x02000000 - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E58 @ =gTasks - adds r0, r1 - movs r2, 0x4 - adds r3, r0, 0 - adds r3, 0x8 - ldr r4, _08104E5C @ =gSprites -_08104E32: - lsls r0, r2, 1 - adds r1, r3, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0x40 - beq _08104E60 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r5, 0x3C - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08104E60 - movs r0, 0 - b _08104E6C - .align 2, 0 -_08104E54: .4byte 0x02000000 -_08104E58: .4byte gTasks -_08104E5C: .4byte gSprites -_08104E60: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08104E32 - movs r0, 0x1 -_08104E6C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8104E18 - - thumb_func_start sub_8104E74 -sub_8104E74: @ 8104E74 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104E9C @ =gUnknown_083ECC54 - ldr r2, _08104EA0 @ =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 -_08104E9C: .4byte gUnknown_083ECC54 -_08104EA0: .4byte gTasks - thumb_func_end sub_8104E74 - - thumb_func_start nullsub_69 -nullsub_69: @ 8104EA4 - bx lr - thumb_func_end nullsub_69 - - thumb_func_start sub_8104EA8 -sub_8104EA8: @ 8104EA8 - push {r4-r7,lr} - movs r6, 0 - movs r0, 0x30 -_08104EAE: - movs r4, 0 - lsls r5, r0, 16 - lsls r7, r6, 16 -_08104EB4: - ldr r0, _08104F0C @ =gSpriteTemplate_83ED414 - asrs r1, r5, 16 - movs r2, 0 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08104F10 @ =gSprites - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - strh r6, [r1, 0x2E] - strh r4, [r1, 0x30] - ldr r0, _08104F14 @ =0x0000ffff - strh r0, [r1, 0x34] - lsls r0, r4, 16 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x77 - ble _08104EB4 - movs r2, 0x80 - lsls r2, 9 - adds r1, r7, r2 - movs r2, 0xA0 - lsls r2, 14 - adds r0, r5, r2 - lsrs r0, 16 - lsrs r6, r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _08104EAE - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104F0C: .4byte gSpriteTemplate_83ED414 -_08104F10: .4byte gSprites -_08104F14: .4byte 0x0000ffff - thumb_func_end sub_8104EA8 - - thumb_func_start sub_8104F18 -sub_8104F18: @ 8104F18 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _08104F88 @ =0x02000000 - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x1C - adds r1, r0 - ldrh r0, [r5, 0x30] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x32] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r5, 0x32] - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r4, 0x22 - adds r1, r4 - ldrh r1, [r1] - adds r1, 0x1C - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - bl GetSpriteTileStartByTag - adds r1, r5, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r5, 0 - bl SetSpriteSheetFrameTileNum - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104F88: .4byte 0x02000000 - thumb_func_end sub_8104F18 - - thumb_func_start sub_8104F8C -sub_8104F8C: @ 8104F8C - push {r4-r6,lr} - movs r4, 0xCB - movs r5, 0x1 - ldr r6, _08104FF0 @ =0x0000270f -_08104F94: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104F94 - movs r4, 0xEB - movs r5, 0x1 - ldr r6, _08104FF0 @ =0x0000270f -_08104FC2: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0x1 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104FC2 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104FF0: .4byte 0x0000270f - thumb_func_end sub_8104F8C - - thumb_func_start sub_8104FF4 -sub_8104FF4: @ 8104FF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08105060 @ =gSpriteTemplate_83ED42C - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xD - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08105064 @ =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x2E] - strh r4, [r2, 0x30] - lsls r4, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - strh r0, [r2, 0x32] - ldr r0, _08105068 @ =0x0000ffff - strh r0, [r2, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105060: .4byte gSpriteTemplate_83ED42C -_08105064: .4byte gSprites -_08105068: .4byte 0x0000ffff - thumb_func_end sub_8104FF4 - - thumb_func_start sub_810506C -sub_810506C: @ 810506C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _081050C0 @ =0x02000000 - ldrh r2, [r1, 0xC] - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0810507E - ldrh r2, [r1, 0xE] -_0810507E: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, r2 - beq _081050B8 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x32] - adds r0, r2, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r2, 0 - bl __udivsi3 - lsls r0, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r0, r3 - lsrs r2, r0, 16 - adds r0, r2, 0 - bl GetSpriteTileStartByTag - adds r1, r4, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r4, 0 - bl SetSpriteSheetFrameTileNum -_081050B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081050C0: .4byte 0x02000000 - thumb_func_end sub_810506C - - thumb_func_start sub_81050C4 -sub_81050C4: @ 81050C4 - push {lr} - ldr r0, _081050F4 @ =gSpriteTemplate_83ED444 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0xF - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081050F8 @ =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] - ldr r1, _081050FC @ =gUnknown_083ED704 - bl SetSubspriteTables - pop {r0} - bx r0 - .align 2, 0 -_081050F4: .4byte gSpriteTemplate_83ED444 -_081050F8: .4byte gSprites -_081050FC: .4byte gUnknown_083ED704 - thumb_func_end sub_81050C4 - - thumb_func_start sub_8105100 -sub_8105100: @ 8105100 - push {lr} - ldr r0, _08105140 @ =gSpriteTemplate_83ED45C - movs r1, 0x8C - lsls r1, 1 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08105144 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - ldr r1, _08105148 @ =0x02000000 - adds r1, 0x3F - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105140: .4byte gSpriteTemplate_83ED45C -_08105144: .4byte gSprites -_08105148: .4byte 0x02000000 - thumb_func_end sub_8105100 - - thumb_func_start sub_810514C -sub_810514C: @ 810514C - push {lr} - ldr r0, _08105168 @ =0x02000000 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810516C @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105168: .4byte 0x02000000 -_0810516C: .4byte gSprites - thumb_func_end sub_810514C - - thumb_func_start sub_8105170 -sub_8105170: @ 8105170 - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0x4 - bne _081051B6 - movs r0, 0x8 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _081051A4 - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B2 - b _081051B6 -_081051A4: - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B6 -_081051B2: - ldr r0, _081051BC @ =0x0000fff8 - strh r0, [r2, 0x26] -_081051B6: - pop {r0} - bx r0 - .align 2, 0 -_081051BC: .4byte 0x0000fff8 - thumb_func_end sub_8105170 - - thumb_func_start sub_81051C0 -sub_81051C0: @ 81051C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0810526C @ =gSpriteTemplate_83ED474 - movs r7, 0xB8 - lsls r7, 1 - adds r1, r7, 0 - movs r2, 0x34 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105270 @ =gSprites - mov r10, r1 - adds r2, r0, r1 - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r3, 0x4 - mov r9, r3 - mov r1, r9 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105274 @ =gUnknown_083ED73C - adds r0, r2, 0 - bl SetSubspriteTables - ldr r6, _08105278 @ =0x02000000 - adds r0, r6, 0 - adds r0, 0x49 - strb r4, [r0] - ldr r0, _0810527C @ =gSpriteTemplate_83ED48C - adds r1, r7, 0 - movs r2, 0x54 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - mov r1, r10 - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r3, r9 - orrs r5, r3 - strb r5, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105280 @ =gUnknown_083ED75C - adds r0, r2, 0 - bl SetSubspriteTables - adds r6, 0x4A - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810526C: .4byte gSpriteTemplate_83ED474 -_08105270: .4byte gSprites -_08105274: .4byte gUnknown_083ED73C -_08105278: .4byte 0x02000000 -_0810527C: .4byte gSpriteTemplate_83ED48C -_08105280: .4byte gUnknown_083ED75C - thumb_func_end sub_81051C0 - - thumb_func_start sub_8105284 -sub_8105284: @ 8105284 - push {r4,lr} - ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4 - ldr r1, _081052DC @ =gSpriteCoordOffsetX - ldrh r2, [r1] - movs r1, 0xA8 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x50 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081052E0 @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldr r1, _081052E4 @ =gUnknown_083ED78C - bl SetSubspriteTables - ldr r0, _081052E8 @ =0x02000000 - adds r0, 0x42 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081052D8: .4byte gSpriteTemplate_83ED4A4 -_081052DC: .4byte gSpriteCoordOffsetX -_081052E0: .4byte gSprites -_081052E4: .4byte gUnknown_083ED78C -_081052E8: .4byte 0x02000000 - thumb_func_end sub_8105284 - - thumb_func_start sub_81052EC -sub_81052EC: @ 81052EC - push {r4-r7,lr} - movs r4, 0 - movs r5, 0 - ldr r6, _08105350 @ =0x0200004b -_081052F4: - ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105358 @ =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r7, 0xD - negs r7, r7 - adds r1, r7, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - strh r5, [r3, 0x3C] - adds r1, r4, r6 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r5, 16 - movs r7, 0xA0 - lsls r7, 13 - adds r0, r7 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _081052F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08105350: .4byte 0x0200004b -_08105354: .4byte gSpriteTemplate_83ED4BC -_08105358: .4byte gSprites - thumb_func_end sub_81052EC - - thumb_func_start sub_810535C -sub_810535C: @ 810535C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810539C @ =0x02000000 - ldrh r0, [r4, 0x3C] - ldrh r1, [r1, 0x14] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x28 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - adds r1, 0x3B - strh r1, [r4, 0x22] - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - bl sub_8102C48 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810539C: .4byte 0x02000000 - thumb_func_end sub_810535C - - thumb_func_start sub_81053A0 -sub_81053A0: @ 81053A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0xB8 - lsls r1, 1 - ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 - movs r2, 0x64 - movs r3, 0x9 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r7, _08105450 @ =gSprites - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r10, r3 - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r2, 0x5] - ldr r0, _08105454 @ =gUnknown_083ED7B4 - mov r9, r0 - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - ldr r6, _08105458 @ =0x02000000 - adds r0, r6, 0 - adds r0, 0x4E - strb r4, [r0] - movs r1, 0x90 - lsls r1, 1 - ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 - movs r2, 0x68 - movs r3, 0x4 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r2, 0x5] - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - adds r6, 0x4F - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810544C: .4byte gSpriteTemplate_83ED4D4 -_08105450: .4byte gSprites -_08105454: .4byte gUnknown_083ED7B4 -_08105458: .4byte 0x02000000 - thumb_func_end sub_81053A0 - - thumb_func_start sub_810545C -sub_810545C: @ 810545C - push {r4,lr} - ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x4C - movs r3, 0xB - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081054AC @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, _081054B0 @ =gUnknown_083ED7D4 - bl SetSubspriteTables - ldr r0, _081054B4 @ =0x02000000 - adds r0, 0x40 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081054A8: .4byte gSpriteTemplate_83ED4EC -_081054AC: .4byte gSprites -_081054B0: .4byte gUnknown_083ED7D4 -_081054B4: .4byte 0x02000000 - thumb_func_end sub_810545C - - thumb_func_start sub_81054B8 -sub_81054B8: @ 81054B8 - push {r4,r5,lr} - ldr r4, _08105518 @ =0x02000000 - adds r0, r4, 0 - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - movs r5, 0 - adds r4, 0x49 -_081054D4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _081054D4 - movs r5, 0 - ldr r4, _08105520 @ =0x0200004b -_081054F4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081054F4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105518: .4byte 0x02000000 -_0810551C: .4byte gSprites -_08105520: .4byte 0x0200004b - thumb_func_end sub_81054B8 - - thumb_func_start sub_8105524 -sub_8105524: @ 8105524 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810554C @ =0x0200004e -_0810552A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105550 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0810552A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810554C: .4byte 0x0200004e -_08105550: .4byte gSprites - thumb_func_end sub_8105524 - - thumb_func_start sub_8105554 -sub_8105554: @ 8105554 - push {lr} - ldr r0, _08105570 @ =0x02000000 - adds r0, 0x42 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105574 @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105570: .4byte 0x02000000 -_08105574: .4byte gSprites - thumb_func_end sub_8105554 - - thumb_func_start sub_8105578 -sub_8105578: @ 8105578 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _0810561C @ =gSpriteTemplate_83ED504 - mov r10, r0 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08105620 @ =gSprites - mov r9, r2 - adds r3, r1, r2 - ldrb r2, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r3, 0x5] - adds r5, r3, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r5] - ldr r5, _08105624 @ =0x02000000 - adds r1, r5, 0 - adds r1, 0x50 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x2E] - ldr r0, _08105628 @ =0x0000ffff - strh r0, [r3, 0x30] - movs r0, 0x1 - negs r0, r0 - strh r0, [r3, 0x32] - movs r6, 0x20 - strh r6, [r3, 0x3C] - mov r0, r10 - movs r1, 0xB8 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - mov r2, r9 - adds r3, r1, r2 - ldrb r1, [r3, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r3, 0x5] - adds r5, 0x51 - strb r0, [r5] - movs r0, 0x1 - strh r0, [r3, 0x30] - subs r0, 0x2 - strh r0, [r3, 0x32] - strh r6, [r3, 0x3C] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810561C: .4byte gSpriteTemplate_83ED504 -_08105620: .4byte gSprites -_08105624: .4byte 0x02000000 -_08105628: .4byte 0x0000ffff - thumb_func_end sub_8105578 - - thumb_func_start sub_810562C -sub_810562C: @ 810562C - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _08105650 - subs r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x2E] - strh r1, [r2, 0x24] - strh r1, [r2, 0x26] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - b _08105682 -_08105650: - 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, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08105682 - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x2E] - strh r4, [r2, 0x34] -_08105682: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810562C - - thumb_func_start sub_8105688 -sub_8105688: @ 8105688 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _081056B8 @ =gSprites - ldr r3, _081056BC @ =0x02000000 - adds r1, r3, 0 - adds r1, 0x50 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - adds r3, 0x51 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081056B8: .4byte gSprites -_081056BC: .4byte 0x02000000 - thumb_func_end sub_8105688 - - thumb_func_start sub_81056C0 -sub_81056C0: @ 81056C0 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081056E8 @ =0x02000050 -_081056C6: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081056EC @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _081056C6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081056E8: .4byte 0x02000050 -_081056EC: .4byte gSprites - thumb_func_end sub_81056C0 - - thumb_func_start sub_81056F0 -sub_81056F0: @ 81056F0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, _08105778 @ =gSpriteTemplate_83ED51C - mov r8, r0 - movs r1, 0x48 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810577C @ =gSprites - mov r9, r1 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrb r3, [r2, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r3 - movs r6, 0x4 - orrs r1, r6 - strb r1, [r2, 0x5] - movs r3, 0 - movs r1, 0x1 - strh r1, [r2, 0x2E] - strh r3, [r2, 0x38] - movs r1, 0x10 - strh r1, [r2, 0x3A] - movs r1, 0x8 - strh r1, [r2, 0x3C] - ldr r5, _08105780 @ =0x02000000 - adds r1, r5, 0 - adds r1, 0x52 - strb r0, [r1] - mov r0, r8 - movs r1, 0x68 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x5] - ands r4, r2 - orrs r4, r6 - strb r4, [r1, 0x5] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x1 - orrs r2, r3 - strb r2, [r1] - adds r5, 0x53 - strb r0, [r5] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105778: .4byte gSpriteTemplate_83ED51C -_0810577C: .4byte gSprites -_08105780: .4byte 0x02000000 - thumb_func_end sub_81056F0 - - thumb_func_start sub_8105784 -sub_8105784: @ 8105784 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _081057E0 @ =gUnknown_083ECC58 - mov r0, sp - movs r2, 0x2 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081057D6 - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bgt _081057D6 - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r2, _081057E4 @ =0x01030000 - adds r0, r2 - lsrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r4, r2] - add r1, sp - ldrb r3, [r1] - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyInvertedPaletteRGBComponents - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - strh r0, [r4, 0x3A] -_081057D6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081057E0: .4byte gUnknown_083ECC58 -_081057E4: .4byte 0x01030000 - thumb_func_end sub_8105784 - - thumb_func_start sub_81057E8 -sub_81057E8: @ 81057E8 - ldr r3, _081057FC @ =gSprites - ldr r1, _08105800 @ =0x02000000 - adds r1, 0x52 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x3C] - bx lr - .align 2, 0 -_081057FC: .4byte gSprites -_08105800: .4byte 0x02000000 - thumb_func_end sub_81057E8 - - thumb_func_start sub_8105804 -sub_8105804: @ 8105804 - push {r4,r5,lr} - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08105848 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r4, 0 - ldr r5, _0810584C @ =0x02000052 -_08105824: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105850 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08105824 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105848: .4byte 0x01030000 -_0810584C: .4byte 0x02000052 -_08105850: .4byte gSprites - thumb_func_end sub_8105804 - - thumb_func_start sub_8105854 -sub_8105854: @ 8105854 - push {lr} - ldr r0, _08105888 @ =gSpriteTemplate_83ED534 - movs r1, 0xA8 - movs r2, 0x50 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810588C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1, 0x5] - ldr r1, _08105890 @ =0x02000000 - adds r1, 0x41 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105888: .4byte gSpriteTemplate_83ED534 -_0810588C: .4byte gSprites -_08105890: .4byte 0x02000000 - thumb_func_end sub_8105854 - - thumb_func_start sub_8105894 -sub_8105894: @ 8105894 - ldr r1, _0810589C @ =gSpriteCoordOffsetY - ldrh r1, [r1] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_0810589C: .4byte gSpriteCoordOffsetY - thumb_func_end sub_8105894 - - thumb_func_start sub_81058A0 -sub_81058A0: @ 81058A0 - push {lr} - ldr r0, _081058BC @ =0x02000000 - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081058C0 @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_081058BC: .4byte 0x02000000 -_081058C0: .4byte gSprites - thumb_func_end sub_81058A0 - - thumb_func_start sub_81058C4 -sub_81058C4: @ 81058C4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _08105938 @ =gUnknown_083ECC5A - mov r0, sp - movs r2, 0x8 - bl memcpy - movs r4, 0 - ldr r5, _0810593C @ =0x02000054 -_081058D6: - ldr r0, _08105940 @ =gSpriteCoordOffsetX - ldrh r0, [r0] - movs r1, 0x50 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08105944 @ =gSpriteTemplate_83ED54C - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105948 @ =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r6, 0xD - negs r6, r6 - adds r1, r6, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - lsls r1, r4, 1 - add r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081058D6 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105938: .4byte gUnknown_083ECC5A -_0810593C: .4byte 0x02000054 -_08105940: .4byte gSpriteCoordOffsetX -_08105944: .4byte gSpriteTemplate_83ED54C -_08105948: .4byte gSprites - thumb_func_end sub_81058C4 - - thumb_func_start sub_810594C -sub_810594C: @ 810594C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x2 - movs r4, 0 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r1, 0x6 - bl Sin - strh r0, [r5, 0x26] - adds r1, r5, 0 - adds r1, 0x43 - strb r4, [r1] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x7F - ble _08105986 - movs r0, 0x2 - strb r0, [r1] -_08105986: - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _081059B0 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r5, 0x30] -_081059B0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810594C - - thumb_func_start sub_81059B8 -sub_81059B8: @ 81059B8 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081059E0 @ =0x02000054 -_081059BE: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081059E4 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081059BE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081059E0: .4byte 0x02000054 -_081059E4: .4byte gSprites - thumb_func_end sub_81059B8 - - thumb_func_start sub_81059E8 -sub_81059E8: @ 81059E8 - push {r4,lr} - ldr r0, _08105A2C @ =gSpriteTemplate_83ED564 - movs r1, 0xA8 - movs r2, 0x3C - movs r3, 0x8 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105A30 @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - ldr r0, _08105A34 @ =0x02000000 - adds r0, 0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105A2C: .4byte gSpriteTemplate_83ED564 -_08105A30: .4byte gSprites -_08105A34: .4byte 0x02000000 - thumb_func_end sub_81059E8 - - thumb_func_start sub_8105A38 -sub_8105A38: @ 8105A38 - push {lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x2E] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08105A5A - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105AB4 - adds r0, r2, 0x1 - strh r0, [r3, 0x2E] - b _08105AB4 -_08105A5A: - cmp r0, 0x1 - bne _08105A96 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _08105AB4 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - movs r0, 0 - strh r0, [r3, 0x32] - b _08105AB4 -_08105A96: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105AB4 - movs r0, 0x1 - strh r0, [r3, 0x3C] -_08105AB4: - ldrh r0, [r3, 0x30] - movs r1, 0xFF - ands r1, r0 - adds r1, 0x10 - strh r1, [r3, 0x30] - lsrs r1, 8 - ldrh r0, [r3, 0x26] - subs r0, r1 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - thumb_func_end sub_8105A38 - - thumb_func_start sub_8105ACC -sub_8105ACC: @ 8105ACC - ldr r2, _08105AE4 @ =gSprites - ldr r0, _08105AE8 @ =0x02000000 - adds r0, 0x43 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08105AE4: .4byte gSprites -_08105AE8: .4byte 0x02000000 - thumb_func_end sub_8105ACC - - thumb_func_start sub_8105AEC -sub_8105AEC: @ 8105AEC - push {r4,lr} - ldr r0, _08105B14 @ =0x02000000 - adds r0, 0x43 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105B18 @ =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105B14: .4byte 0x02000000 -_08105B18: .4byte gSprites - thumb_func_end sub_8105AEC - - thumb_func_start sub_8105B1C -sub_8105B1C: @ 8105B1C - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0xC - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105B6C @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08105B68: .4byte gSpriteTemplate_83ED6CC -_08105B6C: .4byte gSprites - thumb_func_end sub_8105B1C - - thumb_func_start sub_8105B70 -sub_8105B70: @ 8105B70 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105B84 - movs r0, 0x1 - strh r0, [r2, 0x3C] -_08105B84: - pop {r0} - bx r0 - thumb_func_end sub_8105B70 - - thumb_func_start sub_8105B88 -sub_8105B88: @ 8105B88 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105BB0 @ =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105BB0: .4byte gSprites - thumb_func_end sub_8105B88 - - thumb_func_start sub_8105BB4 -sub_8105BB4: @ 8105BB4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _08105BF0 @ =gUnknown_083ECF0C - lsrs r1, 22 - adds r3, r1, r3 - ldr r5, [r3] - ldr r3, _08105BF4 @ =gUnknown_083ECE7E - adds r4, r1, r3 - movs r6, 0 - ldrsh r4, [r4, r6] - adds r3, 0x2 - adds r1, r3 - movs r6, 0 - ldrsh r3, [r1, r6] - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08105BF0: .4byte gUnknown_083ECF0C -_08105BF4: .4byte gUnknown_083ECE7E - thumb_func_end sub_8105BB4 - - thumb_func_start sub_8105BF8 -sub_8105BF8: @ 8105BF8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x14] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08105C58 @ =gUnknown_083EDB5C - lsrs r4, 22 - adds r0, r4, r0 - ldr r0, [r0] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08105C5C @ =gSprites - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] - str r6, [r2, 0x1C] - strh r5, [r2, 0x3A] - movs r0, 0x1 - strh r0, [r2, 0x3C] - ldr r0, _08105C60 @ =gUnknown_083EDBC4 - adds r4, r0 - ldr r1, [r4] - cmp r1, 0 - beq _08105C50 - adds r0, r2, 0 - bl SetSubspriteTables -_08105C50: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08105C58: .4byte gUnknown_083EDB5C -_08105C5C: .4byte gSprites -_08105C60: .4byte gUnknown_083EDBC4 - thumb_func_end sub_8105BF8 - - thumb_func_start sub_8105C64 -sub_8105C64: @ 8105C64 - movs r1, 0 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_8105C64 - - thumb_func_start sub_8105C6C -sub_8105C6C: @ 8105C6C - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _08105CE8 @ =gUnknown_083ECC62 - mov r0, sp - movs r2, 0x8 - bl memcpy - add r5, sp, 0x8 - ldr r1, _08105CEC @ =gUnknown_083ECC6A - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105CB2 - adds r3, r4, 0 - adds r3, 0x42 - ldrb r2, [r3] - lsls r0, r2, 26 - lsrs r0, 26 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r4, 0x30] -_08105CB2: - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _08105CDE - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] -_08105CDE: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105CE8: .4byte gUnknown_083ECC62 -_08105CEC: .4byte gUnknown_083ECC6A - thumb_func_end sub_8105C6C - - thumb_func_start sub_8105CF0 -sub_8105CF0: @ 8105CF0 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105CF0 - - thumb_func_start sub_8105D08 -sub_8105D08: @ 8105D08 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D08 - - thumb_func_start sub_8105D20 -sub_8105D20: @ 8105D20 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D20 - - thumb_func_start sub_8105D3C -sub_8105D3C: @ 8105D3C - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _08105D70 - cmp r0, 0x1 - bgt _08105D52 - cmp r0, 0 - beq _08105D5C - b _08105DA0 -_08105D52: - cmp r0, 0x2 - beq _08105D80 - cmp r0, 0x3 - beq _08105D9C - b _08105DA0 -_08105D5C: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105DA0 - movs r0, 0xD0 - strh r0, [r2, 0x20] - b _08105D8E -_08105D70: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105DA0 - b _08105D8E -_08105D80: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - ldr r1, _08105D98 @ =0x010f0000 - cmp r0, r1 - ble _08105DA0 -_08105D8E: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _08105DA0 - .align 2, 0 -_08105D98: .4byte 0x010f0000 -_08105D9C: - movs r0, 0 - strh r0, [r2, 0x3C] -_08105DA0: - pop {r0} - bx r0 - thumb_func_end sub_8105D3C - - thumb_func_start sub_8105DA4 -sub_8105DA4: @ 8105DA4 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08105DD8 - cmp r0, 0x1 - bgt _08105DBA - cmp r0, 0 - beq _08105DC4 - b _08105E02 -_08105DBA: - cmp r0, 0x2 - beq _08105DE8 - cmp r0, 0x3 - beq _08105DFE - b _08105E02 -_08105DC4: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - bgt _08105E02 - movs r0, 0xD0 - strh r0, [r1, 0x20] - b _08105DF6 -_08105DD8: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105E02 - b _08105DF6 -_08105DE8: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x90 - bgt _08105E02 -_08105DF6: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105E02 -_08105DFE: - movs r0, 0 - strh r0, [r1, 0x3C] -_08105E02: - pop {r0} - bx r0 - thumb_func_end sub_8105DA4 - - thumb_func_start sub_8105E08 -sub_8105E08: @ 8105E08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _08105EAE - lsls r0, 2 - ldr r1, _08105E20 @ =_08105E24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08105E20: .4byte _08105E24 - .align 2, 0 -_08105E24: - .4byte _08105E3C - .4byte _08105E52 - .4byte _08105E70 - .4byte _08105E84 - .4byte _08105E94 - .4byte _08105EAA -_08105E3C: - ldr r0, _08105E6C @ =0x02000000 - ldrb r1, [r0, 0xA] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08105E52: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08105EAE - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - b _08105EAE - .align 2, 0 -_08105E6C: .4byte 0x02000000 -_08105E70: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105EAE - movs r0, 0xD0 - strh r0, [r4, 0x20] - b _08105EA2 -_08105E84: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105EAE - b _08105EA2 -_08105E94: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF7 - ble _08105EAE -_08105EA2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08105EAE -_08105EAA: - movs r0, 0 - strh r0, [r4, 0x3C] -_08105EAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8105E08 - - thumb_func_start sub_8105EB4 -sub_8105EB4: @ 8105EB4 - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _08105EE2 - cmp r0, 0x1 - bgt _08105ECA - cmp r0, 0 - beq _08105ED0 - b _08105F50 -_08105ECA: - cmp r0, 0x2 - beq _08105F00 - b _08105F50 -_08105ED0: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] -_08105EE2: - ldrh r0, [r3, 0x22] - adds r0, 0x8 - strh r0, [r3, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _08105F50 - movs r0, 0x70 - strh r0, [r3, 0x22] - movs r0, 0x10 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _08105F50 -_08105F00: - movs r0, 0x32 - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _08105F46 - ldrh r0, [r3, 0x22] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x22] - negs r1, r1 - strh r1, [r3, 0x30] - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08105F46 - lsls r0, r1, 16 - asrs r0, 18 - strh r0, [r3, 0x30] - strh r2, [r3, 0x34] - adds r1, r0, 0 - cmp r1, 0 - bne _08105F46 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r1, [r3, 0x3C] - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08105F46: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r3, 0x32] -_08105F50: - pop {r0} - bx r0 - thumb_func_end sub_8105EB4 - - thumb_func_start sub_8105F54 -sub_8105F54: @ 8105F54 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08105F66 - cmp r0, 0x1 - beq _08105F7C - b _08105F98 -_08105F66: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _08105F98 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105F98 -_08105F7C: - ldrh r0, [r1, 0x22] - adds r0, 0x2 - strh r0, [r1, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _08105F98 - movs r0, 0x30 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0 - strh r0, [r1, 0x3C] -_08105F98: - pop {r0} - bx r0 - thumb_func_end sub_8105F54 - - thumb_func_start sub_8105F9C -sub_8105F9C: @ 8105F9C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08105FAE - cmp r0, 0x1 - beq _08106000 - b _0810604E -_08105FAE: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x30] - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r2, _08105FFC @ =REG_MOSAIC - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - b _0810604E - .align 2, 0 -_08105FFC: .4byte REG_MOSAIC -_08106000: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _08106016 - movs r0, 0 - strh r0, [r4, 0x30] -_08106016: - ldr r2, _08106054 @ =REG_MOSAIC - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - adds r0, 0x80 - strh r0, [r4, 0x32] - movs r0, 0x30 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_0810604E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106054: .4byte REG_MOSAIC - thumb_func_end sub_8105F9C - - thumb_func_start sub_8106058 -sub_8106058: @ 8106058 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x2 - bgt _081060A8 - ldr r1, _081060A4 @ =gUnknown_083EDE10 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081060E4 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r0, 0 - strh r0, [r5, 0x32] - b _081060E4 - .align 2, 0 -_081060A4: .4byte gUnknown_083EDE10 -_081060A8: - ldr r1, _081060F8 @ =gUnknown_083EDE10 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _081060E4 - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] -_081060E4: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - movs r0, 0 - strh r0, [r5, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081060F8: .4byte gUnknown_083EDE10 - thumb_func_end sub_8106058 - - thumb_func_start sub_81060FC -sub_81060FC: @ 81060FC - push {r4-r6,lr} - sub sp, 0x30 - adds r4, r0, 0 - ldr r1, _08106138 @ =gUnknown_083ECC72 - mov r0, sp - movs r2, 0x10 - bl memcpy - add r6, sp, 0x10 - ldr r1, _0810613C @ =gUnknown_083ECC82 - adds r0, r6, 0 - movs r2, 0x10 - bl memcpy - add r5, sp, 0x20 - ldr r1, _08106140 @ =gUnknown_083ECC92 - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08106174 - cmp r0, 0x1 - bgt _08106144 - cmp r0, 0 - beq _0810614A - b _081061C0 - .align 2, 0 -_08106138: .4byte gUnknown_083ECC72 -_0810613C: .4byte gUnknown_083ECC82 -_08106140: .4byte gUnknown_083ECC92 -_08106144: - cmp r0, 0x2 - beq _08106188 - b _081061C0 -_0810614A: - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08106174: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _081061C0 - b _081061BA -_08106188: - ldrh r0, [r4, 0x24] - movs r2, 0x24 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _08106196 - subs r0, 0x4 - b _0810619C -_08106196: - cmp r1, 0 - bge _0810619E - adds r0, 0x4 -_0810619C: - strh r0, [r4, 0x24] -_0810619E: - ldrh r0, [r4, 0x26] - movs r2, 0x26 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _081061AC - subs r0, 0x4 - b _081061B2 -_081061AC: - cmp r1, 0 - bge _081061B4 - adds r0, 0x4 -_081061B2: - strh r0, [r4, 0x26] -_081061B4: - ldr r0, [r4, 0x24] - cmp r0, 0 - bne _081061C0 -_081061BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_081061C0: - add sp, 0x30 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81060FC - - thumb_func_start sub_81061C8 -sub_81061C8: @ 81061C8 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _0810622C @ =gUnknown_083ECCA2 - mov r0, sp - movs r2, 0x10 - bl memcpy - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081061EA - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xC - strh r0, [r4, 0x30] -_081061EA: - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08106224 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_08106224: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810622C: .4byte gUnknown_083ECCA2 - thumb_func_end sub_81061C8 - - thumb_func_start sub_8106230 -sub_8106230: @ 8106230 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0810627A - cmp r0, 0x1 - bgt _08106248 - cmp r0, 0 - beq _08106252 - b _0810634A -_08106248: - cmp r0, 0x2 - beq _081062C4 - cmp r0, 0x3 - beq _081062FC - b _0810634A -_08106252: - ldr r2, _081062BC @ =0x02000000 - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x2F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3F - strh r0, [r1] - subs r1, 0x4 - ldr r0, _081062C0 @ =0x00002088 - strh r0, [r1] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0810627A: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xB2 - strh r0, [r5, 0x32] - movs r1, 0xF0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106296 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106296: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _081062A2 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_081062A2: - ldr r2, _081062BC @ =0x02000000 - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x33 - ble _0810634A - b _0810633C - .align 2, 0 -_081062BC: .4byte 0x02000000 -_081062C0: .4byte 0x00002088 -_081062C4: - ldr r6, _08106354 @ =0x02000000 - movs r1, 0x12 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0810634A - ldr r1, _08106358 @ =SpriteCallbackDummy - movs r4, 0 - str r4, [sp] - movs r0, 0x5 - movs r2, 0xD0 - movs r3, 0x74 - bl sub_8104D30 - adds r1, r6, 0 - adds r1, 0x58 - ldr r0, _0810635C @ =0x0000c0e0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xD1 - lsls r0, 7 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2F - strh r0, [r1] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - strh r4, [r5, 0x30] -_081062FC: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xC2 - strh r0, [r5, 0x32] - movs r1, 0xE0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106318 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106318: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _08106324 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_08106324: - ldr r2, _08106354 @ =0x02000000 - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0810634A -_0810633C: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x3F - strh r0, [r1] -_0810634A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08106354: .4byte 0x02000000 -_08106358: .4byte SpriteCallbackDummy -_0810635C: .4byte 0x0000c0e0 - thumb_func_end sub_8106230 - - thumb_func_start nullsub_70 -nullsub_70: @ 8106360 - bx lr - thumb_func_end nullsub_70 - - thumb_func_start sub_8106364 -sub_8106364: @ 8106364 - ldr r1, _0810636C @ =REG_MOSAIC - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0810636C: .4byte REG_MOSAIC - thumb_func_end sub_8106364 - - thumb_func_start sub_8106370 -sub_8106370: @ 8106370 - push {r4,lr} - ldr r0, _08106398 @ =gUnknown_083EDE20 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106398: .4byte gUnknown_083EDE20 - thumb_func_end sub_8106370 - - thumb_func_start sub_810639C -sub_810639C: @ 810639C - ldr r2, _081063BC @ =0x02000000 - adds r1, r2, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_081063BC: .4byte 0x02000000 - thumb_func_end sub_810639C - - thumb_func_start sub_81063C0 -sub_81063C0: @ 81063C0 - push {r4,lr} - bl sub_8106404 - ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx - ldr r4, _081063F4 @ =0x02010000 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _081063F8 @ =gUnknown_083EDE8C - movs r1, 0xC8 - lsls r1, 6 - adds r4, r1 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _081063FC @ =gUnknown_083EDC2C - bl LoadSpriteSheets - ldr r0, _08106400 @ =gSlotMachineSpritePalettes - bl LoadSpritePalettes - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081063F0: .4byte gSlotMachineReelTimeLights_Gfx -_081063F4: .4byte 0x02010000 -_081063F8: .4byte gUnknown_083EDE8C -_081063FC: .4byte gUnknown_083EDC2C -_08106400: .4byte gSlotMachineSpritePalettes - thumb_func_end sub_81063C0 - - thumb_func_start sub_8106404 -sub_8106404: @ 8106404 - push {r4,r5,lr} - ldr r3, _0810643C @ =0x02010000 - movs r2, 0 - ldr r5, _08106440 @ =gUnknown_083EDCDC - ldr r0, _08106444 @ =gUnknown_083EDCE4 - ldr r4, [r0] -_08106410: - movs r1, 0 - adds r2, 0x1 -_08106414: - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - adds r3, 0x1 - cmp r1, 0x1F - bls _08106414 - lsls r0, r2, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08106410 - adds r0, r5, 0 - bl LoadSpriteSheet - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810643C: .4byte 0x02010000 -_08106440: .4byte gUnknown_083EDCDC -_08106444: .4byte gUnknown_083EDCE4 - thumb_func_end sub_8106404 - - thumb_func_start sub_8106448 -sub_8106448: @ 8106448 - push {r4-r7,lr} - ldr r0, _081064A0 @ =gSlotMachine_Gfx - ldr r4, _081064A4 @ =0x02010000 - adds r1, r4, 0 - bl sub_800D238 - movs r3, 0xC0 - lsls r3, 19 - movs r5, 0xE9 - lsls r5, 5 - ldr r1, _081064A8 @ =0x040000d4 - ldr r6, _081064AC @ =0x80000800 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08106468: - str r4, [r1] - str r3, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r4, r2 - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _08106468 - str r4, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, _081064B0 @ =gUnknown_08E95A18 - movs r1, 0 - movs r2, 0xA0 - bl LoadPalette - ldr r0, _081064B4 @ =gUnknown_083EDE24 - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081064A0: .4byte gSlotMachine_Gfx -_081064A4: .4byte 0x02010000 -_081064A8: .4byte 0x040000d4 -_081064AC: .4byte 0x80000800 -_081064B0: .4byte gUnknown_08E95A18 -_081064B4: .4byte gUnknown_083EDE24 - thumb_func_end sub_8106448 - - thumb_func_start sub_81064B8 -sub_81064B8: @ 81064B8 - push {lr} - ldr r0, _081064D0 @ =gUnknown_08E95AB8 - ldr r1, _081064D4 @ =0x0600e800 - movs r2, 0xA0 - lsls r2, 2 - bl CpuSet - bl sub_81064D8 - pop {r0} - bx r0 - .align 2, 0 -_081064D0: .4byte gUnknown_08E95AB8 -_081064D4: .4byte 0x0600e800 - thumb_func_end sub_81064B8 - - thumb_func_start sub_81064D8 -sub_81064D8: @ 81064D8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, _0810658C @ =0x0600f000 - movs r3, 0x4 - movs r0, 0xC0 - lsls r0, 1 - mov r12, r0 - movs r1, 0xC0 - lsls r1, 2 - mov r9, r1 - movs r2, 0xA0 - lsls r2, 1 - mov r8, r2 -_081064F6: - movs r0, 0 - lsls r4, r3, 16 - asrs r5, r4, 16 -_081064FC: - lsls r2, r0, 16 - asrs r2, 16 - adds r1, r5, r2 - lsls r1, 1 - adds r1, r6 - mov r7, r8 - adds r3, r1, r7 - ldr r7, _08106590 @ =0x00002051 - adds r0, r7, 0 - strh r0, [r3] - movs r0, 0xD0 - lsls r0, 2 - adds r3, r1, r0 - ldr r7, _08106594 @ =0x00002851 - adds r0, r7, 0 - strh r0, [r3] - mov r0, r12 - adds r3, r1, r0 - ldr r7, _08106598 @ =0x00002061 - adds r0, r7, 0 - strh r0, [r3] - add r1, r9 - ldr r3, _0810659C @ =0x00002861 - adds r0, r3, 0 - strh r0, [r1] - adds r2, 0x1 - lsls r2, 16 - lsrs r0, r2, 16 - asrs r2, 16 - cmp r2, 0x3 - ble _081064FC - asrs r3, r4, 16 - lsls r1, r3, 1 - adds r1, r6 - mov r5, r12 - adds r2, r1, r5 - adds r7, 0x5D - adds r0, r7, 0 - strh r0, [r2] - add r1, r9 - ldr r2, _081065A0 @ =0x000028be - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x7 - ldr r5, _081065A4 @ =0x000020bf - adds r2, r5, 0 -_08106558: - lsls r1, r0, 16 - asrs r1, 16 - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 1 - adds r0, r6 - strh r2, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0xB - ble _08106558 - movs r7, 0xA0 - lsls r7, 11 - adds r0, r4, r7 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _081064F6 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810658C: .4byte 0x0600f000 -_08106590: .4byte 0x00002051 -_08106594: .4byte 0x00002851 -_08106598: .4byte 0x00002061 -_0810659C: .4byte 0x00002861 -_081065A0: .4byte 0x000028be -_081065A4: .4byte 0x000020bf - thumb_func_end sub_81064D8 - - thumb_func_start sub_81065A8 -sub_81065A8: @ 81065A8 - push {r4-r6,lr} - ldr r5, [sp, 0x10] - lsls r0, 16 - asrs r0, 15 - ldr r6, _081065D0 @ =0x0600ebc0 - adds r4, r0, r6 - strh r1, [r4] - ldr r4, _081065D4 @ =0x0600ebc2 - adds r1, r0, r4 - strh r2, [r1] - adds r6, 0x40 - adds r1, r0, r6 - strh r3, [r1] - ldr r1, _081065D8 @ =0x0600ec02 - adds r0, r1 - strh r5, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081065D0: .4byte 0x0600ebc0 -_081065D4: .4byte 0x0600ebc2 -_081065D8: .4byte 0x0600ec02 - thumb_func_end sub_81065A8 - - thumb_func_start sub_81065DC -sub_81065DC: @ 81065DC - push {r4,r5,lr} - ldr r0, _08106624 @ =gUnknown_08E95FB8 - ldr r1, _08106628 @ =0x0600e800 - movs r2, 0xA0 - lsls r2, 2 - bl CpuSet - ldr r5, _0810662C @ =0x0600f000 - movs r1, 0 - movs r4, 0 -_081065F0: - movs r0, 0 - lsls r3, r1, 16 - asrs r2, r3, 11 -_081065F6: - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r2, r1 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _081065F6 - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _081065F0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08106624: .4byte gUnknown_08E95FB8 -_08106628: .4byte 0x0600e800 -_0810662C: .4byte 0x0600f000 - thumb_func_end sub_81065DC - - thumb_func_start sub_8106630 -sub_8106630: @ 8106630 - push {r4-r7,lr} - ldr r2, _0810665C @ =0x02015de0 - subs r4, r2, 0x2 - subs r5, r2, 0x1 - ldr r3, _08106660 @ =gSaveBlock1 - subs r0, 0x1 - lsls r1, r0, 5 - adds r1, r3 - ldr r3, _08106664 @ =0x00002dfc - adds r1, r3 - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r6,r7} - stm r2!, {r6,r7} - strb r0, [r4] - movs r0, 0 - strb r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810665C: .4byte 0x02015de0 -_08106660: .4byte gSaveBlock1 -_08106664: .4byte 0x00002dfc - thumb_func_end sub_8106630 - - thumb_func_start sub_8106668 -sub_8106668: @ 8106668 - push {lr} - bl sub_8106674 - pop {r0} - bx r0 - thumb_func_end sub_8106668 - - thumb_func_start sub_8106674 -sub_8106674: @ 8106674 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _08106694 @ =gMain - ldr r2, _08106698 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x4 - bls _08106688 - b _081067E0 -_08106688: - lsls r0, 2 - ldr r1, _0810669C @ =_081066A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106694: .4byte gMain -_08106698: .4byte 0x0000043c -_0810669C: .4byte _081066A0 - .align 2, 0 -_081066A0: - .4byte _081066B4 - .4byte _081066D8 - .4byte _08106734 - .4byte _0810675C - .4byte _0810678C -_081066B4: - bl remove_some_task - movs r0, 0 - bl SetVBlankCallback - ldr r1, _081066D0 @ =gUnknown_03005E8C - ldr r0, _081066D4 @ =0x02015de0 - str r0, [r1] - movs r0, 0x1 - bl sub_8106A10 - bl sub_81069CC - b _0810676E - .align 2, 0 -_081066D0: .4byte gUnknown_03005E8C -_081066D4: .4byte 0x02015de0 -_081066D8: - bl ResetPaletteFade - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - movs r5, 0 - ldr r1, _08106724 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _08106728 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_081066F2: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _081066F2 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetSpriteData - ldr r1, _0810672C @ =gMain - ldr r2, _08106730 @ =0x0000043c - adds r1, r2 - b _08106774 - .align 2, 0 -_08106724: .4byte 0x040000d4 -_08106728: .4byte 0x85000400 -_0810672C: .4byte gMain -_08106730: .4byte 0x0000043c -_08106734: - ldrh r0, [r4, 0x20] - bl SeedRng - bl InitKeys - ldr r0, _08106750 @ =0x02000000 - ldr r1, _08106754 @ =0x00015ddf - adds r0, r1 - ldrb r0, [r0] - bl sub_81068FC - ldr r2, _08106758 @ =0x0000043c - adds r1, r4, r2 - b _08106774 - .align 2, 0 -_08106750: .4byte 0x02000000 -_08106754: .4byte 0x00015ddf -_08106758: .4byte 0x0000043c -_0810675C: - ldr r1, _0810677C @ =0x02000000 - ldr r2, _08106780 @ =0x00015dde - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl sub_8107090 -_0810676E: - ldr r1, _08106784 @ =gMain - ldr r0, _08106788 @ =0x0000043c - adds r1, r0 -_08106774: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081067E0 - .align 2, 0 -_0810677C: .4byte 0x02000000 -_08106780: .4byte 0x00015dde -_08106784: .4byte gMain -_08106788: .4byte 0x0000043c -_0810678C: - ldr r1, _081067E8 @ =0x02000000 - ldr r2, _081067EC @ =0x00015dde - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl sub_8106918 - ldr r0, _081067F0 @ =gUnknown_083F6140 - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0 - str r4, [sp] - ldr r0, _081067F4 @ =0x040000d4 - mov r2, sp - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _081067F8 @ =0x85000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r0, 0x2 - bl BeginFastPaletteFade - ldr r0, _081067FC @ =sub_8106AAC - bl SetVBlankCallback - ldr r0, _08106800 @ =gUnknown_03000750 - strb r4, [r0] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106804 @ =sub_8106808 - bl SetMainCallback2 -_081067E0: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081067E8: .4byte 0x02000000 -_081067EC: .4byte 0x00015dde -_081067F0: .4byte gUnknown_083F6140 -_081067F4: .4byte 0x040000d4 -_081067F8: .4byte 0x85000100 -_081067FC: .4byte sub_8106AAC -_08106800: .4byte gUnknown_03000750 -_08106804: .4byte sub_8106808 - thumb_func_end sub_8106674 - - thumb_func_start sub_8106808 -sub_8106808: @ 8106808 - push {lr} - bl sub_810682C - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8106808 - - thumb_func_start sub_8106818 -sub_8106818: @ 8106818 - push {lr} - ldr r0, _08106828 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08106828: .4byte gMain - thumb_func_end sub_8106818 - - thumb_func_start sub_810682C -sub_810682C: @ 810682C - push {lr} - sub sp, 0x4 - ldr r3, _08106844 @ =gUnknown_03000750 - ldrb r1, [r3] - cmp r1, 0x1 - beq _08106880 - cmp r1, 0x1 - bgt _08106848 - cmp r1, 0 - beq _0810684E - b _081068E6 - .align 2, 0 -_08106844: .4byte gUnknown_03000750 -_08106848: - cmp r1, 0x2 - beq _081068C0 - b _081068E6 -_0810684E: - ldr r0, _08106874 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810685E - movs r0, 0x1 - strb r0, [r3] -_0810685E: - ldr r0, _08106878 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _0810687C @ =gUnknown_03000754 - ldrh r0, [r1] - cmp r0, 0 - beq _081068E6 - subs r0, 0x1 - b _081068E4 - .align 2, 0 -_08106874: .4byte gPaletteFade -_08106878: .4byte gUnknown_03000756 -_0810687C: .4byte gUnknown_03000754 -_08106880: - ldr r0, _081068B4 @ =gMain - ldrh r2, [r0, 0x2E] - ands r1, r2 - cmp r1, 0 - bne _08106892 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _081068A4 -_08106892: - movs r0, 0x2 - strb r0, [r3] - subs r0, 0x3 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_081068A4: - ldr r0, _081068B8 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068BC @ =gUnknown_03000754 - movs r0, 0 - b _081068E4 - .align 2, 0 -_081068B4: .4byte gMain -_081068B8: .4byte gUnknown_03000756 -_081068BC: .4byte gUnknown_03000754 -_081068C0: - ldr r0, _081068EC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081068D2 - ldr r0, _081068F0 @ =sub_8106818 - bl SetMainCallback2 -_081068D2: - ldr r0, _081068F4 @ =gUnknown_03000756 - ldrb r0, [r0] - cmp r0, 0 - beq _081068E6 - ldr r1, _081068F8 @ =gUnknown_03000754 - ldrh r0, [r1] - cmp r0, 0x1D - bhi _081068E6 - adds r0, 0x1 -_081068E4: - strh r0, [r1] -_081068E6: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_081068EC: .4byte gPaletteFade -_081068F0: .4byte sub_8106818 -_081068F4: .4byte gUnknown_03000756 -_081068F8: .4byte gUnknown_03000754 - thumb_func_end sub_810682C - - thumb_func_start sub_81068FC -sub_81068FC: @ 81068FC - push {r4,lr} - ldr r4, _08106914 @ =gWindowConfig_81E7160 - adds r0, r4, 0 - bl InitMenuWindow - adds r0, r4, 0 - bl SetUpWindowConfig - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106914: .4byte gWindowConfig_81E7160 - thumb_func_end sub_81068FC - - thumb_func_start sub_8106918 -sub_8106918: @ 8106918 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081069BE - ldr r2, _08106974 @ =gUnknown_03005E40 - ldr r6, _08106978 @ =gUnknown_03005E8C - ldr r0, [r6] - ldrb r0, [r0, 0xA] - cmp r3, 0x7 - bhi _08106988 - ldr r1, _0810697C @ =gUnknown_083F60AC - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08106980 @ =gContestText_ContestWinner - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0x16 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x16 - strb r0, [r2, 0x1] - adds r2, 0x2 - ldr r1, _08106984 @ =gOtherText_Unknown1 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - movs r1, 0x6 - b _081069AE - .align 2, 0 -_08106974: .4byte gUnknown_03005E40 -_08106978: .4byte gUnknown_03005E8C -_0810697C: .4byte gUnknown_083F60AC -_08106980: .4byte gContestText_ContestWinner -_08106984: .4byte gOtherText_Unknown1 -_08106988: - ldr r4, _081069C4 @ =gUnknown_083F60C0 - lsls r5, r0, 3 - adds r0, r5, r4 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, [r6] - adds r1, 0xB - bl StringCopy10 - adds r2, r0, 0 - adds r4, 0x4 - adds r5, r4 - ldr r1, [r5] - bl StringCopy - movs r1, 0x3 -_081069AE: - movs r2, 0xE - ldr r0, _081069C8 @ =gUnknown_03005E40 - lsls r1, 3 - adds r1, 0x1 - lsls r2, 3 - movs r3, 0x1 - bl MenuPrint_PixelCoords -_081069BE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081069C4: .4byte gUnknown_083F60C0 -_081069C8: .4byte gUnknown_03005E40 - thumb_func_end sub_8106918 - - thumb_func_start sub_81069CC -sub_81069CC: @ 81069CC - movs r0, 0x80 - lsls r0, 19 - movs r3, 0 - strh r3, [r0] - ldr r2, _081069FC @ =0x04000200 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08106A00 @ =REG_BG0CNT - ldr r2, _08106A04 @ =0x00000c42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08106A08 @ =0x00000a45 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08106A0C @ =REG_BLDCNT - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - bx lr - .align 2, 0 -_081069FC: .4byte 0x04000200 -_08106A00: .4byte REG_BG0CNT -_08106A04: .4byte 0x00000c42 -_08106A08: .4byte 0x00000a45 -_08106A0C: .4byte REG_BLDCNT - thumb_func_end sub_81069CC - - thumb_func_start sub_8106A10 -sub_8106A10: @ 8106A10 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08106A34 - ldr r0, _08106A28 @ =gUnknown_03000756 - strb r1, [r0] - ldr r0, _08106A2C @ =gUnknown_03000752 - strh r1, [r0] - ldr r0, _08106A30 @ =gUnknown_03000754 - strh r1, [r0] - b _08106A46 - .align 2, 0 -_08106A28: .4byte gUnknown_03000756 -_08106A2C: .4byte gUnknown_03000752 -_08106A30: .4byte gUnknown_03000754 -_08106A34: - ldr r1, _08106A4C @ =gUnknown_03000756 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08106A50 @ =gUnknown_03000752 - movs r0, 0xF - strh r0, [r1] - ldr r1, _08106A54 @ =gUnknown_03000754 - movs r0, 0x1E - strh r0, [r1] -_08106A46: - pop {r0} - bx r0 - .align 2, 0 -_08106A4C: .4byte gUnknown_03000756 -_08106A50: .4byte gUnknown_03000752 -_08106A54: .4byte gUnknown_03000754 - thumb_func_end sub_8106A10 - - thumb_func_start sub_8106A58 -sub_8106A58: @ 8106A58 - push {lr} - ldr r0, _08106A68 @ =gUnknown_03000756 - ldrb r1, [r0] - cmp r1, 0 - bne _08106A70 - ldr r0, _08106A6C @ =REG_MOSAIC - strh r1, [r0] - b _08106A92 - .align 2, 0 -_08106A68: .4byte gUnknown_03000756 -_08106A6C: .4byte REG_MOSAIC -_08106A70: - ldr r1, _08106A98 @ =REG_BG1CNT - ldr r2, _08106A9C @ =0x00000a45 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _08106AA0 @ =gUnknown_03000752 - ldr r0, _08106AA4 @ =gUnknown_03000754 - ldrh r1, [r0] - lsrs r1, 1 - strh r1, [r2] - ldr r3, _08106AA8 @ =REG_MOSAIC - lsls r0, r1, 12 - lsls r2, r1, 8 - orrs r0, r2 - lsls r2, r1, 4 - orrs r0, r2 - orrs r0, r1 - strh r0, [r3] -_08106A92: - pop {r0} - bx r0 - .align 2, 0 -_08106A98: .4byte REG_BG1CNT -_08106A9C: .4byte 0x00000a45 -_08106AA0: .4byte gUnknown_03000752 -_08106AA4: .4byte gUnknown_03000754 -_08106AA8: .4byte REG_MOSAIC - thumb_func_end sub_8106A58 - - thumb_func_start sub_8106AAC -sub_8106AAC: @ 8106AAC - push {lr} - bl sub_8106A58 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8106AAC - - thumb_func_start sub_8106AC4 -sub_8106AC4: @ 8106AC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r7, _08106B28 @ =gUnknown_03005E8C - ldr r0, [r7] - ldr r1, [r0, 0x4] - ldr r2, [r0] - adds r0, r6, 0 - bl species_and_otid_get_pal - ldr r1, _08106B2C @ =gUnknown_03005E90 - mov r8, r1 - ldr r1, [r1] - bl LZDecompressVram - cmp r4, 0 - bne _08106B40 - lsls r0, r6, 3 - ldr r1, _08106B30 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08106B34 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B38 @ =gUnknown_081FAF4C - ldr r5, [r4, 0x4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r2, r8 - ldr r1, [r2] - ldr r0, _08106B3C @ =gUnknown_03005E10 - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 - b _08106B74 - .align 2, 0 -_08106B28: .4byte gUnknown_03005E8C -_08106B2C: .4byte gUnknown_03005E90 -_08106B30: .4byte gMonFrontPicTable -_08106B34: .4byte gMonFrontPicCoords -_08106B38: .4byte gUnknown_081FAF4C -_08106B3C: .4byte gUnknown_03005E10 -_08106B40: - lsls r0, r6, 3 - ldr r1, _08106B80 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _08106B84 @ =gMonBackPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08106B88 @ =gUnknown_081FAF4C - ldr r5, [r4] - str r5, [sp] - str r6, [sp, 0x4] - ldr r4, [r7] - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 - mov r0, r8 - ldr r1, [r0] - ldr r0, _08106B8C @ =gUnknown_03005E10 - ldr r2, [r0] - adds r0, r5, 0 - bl sub_8106B90 -_08106B74: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106B80: .4byte gMonBackPicTable -_08106B84: .4byte gMonBackPicCoords -_08106B88: .4byte gUnknown_081FAF4C -_08106B8C: .4byte gUnknown_03005E10 - thumb_func_end sub_8106AC4 - - thumb_func_start sub_8106B90 -sub_8106B90: @ 8106B90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r10, r0 - mov r9, r1 - str r2, [sp] - movs r0, 0 -_08106BA4: - movs r3, 0 - adds r1, r0, 0x1 - str r1, [sp, 0x4] - lsls r0, 3 - str r0, [sp, 0x8] -_08106BAE: - movs r1, 0 - adds r2, r3, 0x1 - mov r8, r2 - ldr r7, [sp, 0x8] - adds r0, r7, r3 - lsls r0, 5 - mov r12, r0 - lsls r4, r3, 3 -_08106BBE: - movs r3, 0 - lsls r0, r1, 2 - adds r6, r1, 0x1 - mov r2, r12 - adds r5, r2, r0 - ldr r7, [sp, 0x8] - adds r0, r7, r1 - lsls r0, 7 - ldr r1, [sp] - adds r2, r0, r1 -_08106BD2: - lsrs r0, r3, 1 - adds r0, r5, r0 - add r0, r10 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08106BE6 - lsrs r1, 4 - b _08106BEA -_08106BE6: - movs r0, 0xF - ands r1, r0 -_08106BEA: - cmp r1, 0 - bne _08106BFC - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - movs r7, 0x80 - lsls r7, 8 - adds r1, r7, 0 - b _08106C08 -_08106BFC: - adds r0, r4, r3 - lsls r0, 1 - adds r0, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] -_08106C08: - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BD2 - lsls r0, r6, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _08106BBE - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - cmp r3, 0x7 - bls _08106BAE - ldr r2, [sp, 0x4] - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x7 - bls _08106BA4 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8106B90 - - thumb_func_start sub_8106C40 -sub_8106C40: @ 8106C40 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08106C7C @ =gPictureFramePalettes - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - cmp r4, 0x1 - beq _08106C5E - b _08106DB4 -_08106C5E: - ldr r0, _08106C80 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106D1C - lsls r0, 2 - ldr r1, _08106C84 @ =_08106C88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106C7C: .4byte gPictureFramePalettes -_08106C80: .4byte gUnknown_03005E8C -_08106C84: .4byte _08106C88 - .align 2, 0 -_08106C88: - .4byte _08106C9C - .4byte _08106CB4 - .4byte _08106CCC - .4byte _08106CE4 - .4byte _08106D08 -_08106C9C: - ldr r0, _08106CAC @ =gPictureFrameTiles_0 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CB0 @ =gPictureFrameTilemap_0 - b _08106CF0 - .align 2, 0 -_08106CAC: .4byte gPictureFrameTiles_0 -_08106CB0: .4byte gPictureFrameTilemap_0 -_08106CB4: - ldr r0, _08106CC4 @ =gPictureFrameTiles_1 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CC8 @ =gPictureFrameTilemap_1 - b _08106CF0 - .align 2, 0 -_08106CC4: .4byte gPictureFrameTiles_1 -_08106CC8: .4byte gPictureFrameTilemap_1 -_08106CCC: - ldr r0, _08106CDC @ =gPictureFrameTiles_2 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106CE0 @ =gPictureFrameTilemap_2 - b _08106CF0 - .align 2, 0 -_08106CDC: .4byte gPictureFrameTiles_2 -_08106CE0: .4byte gPictureFrameTilemap_2 -_08106CE4: - ldr r0, _08106CFC @ =gPictureFrameTiles_3 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D00 @ =gPictureFrameTilemap_3 -_08106CF0: - ldr r1, _08106D04 @ =gUnknown_03005E10 - ldr r1, [r1] - bl RLUnCompWram - b _08106D1C - .align 2, 0 -_08106CFC: .4byte gPictureFrameTiles_3 -_08106D00: .4byte gPictureFrameTilemap_3 -_08106D04: .4byte gUnknown_03005E10 -_08106D08: - ldr r0, _08106D98 @ =gPictureFrameTiles_4 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106D9C @ =gPictureFrameTilemap_4 - ldr r1, _08106DA0 @ =gUnknown_03005E10 - ldr r1, [r1] - bl RLUnCompWram -_08106D1C: - movs r1, 0 - ldr r5, _08106DA4 @ =0x06006000 - ldr r0, _08106DA8 @ =0x00001015 - adds r4, r0, 0 -_08106D24: - movs r3, 0 - lsls r2, r1, 5 -_08106D28: - adds r0, r2, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _08106D28 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bls _08106D24 - movs r1, 0 - ldr r0, _08106DAC @ =0x0600608c - mov r12, r0 - ldr r7, _08106DA0 @ =gUnknown_03005E10 -_08106D4C: - movs r3, 0 - adds r6, r1, 0x1 - lsls r5, r1, 5 - lsls r4, r1, 6 -_08106D54: - adds r2, r5, r3 - lsls r2, 1 - add r2, r12 - ldr r0, [r7] - adds r0, r4, r0 - lsls r1, r3, 1 - adds r0, r1 - adds r0, 0x8C - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x11 - bls _08106D54 - lsls r0, r6, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - bls _08106D4C - movs r3, 0 - ldr r4, _08106DB0 @ =0x0600608e - ldr r2, _08106DA0 @ =gUnknown_03005E10 -_08106D80: - lsls r1, r3, 1 - adds r1, r4 - ldr r0, [r2] - adds r0, 0x8E - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _08106D80 - b _08106E86 - .align 2, 0 -_08106D98: .4byte gPictureFrameTiles_4 -_08106D9C: .4byte gPictureFrameTilemap_4 -_08106DA0: .4byte gUnknown_03005E10 -_08106DA4: .4byte 0x06006000 -_08106DA8: .4byte 0x00001015 -_08106DAC: .4byte 0x0600608c -_08106DB0: .4byte 0x0600608e -_08106DB4: - cmp r5, 0x7 - bhi _08106DD0 - ldr r0, _08106DC8 @ =gPictureFrameTiles_5 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106DCC @ =gPictureFrameTilemap_5 - b _08106E60 - .align 2, 0 -_08106DC8: .4byte gPictureFrameTiles_5 -_08106DCC: .4byte gPictureFrameTilemap_5 -_08106DD0: - ldr r0, _08106DF0 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _08106E86 - lsls r0, 2 - ldr r1, _08106DF4 @ =_08106DF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106DF0: .4byte gUnknown_03005E8C -_08106DF4: .4byte _08106DF8 - .align 2, 0 -_08106DF8: - .4byte _08106E0C - .4byte _08106E24 - .4byte _08106E3C - .4byte _08106E54 - .4byte _08106E74 -_08106E0C: - ldr r0, _08106E1C @ =gPictureFrameTiles_0 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E20 @ =gPictureFrameTilemap_0 - b _08106E60 - .align 2, 0 -_08106E1C: .4byte gPictureFrameTiles_0 -_08106E20: .4byte gPictureFrameTilemap_0 -_08106E24: - ldr r0, _08106E34 @ =gPictureFrameTiles_1 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E38 @ =gPictureFrameTilemap_1 - b _08106E60 - .align 2, 0 -_08106E34: .4byte gPictureFrameTiles_1 -_08106E38: .4byte gPictureFrameTilemap_1 -_08106E3C: - ldr r0, _08106E4C @ =gPictureFrameTiles_2 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E50 @ =gPictureFrameTilemap_2 - b _08106E60 - .align 2, 0 -_08106E4C: .4byte gPictureFrameTiles_2 -_08106E50: .4byte gPictureFrameTilemap_2 -_08106E54: - ldr r0, _08106E68 @ =gPictureFrameTiles_3 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E6C @ =gPictureFrameTilemap_3 -_08106E60: - ldr r1, _08106E70 @ =0x06006000 - bl RLUnCompVram - b _08106E86 - .align 2, 0 -_08106E68: .4byte gPictureFrameTiles_3 -_08106E6C: .4byte gPictureFrameTilemap_3 -_08106E70: .4byte 0x06006000 -_08106E74: - ldr r0, _08106E8C @ =gPictureFrameTiles_4 - movs r1, 0xC0 - lsls r1, 19 - bl RLUnCompVram - ldr r0, _08106E90 @ =gPictureFrameTilemap_4 - ldr r1, _08106E94 @ =0x06006000 - bl RLUnCompVram -_08106E86: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08106E8C: .4byte gPictureFrameTiles_4 -_08106E90: .4byte gPictureFrameTilemap_4 -_08106E94: .4byte 0x06006000 - thumb_func_end sub_8106C40 - - thumb_func_start sub_8106E98 -sub_8106E98: @ 8106E98 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08106ED0 @ =gMain - ldr r1, _08106ED4 @ =gOamData_83F6138 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r4, 0x3C] - str r2, [r4, 0x40] - adds r3, r4, 0 - adds r3, 0x40 - ldrh r2, [r3] - ldr r1, _08106ED8 @ =0xfffffc00 - ands r1, r2 - strh r1, [r3] - ldrh r1, [r4, 0x3E] - ldr r0, _08106EDC @ =0xfffffe00 - ands r0, r1 - movs r1, 0x58 - orrs r0, r1 - strh r0, [r4, 0x3E] - adds r1, r4, 0 - adds r1, 0x3C - movs r0, 0x18 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106ED0: .4byte gMain -_08106ED4: .4byte gOamData_83F6138 -_08106ED8: .4byte 0xfffffc00 -_08106EDC: .4byte 0xfffffe00 - thumb_func_end sub_8106E98 - - thumb_func_start sub_8106EE0 -sub_8106EE0: @ 8106EE0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _08106EF8 - ldr r0, _08106EF4 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - b _08106F08 - .align 2, 0 -_08106EF4: .4byte gUnknown_03005E8C -_08106EF8: - ldr r0, _08106F18 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0, 0xA] - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 -_08106F08: - cmp r0, 0x4 - bhi _08106F46 - lsls r0, 2 - ldr r1, _08106F1C @ =_08106F20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106F18: .4byte gUnknown_03005E8C -_08106F1C: .4byte _08106F20 - .align 2, 0 -_08106F20: - .4byte _08106F34 - .4byte _08106F38 - .4byte _08106F3C - .4byte _08106F40 - .4byte _08106F44 -_08106F34: - movs r0, 0x9 - b _08106F46 -_08106F38: - movs r0, 0xD - b _08106F46 -_08106F3C: - movs r0, 0x2 - b _08106F46 -_08106F40: - movs r0, 0x24 - b _08106F46 -_08106F44: - movs r0, 0x6 -_08106F46: - pop {r1} - bx r1 - thumb_func_end sub_8106EE0 - - thumb_func_start sub_8106F4C -sub_8106F4C: @ 8106F4C - ldr r0, _08106F5C @ =gUnknown_03005E90 - ldr r1, _08106F60 @ =0x02017e00 - str r1, [r0] - ldr r0, _08106F64 @ =gUnknown_03005E10 - ldr r2, _08106F68 @ =0xffffe000 - adds r1, r2 - str r1, [r0] - bx lr - .align 2, 0 -_08106F5C: .4byte gUnknown_03005E90 -_08106F60: .4byte 0x02017e00 -_08106F64: .4byte gUnknown_03005E10 -_08106F68: .4byte 0xffffe000 - thumb_func_end sub_8106F4C - - thumb_func_start sub_8106F6C -sub_8106F6C: @ 8106F6C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08106FAC @ =gUnknown_03005E20 - ldr r0, _08106FB0 @ =gUnknown_03005E10 - ldr r0, [r0] - str r0, [r1, 0x4] - ldr r0, _08106FB4 @ =gUnknown_03005E90 - ldr r0, [r0] - str r0, [r1, 0x8] - movs r2, 0 - strb r2, [r1, 0x18] - ldr r0, _08106FB8 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrb r0, [r0] - strb r0, [r1, 0x1F] - strb r2, [r1, 0x19] - strb r2, [r1, 0x1A] - movs r0, 0x40 - strb r0, [r1, 0x1B] - strb r0, [r1, 0x1C] - strb r0, [r1, 0x1D] - strb r0, [r1, 0x1E] - subs r0, r3, 0x2 - adds r4, r1, 0 - cmp r0, 0x22 - bhi _08107050 - lsls r0, 2 - ldr r1, _08106FBC @ =_08106FC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08106FAC: .4byte gUnknown_03005E20 -_08106FB0: .4byte gUnknown_03005E10 -_08106FB4: .4byte gUnknown_03005E90 -_08106FB8: .4byte gUnknown_03005E8C -_08106FBC: .4byte _08106FC0 - .align 2, 0 -_08106FC0: - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _08107050 - .4byte _0810704C -_0810704C: - movs r0, 0x3 - b _08107052 -_08107050: - movs r0, 0x1 -_08107052: - strh r0, [r4, 0x14] - movs r0, 0x2 - strh r0, [r4, 0x16] - strb r3, [r4] - ldr r0, _08107088 @ =0x06010000 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80FC7A0 - adds r0, r4, 0 - bl sub_80FDA18 - adds r0, r4, 0 - bl sub_80FD8CC - ldr r0, _0810708C @ =gUnknown_03005E90 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x80 - lsls r2, 2 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08107088: .4byte 0x06010000 -_0810708C: .4byte gUnknown_03005E90 - thumb_func_end sub_8106F6C - - thumb_func_start sub_8107090 -sub_8107090: @ 8107090 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - bl sub_8106F4C - ldr r0, _081070D0 @ =gUnknown_03005E8C - ldr r0, [r0] - ldrh r0, [r0, 0x8] - movs r1, 0 - bl sub_8106AC4 - adds r0, r4, 0 - bl sub_8106EE0 - lsls r0, 24 - lsrs r0, 24 - bl sub_8106F6C - adds r0, r4, 0 - bl sub_8106E98 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8106C40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081070D0: .4byte gUnknown_03005E8C - thumb_func_end sub_8107090 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_80B79A8.s b/asm/rom_80B79A8.s new file mode 100644 index 000000000..f109d94b6 --- /dev/null +++ b/asm/rom_80B79A8.s @@ -0,0 +1,164001 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start IsEnoughMoney +IsEnoughMoney: @ 80B79A8 + push {lr} + cmp r0, r1 + bcs _080B79B2 + movs r0, 0 + b _080B79B4 +_080B79B2: + movs r0, 0x1 +_080B79B4: + pop {r1} + bx r1 + thumb_func_end IsEnoughMoney + + thumb_func_start sub_80B79B8 +sub_80B79B8: @ 80B79B8 + push {lr} + adds r2, r0, 0 + ldr r0, [r2] + adds r1, r0, r1 + cmp r0, r1 + bls _080B79CC + ldr r0, _080B79C8 @ =0x000f423f + b _080B79D4 + .align 2, 0 +_080B79C8: .4byte 0x000f423f +_080B79CC: + str r1, [r2] + ldr r0, _080B79DC @ =0x000f423f + cmp r1, r0 + bls _080B79D6 +_080B79D4: + str r0, [r2] +_080B79D6: + pop {r0} + bx r0 + .align 2, 0 +_080B79DC: .4byte 0x000f423f + thumb_func_end sub_80B79B8 + + thumb_func_start sub_80B79E0 +sub_80B79E0: @ 80B79E0 + push {lr} + adds r2, r0, 0 + ldr r0, [r2] + cmp r0, r1 + bcs _080B79EE + movs r0, 0 + b _080B79F0 +_080B79EE: + subs r0, r1 +_080B79F0: + str r0, [r2] + pop {r0} + bx r0 + thumb_func_end sub_80B79E0 + + thumb_func_start sub_80B79F8 +sub_80B79F8: @ 80B79F8 + push {r4,lr} + adds r3, r0, 0 + lsls r2, 24 + lsrs r4, r2, 24 + ldr r0, _080B7A0C @ =0x000f423f + cmp r1, r0 + bls _080B7A10 + movs r2, 0x7 + b _080B7A46 + .align 2, 0 +_080B7A0C: .4byte 0x000f423f +_080B7A10: + ldr r0, _080B7A1C @ =0x0001869f + cmp r1, r0 + bls _080B7A20 + movs r2, 0x6 + b _080B7A46 + .align 2, 0 +_080B7A1C: .4byte 0x0001869f +_080B7A20: + ldr r0, _080B7A2C @ =0x00002710 + cmp r1, r0 + bls _080B7A30 + movs r2, 0x5 + b _080B7A46 + .align 2, 0 +_080B7A2C: .4byte 0x00002710 +_080B7A30: + ldr r0, _080B7A90 @ =0x000003e7 + movs r2, 0x4 + cmp r1, r0 + bhi _080B7A46 + movs r2, 0x3 + cmp r1, 0x63 + bhi _080B7A46 + movs r2, 0x1 + cmp r1, 0x9 + bls _080B7A46 + movs r2, 0x2 +_080B7A46: + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0x6 + strb r0, [r3, 0x2] + adds r3, 0x3 + movs r0, 0 + subs r2, r4, r2 + cmp r0, r2 + bge _080B7A6C + movs r4, 0 +_080B7A5E: + strb r4, [r3] + adds r3, 0x1 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + blt _080B7A5E +_080B7A6C: + movs r0, 0xB7 + strb r0, [r3] + adds r3, 0x1 + adds r0, r3, 0 + bl ConvertIntToDecimalString + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7A90: .4byte 0x000003e7 + thumb_func_end sub_80B79F8 + + thumb_func_start sub_80B7A94 +sub_80B7A94: @ 80B7A94 + push {r4-r7,lr} + sub sp, 0x10 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80B79F8 + mov r0, sp + bl sub_8072CA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0x1 + lsls r0, 3 + cmp r2, r0 + blt _080B7ACE + mov r0, sp + adds r1, r6, 0 + adds r2, r7, 0 + bl MenuPrint + b _080B7AE4 +_080B7ACE: + adds r1, r6, 0x1 + adds r1, r5 + lsls r1, 3 + subs r1, r2 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r7, 3 + mov r0, sp + movs r3, 0x1 + bl MenuPrint_PixelCoords +_080B7AE4: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B7A94 + + thumb_func_start sub_80B7AEC +sub_80B7AEC: @ 80B7AEC + push {r4-r6,lr} + sub sp, 0x20 + adds r3, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r6, sp + movs r0, 0xB7 + strb r0, [r6] + adds r6, 0x1 + adds r0, r6, 0 + adds r1, r3, 0 + bl ConvertIntToDecimalString + adds r6, r0, 0 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8072B4C + movs r0, 0xFC + strb r0, [r6] + movs r0, 0x14 + strb r0, [r6, 0x1] + movs r0, 0 + strb r0, [r6, 0x2] + movs r0, 0xFF + strb r0, [r6, 0x3] + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B7AEC + + thumb_func_start sub_80B7B34 +sub_80B7B34: @ 80B7B34 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + mov r9, r2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r9 + lsls r1, 8 + mov r9, r1 + ldr r4, _080B7BD8 @ =gDecoration10000_Gfx + adds r0, r1, r4 + lsls r6, r5, 4 + subs r6, r5 + lsls r1, r6, 6 + mov r3, r8 + adds r3, 0x1 + lsls r3, 5 + ldr r2, _080B7BDC @ =0x06008000 + adds r3, r2 + adds r1, r3 + movs r2, 0x20 + str r3, [sp] + bl CpuFastSet + adds r4, 0x80 + add r9, r4 + adds r0, r5, 0x1 + lsls r4, r0, 4 + subs r4, r0 + lsls r1, r4, 6 + ldr r3, [sp] + adds r1, r3 + mov r0, r9 + movs r2, 0x20 + bl CpuFastSet + movs r3, 0 + lsls r5, 5 + mov r0, r8 + adds r7, r5, r0 + lsls r6, 1 + adds r6, 0x1 + add r6, r8 + ldr r1, _080B7BE0 @ =0xfffff000 + adds r5, r1, 0 + ldr r0, _080B7BE4 @ =0x0600f800 + mov r12, r0 + ldr r1, _080B7BE8 @ =0x0600f840 + mov r9, r1 + lsls r4, 1 + adds r4, 0x1 + add r4, r8 +_080B7BAA: + adds r1, r7, r3 + lsls r1, 1 + mov r0, r12 + adds r2, r1, r0 + adds r0, r3, r6 + adds r0, r5 + strh r0, [r2] + add r1, r9 + adds r0, r3, r4 + adds r0, r5 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B7BAA + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B7BD8: .4byte gDecoration10000_Gfx +_080B7BDC: .4byte 0x06008000 +_080B7BE0: .4byte 0xfffff000 +_080B7BE4: .4byte 0x0600f800 +_080B7BE8: .4byte 0x0600f840 + thumb_func_end sub_80B7B34 + + thumb_func_start sub_80B7BEC +sub_80B7BEC: @ 80B7BEC + push {r4,lr} + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + movs r1, 0xC0 + lsls r1, 19 + adds r4, r1 + lsrs r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r3, r1 + lsrs r3, 24 + movs r1, 0x6 + adds r2, r4, 0 + bl sub_80B7A94 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7BEC + + thumb_func_start sub_80B7C14 +sub_80B7C14: @ 80B7C14 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r3, r2, 0 + lsls r4, 24 + lsls r3, 24 + lsrs r6, r4, 24 + movs r0, 0xD0 + lsls r0, 20 + adds r4, r0 + lsrs r4, 24 + lsrs r5, r3, 24 + movs r1, 0xC0 + lsls r1, 18 + adds r3, r1 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuDrawTextWindow + mov r0, r8 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80B7BEC + ldr r0, _080B7C88 @ =gUnknown_083CF584 + bl LoadCompressedObjectPic + ldr r0, _080B7C8C @ =gUnknown_083CF58C + bl LoadCompressedObjectPalette + ldr r0, _080B7C90 @ =gSpriteTemplate_83CF56C + lsls r6, 19 + movs r1, 0x98 + lsls r1, 13 + adds r6, r1 + asrs r6, 16 + lsls r5, 19 + movs r1, 0xB0 + lsls r1, 12 + adds r5, r1 + asrs r5, 16 + adds r1, r6, 0 + adds r2, r5, 0 + movs r3, 0 + bl CreateSprite + ldr r1, _080B7C94 @ =gUnknown_02038734 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7C88: .4byte gUnknown_083CF584 +_080B7C8C: .4byte gUnknown_083CF58C +_080B7C90: .4byte gSpriteTemplate_83CF56C +_080B7C94: .4byte gUnknown_02038734 + thumb_func_end sub_80B7C14 + + thumb_func_start RemoveMoneyLabelObject +RemoveMoneyLabelObject: @ 80B7C98 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B7CDC @ =gUnknown_02038734 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B7CE0 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + ldr r0, _080B7CE4 @ =0x00002722 + bl FreeSpritePaletteByTag + adds r2, r4, 0 + adds r2, 0xD + lsls r2, 24 + lsrs r2, 24 + adds r3, r5, 0x3 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl MenuZeroFillWindowRect + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B7CDC: .4byte gUnknown_02038734 +_080B7CE0: .4byte gSprites +_080B7CE4: .4byte 0x00002722 + thumb_func_end RemoveMoneyLabelObject + + thumb_func_start sub_80B7CE8 +sub_80B7CE8: @ 80B7CE8 + push {lr} + ldr r0, _080B7D04 @ =gSaveBlock1 + movs r1, 0x92 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080B7D08 @ =gUnknown_0202E8CE + ldrh r1, [r1] + bl IsEnoughMoney + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080B7D04: .4byte gSaveBlock1 +_080B7D08: .4byte gUnknown_0202E8CE + thumb_func_end sub_80B7CE8 + + thumb_func_start sub_80B7D0C +sub_80B7D0C: @ 80B7D0C + push {lr} + ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490 + ldr r1, _080B7D20 @ =gUnknown_0202E8CE + ldrh r1, [r1] + bl sub_80B79E0 + pop {r0} + bx r0 + .align 2, 0 +_080B7D1C: .4byte gSaveBlock1 + 0x490 +_080B7D20: .4byte gUnknown_0202E8CE + thumb_func_end sub_80B7D0C + + thumb_func_start AreMovesContestCombo +AreMovesContestCombo: @ 80B7D24 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsls r1, 16 + ldr r2, _080B7D78 @ =gContestMoves + lsrs r0, 13 + adds r0, r2 + ldrb r4, [r0, 0x2] + mov r3, sp + lsrs r1, 13 + adds r1, r2 + ldrb r0, [r1, 0x3] + strb r0, [r3] + mov r2, sp + ldrb r0, [r1, 0x4] + strb r0, [r2, 0x1] + ldrb r0, [r1, 0x5] + strb r0, [r2, 0x2] + mov r0, sp + ldrb r1, [r1, 0x6] + strb r1, [r0, 0x3] + cmp r4, 0 + beq _080B7D80 + mov r0, sp + ldrb r0, [r0] + cmp r4, r0 + beq _080B7D6E + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r4, r0 + beq _080B7D6E + mov r0, sp + ldrb r0, [r0, 0x2] + cmp r4, r0 + beq _080B7D6E + cmp r4, r1 + bne _080B7D80 +_080B7D6E: + ldr r0, _080B7D7C @ =gComboStarterLookupTable + adds r0, r4, r0 + ldrb r0, [r0] + b _080B7D82 + .align 2, 0 +_080B7D78: .4byte gContestMoves +_080B7D7C: .4byte gComboStarterLookupTable +_080B7D80: + movs r0, 0 +_080B7D82: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end AreMovesContestCombo + + thumb_func_start ContestEffect_00 +ContestEffect_00: @ 80B7D8C + bx lr + thumb_func_end ContestEffect_00 + + thumb_func_start ContestEffect_01 +ContestEffect_01: @ 80B7D90 + push {lr} + ldr r3, _080B7DB8 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7DB8: .4byte 0x020192d0 + thumb_func_end ContestEffect_01 + + thumb_func_start ContestEffect_02 +ContestEffect_02: @ 80B7DBC + push {lr} + ldr r3, _080B7DE4 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r3, 0x11] + movs r1, 0x1 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7DE4: .4byte 0x020192d0 + thumb_func_end ContestEffect_02 + + thumb_func_start ContestEffect_03 +ContestEffect_03: @ 80B7DE8 + push {r4,lr} + ldr r3, _080B7E30 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, r3, 0 + subs r4, 0x70 + adds r0, r4 + ldrb r1, [r0, 0x10] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x15] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x15] + ldrb r0, [r3, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0xB] + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7E30: .4byte 0x020192d0 + thumb_func_end ContestEffect_03 + + thumb_func_start ContestEffect_04 +ContestEffect_04: @ 80B7E34 + push {lr} + ldr r2, _080B7E58 @ =0x020192d0 + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r2, 0 + subs r1, 0x70 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0, 0x12] + ldrb r0, [r2, 0x11] + movs r1, 0x2 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7E58: .4byte 0x020192d0 + thumb_func_end ContestEffect_04 + + thumb_func_start ContestEffect_05 +ContestEffect_05: @ 80B7E5C + push {lr} + ldr r3, _080B7E84 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0x3 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7E84: .4byte 0x020192d0 + thumb_func_end ContestEffect_05 + + thumb_func_start ContestEffect_06 +ContestEffect_06: @ 80B7E88 + push {lr} + ldr r2, _080B7EAC @ =0x020192d0 + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r2, 0 + subs r1, 0x70 + adds r0, r1 + movs r1, 0x14 + strb r1, [r0, 0xF] + ldrb r0, [r2, 0x11] + movs r1, 0x4 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7EAC: .4byte 0x020192d0 + thumb_func_end ContestEffect_06 + + thumb_func_start ContestEffect_07 +ContestEffect_07: @ 80B7EB0 + push {lr} + ldr r3, _080B7ED8 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r3, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r3, 0x11] + movs r1, 0x5 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B7ED8: .4byte 0x020192d0 + thumb_func_end ContestEffect_07 + + thumb_func_start ContestEffect_08 +ContestEffect_08: @ 80B7EDC + push {r4,lr} + movs r2, 0 + ldr r3, _080B7F38 @ =0x020192d0 + ldrb r0, [r3, 0x11] + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + beq _080B7F1A + subs r0, 0x1 + ldrb r4, [r3] + cmp r0, r4 + beq _080B7F0A + adds r4, r3, 0 + adds r3, r1, 0 +_080B7EF8: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B7F0A + ldrb r0, [r3] + subs r0, 0x1 + adds r1, r2, r4 + ldrb r1, [r1] + cmp r0, r1 + bne _080B7EF8 +_080B7F0A: + ldr r1, _080B7F38 @ =0x020192d0 + strb r2, [r1, 0x8] + movs r0, 0xFF + strb r0, [r1, 0x9] + bl sub_80B9120 + lsls r0, 24 + lsrs r2, r0, 24 +_080B7F1A: + cmp r2, 0 + bne _080B7F28 + ldr r0, _080B7F38 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F28: + ldr r0, _080B7F38 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B7F38: .4byte 0x020192d0 + thumb_func_end ContestEffect_08 + + thumb_func_start ContestEffect_09 +ContestEffect_09: @ 80B7F3C + push {r4-r6,lr} + movs r2, 0 + ldr r1, _080B7F9C @ =0x020192d0 + ldrb r0, [r1, 0x11] + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080B7F7C + movs r3, 0 + adds r5, r1, 0 + adds r6, r5, 0 + adds r6, 0x8 +_080B7F54: + adds r1, r2, r5 + ldrb r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bls _080B7F64 + adds r0, r3, r6 + strb r2, [r0] + adds r3, 0x1 +_080B7F64: + adds r2, 0x1 + cmp r2, 0x3 + ble _080B7F54 + ldr r0, _080B7F9C @ =0x020192d0 + adds r0, 0x8 + adds r0, r3, r0 + movs r1, 0xFF + strb r1, [r0] + bl sub_80B9120 + lsls r0, 24 + lsrs r2, r0, 24 +_080B7F7C: + cmp r2, 0 + bne _080B7F8A + ldr r0, _080B7F9C @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B7F8A: + ldr r0, _080B7F9C @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B7F9C: .4byte 0x020192d0 + thumb_func_end ContestEffect_09 + + thumb_func_start ContestEffect_14 +ContestEffect_14: @ 80B7FA0 + push {lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x14 + cmp r0, 0x1 + bls _080B7FC2 + movs r1, 0x3C + cmp r0, 0x7 + bhi _080B7FC2 + movs r1, 0x28 +_080B7FC2: + ldr r0, _080B7FD0 @ =0x020192d0 + strh r1, [r0, 0x4] + bl ContestEffect_08 + pop {r0} + bx r0 + .align 2, 0 +_080B7FD0: .4byte 0x020192d0 + thumb_func_end ContestEffect_14 + + thumb_func_start ContestEffect_15 +ContestEffect_15: @ 80B7FD4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + ldr r0, _080B806C @ =0x020192d0 + ldrb r6, [r0, 0x11] + adds r1, r6, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0 + beq _080B804A + movs r5, 0 + mov r4, r8 +_080B7FEE: + adds r0, r6, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8044 + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r0, 0 + beq _080B8032 + movs r1, 0xA + cmp r0, 0x2 + bls _080B8032 + movs r1, 0x14 + cmp r0, 0x4 + bls _080B8032 + movs r1, 0x1E + cmp r0, 0x6 + bls _080B8032 + movs r1, 0x3C + cmp r0, 0x8 + bhi _080B8032 + movs r1, 0x28 +_080B8032: + strh r1, [r4, 0x4] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8044 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B8044: + adds r5, 0x1 + cmp r5, 0x3 + ble _080B7FEE +_080B804A: + mov r1, r8 + ldrb r0, [r1, 0x11] + movs r1, 0x30 + bl sub_80B13EC + cmp r7, 0 + bne _080B8062 + mov r1, r8 + ldrb r0, [r1, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8062: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B806C: .4byte 0x020192d0 + thumb_func_end ContestEffect_15 + + thumb_func_start ContestEffect_16 +ContestEffect_16: @ 80B8070 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r9, r0 + ldr r0, _080B8108 @ =0x020192d0 + ldrb r7, [r0, 0x11] + adds r1, r7, r0 + ldrb r1, [r1] + mov r10, r0 + cmp r1, 0 + beq _080B80E0 + movs r6, 0 + mov r8, r10 + mov r5, r10 + subs r5, 0x5B +_080B8094: + mov r1, r8 + adds r0, r7, r1 + adds r1, r6, r1 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B80D8 + ldrb r1, [r5] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B80D8 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B80D8 + ldrb r0, [r5] + movs r2, 0x11 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x8 + bl sub_80B13EC + movs r0, 0x1 + mov r9, r0 +_080B80D8: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B8094 +_080B80E0: + mov r1, r10 + ldrb r0, [r1, 0x11] + movs r1, 0x7 + bl sub_80B13EC + mov r2, r9 + cmp r2, 0 + bne _080B80FA + mov r1, r10 + ldrb r0, [r1, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B80FA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8108: .4byte 0x020192d0 + thumb_func_end ContestEffect_16 + + thumb_func_start ContestEffect_17 +ContestEffect_17: @ 80B810C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r9, r0 + ldr r0, _080B8150 @ =0x020192d0 + ldrb r1, [r0, 0x11] + mov r8, r1 + adds r1, r0 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0 + beq _080B817C + movs r5, 0 + adds r4, r6, 0 + movs r7, 0 +_080B812E: + mov r2, r8 + adds r0, r2, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8172 + adds r0, r6, 0 + subs r0, 0x70 + adds r0, r7, r0 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B8154 + movs r0, 0x32 + b _080B8156 + .align 2, 0 +_080B8150: .4byte 0x020192d0 +_080B8154: + movs r0, 0xA +_080B8156: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8172 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080B8172: + adds r7, 0x1C + adds r5, 0x1 + ldr r6, _080B81A0 @ =0x020192d0 + cmp r5, 0x3 + ble _080B812E +_080B817C: + ldrb r0, [r6, 0x11] + movs r1, 0x30 + bl sub_80B13EC + mov r0, r9 + cmp r0, 0 + bne _080B8192 + ldrb r0, [r6, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8192: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B81A0: .4byte 0x020192d0 + thumb_func_end ContestEffect_17 + + thumb_func_start ContestEffect_18 +ContestEffect_18: @ 80B81A4 + push {r4,lr} + ldr r4, _080B81D0 @ =0x020192d0 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x11] + bl ContestEffect_09 + ldrb r0, [r4, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B81D0: .4byte 0x020192d0 + thumb_func_end ContestEffect_18 + + thumb_func_start ContestEffect_19 +ContestEffect_19: @ 80B81D4 + push {r4,lr} + ldr r4, _080B8208 @ =0x020192d0 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrh r0, [r0, 0x6] + ldr r1, _080B820C @ =gContestMoves + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + bl sub_80B9038 + ldrb r0, [r4, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8208: .4byte 0x020192d0 +_080B820C: .4byte gContestMoves + thumb_func_end ContestEffect_19 + + thumb_func_start ContestEffect_20 +ContestEffect_20: @ 80B8210 + push {lr} + movs r0, 0 + bl sub_80B9038 + ldr r0, _080B8228 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8228: .4byte 0x020192d0 + thumb_func_end ContestEffect_20 + + thumb_func_start ContestEffect_21 +ContestEffect_21: @ 80B822C + push {lr} + movs r0, 0x1 + bl sub_80B9038 + ldr r0, _080B8244 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8244: .4byte 0x020192d0 + thumb_func_end ContestEffect_21 + + thumb_func_start ContestEffect_22 +ContestEffect_22: @ 80B8248 + push {lr} + movs r0, 0x2 + bl sub_80B9038 + ldr r0, _080B8260 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8260: .4byte 0x020192d0 + thumb_func_end ContestEffect_22 + + thumb_func_start ContestEffect_23 +ContestEffect_23: @ 80B8264 + push {lr} + movs r0, 0x3 + bl sub_80B9038 + ldr r0, _080B827C @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B827C: .4byte 0x020192d0 + thumb_func_end ContestEffect_23 + + thumb_func_start ContestEffect_24 +ContestEffect_24: @ 80B8280 + push {lr} + movs r0, 0x4 + bl sub_80B9038 + ldr r0, _080B8298 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r0} + bx r0 + .align 2, 0 +_080B8298: .4byte 0x020192d0 + thumb_func_end ContestEffect_24 + + thumb_func_start ContestEffect_25 +ContestEffect_25: @ 80B829C + push {r4-r7,lr} + movs r4, 0 + ldr r0, _080B82E0 @ =0x020192d0 + ldrb r1, [r0, 0x11] + adds r1, r0 + ldrb r1, [r1] + adds r7, r0, 0 + cmp r1, 0x3 + beq _080B82F4 + movs r5, 0 + adds r6, r7, 0 +_080B82B2: + ldrb r0, [r6, 0x11] + adds r0, r6 + ldrb r0, [r0] + adds r0, 0x1 + adds r1, r5, r6 + ldrb r1, [r1] + cmp r0, r1 + bne _080B82EE + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B82E4 + adds r0, r4, 0 + bl sub_80B157C + adds r0, r4, 0 + movs r1, 0xA + b _080B82E8 + .align 2, 0 +_080B82E0: .4byte 0x020192d0 +_080B82E4: + adds r0, r4, 0 + movs r1, 0x3C +_080B82E8: + bl sub_80B13EC + movs r4, 0x1 +_080B82EE: + adds r5, 0x1 + cmp r5, 0x3 + ble _080B82B2 +_080B82F4: + ldrb r0, [r7, 0x11] + movs r1, 0x9 + bl sub_80B13EC + cmp r4, 0 + bne _080B8308 + ldrb r0, [r7, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8308: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_25 + + thumb_func_start ContestEffect_26 +ContestEffect_26: @ 80B8310 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + movs r0, 0 + mov r9, r0 + movs r1, 0 + str r1, [sp, 0x18] + mov r0, sp + movs r1, 0xFF + movs r2, 0x5 + bl memset + movs r6, 0 + movs r4, 0 + add r2, sp, 0x10 + mov r8, r2 + add r3, sp, 0x8 + mov r10, r3 + ldr r5, _080B8384 @ =0x020192d0 + adds r7, r5, 0 + subs r7, 0x70 +_080B8340: + ldrb r0, [r5, 0x11] + adds r0, r5 + adds r1, r6, r5 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _080B836E + ldrb r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080B836E + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080B836E + mov r1, sp + adds r0, r1, r4 + strb r6, [r0] + adds r4, 0x1 +_080B836E: + adds r7, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B8340 + cmp r4, 0x1 + bne _080B8388 + movs r0, 0x3C + mov r2, r8 + strh r0, [r2] + b _080B83B6 + .align 2, 0 +_080B8384: .4byte 0x020192d0 +_080B8388: + cmp r4, 0x2 + bne _080B8396 + movs r0, 0x1E + mov r3, r8 + strh r0, [r3] + strh r0, [r3, 0x2] + b _080B83B6 +_080B8396: + cmp r4, 0x3 + bne _080B83A6 + movs r0, 0x14 + mov r7, r8 + strh r0, [r7] + strh r0, [r7, 0x2] + strh r0, [r7, 0x4] + b _080B83B6 +_080B83A6: + mov r1, r8 + movs r2, 0 + mov r0, r8 + adds r0, 0x6 +_080B83AE: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _080B83AE +_080B83B6: + movs r6, 0 + movs r7, 0 + mov r4, r10 +_080B83BC: + ldr r0, _080B83F0 @ =0x02019260 + adds r5, r7, r0 + ldrb r1, [r5, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B83FC + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080B83FC + ldr r1, _080B83F4 @ =gContestMoves + ldrh r0, [r5, 0x8] + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x2] + ldr r1, _080B83F8 @ =gComboStarterLookupTable + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + b _080B83FE + .align 2, 0 +_080B83F0: .4byte 0x02019260 +_080B83F4: .4byte gContestMoves +_080B83F8: .4byte gComboStarterLookupTable +_080B83FC: + movs r0, 0 +_080B83FE: + strh r0, [r4] + ldr r5, _080B8494 @ =0x02019260 + adds r0, r7, r5 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4] + subs r0, r1 + strh r0, [r4] + adds r7, 0x1C + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080B83BC + mov r2, r8 + movs r3, 0 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080B84CA + movs r6, 0 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0xFF + beq _080B84CA + adds r5, 0x7D + mov r4, sp +_080B8442: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 1 + add r1, r8 + movs r7, 0 + ldrsh r2, [r1, r7] + ldrb r3, [r4] + lsls r1, r3, 1 + add r1, r10 + movs r7, 0 + ldrsh r1, [r1, r7] + adds r2, r1 + cmp r0, r2 + bge _080B8498 + adds r0, r3, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B84A2 + ldrb r0, [r4] + bl sub_80B157C + ldrb r0, [r4] + movs r1, 0xA + bl sub_80B13EC + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + b _080B849C + .align 2, 0 +_080B8494: .4byte 0x02019260 +_080B8498: + movs r0, 0x1 + str r0, [sp, 0x18] +_080B849C: + ldr r1, [sp, 0x18] + cmp r1, 0 + beq _080B84B8 +_080B84A2: + movs r2, 0 + str r2, [sp, 0x18] + ldrb r0, [r4] + movs r1, 0x3C + bl sub_80B13EC + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080B84B8: + ldrb r0, [r4] + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + adds r4, 0x1 + adds r6, 0x1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080B8442 +_080B84CA: + ldr r4, _080B84F4 @ =0x020192d0 + ldrb r0, [r4, 0x11] + movs r1, 0xB + bl sub_80B13EC + mov r3, r9 + cmp r3, 0 + bne _080B84E2 + ldrb r0, [r4, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B84E2: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B84F4: .4byte 0x020192d0 + thumb_func_end ContestEffect_26 + + thumb_func_start ContestEffect_27 +ContestEffect_27: @ 80B84F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + movs r6, 0 + ldr r7, _080B8580 @ =0x020192d0 + adds r5, r7, 0 + subs r5, 0x63 +_080B850A: + ldrb r0, [r7, 0x11] + adds r0, r7 + adds r1, r6, r7 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8556 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + ble _080B8556 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80B90C0 + lsls r0, 24 + cmp r0, 0 + beq _080B8556 + movs r0, 0 + strb r0, [r5] + ldrb r1, [r5, 0x3] + movs r2, 0x31 + negs r2, r2 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0x20 + orrs r1, r0 + strb r1, [r5, 0x3] + adds r0, r4, 0 + movs r1, 0xD + bl sub_80B13EC + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_080B8556: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + ble _080B850A + ldr r4, _080B8580 @ =0x020192d0 + ldrb r0, [r4, 0x11] + movs r1, 0xC + bl sub_80B13EC + mov r0, r8 + cmp r0, 0 + bne _080B8576 + ldrb r0, [r4, 0x11] + movs r1, 0x39 + bl sub_80B1404 +_080B8576: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8580: .4byte 0x020192d0 + thumb_func_end ContestEffect_27 + + thumb_func_start ContestEffect_28 +ContestEffect_28: @ 80B8584 + push {r4-r7,lr} + movs r7, 0 + movs r5, 0 + ldr r4, _080B85B0 @ =0x020192d0 + movs r6, 0 +_080B858E: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B85CE + adds r0, r4, 0 + subs r0, 0x70 + adds r0, r6, r0 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080B85B4 + movs r0, 0x28 + b _080B85B6 + .align 2, 0 +_080B85B0: .4byte 0x020192d0 +_080B85B4: + movs r0, 0xA +_080B85B6: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B85CE + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B85CE: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B858E + ldr r4, _080B85F4 @ =0x020192d0 + ldrb r0, [r4, 0x11] + movs r1, 0xE + bl sub_80B13EC + cmp r7, 0 + bne _080B85EC + ldrb r0, [r4, 0x11] + movs r1, 0x39 + bl sub_80B1404 +_080B85EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B85F4: .4byte 0x020192d0 + thumb_func_end ContestEffect_28 + + thumb_func_start ContestEffect_29 +ContestEffect_29: @ 80B85F8 + push {r4,lr} + ldr r0, _080B863C @ =gUnknown_02038696 + ldr r4, _080B8640 @ =0x020192d0 + ldrb r2, [r4, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080B8636 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x6] + ldr r3, _080B8644 @ =gContestEffects + ldr r2, _080B8648 @ =gContestMoves + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0xF + bl sub_80B13EC +_080B8636: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B863C: .4byte gUnknown_02038696 +_080B8640: .4byte 0x020192d0 +_080B8644: .4byte gContestEffects +_080B8648: .4byte gContestMoves + thumb_func_end ContestEffect_29 + + thumb_func_start ContestEffect_30 +ContestEffect_30: @ 80B864C + push {r4,lr} + ldr r0, _080B8690 @ =gUnknown_02038696 + ldr r4, _080B8694 @ =0x020192d0 + ldrb r2, [r4, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080B868A + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x6] + ldr r3, _080B8698 @ =gContestEffects + ldr r2, _080B869C @ =gContestMoves + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x10 + bl sub_80B13EC +_080B868A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8690: .4byte gUnknown_02038696 +_080B8694: .4byte 0x020192d0 +_080B8698: .4byte gContestEffects +_080B869C: .4byte gContestMoves + thumb_func_end ContestEffect_30 + + thumb_func_start ContestEffect_31 +ContestEffect_31: @ 80B86A0 + push {r4-r7,lr} + movs r1, 0 + movs r3, 0 + ldr r4, _080B86EC @ =0x020192d0 + ldrb r0, [r4, 0x11] + adds r0, r4 + ldrb r5, [r0] + movs r2, 0 + adds r6, r4, 0 + subs r6, 0x70 +_080B86B4: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r5, r0 + bls _080B86C4 + adds r0, r2, r6 + movs r7, 0x2 + ldrsh r0, [r0, r7] + adds r3, r0 +_080B86C4: + adds r2, 0x1C + adds r1, 0x1 + cmp r1, 0x3 + ble _080B86B4 + cmp r3, 0 + bge _080B86D2 + movs r3, 0 +_080B86D2: + ldr r4, _080B86EC @ =0x020192d0 + ldrb r2, [r4, 0x11] + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080B86E2 + cmp r3, 0 + bne _080B86F0 +_080B86E2: + adds r0, r2, 0 + movs r1, 0x12 + bl sub_80B13EC + b _080B8710 + .align 2, 0 +_080B86EC: .4byte 0x020192d0 +_080B86F0: + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + lsrs r0, r3, 31 + adds r0, r3, r0 + asrs r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x11 + bl sub_80B13EC +_080B8710: + ldr r4, _080B873C @ =0x020192d0 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r5, r4, 0 + subs r5, 0x70 + adds r0, r5 + movs r7, 0x2 + ldrsh r0, [r0, r7] + bl sub_80B9224 + ldrb r2, [r4, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + strh r0, [r1, 0x2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B873C: .4byte 0x020192d0 + thumb_func_end ContestEffect_31 + + thumb_func_start ContestEffect_32 +ContestEffect_32: @ 80B8740 + push {r4-r7,lr} + movs r6, 0 + ldr r0, _080B8794 @ =0x020192d0 + ldrb r1, [r0, 0x11] + adds r3, r1, r0 + ldrb r1, [r3] + adds r4, r0, 0 + cmp r1, 0 + beq _080B8788 + movs r2, 0 + adds r7, r4, 0 + adds r0, r1, 0 + subs r1, r0, 0x1 + movs r3, 0 + adds r5, r4, 0 + subs r5, 0x70 +_080B8760: + adds r0, r2, r7 + ldrb r0, [r0] + cmp r1, r0 + bne _080B876C + adds r0, r3, r5 + ldrh r6, [r0, 0x2] +_080B876C: + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B8760 + adds r0, r4, 0 + ldrb r2, [r0, 0x11] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _080B8788 + lsls r0, r6, 16 + asrs r3, r0, 16 + cmp r3, 0 + bgt _080B8798 +_080B8788: + ldrb r0, [r4, 0x11] + movs r1, 0x14 + bl sub_80B13EC + b _080B87B2 + .align 2, 0 +_080B8794: .4byte 0x020192d0 +_080B8798: + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r0 + ldrh r0, [r1, 0x2] + adds r0, r3, r0 + strh r0, [r1, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x13 + bl sub_80B13EC +_080B87B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_32 + + thumb_func_start ContestEffect_33 +ContestEffect_33: @ 80B87B8 + push {lr} + ldr r0, _080B87D8 @ =0x020192d0 + ldrb r2, [r0, 0x11] + adds r1, r2, r0 + ldrb r3, [r1] + mov r12, r0 + cmp r3, 0 + bne _080B87DC + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r12 + subs r1, 0x70 + adds r0, r1 + movs r1, 0xA + b _080B87EE + .align 2, 0 +_080B87D8: .4byte 0x020192d0 +_080B87DC: + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r12 + subs r1, 0x70 + adds r0, r1 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 +_080B87EE: + strh r1, [r0, 0x2] + cmp r3, 0 + bne _080B8800 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x15 + bl sub_80B13EC + b _080B882A +_080B8800: + cmp r3, 0x1 + bne _080B8810 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x16 + bl sub_80B13EC + b _080B882A +_080B8810: + cmp r3, 0x2 + bne _080B8820 + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x17 + bl sub_80B13EC + b _080B882A +_080B8820: + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x18 + bl sub_80B13EC +_080B882A: + pop {r0} + bx r0 + thumb_func_end ContestEffect_33 + + thumb_func_start ContestEffect_34 +ContestEffect_34: @ 80B8830 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x2 + bhi _080B885C + movs r4, 0xA + ldr r0, _080B8858 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1A + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8858: .4byte 0x020192d0 +_080B885C: + cmp r0, 0x5 + bhi _080B8874 + movs r4, 0x14 + ldr r0, _080B8870 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1B + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8870: .4byte 0x020192d0 +_080B8874: + cmp r0, 0x7 + bhi _080B888C + movs r4, 0x28 + ldr r0, _080B8888 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1C + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B8888: .4byte 0x020192d0 +_080B888C: + cmp r1, 0x8 + bhi _080B88A4 + movs r4, 0x3C + ldr r0, _080B88A0 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1D + bl sub_80B13EC + b _080B88B0 + .align 2, 0 +_080B88A0: .4byte 0x020192d0 +_080B88A4: + movs r4, 0x50 + ldr r0, _080B88C8 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x1E + bl sub_80B13EC +_080B88B0: + ldr r0, _080B88C8 @ =0x020192d0 + ldrb r2, [r0, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + subs r0, 0x70 + adds r1, r0 + strh r4, [r1, 0x2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B88C8: .4byte 0x020192d0 + thumb_func_end ContestEffect_34 + + thumb_func_start ContestEffect_35 +ContestEffect_35: @ 80B88CC + push {r4-r7,lr} + ldr r1, _080B8940 @ =0x020192d0 + ldrb r0, [r1, 0x11] + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r12, r1 + cmp r2, 0 + beq _080B8994 + ldrb r5, [r1] + mov r6, r12 + subs r6, 0x70 +_080B88EA: + movs r2, 0 + lsls r0, r4, 24 + asrs r1, r0, 24 + adds r4, r0, 0 + cmp r5, r1 + beq _080B8910 + ldr r3, _080B8940 @ =0x020192d0 +_080B88F8: + lsls r0, r2, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bgt _080B8910 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _080B88F8 +_080B8910: + lsls r2, 24 + asrs r1, r2, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r3, r0, r6 + ldrb r1, [r3, 0xB] + movs r0, 0x80 + ands r0, r1 + adds r7, r2, 0 + cmp r0, 0 + bne _080B8932 + ldrb r1, [r3, 0xC] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080B8944 +_080B8932: + movs r1, 0xFF + lsls r1, 24 + adds r0, r4, r1 + lsrs r4, r0, 24 + cmp r0, 0 + blt _080B8994 + b _080B88EA + .align 2, 0 +_080B8940: .4byte 0x020192d0 +_080B8944: + mov r2, r12 + ldrb r1, [r2, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r3, r12 + subs r3, 0x70 + adds r5, r0, r3 + ldrh r0, [r5, 0x6] + ldr r4, _080B899C @ =gContestMoves + lsls r0, 3 + adds r6, r0, r4 + ldrb r2, [r6, 0x1] + lsls r2, 29 + asrs r1, r7, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x6] + lsls r0, 3 + adds r0, r4 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r2, r0 + bne _080B8994 + ldr r1, _080B89A0 @ =gContestEffects + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r5, 0x2] + mov r2, r12 + ldrb r0, [r2, 0x11] + movs r1, 0x1F + bl sub_80B13EC +_080B8994: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B899C: .4byte gContestMoves +_080B89A0: .4byte gContestEffects + thumb_func_end ContestEffect_35 + + thumb_func_start ContestEffect_36 +ContestEffect_36: @ 80B89A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080B8A28 @ =0x020192d0 + ldrb r2, [r0, 0x11] + adds r1, r2, r0 + ldrb r1, [r1] + mov r8, r0 + cmp r1, 0 + beq _080B8A3C + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + mov r1, r8 + subs r1, 0x70 + adds r0, r1 + ldrh r0, [r0, 0x6] + mov r9, r0 + movs r4, 0 + mov r6, r8 + ldr r0, _080B8A2C @ =gContestMoves + mov r12, r0 + movs r7, 0 +_080B89D4: + ldrb r2, [r6, 0x11] + adds r0, r2, r6 + ldrb r0, [r0] + subs r0, 0x1 + adds r1, r4, r6 + ldrb r1, [r1] + cmp r0, r1 + bne _080B8A34 + mov r1, r9 + lsls r0, r1, 3 + mov r1, r12 + adds r3, r0, r1 + ldrb r1, [r3, 0x1] + lsls r1, 29 + mov r5, r8 + subs r5, 0x70 + adds r0, r7, r5 + ldrh r0, [r0, 0x6] + lsls r0, 3 + add r0, r12 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r1, r0 + beq _080B8A34 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + ldr r2, _080B8A30 @ =gContestEffects + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + lsls r0, 1 + ldrh r2, [r1, 0x2] + adds r0, r2 + strh r0, [r1, 0x2] + ldrb r0, [r6, 0x11] + movs r1, 0x20 + bl sub_80B13EC + b _080B8A3C + .align 2, 0 +_080B8A28: .4byte 0x020192d0 +_080B8A2C: .4byte gContestMoves +_080B8A30: .4byte gContestEffects +_080B8A34: + adds r7, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _080B89D4 +_080B8A3C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_36 + + thumb_func_start ContestEffect_37 +ContestEffect_37: @ 80B8A48 + push {r4-r7,lr} + ldr r1, _080B8A94 @ =0x020192d0 + ldrb r0, [r1, 0x11] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080B8AB0 + movs r5, 0 + adds r4, r1, 0 + adds r6, r4, 0 + subs r6, 0x70 + adds r7, r6, 0 +_080B8A60: + ldrb r2, [r4, 0x11] + adds r0, r2, r4 + ldrb r0, [r0] + subs r0, 0x1 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bne _080B8AA8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r2, r0, r7 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r3, 0x2 + ldrsh r0, [r6, r3] + cmp r1, r0 + ble _080B8A98 + adds r0, r1, 0 + lsls r0, 1 + strh r0, [r2, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x21 + bl sub_80B13EC + b _080B8AA8 + .align 2, 0 +_080B8A94: .4byte 0x020192d0 +_080B8A98: + cmp r1, r0 + bge _080B8AA8 + movs r0, 0 + strh r0, [r2, 0x2] + ldrb r0, [r4, 0x11] + movs r1, 0x22 + bl sub_80B13EC +_080B8AA8: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B8A60 +_080B8AB0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_37 + + thumb_func_start ContestEffect_38 +ContestEffect_38: @ 80B8AB8 + push {r4,r5,lr} + ldr r4, _080B8AFC @ =0x020192d0 + ldrb r2, [r4, 0x11] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r5, r4, 0 + subs r5, 0x70 + adds r1, r0, r5 + ldrb r3, [r1, 0xD] + movs r0, 0xD + ldrsb r0, [r1, r0] + cmp r0, 0x1D + bgt _080B8B00 + adds r0, r3, 0 + adds r0, 0xA + strb r0, [r1, 0xD] + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r2, [r0, 0x10] + movs r1, 0x31 + negs r1, r1 + ands r1, r2 + movs r2, 0x10 + orrs r1, r2 + strb r1, [r0, 0x10] + ldrb r0, [r4, 0x11] + movs r1, 0x23 + bl sub_80B13EC + b _080B8B08 + .align 2, 0 +_080B8AFC: .4byte 0x020192d0 +_080B8B00: + adds r0, r2, 0 + movs r1, 0x3A + bl sub_80B13EC +_080B8B08: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ContestEffect_38 + + thumb_func_start ContestEffect_39 +ContestEffect_39: @ 80B8B10 + push {r4,lr} + ldr r3, _080B8B48 @ =0x020192d0 + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r4, r3, 0 + subs r4, 0x70 + adds r0, r4 + ldrb r1, [r0, 0x11] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r1, [r3, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080B8B4C + adds r0, r1, 0 + movs r1, 0x24 + bl sub_80B13EC + b _080B8B54 + .align 2, 0 +_080B8B48: .4byte 0x020192d0 +_080B8B4C: + adds r0, r1, 0 + movs r1, 0x3B + bl sub_80B13EC +_080B8B54: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ContestEffect_39 + + thumb_func_start ContestEffect_40 +ContestEffect_40: @ 80B8B5C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r1, _080B8BE4 @ =0x02019204 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + bne _080B8B6E + b _080B8C76 +_080B8B6E: + movs r6, 0 + adds r7, r1, 0 + adds r7, 0xCC + adds r3, r1, 0 + adds r3, 0x5C +_080B8B78: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8B78 + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + movs r6, 0 + mov r12, r7 + movs r4, 0x70 + negs r4, r4 + adds r4, r7 + mov r8, r4 +_080B8BAE: + movs r5, 0 +_080B8BB0: + lsls r0, r5, 24 + asrs r2, r0, 24 + mov r0, r12 + ldrb r0, [r0, 0x11] + cmp r2, r0 + beq _080B8BE8 + lsls r0, r6, 24 + asrs r3, r0, 24 + mov r1, sp + adds r4, r1, r2 + ldrb r0, [r4] + cmp r3, r0 + bne _080B8BE8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + lsls r0, r3, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x19] + cmp r0, r1 + bne _080B8BE8 + adds r0, r3, 0x1 + strb r0, [r4] + b _080B8BF8 + .align 2, 0 +_080B8BE4: .4byte 0x02019204 +_080B8BE8: + lsls r0, r5, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8BB0 +_080B8BF8: + cmp r5, 0x4 + beq _080B8C0C + lsls r0, r6, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8BAE +_080B8C0C: + ldrb r0, [r7, 0x11] + mov r4, sp + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r3, r7, 0 + subs r3, 0x70 + adds r1, r3 + ldrb r2, [r1, 0x10] + movs r0, 0x3F + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r1, 0x10] + movs r6, 0 +_080B8C32: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, 0x19] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8C32 + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r7, 0 + subs r0, 0x70 + adds r1, r0 + ldrb r2, [r1, 0x11] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1, 0x11] + ldrb r0, [r7, 0x11] + movs r1, 0x25 + bl sub_80B13EC +_080B8C76: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_40 + + thumb_func_start ContestEffect_41 +ContestEffect_41: @ 80B8C84 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r1, _080B8D14 @ =0x02019204 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + bne _080B8C98 + b _080B8DA6 +_080B8C98: + movs r6, 0 + adds r7, r1, 0 + adds r7, 0xCC + adds r3, r1, 0 + adds r3, 0x5C +_080B8CA2: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8CA2 + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + movs r6, 0x3 + mov r12, r7 + movs r4, 0x70 + negs r4, r4 + adds r4, r7 + mov r8, r4 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 +_080B8CDE: + movs r5, 0 +_080B8CE0: + lsls r0, r5, 24 + asrs r2, r0, 24 + mov r1, r12 + ldrb r1, [r1, 0x11] + cmp r2, r1 + beq _080B8D18 + lsls r0, r6, 24 + asrs r3, r0, 24 + mov r0, sp + adds r4, r0, r2 + ldrb r1, [r4] + cmp r3, r1 + bne _080B8D18 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + lsls r0, r3, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x19] + cmp r0, r1 + bne _080B8D18 + subs r0, r3, 0x1 + strb r0, [r4] + b _080B8D28 + .align 2, 0 +_080B8D14: .4byte 0x02019204 +_080B8D18: + lsls r0, r5, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8CE0 +_080B8D28: + cmp r5, 0x4 + beq _080B8D3C + lsls r0, r6, 24 + movs r4, 0xFF + lsls r4, 24 + adds r0, r4 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, r9 + bgt _080B8CDE +_080B8D3C: + ldrb r0, [r7, 0x11] + mov r2, sp + adds r1, r2, r0 + movs r0, 0x3 + strb r0, [r1] + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r3, r7, 0 + subs r3, 0x70 + adds r1, r3 + ldrb r2, [r1, 0x10] + movs r0, 0x3F + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r1, 0x10] + movs r6, 0 +_080B8D62: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + mov r4, sp + adds r2, r4, r1 + ldrb r2, [r2] + strb r2, [r0, 0x19] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8D62 + ldrb r0, [r7, 0x11] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r0, r7, 0 + subs r0, 0x70 + adds r1, r0 + ldrb r2, [r1, 0x11] + movs r0, 0x4 + negs r0, r0 + ands r0, r2 + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x11] + ldrb r0, [r7, 0x11] + movs r1, 0x26 + bl sub_80B13EC +_080B8DA6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end ContestEffect_41 + + thumb_func_start ContestEffect_42 +ContestEffect_42: @ 80B8DB4 + bx lr + thumb_func_end ContestEffect_42 + + thumb_func_start ContestEffect_43 +ContestEffect_43: @ 80B8DB8 + push {r4-r7,lr} + sub sp, 0x8 + ldr r1, _080B8E30 @ =0x02019204 + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + beq _080B8EAE + movs r6, 0 + add r3, sp, 0x4 + adds r5, r1, 0 + adds r5, 0x5C + adds r4, r3, 0 +_080B8DCE: + lsls r1, r6, 24 + asrs r1, 24 + mov r0, sp + adds r2, r0, r1 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x19] + strb r0, [r2] + adds r0, r4, r1 + strb r6, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + asrs r1, 24 + cmp r1, 0x3 + ble _080B8DCE + movs r6, 0 + adds r7, r3, 0 +_080B8DF6: + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r2, r6, 24 + asrs r2, 24 + movs r1, 0x4 + subs r1, r2 + bl __modsi3 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0 +_080B8E10: + lsls r0, r1, 24 + asrs r2, r0, 24 + adds r3, r7, r2 + ldrb r1, [r3] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080B8E3A + cmp r4, 0 + bne _080B8E34 + mov r1, sp + adds r0, r1, r2 + strb r6, [r0] + movs r0, 0xFF + strb r0, [r3] + b _080B8E48 + .align 2, 0 +_080B8E30: .4byte 0x02019204 +_080B8E34: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080B8E3A: + movs r3, 0x80 + lsls r3, 17 + adds r0, r5, r3 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8E10 +_080B8E48: + lsls r0, r6, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r6, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080B8DF6 + movs r6, 0 + ldr r4, _080B8EB8 @ =0x020192d0 + adds r7, r4, 0 + subs r7, 0x70 + movs r3, 0x3F + mov r12, r3 + movs r5, 0x80 +_080B8E66: + lsls r2, r6, 24 + asrs r2, 24 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r7 + mov r3, sp + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, 0x19] + ldrb r3, [r1, 0x10] + mov r0, r12 + ands r0, r3 + orrs r0, r5 + strb r0, [r1, 0x10] + adds r2, 0x1 + lsls r2, 24 + lsrs r6, r2, 24 + asrs r2, 24 + cmp r2, 0x3 + ble _080B8E66 + ldrb r1, [r4, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r4, 0 + subs r1, 0x70 + adds r0, r1 + ldrb r1, [r0, 0x11] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r4, 0x11] + movs r1, 0x27 + bl sub_80B13EC +_080B8EAE: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8EB8: .4byte 0x020192d0 + thumb_func_end ContestEffect_43 + + thumb_func_start ContestEffect_44 +ContestEffect_44: @ 80B8EBC + push {lr} + ldr r3, _080B8EF0 @ =gContestMoves + ldr r1, _080B8EF4 @ =0x020192d0 + ldrb r2, [r1, 0x11] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + subs r1, 0x70 + adds r2, r0, r1 + ldrh r0, [r2, 0x6] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x1] + lsls r0, 29 + ldr r1, _080B8EF8 @ =gUnknown_0203869C + lsrs r0, 29 + ldrh r1, [r1] + cmp r0, r1 + beq _080B8EEA + ldrb r0, [r2, 0x11] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x11] +_080B8EEA: + pop {r0} + bx r0 + .align 2, 0 +_080B8EF0: .4byte gContestMoves +_080B8EF4: .4byte 0x020192d0 +_080B8EF8: .4byte gUnknown_0203869C + thumb_func_end ContestEffect_44 + + thumb_func_start ContestEffect_45 +ContestEffect_45: @ 80B8EFC + push {r4-r7,lr} + movs r7, 0 + movs r5, 0 + ldr r4, _080B8F34 @ =0x020192d0 + movs r6, 0 +_080B8F06: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B8F52 + adds r0, r4, 0 + subs r0, 0x70 + adds r1, r6, r0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0 + ble _080B8F38 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x4] + movs r1, 0x4 + ldrsh r0, [r4, r1] + bl sub_80B9268 + b _080B8F3A + .align 2, 0 +_080B8F34: .4byte 0x020192d0 +_080B8F38: + movs r0, 0xA +_080B8F3A: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B8F52 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080B8F52: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B8F06 + cmp r7, 0 + bne _080B8F68 + ldr r0, _080B8F78 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B8F68: + ldr r0, _080B8F78 @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x30 + bl sub_80B13EC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B8F78: .4byte 0x020192d0 + thumb_func_end ContestEffect_45 + + thumb_func_start ContestEffect_46 +ContestEffect_46: @ 80B8F7C + push {r4,lr} + ldr r0, _080B8F98 @ =0x02019204 + movs r1, 0x13 + ldrsb r1, [r0, r1] + cmp r1, 0 + bne _080B8F9C + movs r4, 0xA + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1A + bl sub_80B13EC + b _080B8FDE + .align 2, 0 +_080B8F98: .4byte 0x02019204 +_080B8F9C: + cmp r1, 0x1 + bne _080B8FAE + movs r4, 0x14 + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1B + bl sub_80B13EC + b _080B8FDE +_080B8FAE: + cmp r1, 0x2 + bne _080B8FC0 + movs r4, 0x1E + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1C + bl sub_80B13EC + b _080B8FDE +_080B8FC0: + cmp r1, 0x3 + bne _080B8FD2 + movs r4, 0x32 + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1D + bl sub_80B13EC + b _080B8FDE +_080B8FD2: + movs r4, 0x3C + adds r0, 0xCC + ldrb r0, [r0, 0x11] + movs r1, 0x1E + bl sub_80B13EC +_080B8FDE: + ldr r0, _080B8FF4 @ =0x020192d0 + ldrb r2, [r0, 0x11] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + subs r0, 0x70 + adds r1, r0 + strh r4, [r1, 0x2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B8FF4: .4byte 0x020192d0 + thumb_func_end ContestEffect_46 + + thumb_func_start ContestEffect_47 +ContestEffect_47: @ 80B8FF8 + push {lr} + ldr r3, _080B9034 @ =0x02019328 + ldrb r2, [r3, 0x1] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080B902E + movs r0, 0x1 + orrs r2, r0 + movs r0, 0x58 + negs r0, r0 + adds r0, r3 + mov r12, r0 + ldrb r1, [r0, 0x11] + movs r0, 0x7 + ands r0, r1 + lsls r0, 1 + movs r1, 0xF + negs r1, r1 + ands r2, r1 + orrs r2, r0 + strb r2, [r3, 0x1] + mov r1, r12 + ldrb r0, [r1, 0x11] + movs r1, 0x3D + bl sub_80B13EC +_080B902E: + pop {r0} + bx r0 + .align 2, 0 +_080B9034: .4byte 0x02019328 + thumb_func_end ContestEffect_47 + + thumb_func_start sub_80B9038 +sub_80B9038: @ 80B9038 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r7, 0 + movs r5, 0 + ldr r4, _080B907C @ =0x020192d0 + ldr r0, _080B9080 @ =gContestMoves + mov r9, r0 + movs r6, 0 +_080B9052: + ldrb r0, [r4, 0x11] + adds r0, r4 + adds r1, r5, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B909A + adds r0, r4, 0 + subs r0, 0x70 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + cmp r8, r0 + bne _080B9084 + movs r0, 0x28 + b _080B9086 + .align 2, 0 +_080B907C: .4byte 0x020192d0 +_080B9080: .4byte gContestMoves +_080B9084: + movs r0, 0xA +_080B9086: + strh r0, [r4, 0x4] + strb r5, [r4, 0x8] + movs r0, 0xFF + strb r0, [r4, 0x9] + bl sub_80B9120 + lsls r0, 24 + cmp r0, 0 + beq _080B909A + adds r7, 0x1 +_080B909A: + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B9052 + cmp r7, 0 + bne _080B90B0 + ldr r0, _080B90BC @ =0x020192d0 + ldrb r0, [r0, 0x11] + movs r1, 0x36 + bl sub_80B1404 +_080B90B0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B90BC: .4byte 0x020192d0 + thumb_func_end sub_80B9038 + + thumb_func_start sub_80B90C0 +sub_80B90C0: @ 80B90C0 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080B90EC @ =0x020192d0 + adds r0, r2, 0 + adds r0, 0xD + adds r0, r3, r0 + movs r1, 0x1 + strb r1, [r0] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + subs r2, 0x70 + adds r2, r0, r2 + ldrb r1, [r2, 0x10] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080B90F0 + adds r0, r3, 0 + movs r1, 0x2D + b _080B9116 + .align 2, 0 +_080B90EC: .4byte 0x020192d0 +_080B90F0: + ldrb r0, [r2, 0x12] + cmp r0, 0 + bne _080B910E + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B911A + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080B911A + movs r0, 0x1 + b _080B911C +_080B910E: + subs r0, 0x1 + strb r0, [r2, 0x12] + adds r0, r3, 0 + movs r1, 0x2C +_080B9116: + bl sub_80B13EC +_080B911A: + movs r0, 0 +_080B911C: + pop {r1} + bx r1 + thumb_func_end sub_80B90C0 + + thumb_func_start sub_80B9120 +sub_80B9120: @ 80B9120 + push {r4-r7,lr} + sub sp, 0xC + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + movs r7, 0 + ldr r1, _080B918C @ =0x020192d0 + ldrb r0, [r1, 0x8] + cmp r0, 0xFF + beq _080B91D8 + adds r5, r1, 0 +_080B913A: + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r7, r0 + ldrb r4, [r0] + adds r6, r4, 0 + adds r0, r4, 0 + str r1, [sp, 0x8] + bl sub_80B90C0 + lsls r0, 24 + ldr r1, [sp, 0x8] + cmp r0, 0 + beq _080B91C8 + ldrh r0, [r1, 0x4] + strh r0, [r1, 0x6] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r1, 0x70 + adds r2, r0, r1 + ldrb r1, [r2, 0x10] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B9174 + movs r1, 0x6 + ldrsh r0, [r5, r1] + lsls r0, 1 + strh r0, [r5, 0x6] +_080B9174: + ldrb r0, [r2, 0x10] + movs r3, 0x1 + ands r3, r0 + cmp r3, 0 + beq _080B9190 + movs r0, 0xA + strh r0, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x2F + bl sub_80B13EC + b _080B91C8 + .align 2, 0 +_080B918C: .4byte 0x020192d0 +_080B9190: + ldrb r1, [r2, 0xF] + ldrh r0, [r5, 0x6] + subs r0, r1 + adds r1, r0, 0 + strh r0, [r5, 0x6] + lsls r0, 16 + cmp r0, 0 + bgt _080B91AC + strh r3, [r5, 0x6] + adds r0, r4, 0 + movs r1, 0x2E + bl sub_80B13EC + b _080B91C8 +_080B91AC: + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_80B9200 + ldrb r1, [r5, 0x6] + adds r0, r6, 0 + bl sub_80B141C + lsls r0, r6, 1 + mov r2, sp + adds r1, r2, r0 + ldrh r0, [r5, 0x6] + strh r0, [r1] +_080B91C8: + adds r7, 0x1 + ldr r1, _080B91E8 @ =0x020192d0 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r7, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080B913A +_080B91D8: + movs r7, 0 + mov r1, sp +_080B91DC: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B91EC + movs r0, 0x1 + b _080B91F6 + .align 2, 0 +_080B91E8: .4byte 0x020192d0 +_080B91EC: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _080B91DC + movs r0, 0 +_080B91F6: + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B9120 + + thumb_func_start sub_80B9200 +sub_80B9200: @ 80B9200 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B9220 @ =0x02019260 + adds r2, r0 + ldrh r0, [r2, 0x2] + subs r0, r1 + strh r0, [r2, 0x2] + ldrb r0, [r2, 0xE] + adds r1, r0 + strb r1, [r2, 0xE] + bx lr + .align 2, 0 +_080B9220: .4byte 0x02019260 + thumb_func_end sub_80B9200 + + thumb_func_start sub_80B9224 +sub_80B9224: @ 80B9224 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + cmp r4, 0 + bge _080B9234 + negs r0, r4 +_080B9234: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r4, 0 + bge _080B9252 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B925C + adds r0, r4, 0 + subs r0, 0xA + adds r0, r1, r0 + b _080B9258 +_080B9252: + lsls r0, 16 + asrs r0, 16 + subs r0, r4, r0 +_080B9258: + lsls r0, 16 + lsrs r5, r0, 16 +_080B925C: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B9224 + + thumb_func_start sub_80B9268 +sub_80B9268: @ 80B9268 + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + cmp r4, 0 + bge _080B9278 + negs r0, r4 +_080B9278: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080B9290 + adds r0, r4, 0 + adds r0, 0xA + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080B9290: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B9268 + + thumb_func_start sub_80B929C +sub_80B929C: @ 80B929C + push {lr} + ldr r0, _080B92A8 @ =sub_80B9484 + bl sub_8083A84 + pop {r0} + bx r0 + .align 2, 0 +_080B92A8: .4byte sub_80B9484 + thumb_func_end sub_80B929C + + thumb_func_start sub_80B92AC +sub_80B92AC: @ 80B92AC + push {r4-r6,lr} + bl sub_80BC300 + bl sub_80C045C + ldr r6, _080B9364 @ =0x02018000 + ldr r0, _080B9368 @ =gUnknown_083D026C + ldr r1, [r0] + movs r2, 0xC8 + lsls r2, 4 + adds r0, r6, 0 + bl memcpy + movs r1, 0xC8 + lsls r1, 4 + adds r0, r6, r1 + ldr r1, _080B936C @ =gUnknown_083D0270 + ldr r1, [r1] + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + ldr r2, _080B9370 @ =0x00001004 + adds r0, r6, r2 + ldr r1, _080B9374 @ =gUnknown_083D0274 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r1, _080B9378 @ =0x00001044 + adds r0, r6, r1 + ldr r1, _080B937C @ =gUnknown_083D0278 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r2, _080B9380 @ =0x00001084 + adds r0, r6, r2 + ldr r1, _080B9384 @ =gUnknown_083D027C + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r5, _080B9388 @ =gUnknown_02038738 + ldr r4, _080B938C @ =gSaveBlock1 + ldr r0, _080B9390 @ =0x0000303c + adds r1, r4, r0 + adds r0, r5, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9394 @ =0x00003074 + adds r1, r4, r2 + adds r0, r5, 0 + adds r0, 0x38 + movs r2, 0x38 + bl memcpy + ldr r0, _080B9398 @ =0x00002f9c + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8041324 + ldr r1, _080B939C @ =0x000010ac + adds r0, r6, r1 + ldr r1, _080B93A0 @ =gUnknown_083D0280 + ldr r1, [r1] + movs r2, 0x78 + bl memcpy + ldr r2, _080B93A4 @ =0x00001124 + adds r0, r6, r2 + ldr r1, _080B93A8 @ =gUnknown_083D0284 + ldr r1, [r1] + movs r2, 0xA4 + bl memcpy + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B935C + bl sub_8126338 + ldr r2, _080B93AC @ =0x000011c8 + adds r1, r6, r2 + strh r0, [r1] +_080B935C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9364: .4byte 0x02018000 +_080B9368: .4byte gUnknown_083D026C +_080B936C: .4byte gUnknown_083D0270 +_080B9370: .4byte 0x00001004 +_080B9374: .4byte gUnknown_083D0274 +_080B9378: .4byte 0x00001044 +_080B937C: .4byte gUnknown_083D0278 +_080B9380: .4byte 0x00001084 +_080B9384: .4byte gUnknown_083D027C +_080B9388: .4byte gUnknown_02038738 +_080B938C: .4byte gSaveBlock1 +_080B9390: .4byte 0x0000303c +_080B9394: .4byte 0x00003074 +_080B9398: .4byte 0x00002f9c +_080B939C: .4byte 0x000010ac +_080B93A0: .4byte gUnknown_083D0280 +_080B93A4: .4byte 0x00001124 +_080B93A8: .4byte gUnknown_083D0284 +_080B93AC: .4byte 0x000011c8 + thumb_func_end sub_80B92AC + + thumb_func_start sub_80B93B0 +sub_80B93B0: @ 80B93B0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080B9430 @ =0x02008000 + ldr r6, _080B9434 @ =0x00001230 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BD674 + movs r0, 0xC8 + lsls r0, 4 + adds r0, r5 + mov r8, r0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BFD44 + ldr r1, _080B9438 @ =0x00001004 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80C0514 + ldr r1, _080B943C @ =0x00001044 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B1C + ldr r1, _080B9440 @ =0x00001084 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80FA4E4 + ldr r1, _080B9444 @ =0x000010ac + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + mov r3, r8 + bl sub_80B9C6C + ldr r1, _080B9448 @ =0x00001124 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B70 + ldr r0, _080B944C @ =0x000011c8 + adds r5, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80B9F3C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9430: .4byte 0x02008000 +_080B9434: .4byte 0x00001230 +_080B9438: .4byte 0x00001004 +_080B943C: .4byte 0x00001044 +_080B9440: .4byte 0x00001084 +_080B9444: .4byte 0x000010ac +_080B9448: .4byte 0x00001124 +_080B944C: .4byte 0x000011c8 + thumb_func_end sub_80B93B0 + + thumb_func_start sub_80B9450 +sub_80B9450: @ 80B9450 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9480 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _080B9478 + movs r0, 0xE2 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x8] +_080B9478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9480: .4byte gTasks + thumb_func_end sub_80B9450 + + thumb_func_start sub_80B9484 +sub_80B9484: @ 80B9484 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B94A8 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080B949E + b _080B95E6 +_080B949E: + lsls r0, 2 + ldr r1, _080B94AC @ =_080B94B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B94A8: .4byte gTasks + 0x8 +_080B94AC: .4byte _080B94B0 + .align 2, 0 +_080B94B0: + .4byte _080B94C8 + .4byte _080B951C + .4byte _080B9550 + .4byte _080B9570 + .4byte _080B95AC + .4byte _080B95C0 +_080B94C8: + ldr r0, _080B950C @ =gUnknown_0202E8CE + ldrb r0, [r0] + bl sub_8007270 + movs r0, 0x80 + lsls r0, 7 + movs r1, 0x1 + bl VarSet + ldr r1, _080B9510 @ =gUnknown_03000718 + movs r0, 0 + strb r0, [r1] + bl sub_80B92AC + bl sub_80C71D8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080B9514 @ =sub_80B95F0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldr r0, _080B9518 @ =sub_80B9450 + movs r1, 0x51 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + b _080B95E6 + .align 2, 0 +_080B950C: .4byte gUnknown_0202E8CE +_080B9510: .4byte gUnknown_03000718 +_080B9514: .4byte sub_80B95F0 +_080B9518: .4byte sub_80B9450 +_080B951C: + ldr r2, _080B9548 @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + movs r0, 0x2 + strh r0, [r4] + ldr r0, _080B954C @ =0x00000834 + bl FlagSet + bl sub_80C7240 + ldrb r0, [r4, 0x1E] + bl DestroyTask + b _080B95E6 + .align 2, 0 +_080B9548: .4byte gTasks +_080B954C: .4byte 0x00000834 +_080B9550: + ldr r0, _080B956C @ =sub_80BA00C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + movs r0, 0x3 + strh r0, [r4] + movs r0, 0xE0 + bl PlaySE + b _080B95E6 + .align 2, 0 +_080B956C: .4byte sub_80BA00C +_080B9570: + ldr r2, _080B95A4 @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r5, [r0, 0x4] + cmp r5, 0 + bne _080B95E6 + movs r0, 0x4 + strh r0, [r4] + bl sub_8083664 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + bl sub_80720B0 + ldr r0, _080B95A8 @ =gOtherText_MixingComplete + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + strh r5, [r4, 0x10] + b _080B95E6 + .align 2, 0 +_080B95A4: .4byte gTasks +_080B95A8: .4byte gOtherText_MixingComplete +_080B95AC: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B95E6 + movs r0, 0x5 + strh r0, [r4] + b _080B95E6 +_080B95C0: + ldr r2, _080B95EC @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + bl sub_8055588 + bl MenuZeroFillScreen + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B95E6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B95EC: .4byte gTasks + thumb_func_end sub_80B9484 + + thumb_func_start sub_80B95F0 +sub_80B95F0: @ 80B95F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r7, _080B961C @ =gTasks + adds r5, r0, r7 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x64 + beq _080B9678 + cmp r1, 0x64 + bgt _080B962E + cmp r1, 0x1 + bne _080B9612 + b _080B9734 +_080B9612: + cmp r1, 0x1 + bgt _080B9620 + cmp r1, 0 + beq _080B9650 + b _080B97D6 + .align 2, 0 +_080B961C: .4byte gTasks +_080B9620: + cmp r1, 0x2 + bne _080B9626 + b _080B9760 +_080B9626: + cmp r1, 0x5 + bne _080B962C + b _080B97C0 +_080B962C: + b _080B97D6 +_080B962E: + cmp r1, 0xC9 + beq _080B96D0 + cmp r1, 0xC9 + bgt _080B963C + cmp r1, 0x65 + beq _080B9690 + b _080B97D6 +_080B963C: + ldr r0, _080B964C @ =0x0000012d + cmp r1, r0 + beq _080B9706 + adds r0, 0x63 + cmp r1, r0 + beq _080B971C + b _080B97D6 + .align 2, 0 +_080B964C: .4byte 0x0000012d +_080B9650: + bl sub_80B9A78 + bl MenuDisplayMessageBox + ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0xE1 + lsls r0, 3 + strh r0, [r5, 0x18] + movs r0, 0xC8 + lsls r0, 1 + strh r0, [r5, 0x8] + bl ClearLinkCallback_2 + b _080B97D6 + .align 2, 0 +_080B9674: .4byte gOtherText_MixingRecordsWithFriend +_080B9678: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080B9688 + b _080B97D6 +_080B9688: + movs r0, 0 + strh r0, [r5, 0x20] + movs r0, 0x65 + b _080B97D4 +_080B9690: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r4, r0, 24 + bl IsLinkMaster + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B96C2 + bl sub_800820C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _080B96B2 + b _080B97D6 +_080B96B2: + movs r0, 0x15 + bl PlaySE + movs r1, 0 + movs r0, 0xC9 + strh r0, [r5, 0x8] + strh r1, [r5, 0x20] + b _080B97D6 +_080B96C2: + movs r0, 0x16 + bl PlaySE + ldr r0, _080B96CC @ =0x0000012d + b _080B97D4 + .align 2, 0 +_080B96CC: .4byte 0x0000012d +_080B96D0: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + ldrh r4, [r5, 0x20] + adds r4, 0x1 + strh r4, [r5, 0x20] + lsls r4, 16 + asrs r4, 16 + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + cmp r4, r1 + ble _080B97D6 + bl sub_8007F4C + movs r0, 0x1 + b _080B97D4 +_080B9706: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + movs r0, 0x1 + b _080B97D4 +_080B971C: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B97D6 + movs r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + strh r0, [r5, 0x20] + b _080B97D6 +_080B9734: + ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080B97D6 + ldr r4, _080B975C @ =gStringVar1 + bl sub_80B9A58 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0x5 + b _080B97D4 + .align 2, 0 +_080B9758: .4byte gReceivedRemoteLinkPlayers +_080B975C: .4byte gStringVar1 +_080B9760: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x8] + bl sub_80B9A58 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldr r0, _080B97B0 @ =sub_80B97DC + str r0, [r5] + ldr r4, _080B97B4 @ =0x02018000 + adds r1, r5, 0 + adds r1, 0xC + adds r0, r4, 0 + bl sub_80B9A50 + ldr r0, _080B97B8 @ =sub_80B9890 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r7 + strh r6, [r0, 0x8] + ldr r0, _080B97BC @ =0xffff0000 + adds r4, r0 + adds r1, r7, r1 + adds r1, 0x12 + adds r0, r4, 0 + bl sub_80B9A50 + b _080B97D6 + .align 2, 0 +_080B97B0: .4byte sub_80B97DC +_080B97B4: .4byte 0x02018000 +_080B97B8: .4byte sub_80B9890 +_080B97BC: .4byte 0xffff0000 +_080B97C0: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B97D6 + movs r0, 0 + strh r0, [r5, 0x1C] + movs r0, 0x2 +_080B97D4: + strh r0, [r5, 0x8] +_080B97D6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B95F0 + + thumb_func_start sub_80B97DC +sub_80B97DC: @ 80B97DC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9800 @ =gTasks + adds r4, r1, r0 + movs r2, 0x8 + ldrsh r1, [r4, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080B9884 + lsls r0, r1, 2 + ldr r1, _080B9804 @ =_080B9808 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B9800: .4byte gTasks +_080B9804: .4byte _080B9808 + .align 2, 0 +_080B9808: + .4byte _080B981C + .4byte _080B9840 + .4byte _080B9884 + .4byte _080B9852 + .4byte _080B986E +_080B981C: + adds r0, r4, 0 + adds r0, 0xC + bl sub_80B9A44 + adds r1, r0, 0 + movs r0, 0x10 + ldrsh r2, [r4, r0] + movs r0, 0xC8 + muls r0, r2 + adds r1, r0 + ldr r0, _080B983C @ =gBlockSendBuffer + movs r2, 0xC8 + bl memcpy + b _080B9860 + .align 2, 0 +_080B983C: .4byte gBlockSendBuffer +_080B9840: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B9860 + movs r0, 0x1 + bl sub_8007E9C + b _080B9860 +_080B9852: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9868 +_080B9860: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9884 +_080B9868: + movs r0, 0 + strh r0, [r4, 0x8] + b _080B9884 +_080B986E: + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _080B9884 + ldr r0, _080B988C @ =sub_80B9A1C + str r0, [r4] +_080B9884: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B988C: .4byte sub_80B9A1C + thumb_func_end sub_80B97DC + + thumb_func_start sub_80B9890 +sub_80B9890: @ 80B9890 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r0, 2 + ldr r1, [sp] + adds r0, r1 + lsls r0, 3 + ldr r1, _080B98D0 @ =gTasks + adds r0, r1 + mov r10, r0 + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + bl sub_8008198 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x4] + cmp r3, r0 + bne _080B998A + movs r0, 0 + b _080B9966 + .align 2, 0 +_080B98D0: .4byte gTasks +_080B98D4: + ldr r1, [sp, 0x4] + mov r2, r9 + asrs r1, r2 + movs r0, 0x1 + ands r1, r0 + movs r3, 0x1 + add r3, r9 + mov r8, r3 + cmp r1, 0 + beq _080B9960 + mov r0, r10 + adds r0, 0x12 + bl sub_80B9A44 + mov r1, r8 + lsls r4, r1, 1 + mov r5, r10 + adds r5, 0x8 + adds r4, r5, r4 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0xC8 + muls r1, r3 + adds r0, r1 + ldr r7, _080B9930 @ =0x00001230 + mov r1, r9 + muls r1, r7 + adds r6, r0, r1 + mov r0, r9 + str r3, [sp, 0xC] + bl sub_80B9A68 + adds r1, r0, 0 + movs r0, 0 + ldrsh r2, [r4, r0] + adds r0, r2, 0x1 + ldr r3, [sp, 0xC] + muls r0, r3 + cmp r0, r7 + bls _080B9934 + muls r2, r3 + subs r2, r7, r2 + adds r0, r6, 0 + bl memcpy + b _080B993C + .align 2, 0 +_080B9930: .4byte 0x00001230 +_080B9934: + adds r0, r6, 0 + movs r2, 0xC8 + bl memcpy +_080B993C: + mov r0, r9 + bl ResetBlockReceivedFlag + mov r2, r8 + lsls r1, r2, 1 + adds r1, r5, r1 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9960 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_080B9960: + mov r3, r8 + lsls r0, r3, 24 + lsrs r0, 24 +_080B9966: + mov r9, r0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r9, r0 + bcc _080B98D4 + ldr r2, _080B99B0 @ =gTasks + mov r0, r10 + movs r3, 0x8 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080B998A: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp, 0x8] + cmp r1, r0 + bne _080B999E + ldr r0, [sp] + bl DestroyTask +_080B999E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B99B0: .4byte gTasks + thumb_func_end sub_80B9890 + + thumb_func_start sub_80B99B4 +sub_80B99B4: @ 80B99B4 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r2, _080B99E4 @ =gTasks + adds r0, r2 + movs r4, 0x1C + ldrsh r1, [r0, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B99DC + adds r0, r3, 0 + bl DestroyTask +_080B99DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B99E4: .4byte gTasks + thumb_func_end sub_80B99B4 + + thumb_func_start sub_80B99E8 +sub_80B99E8: @ 80B99E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9A10 @ =gTasks + adds r1, r0 + ldr r0, _080B9A14 @ =sub_80B99B4 + str r0, [r1] + ldr r0, _080B9A18 @ =gUnknown_03000718 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9A0C + movs r2, 0x12 + ldrsh r0, [r1, r2] + bl sub_80B93B0 +_080B9A0C: + pop {r0} + bx r0 + .align 2, 0 +_080B9A10: .4byte gTasks +_080B9A14: .4byte sub_80B99B4 +_080B9A18: .4byte gUnknown_03000718 + thumb_func_end sub_80B99E8 + + thumb_func_start sub_80B9A1C +sub_80B9A1C: @ 80B9A1C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9A38 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080B9A3C @ =sub_80B99E8 + str r0, [r1] + ldr r1, _080B9A40 @ =gUnknown_03000718 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_080B9A38: .4byte gTasks +_080B9A3C: .4byte sub_80B99E8 +_080B9A40: .4byte gUnknown_03000718 + thumb_func_end sub_80B9A1C + + thumb_func_start sub_80B9A44 +sub_80B9A44: @ 80B9A44 + adds r1, r0, 0 + ldrh r0, [r1] + ldrh r1, [r1, 0x2] + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_80B9A44 + + thumb_func_start sub_80B9A50 +sub_80B9A50: @ 80B9A50 + strh r0, [r1] + lsrs r0, 16 + strh r0, [r1, 0x2] + bx lr + thumb_func_end sub_80B9A50 + + thumb_func_start sub_80B9A58 +sub_80B9A58: @ 80B9A58 + push {lr} + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80B9A58 + + thumb_func_start sub_80B9A68 +sub_80B9A68: @ 80B9A68 + lsls r0, 24 + lsrs r0, 16 + ldr r1, _080B9A74 @ =gBlockRecvBuffer + adds r0, r1 + bx lr + .align 2, 0 +_080B9A74: .4byte gBlockRecvBuffer + thumb_func_end sub_80B9A68 + + thumb_func_start sub_80B9A78 +sub_80B9A78: @ 80B9A78 + ldr r1, _080B9A80 @ =gUnknown_03005D2C + ldr r0, _080B9A84 @ =0x00001230 + str r0, [r1] + bx lr + .align 2, 0 +_080B9A80: .4byte gUnknown_03005D2C +_080B9A84: .4byte 0x00001230 + thumb_func_end sub_80B9A78 + + thumb_func_start sub_80B9A88 +sub_80B9A88: @ 80B9A88 + push {r4,lr} + adds r4, r0, 0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080B9AC0 + cmp r0, 0x3 + bhi _080B9AA2 + cmp r0, 0x2 + beq _080B9AA8 + b _080B9B10 +_080B9AA2: + cmp r0, 0x4 + beq _080B9AEC + b _080B9B10 +_080B9AA8: + movs r2, 0 + ldr r3, _080B9ABC @ =gUnknown_083D0288 +_080B9AAC: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x1 + bls _080B9AAC + b _080B9B10 + .align 2, 0 +_080B9ABC: .4byte gUnknown_083D0288 +_080B9AC0: + movs r0, 0 + bl GetLinkPlayerTrainerId + adds r3, r0, 0 + movs r0, 0x1 + ands r3, r0 + movs r2, 0 + ldr r1, _080B9AE8 @ =gUnknown_083D028A + lsls r0, r3, 1 + adds r0, r3 + adds r3, r0, r1 +_080B9AD6: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x2 + bls _080B9AD6 + b _080B9B10 + .align 2, 0 +_080B9AE8: .4byte gUnknown_083D028A +_080B9AEC: + movs r0, 0 + bl GetLinkPlayerTrainerId + movs r1, 0x9 + bl __umodsi3 + adds r3, r0, 0 + movs r2, 0 + ldr r1, _080B9B18 @ =gUnknown_083D0290 + lsls r0, r3, 2 + adds r3, r0, r1 +_080B9B02: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x3 + bls _080B9B02 +_080B9B10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9B18: .4byte gUnknown_083D0290 + thumb_func_end sub_80B9A88 + + thumb_func_start sub_80B9B1C +sub_80B9B1C: @ 80B9B1C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + mov r8, r1 + lsls r4, r2, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80B9A88 + mov r0, r8 + muls r0, r4 + adds r0, r5, r0 + ldr r1, _080B9B6C @ =gUnknown_083D0278 + ldr r6, [r1] + adds r1, r6, 0 + movs r2, 0x40 + bl memcpy + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r5, r0 + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x40 + bl memcpy + bl sub_80F7F30 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9B6C: .4byte gUnknown_083D0278 + thumb_func_end sub_80B9B1C + + thumb_func_start sub_80B9B70 +sub_80B9B70: @ 80B9B70 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r6, r0, 0 + mov r9, r1 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r0, _080B9BB8 @ =gUnknown_0300071C + mov r8, r0 + bl sub_80B9A88 + mov r5, r9 + muls r5, r4 + adds r5, r6, r5 + add r4, r8 + ldrb r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0xA4 + bl memcpy + adds r0, r5, 0 + bl sub_8134AC0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9BB8: .4byte gUnknown_0300071C + thumb_func_end sub_80B9B70 + + thumb_func_start sub_80B9BBC +sub_80B9BBC: @ 80B9BBC + ldrh r0, [r0, 0x20] + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80B9BBC + + thumb_func_start sub_80B9BC4 +sub_80B9BC4: @ 80B9BC4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x38 + mov r8, r0 + mov r10, r1 + mov r9, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x54] + lsls r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsrs r4, 23 + add r4, r9 + ldrb r0, [r4] + mov r6, r10 + muls r6, r0 + add r6, r8 + ldrb r0, [r4, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r6, r1 + mov r0, sp + movs r2, 0x38 + bl memcpy + lsls r5, 1 + add r5, r9 + ldrb r0, [r5] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r8, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + adds r6, r0 + ldrb r0, [r5, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + add r1, r8 + adds r0, r6, 0 + movs r2, 0x38 + bl memcpy + ldrb r1, [r5, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + add r8, r0 + mov r0, r8 + mov r1, sp + movs r2, 0x38 + bl memcpy + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9BC4 + + thumb_func_start sub_80B9C4C +sub_80B9C4C: @ 80B9C4C + push {lr} + adds r3, r0, 0 + movs r2, 0 + movs r1, 0 +_080B9C54: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r2, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r1, 0xFF + ble _080B9C54 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B9C4C + + thumb_func_start sub_80B9C6C +sub_80B9C6C: @ 80B9C6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x2C] + str r1, [sp, 0x30] + str r3, [sp, 0x38] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x34] + bl Random + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x40] + ldr r0, _080B9DA8 @ =gLinkPlayers + ldrh r0, [r0, 0x4] + bl SeedRng + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r3, 0 + add r0, sp, 0x1C + mov r9, r0 + movs r1, 0x1D + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0xC + str r2, [sp, 0x4C] + movs r7, 0xFF + add r4, sp, 0x8 + movs r2, 0 + mov r6, r9 + mov r5, r10 +_080B9CBC: + mov r1, sp + adds r1, r3 + adds r1, 0x4 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + adds r0, r4, r3 + strb r2, [r0] + lsls r1, r3, 1 + adds r0, r6, r1 + strb r2, [r0] + adds r1, r5, r1 + strb r2, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9CBC + movs r4, 0 + str r4, [sp, 0x3C] + movs r3, 0 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + str r0, [sp, 0x50] + ldr r4, [sp, 0x30] + ldr r0, [sp, 0x34] + adds r2, r4, 0 + muls r2, r0 + str r2, [sp, 0x48] + ldr r2, [sp, 0x3C] + cmp r2, r1 + bcs _080B9D46 + mov r8, r1 +_080B9D00: + ldr r4, [sp, 0x30] + adds r0, r4, 0 + muls r0, r3 + ldr r1, [sp, 0x2C] + adds r6, r1, r0 + ldr r0, [r6, 0x70] + cmp r0, 0 + beq _080B9D3C + movs r7, 0 + cmp r7, r0 + bcs _080B9D3C + adds r4, r6, 0 + adds r4, 0x74 + mov r2, r9 + lsls r1, r3, 1 + movs r5, 0x1 +_080B9D20: + lsls r0, r7, 1 + adds r0, r4, r0 + ldrh r0, [r0] + cmp r0, 0 + bne _080B9D30 + adds r0, r7, r1 + adds r0, r2, r0 + strb r5, [r0] +_080B9D30: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r6, 0x70] + cmp r7, r0 + bcc _080B9D20 +_080B9D3C: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + bcc _080B9D00 +_080B9D46: + movs r7, 0 + movs r3, 0 + ldr r2, [sp, 0x50] + cmp r2, 0 + beq _080B9E3E + mov r4, sp + adds r4, 0x24 + str r4, [sp, 0x44] + movs r0, 0x25 + add r0, sp + mov r8, r0 +_080B9D5C: + ldr r1, [sp, 0x30] + adds r0, r1, 0 + muls r0, r3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + lsls r1, r3, 1 + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080B9D7C + mov r2, r10 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9D86 +_080B9D7C: + ldr r0, [sp, 0x3C] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x3C] +_080B9D86: + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9DAC + mov r2, r10 + adds r0, r2, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080B9DAC +_080B9D9A: + lsls r1, r7, 1 + ldr r4, [sp, 0x44] + adds r0, r4, r1 + strb r3, [r0] + add r1, r8 + strb r2, [r1] + b _080B9E2C + .align 2, 0 +_080B9DA8: .4byte gLinkPlayers +_080B9DAC: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B9DC0 + mov r4, r10 + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _080B9D9A +_080B9DC0: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + mov r4, r10 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + lsls r5, r7, 1 + ldr r1, [sp, 0x44] + adds r0, r1, r5 + strb r3, [r0] + adds r0, r6, 0 + str r3, [sp, 0x54] + bl sub_80B9BBC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r0, 0x38 + bl sub_80B9BBC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [sp, 0x54] + cmp r4, 0 + bne _080B9E0A + cmp r1, 0 + beq _080B9E0E + mov r2, r8 + adds r1, r2, r5 + movs r0, 0x1 + strb r0, [r1] + b _080B9E2C +_080B9E0A: + cmp r1, 0 + beq _080B9E26 +_080B9E0E: + str r3, [sp, 0x54] + bl Random + mov r4, r8 + adds r2, r4, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + ldr r3, [sp, 0x54] + b _080B9E2C +_080B9E26: + mov r2, r8 + adds r0, r2, r5 + strb r1, [r0] +_080B9E2C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080B9E32: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r4, [sp, 0x50] + cmp r0, r4 + bcc _080B9D5C +_080B9E3E: + movs r3, 0 + ldr r1, [sp, 0x48] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + ldr r1, [sp, 0x4C] +_080B9E4E: + lsls r0, r3, 2 + adds r0, r1, r0 + str r6, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9E4E + ldr r0, [sp, 0x38] + bl sub_80B9C4C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r4, [sp, 0x3C] + cmp r4, 0x3 + beq _080B9E9C + cmp r4, 0x3 + bgt _080B9E82 + cmp r4, 0x2 + beq _080B9E8A + b _080B9EF0 +_080B9E82: + ldr r0, [sp, 0x3C] + cmp r0, 0x4 + beq _080B9EBC + b _080B9EF0 +_080B9E8A: + add r2, sp, 0x24 + movs r0, 0x1 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + movs r3, 0 + bl sub_80B9BC4 + b _080B9EF0 +_080B9E9C: + ldr r0, _080B9EB8 @ =gUnknown_083D02B4 + lsls r1, 1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + add r2, sp, 0x24 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + bl sub_80B9BC4 + b _080B9EF0 + .align 2, 0 +_080B9EB8: .4byte gUnknown_083D02B4 +_080B9EBC: + add r6, sp, 0x24 + ldr r4, _080B9F2C @ =gUnknown_083D02BA + lsls r5, r1, 2 + adds r0, r5, r4 + ldrb r3, [r0] + adds r0, r4, 0x1 + adds r0, r5, r0 + ldrb r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 + adds r0, r4, 0x2 + adds r0, r5, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r5, r4 + ldrb r0, [r5] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 +_080B9EF0: + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x48] + adds r6, r1, r2 + ldr r4, _080B9F30 @ =gSaveBlock1 + ldr r1, _080B9F34 @ =0x0000303c + adds r0, r4, r1 + adds r1, r6, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9F38 @ =0x00003074 + adds r4, r2 + adds r1, r6, 0 + adds r1, 0x38 + adds r0, r4, 0 + movs r2, 0x38 + bl memcpy + ldr r0, [sp, 0x40] + bl SeedRng + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9F2C: .4byte gUnknown_083D02BA +_080B9F30: .4byte gSaveBlock1 +_080B9F34: .4byte 0x0000303c +_080B9F38: .4byte 0x00003074 + thumb_func_end sub_80B9C6C + + thumb_func_start sub_80B9F3C +sub_80B9F3C: @ 80B9F3C + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + cmp r1, 0 + beq _080BA000 + ldrh r0, [r4] + cmp r0, 0 + beq _080BA000 + bl sub_80A9670 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080B9FC8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A92D4 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9718 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + cmp r0, 0 + beq _080B9FB8 + ldr r0, _080B9FA4 @ =0x00004001 + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FA8 @ =gStringVar1 + ldr r1, _080B9FAC @ =gLinkPlayers + 0x8 + bl StringCopy + ldrh r1, [r4] + ldr r0, _080B9FB0 @ =0x00000113 + cmp r1, r0 + bne _080BA000 + ldr r0, _080B9FB4 @ =0x00000853 + bl FlagSet + b _080BA000 + .align 2, 0 +_080B9FA4: .4byte 0x00004001 +_080B9FA8: .4byte gStringVar1 +_080B9FAC: .4byte gLinkPlayers + 0x8 +_080B9FB0: .4byte 0x00000113 +_080B9FB4: .4byte 0x00000853 +_080B9FB8: + ldr r0, _080B9FC4 @ =0x00004001 + movs r1, 0 + bl VarSet + b _080BA000 + .align 2, 0 +_080B9FC4: .4byte 0x00004001 +_080B9FC8: + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B9FF8 + ldr r0, _080B9FEC @ =0x00004001 + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FF0 @ =gStringVar1 + ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8 + bl StringCopy + b _080BA000 + .align 2, 0 +_080B9FEC: .4byte 0x00004001 +_080B9FF0: .4byte gStringVar1 +_080B9FF4: .4byte gLinkPlayers + 0x8 +_080B9FF8: + ldr r0, _080BA008 @ =0x00004001 + movs r1, 0 + bl VarSet +_080BA000: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA008: .4byte 0x00004001 + thumb_func_end sub_80B9F3C + + thumb_func_start sub_80BA00C +sub_80BA00C: @ 80BA00C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080BA030 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bhi _080BA09C + lsls r0, 2 + ldr r1, _080BA034 @ =_080BA038 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA030: .4byte gTasks +_080BA034: .4byte _080BA038 + .align 2, 0 +_080BA038: + .4byte _080BA086 + .4byte _080BA086 + .4byte _080BA050 + .4byte _080BA05A + .4byte _080BA074 + .4byte _080BA08E +_080BA050: + bl sub_8047A1C + bl sub_8125E2C + b _080BA086 +_080BA05A: + bl sub_8125E6C + lsls r0, 24 + cmp r0, 0 + beq _080BA09C + bl sub_8047A34 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + b _080BA09C +_080BA074: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080BA09C + bl sub_800832C +_080BA086: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080BA09C +_080BA08E: + ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080BA09C + adds r0, r2, 0 + bl DestroyTask +_080BA09C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA0A4: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80BA00C + + thumb_func_start sub_80BA0A8 +sub_80BA0A8: @ 80BA0A8 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80BA0A8 + + thumb_func_start sub_80BA0C0 +sub_80BA0C0: @ 80BA0C0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _080BA0E8 @ =gUnknown_020387B0 + ldrb r0, [r0] + cmp r0, 0 + beq _080BA0E2 + bl m4aSoundMain + bl m4aSoundMain + bl m4aSoundMain +_080BA0E2: + pop {r0} + bx r0 + .align 2, 0 +_080BA0E8: .4byte gUnknown_020387B0 + thumb_func_end sub_80BA0C0 + + thumb_func_start unref_sub_80BA0EC +unref_sub_80BA0EC: @ 80BA0EC + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0 + bl SetVBlankCallback + movs r6, 0x80 + lsls r6, 19 + movs r5, 0 + strh r5, [r6] + ldr r0, _080BA20C @ =REG_BG2CNT + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + subs r0, 0x2 + strh r5, [r0] + adds r0, 0x10 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r0, 0x6 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r0, 0x6 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + add r0, sp, 0x4 + strh r5, [r0] + ldr r1, _080BA210 @ =0x040000d4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA214 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r4, 0 + str r4, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA218 @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strh r4, [r0] + str r0, [r1] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080BA21C @ =0x81000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + bl ResetTasks + bl ResetSpriteData + ldr r0, _080BA220 @ =gWindowConfig_81E6C3C + bl SetUpWindowConfig + ldr r0, _080BA224 @ =gWindowConfig_81E6CE4 + bl InitMenuWindow + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080BA228 @ =REG_WIN0H + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + subs r0, 0x2 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + ldr r1, _080BA22C @ =REG_WININ + ldr r2, _080BA230 @ =0x00001111 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x31 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xE1 + strh r0, [r1] + ldr r0, _080BA234 @ =REG_BLDALPHA + strh r4, [r0] + adds r1, 0x4 + movs r0, 0x7 + strh r0, [r1] + ldr r1, _080BA238 @ =0x04000200 + movs r2, 0x1 + strh r2, [r1] + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + ldr r2, _080BA23C @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080BA240 @ =sub_80BA0C0 + bl SetVBlankCallback + ldr r0, _080BA244 @ =sub_80BA0A8 + bl SetMainCallback2 + ldr r1, _080BA248 @ =0x00007140 + adds r0, r1, 0 + strh r0, [r6] + ldr r0, _080BA24C @ =sub_80BA258 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BA250 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r4, [r1, 0xA] + strh r4, [r1, 0xC] + strh r4, [r1, 0xE] + ldr r0, _080BA254 @ =gUnknown_020387B0 + strb r5, [r0] + strh r4, [r1, 0xE] + bl m4aSoundInit + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BA20C: .4byte REG_BG2CNT +_080BA210: .4byte 0x040000d4 +_080BA214: .4byte 0x8100c000 +_080BA218: .4byte 0x85000100 +_080BA21C: .4byte 0x81000200 +_080BA220: .4byte gWindowConfig_81E6C3C +_080BA224: .4byte gWindowConfig_81E6CE4 +_080BA228: .4byte REG_WIN0H +_080BA22C: .4byte REG_WININ +_080BA230: .4byte 0x00001111 +_080BA234: .4byte REG_BLDALPHA +_080BA238: .4byte 0x04000200 +_080BA23C: .4byte REG_DISPSTAT +_080BA240: .4byte sub_80BA0C0 +_080BA244: .4byte sub_80BA0A8 +_080BA248: .4byte 0x00007140 +_080BA24C: .4byte sub_80BA258 +_080BA250: .4byte gTasks +_080BA254: .4byte gUnknown_020387B0 + thumb_func_end unref_sub_80BA0EC + + thumb_func_start sub_80BA258 +sub_80BA258: @ 80BA258 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x40 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080BA354 @ =gDebugText_SoundCheckJap + mov r0, sp + movs r2, 0x9 + bl memcpy + add r7, sp, 0xC + ldr r1, _080BA358 @ =gDebugText_BGM + adds r0, r7, 0 + movs r2, 0x4 + bl memcpy + add r0, sp, 0x10 + mov r8, r0 + ldr r1, _080BA35C @ =gDebugText_SE + movs r2, 0x4 + bl memcpy + add r5, sp, 0x14 + ldr r1, _080BA360 @ =gUnknown_083D02D9 + adds r0, r5, 0 + movs r2, 0xD + bl memcpy + add r4, sp, 0x24 + ldr r1, _080BA364 @ =gDebugText_UpDown + adds r0, r4, 0 + movs r2, 0xC + bl memcpy + add r6, sp, 0x30 + ldr r1, _080BA368 @ =gDebugText_DriverTest + adds r0, r6, 0 + movs r2, 0xE + bl memcpy + ldr r0, _080BA36C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA344 + movs r0, 0x2 + movs r1, 0 + movs r2, 0x1B + movs r3, 0x3 + bl MenuDrawTextWindow + movs r0, 0x2 + movs r1, 0x5 + movs r2, 0x1B + movs r3, 0xA + bl MenuDrawTextWindow + movs r0, 0x2 + movs r1, 0xC + movs r2, 0x1B + movs r3, 0x11 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x4 + movs r2, 0x1 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0xE + movs r2, 0x1 + bl MenuPrint + adds r0, r7, 0 + movs r1, 0x4 + movs r2, 0x6 + bl MenuPrint + adds r0, r4, 0 + movs r1, 0xE + movs r2, 0x6 + bl MenuPrint + mov r0, r8 + movs r1, 0x4 + movs r2, 0xD + bl MenuPrint + adds r0, r4, 0 + movs r1, 0xE + movs r2, 0xD + bl MenuPrint + adds r0, r6, 0 + movs r1, 0xE + movs r2, 0x12 + bl MenuPrint + ldr r1, _080BA370 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BA374 @ =sub_80BA384 + str r1, [r0] + ldr r1, _080BA378 @ =REG_WIN0H + ldr r2, _080BA37C @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA380 @ =0x0000011f + adds r0, r2, 0 + strh r0, [r1] +_080BA344: + add sp, 0x40 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA354: .4byte gDebugText_SoundCheckJap +_080BA358: .4byte gDebugText_BGM +_080BA35C: .4byte gDebugText_SE +_080BA360: .4byte gUnknown_083D02D9 +_080BA364: .4byte gDebugText_UpDown +_080BA368: .4byte gDebugText_DriverTest +_080BA36C: .4byte gPaletteFade +_080BA370: .4byte gTasks +_080BA374: .4byte sub_80BA384 +_080BA378: .4byte REG_WIN0H +_080BA37C: .4byte 0x000011df +_080BA380: .4byte 0x0000011f + thumb_func_end sub_80BA258 + + thumb_func_start sub_80BA384 +sub_80BA384: @ 80BA384 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BA3EC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x8] + bl sub_80BA6B8 + ldr r1, _080BA3F0 @ =0x0000015d + adds r0, r1, 0 + ldrh r2, [r4, 0xA] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + movs r2, 0x8 + bl sub_80BA700 + ldr r1, _080BA3F4 @ =gBGMNames + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0x8 + bl sub_80BA79C + ldrh r0, [r4, 0xC] + movs r1, 0x7 + movs r2, 0xF + bl sub_80BA700 + ldr r1, _080BA3F8 @ =gSENames + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xB + movs r2, 0xF + bl sub_80BA79C + ldr r0, _080BA3FC @ =Task_HandleMainMenuInput + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA3EC: .4byte gTasks +_080BA3F0: .4byte 0x0000015d +_080BA3F4: .4byte gBGMNames +_080BA3F8: .4byte gSENames +_080BA3FC: .4byte Task_HandleMainMenuInput + thumb_func_end sub_80BA384 + + thumb_func_start sub_80BA400 +sub_80BA400: @ 80BA400 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080BA428 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BA434 + ldr r0, _080BA42C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA430 @ =sub_80BA800 + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA428: .4byte gMain +_080BA42C: .4byte gTasks +_080BA430: .4byte sub_80BA800 +_080BA434: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080BA458 + ldr r0, _080BA450 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA454 @ =sub_80BAF84 + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA450: .4byte gTasks +_080BA454: .4byte sub_80BAF84 +_080BA458: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080BA478 + ldr r0, _080BA470 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA474 @ =sub_80BB25C + str r0, [r1] + b _080BA64C + .align 2, 0 +_080BA470: .4byte gTasks +_080BA474: .4byte sub_80BB25C +_080BA478: + movs r6, 0x1 + movs r5, 0x1 + ands r5, r1 + cmp r5, 0 + beq _080BA538 + ldr r0, _080BA4AC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r5, r1, r0 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080BA4D0 + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080BA4BA + movs r3, 0xC + ldrsh r4, [r5, r3] + cmp r4, 0 + beq _080BA4B0 + ldrh r0, [r5, 0x10] + bl m4aSongNumStop + b _080BA4C4 + .align 2, 0 +_080BA4AC: .4byte gTasks +_080BA4B0: + ldrh r0, [r5, 0x10] + bl m4aSongNumStop + strh r4, [r5, 0x10] + b _080BA64C +_080BA4BA: + movs r4, 0xC + ldrsh r0, [r5, r4] + cmp r0, 0 + bne _080BA4C4 + b _080BA64C +_080BA4C4: + ldrh r0, [r5, 0xC] + bl m4aSongNumStart + ldrh r0, [r5, 0xC] + strh r0, [r5, 0x10] + b _080BA64C +_080BA4D0: + ldrh r1, [r5, 0xE] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080BA514 + movs r3, 0xA + ldrsh r4, [r5, r3] + cmp r4, 0 + beq _080BA500 + ldr r0, _080BA4FC @ =0x0000015d + adds r4, r0, 0 + adds r0, r1, r4 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStop + ldrh r1, [r5, 0xA] + adds r4, r1 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + b _080BA528 + .align 2, 0 +_080BA4FC: .4byte 0x0000015d +_080BA500: + ldr r2, _080BA510 @ =0x0000015d + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStop + strh r4, [r5, 0xE] + b _080BA64C + .align 2, 0 +_080BA510: .4byte 0x0000015d +_080BA514: + ldrh r1, [r5, 0xA] + movs r3, 0xA + ldrsh r0, [r5, r3] + cmp r0, 0 + bne _080BA520 + b _080BA64C +_080BA520: + ldr r4, _080BA534 @ =0x0000015d + adds r0, r1, r4 + lsls r0, 16 + lsrs r0, 16 +_080BA528: + bl m4aSongNumStart + ldrh r0, [r5, 0xA] + strh r0, [r5, 0xE] + b _080BA64C + .align 2, 0 +_080BA534: .4byte 0x0000015d +_080BA538: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BA570 + movs r0, 0x5 + bl m4aSongNumStart + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080BA568 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BA56C @ =sub_80BA68C + str r1, [r0] + b _080BA64C + .align 2, 0 +_080BA568: .4byte gTasks +_080BA56C: .4byte sub_80BA68C +_080BA570: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080BA582 + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BA59C +_080BA582: + ldr r0, _080BA598 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + eors r0, r6 + strh r0, [r1, 0x8] +_080BA592: + movs r0, 0x1 + b _080BA64E + .align 2, 0 +_080BA598: .4byte gTasks +_080BA59C: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BA5EA + ldr r0, _080BA5CC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080BA5D6 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080BA5D0 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080BA592 + .align 2, 0 +_080BA5CC: .4byte gTasks +_080BA5D0: + movs r0, 0xF7 + strh r0, [r1, 0xC] + b _080BA592 +_080BA5D6: + ldrh r2, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0 + ble _080BA5E4 + subs r0, r2, 0x1 + b _080BA5E6 +_080BA5E4: + movs r0, 0x75 +_080BA5E6: + strh r0, [r1, 0xA] + b _080BA592 +_080BA5EA: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BA630 + ldr r1, _080BA614 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x8 + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080BA61C + ldrh r2, [r1, 0xC] + movs r4, 0xC + ldrsh r0, [r1, r4] + cmp r0, 0xF6 + bgt _080BA618 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080BA592 + .align 2, 0 +_080BA614: .4byte gTasks +_080BA618: + strh r3, [r1, 0xC] + b _080BA592 +_080BA61C: + ldrh r3, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0x74 + bgt _080BA62C + adds r0, r3, 0x1 + strh r0, [r1, 0xA] + b _080BA592 +_080BA62C: + strh r2, [r1, 0xA] + b _080BA592 +_080BA630: + ldrh r1, [r2, 0x2C] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080BA648 + ldr r0, _080BA644 @ =gUnknown_020387B0 + strb r6, [r0] + b _080BA64C + .align 2, 0 +_080BA644: .4byte gUnknown_020387B0 +_080BA648: + ldr r0, _080BA658 @ =gUnknown_020387B0 + strb r1, [r0] +_080BA64C: + movs r0, 0 +_080BA64E: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080BA658: .4byte gUnknown_020387B0 + thumb_func_end sub_80BA400 + + thumb_func_start Task_HandleMainMenuInput +Task_HandleMainMenuInput: @ 80BA65C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80BA400 + lsls r0, 24 + cmp r0, 0 + beq _080BA67C + ldr r0, _080BA684 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080BA688 @ =sub_80BA384 + str r0, [r1] +_080BA67C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA684: .4byte gTasks +_080BA688: .4byte sub_80BA384 + thumb_func_end Task_HandleMainMenuInput + + thumb_func_start sub_80BA68C +sub_80BA68C: @ 80BA68C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080BA6B0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BA6AA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080BA6B4 @ =CB2_InitTitleScreen + bl SetMainCallback2 +_080BA6AA: + pop {r0} + bx r0 + .align 2, 0 +_080BA6B0: .4byte gPaletteFade +_080BA6B4: .4byte CB2_InitTitleScreen + thumb_func_end sub_80BA68C + + thumb_func_start sub_80BA6B8 +sub_80BA6B8: @ 80BA6B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080BA6C6 + cmp r0, 0x1 + beq _080BA6E0 +_080BA6C6: + ldr r1, _080BA6D4 @ =REG_WIN1H + ldr r2, _080BA6D8 @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA6DC @ =0x00002957 + b _080BA6EC + .align 2, 0 +_080BA6D4: .4byte REG_WIN1H +_080BA6D8: .4byte 0x000011df +_080BA6DC: .4byte 0x00002957 +_080BA6E0: + ldr r1, _080BA6F4 @ =REG_WIN1H + ldr r2, _080BA6F8 @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BA6FC @ =0x0000618f +_080BA6EC: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BA6F4: .4byte REG_WIN1H +_080BA6F8: .4byte 0x000011df +_080BA6FC: .4byte 0x0000618f + thumb_func_end sub_80BA6B8 + + thumb_func_start sub_80BA700 +sub_80BA700: @ 80BA700 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r7, r2, 16 + movs r1, 0 + movs r2, 0 +_080BA714: + mov r3, sp + adds r0, r3, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _080BA714 + mov r1, sp + movs r0, 0xB0 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + movs r4, 0 + adds r0, r5, 0 + movs r1, 0x64 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080BA748 + mov r1, sp + adds r0, 0xA1 + strb r0, [r1] + movs r4, 0x1 +_080BA748: + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080BA766 + cmp r4, 0 + beq _080BA76C +_080BA766: + mov r1, sp + adds r0, 0xA1 + strb r0, [r1, 0x1] +_080BA76C: + mov r4, sp + adds r0, r5, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, 0xA1 + strb r0, [r4, 0x2] + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + mov r0, sp + bl MenuPrint + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BA700 + + thumb_func_start sub_80BA79C +sub_80BA79C: @ 80BA79C + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + movs r3, 0 + movs r1, 0 +_080BA7AE: + mov r2, sp + adds r0, r2, r3 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xA + bls _080BA7AE + mov r0, sp + movs r1, 0xFF + strb r1, [r0, 0xA] + movs r3, 0 + ldrb r0, [r4] + lsls r2, r6, 24 + lsls r5, 24 + cmp r0, 0xFF + beq _080BA7EC +_080BA7D0: + mov r0, sp + adds r1, r0, r3 + adds r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080BA7EC + cmp r3, 0x9 + bls _080BA7D0 +_080BA7EC: + lsrs r1, r2, 24 + lsrs r2, r5, 24 + mov r0, sp + bl MenuPrint + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BA79C + + thumb_func_start sub_80BA800 +sub_80BA800: @ 80BA800 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xCC + lsls r0, 24 + str r0, [sp, 0xB0] + lsrs r2, r0, 24 + str r2, [sp, 0xAC] + ldr r1, _080BA9E8 @ =gUnknown_083D0312 + mov r0, sp + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0xC + str r0, [sp, 0xB4] + ldr r1, _080BA9EC @ =gUnknown_083D031C + movs r2, 0xB + bl memcpy + mov r2, sp + adds r2, 0x18 + str r2, [sp, 0xB8] + ldr r1, _080BA9F0 @ =gDebugText_Voice + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0x24 + str r0, [sp, 0xBC] + ldr r1, _080BA9F4 @ =gDebugText_Volume + movs r2, 0xA + bl memcpy + mov r2, sp + adds r2, 0x30 + str r2, [sp, 0xC0] + ldr r1, _080BA9F8 @ =gDebugText_Panpot + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + mov r0, sp + adds r0, 0x3C + str r0, [sp, 0xC4] + ldr r1, _080BA9FC @ =gDebugText_Pitch + movs r2, 0xA + bl memcpy + mov r2, sp + adds r2, 0x48 + str r2, [sp, 0xC8] + ldr r1, _080BAA00 @ =gDebugText_Length + adds r0, r2, 0 + movs r2, 0xA + bl memcpy + add r4, sp, 0x54 + ldr r1, _080BAA04 @ =gDebugText_Release + adds r0, r4, 0 + movs r2, 0xA + bl memcpy + add r7, sp, 0x60 + ldr r1, _080BAA08 @ =gDebugText_Progress + adds r0, r7, 0 + movs r2, 0xA + bl memcpy + add r0, sp, 0x6C + mov r10, r0 + ldr r1, _080BAA0C @ =gDebugText_Chorus + movs r2, 0xA + bl memcpy + add r2, sp, 0x78 + mov r9, r2 + ldr r1, _080BAA10 @ =gDebugText_Priority + mov r0, r9 + movs r2, 0xA + bl memcpy + add r0, sp, 0x84 + mov r8, r0 + ldr r1, _080BAA14 @ =gUnknown_083D0381 + movs r2, 0x9 + bl memcpy + add r6, sp, 0x90 + ldr r1, _080BAA18 @ =gUnknown_083D038A + adds r0, r6, 0 + movs r2, 0x9 + bl memcpy + add r5, sp, 0x9C + ldr r1, _080BAA1C @ =gUnknown_083D0393 + adds r0, r5, 0 + movs r2, 0x9 + bl memcpy + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x13 + movs r2, 0x4 + bl MenuPrint + ldr r0, [sp, 0xB4] + movs r1, 0x13 + movs r2, 0x2 + bl MenuPrint + ldr r0, [sp, 0xB8] + movs r1, 0x2 + movs r2, 0x1 + bl MenuPrint + ldr r0, [sp, 0xBC] + movs r1, 0x2 + movs r2, 0x3 + bl MenuPrint + ldr r0, [sp, 0xC0] + movs r1, 0x2 + movs r2, 0x5 + bl MenuPrint + ldr r0, [sp, 0xC4] + movs r1, 0x2 + movs r2, 0x7 + bl MenuPrint + ldr r0, [sp, 0xC8] + movs r1, 0x2 + movs r2, 0x9 + bl MenuPrint + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xB + bl MenuPrint + adds r0, r7, 0 + movs r1, 0x2 + movs r2, 0xD + bl MenuPrint + mov r0, r10 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + mov r0, r9 + movs r1, 0x2 + movs r2, 0x11 + bl MenuPrint + mov r0, r8 + movs r1, 0x13 + movs r2, 0x10 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x13 + movs r2, 0xE + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x13 + movs r2, 0xC + bl MenuPrint + ldr r1, _080BAA20 @ =REG_WIN0H + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080BAA24 @ =gUnknown_020387B3 + movs r1, 0 + strb r1, [r0] + ldr r0, _080BAA28 @ =gUnknown_020387B1 + strb r1, [r0] + ldr r0, _080BAA2C @ =gUnknown_020387B2 + strb r1, [r0] + ldr r0, _080BAA30 @ =gUnknown_03005D30 + movs r2, 0 + str r2, [r0] + ldr r0, _080BAA34 @ =gUnknown_020387D8 + strb r2, [r0] + ldr r1, _080BAA38 @ =gUnknown_020387D9 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080BAA3C @ =gUnknown_020387B4 + str r2, [r0] + movs r1, 0x78 + str r1, [r0, 0x4] + str r2, [r0, 0x8] + movs r1, 0xF0 + lsls r1, 6 + str r1, [r0, 0xC] + movs r1, 0xB4 + str r1, [r0, 0x10] + str r2, [r0, 0x18] + str r2, [r0, 0x14] + str r2, [r0, 0x1C] + movs r1, 0x2 + str r1, [r0, 0x20] + bl sub_80BAD5C + movs r0, 0 + movs r1, 0 + bl sub_80BAE10 + ldr r1, _080BAA40 @ =gTasks + ldr r2, [sp, 0xAC] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAA44 @ =sub_80BAA48 + str r1, [r0] + add sp, 0xCC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BA9E8: .4byte gUnknown_083D0312 +_080BA9EC: .4byte gUnknown_083D031C +_080BA9F0: .4byte gDebugText_Voice +_080BA9F4: .4byte gDebugText_Volume +_080BA9F8: .4byte gDebugText_Panpot +_080BA9FC: .4byte gDebugText_Pitch +_080BAA00: .4byte gDebugText_Length +_080BAA04: .4byte gDebugText_Release +_080BAA08: .4byte gDebugText_Progress +_080BAA0C: .4byte gDebugText_Chorus +_080BAA10: .4byte gDebugText_Priority +_080BAA14: .4byte gUnknown_083D0381 +_080BAA18: .4byte gUnknown_083D038A +_080BAA1C: .4byte gUnknown_083D0393 +_080BAA20: .4byte REG_WIN0H +_080BAA24: .4byte gUnknown_020387B3 +_080BAA28: .4byte gUnknown_020387B1 +_080BAA2C: .4byte gUnknown_020387B2 +_080BAA30: .4byte gUnknown_03005D30 +_080BAA34: .4byte gUnknown_020387D8 +_080BAA38: .4byte gUnknown_020387D9 +_080BAA3C: .4byte gUnknown_020387B4 +_080BAA40: .4byte gTasks +_080BAA44: .4byte sub_80BAA48 + thumb_func_end sub_80BA800 + + thumb_func_start sub_80BAA48 +sub_80BAA48: @ 80BAA48 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BAA90 @ =gMain + ldrh r2, [r1, 0x2E] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080BAAA8 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BAA94 @ =0x00007140 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BAA98 @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BAA9C @ =0x0000011f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BAAA0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BAAA4 @ =sub_80BA258 + str r1, [r0] + b _080BACC6 + .align 2, 0 +_080BAA90: .4byte gMain +_080BAA94: .4byte 0x00007140 +_080BAA98: .4byte 0x000011df +_080BAA9C: .4byte 0x0000011f +_080BAAA0: .4byte gTasks +_080BAAA4: .4byte sub_80BA258 +_080BAAA8: + ldrh r1, [r1, 0x30] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080BAAD0 + ldr r1, _080BAACC @ =gUnknown_020387B3 + ldrb r2, [r1] + subs r0, r2, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080BAAEA + movs r0, 0x8 + strb r0, [r1] + b _080BAAEA + .align 2, 0 +_080BAACC: .4byte gUnknown_020387B3 +_080BAAD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BAAF8 + ldr r1, _080BAAF4 @ =gUnknown_020387B3 + ldrb r2, [r1] + adds r0, r2, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x8 + ble _080BAAEA + strb r3, [r1] +_080BAAEA: + ldrb r1, [r1] + adds r0, r2, 0 + bl sub_80BAE10 + b _080BACC6 + .align 2, 0 +_080BAAF4: .4byte gUnknown_020387B3 +_080BAAF8: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080BAB14 + ldr r0, _080BAB10 @ =gUnknown_020387D8 + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + bl sub_80BAD5C + b _080BACC6 + .align 2, 0 +_080BAB10: .4byte gUnknown_020387D8 +_080BAB14: + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _080BAB38 + ldr r4, _080BAB34 @ =gUnknown_020387D9 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + bl sub_80BAD5C + ldrb r0, [r4] + bl SetPokemonCryStereo + b _080BACC6 + .align 2, 0 +_080BAB34: .4byte gUnknown_020387D9 +_080BAB38: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BAB46 + movs r0, 0xA + b _080BAB6E +_080BAB46: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080BAB56 + movs r0, 0xA + negs r0, r0 + b _080BAB6E +_080BAB56: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BAB64 + movs r0, 0x1 + negs r0, r0 + b _080BAB6E +_080BAB64: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080BAB78 + movs r0, 0x1 +_080BAB6E: + bl sub_80BACDC + bl sub_80BAD5C + b _080BACC6 +_080BAB78: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080BAB82 + b _080BACA2 +_080BAB82: + ldr r4, _080BABE4 @ =gUnknown_020387B4 + ldrb r0, [r4, 0x4] + bl SetPokemonCryVolume + movs r0, 0x8 + ldrsb r0, [r4, r0] + bl SetPokemonCryPanpot + movs r1, 0xC + ldrsh r0, [r4, r1] + bl SetPokemonCryPitch + ldrh r0, [r4, 0x10] + bl SetPokemonCryLength + ldr r0, [r4, 0x18] + bl SetPokemonCryProgress + ldrb r0, [r4, 0x14] + bl SetPokemonCryRelease + movs r0, 0x1C + ldrsb r0, [r4, r0] + bl SetPokemonCryChorus + ldr r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + bl SetPokemonCryPriority + ldr r4, [r4] + adds r0, r4, 0 + cmp r4, 0 + bge _080BABC8 + adds r0, 0x7F +_080BABC8: + asrs r2, r0, 7 + lsls r0, r2, 7 + subs r0, r4, r0 + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r2, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BAC1C + cmp r0, 0x1 + bgt _080BABE8 + cmp r0, 0 + beq _080BABF2 + b _080BACA2 + .align 2, 0 +_080BABE4: .4byte gUnknown_020387B4 +_080BABE8: + cmp r0, 0x2 + beq _080BAC48 + cmp r0, 0x3 + beq _080BAC74 + b _080BACA2 +_080BABF2: + ldr r0, _080BAC04 @ =gUnknown_020387D8 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC0C + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC08 @ =voicegroup_84537C0 + b _080BAC98 + .align 2, 0 +_080BAC04: .4byte gUnknown_020387D8 +_080BAC08: .4byte voicegroup_84537C0 +_080BAC0C: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC18 @ =voicegroup_8452590 + b _080BAC98 + .align 2, 0 +_080BAC18: .4byte voicegroup_8452590 +_080BAC1C: + ldr r0, _080BAC30 @ =gUnknown_020387D8 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC38 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC34 @ =voicegroup_8453DC0 + b _080BAC98 + .align 2, 0 +_080BAC30: .4byte gUnknown_020387D8 +_080BAC34: .4byte voicegroup_8453DC0 +_080BAC38: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC44 @ =voicegroup_8452B90 + b _080BAC98 + .align 2, 0 +_080BAC44: .4byte voicegroup_8452B90 +_080BAC48: + ldr r0, _080BAC5C @ =gUnknown_020387D8 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC64 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC60 @ =voicegroup_84543C0 + b _080BAC98 + .align 2, 0 +_080BAC5C: .4byte gUnknown_020387D8 +_080BAC60: .4byte voicegroup_84543C0 +_080BAC64: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC70 @ =voicegroup_8453190 + b _080BAC98 + .align 2, 0 +_080BAC70: .4byte voicegroup_8453190 +_080BAC74: + ldr r0, _080BAC88 @ =gUnknown_020387D8 + ldrb r0, [r0] + cmp r0, 0 + beq _080BAC90 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BAC8C @ =voicegroup_84549C0 + b _080BAC98 + .align 2, 0 +_080BAC88: .4byte gUnknown_020387D8 +_080BAC8C: .4byte voicegroup_84549C0 +_080BAC90: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BACCC @ =voicegroup_8453790 +_080BAC98: + adds r0, r1 + bl SetPokemonCryTone + ldr r1, _080BACD0 @ =gUnknown_03005D30 + str r0, [r1] +_080BACA2: + ldr r0, _080BACD0 @ =gUnknown_03005D30 + ldr r0, [r0] + cmp r0, 0 + beq _080BACC6 + ldr r5, _080BACD4 @ =gUnknown_020387B1 + bl IsPokemonCryPlaying + strb r0, [r5] + ldr r4, _080BACD8 @ =gUnknown_020387B2 + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + cmp r0, r2 + beq _080BACC2 + bl sub_80BAD5C +_080BACC2: + ldrb r0, [r5] + strb r0, [r4] +_080BACC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BACCC: .4byte voicegroup_8453790 +_080BACD0: .4byte gUnknown_03005D30 +_080BACD4: .4byte gUnknown_020387B1 +_080BACD8: .4byte gUnknown_020387B2 + thumb_func_end sub_80BAA48 + + thumb_func_start sub_80BACDC +sub_80BACDC: @ 80BACDC + push {r4-r6,lr} + sub sp, 0x40 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080BAD50 @ =gUnknown_083D039C + mov r0, sp + movs r2, 0x40 + bl memcpy + ldr r6, _080BAD54 @ =gUnknown_020387B4 + ldr r5, _080BAD58 @ =gUnknown_020387B3 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r1, 2 + adds r1, r6 + lsls r4, 24 + asrs r4, 24 + ldr r0, [r1] + adds r0, r4 + str r0, [r1] + movs r2, 0 + ldrsb r2, [r5, r2] + lsls r0, r2, 2 + adds r3, r0, r6 + lsls r0, r2, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + ble _080BAD26 + lsls r0, r2, 3 + add r0, sp + ldr r0, [r0] + str r0, [r3] +_080BAD26: + movs r2, 0 + ldrsb r2, [r5, r2] + lsls r0, r2, 2 + adds r3, r0, r6 + lsls r0, r2, 3 + add r0, sp + ldr r1, [r3] + ldr r0, [r0] + cmp r1, r0 + bge _080BAD46 + lsls r0, r2, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + str r0, [r3] +_080BAD46: + add sp, 0x40 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BAD50: .4byte gUnknown_083D039C +_080BAD54: .4byte gUnknown_020387B4 +_080BAD58: .4byte gUnknown_020387B3 + thumb_func_end sub_80BACDC + + thumb_func_start sub_80BAD5C +sub_80BAD5C: @ 80BAD5C + push {r4,lr} + ldr r4, _080BAE00 @ =gUnknown_020387B4 + ldr r0, [r4] + adds r0, 0x1 + movs r1, 0xB + movs r2, 0x1 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x4] + movs r1, 0xB + movs r2, 0x3 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x8] + movs r1, 0xB + movs r2, 0x5 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0xC] + movs r1, 0xB + movs r2, 0x7 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x10] + movs r1, 0xB + movs r2, 0x9 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x14] + movs r1, 0xB + movs r2, 0xB + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x18] + movs r1, 0xB + movs r2, 0xD + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x1C] + movs r1, 0xB + movs r2, 0xF + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, [r4, 0x20] + movs r1, 0xB + movs r2, 0x11 + movs r3, 0x5 + bl sub_80BAE78 + ldr r0, _080BAE04 @ =gUnknown_020387B1 + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0x10 + movs r3, 0x1 + bl sub_80BAE78 + ldr r0, _080BAE08 @ =gUnknown_020387D8 + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0xE + movs r3, 0x1 + bl sub_80BAE78 + ldr r0, _080BAE0C @ =gUnknown_020387D9 + ldrb r0, [r0] + movs r1, 0x1B + movs r2, 0xC + movs r3, 0x1 + bl sub_80BAE78 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BAE00: .4byte gUnknown_020387B4 +_080BAE04: .4byte gUnknown_020387B1 +_080BAE08: .4byte gUnknown_020387D8 +_080BAE0C: .4byte gUnknown_020387D9 + thumb_func_end sub_80BAD5C + + thumb_func_start sub_80BAE10 +sub_80BAE10: @ 80BAE10 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080BAE6C @ =gUnknown_083D03DC + mov r0, sp + movs r2, 0x2 + bl memcpy + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _080BAE70 @ =gUnknown_083D03DE + movs r2, 0x2 + bl memcpy + ldr r6, _080BAE74 @ =gUnknown_083D0300 + lsls r4, 1 + adds r0, r4, r6 + ldrb r1, [r0] + adds r4, 0x1 + adds r4, r6 + ldrb r2, [r4] + mov r0, r8 + bl MenuPrint + lsls r5, 1 + adds r0, r5, r6 + ldrb r1, [r0] + adds r5, 0x1 + adds r5, r6 + ldrb r2, [r5] + mov r0, sp + bl MenuPrint + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BAE6C: .4byte gUnknown_083D03DC +_080BAE70: .4byte gUnknown_083D03DE +_080BAE74: .4byte gUnknown_083D0300 + thumb_func_end sub_80BAE10 + + thumb_func_start sub_80BAE78 +sub_80BAE78: @ 80BAE78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r8, r0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + lsrs r7, r3, 24 + mov r1, sp + ldr r0, _080BAF80 @ =gUnknown_083D03E0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + movs r5, 0 + add r0, sp, 0x18 + mov r9, r0 + cmp r5, r7 + bgt _080BAEC0 + mov r4, r9 + movs r3, 0 +_080BAEAC: + lsls r0, r5, 24 + asrs r0, 24 + adds r1, r4, r0 + strb r3, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + asrs r0, 24 + cmp r0, r7 + ble _080BAEAC +_080BAEC0: + adds r0, r7, 0x1 + add r0, r9 + movs r1, 0xFF + strb r1, [r0] + movs r1, 0 + mov r3, r8 + cmp r3, 0 + bge _080BAED6 + negs r3, r3 + mov r8, r3 + movs r1, 0x1 +_080BAED6: + movs r4, 0 + mov r10, r4 + cmp r7, 0x1 + bne _080BAEE2 + movs r5, 0x1 + mov r10, r5 +_080BAEE2: + subs r0, r7, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 24 + lsls r6, 24 + str r6, [sp, 0x24] + lsls r2, 24 + str r2, [sp, 0x28] + cmp r0, 0 + blt _080BAF62 + str r1, [sp, 0x20] +_080BAEF8: + asrs r6, r0, 24 + lsls r0, r6, 2 + add r0, sp + ldr r1, [r0] + mov r0, r8 + bl __divsi3 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r0, 0 + bne _080BAF1A + mov r0, r10 + cmp r0, 0 + bne _080BAF1A + lsls r4, r5, 24 + cmp r6, 0 + bne _080BAF46 +_080BAF1A: + lsls r4, r5, 24 + ldr r3, [sp, 0x20] + cmp r3, 0 + beq _080BAF34 + mov r5, r10 + cmp r5, 0 + bne _080BAF34 + asrs r0, r4, 24 + subs r0, r7, r0 + subs r0, 0x1 + add r0, r9 + movs r1, 0xAE + strb r1, [r0] +_080BAF34: + asrs r1, r4, 24 + subs r1, r7, r1 + add r1, r9 + lsls r0, r2, 24 + asrs r0, 24 + subs r0, 0x5F + strb r0, [r1] + movs r0, 0x1 + mov r10, r0 +_080BAF46: + asrs r4, 24 + lsls r0, r4, 2 + add r0, sp + ldr r1, [r0] + mov r0, r8 + bl __modsi3 + mov r8, r0 + subs r4, 0x1 + lsls r4, 24 + lsrs r5, r4, 24 + lsls r0, r5, 24 + cmp r0, 0 + bge _080BAEF8 +_080BAF62: + ldr r3, [sp, 0x24] + lsrs r1, r3, 24 + ldr r4, [sp, 0x28] + lsrs r2, r4, 24 + mov r0, r9 + bl MenuPrint + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BAF80: .4byte gUnknown_083D03E0 + thumb_func_end sub_80BAE78 + + thumb_func_start sub_80BAF84 +sub_80BAF84: @ 80BAF84 + push {r4-r6,lr} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080BB01C @ =gOtherText_SE + mov r0, sp + movs r2, 0x3 + bl memcpy + add r6, sp, 0x4 + ldr r1, _080BB020 @ =gOtherText_Pan + adds r0, r6, 0 + movs r2, 0x4 + bl memcpy + add r5, sp, 0x8 + ldr r1, _080BB024 @ =gUnknown_083D0381 + adds r0, r5, 0 + movs r2, 0x9 + bl memcpy + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xC5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + mov r0, sp + movs r1, 0x3 + movs r2, 0x2 + bl MenuPrint + adds r0, r6, 0 + movs r1, 0x3 + movs r2, 0x4 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x8 + bl MenuPrint + ldr r1, _080BB028 @ =REG_WIN0H + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0xA0 + strh r0, [r1] + ldr r1, _080BB02C @ =gUnknown_020387B4 + movs r0, 0x1 + str r0, [r1] + movs r0, 0 + str r0, [r1, 0x8] + str r0, [r1, 0x1C] + str r0, [r1, 0x18] + str r0, [r1, 0x14] + bl sub_80BB1D4 + ldr r1, _080BB030 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB034 @ =sub_80BB038 + str r1, [r0] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB01C: .4byte gOtherText_SE +_080BB020: .4byte gOtherText_Pan +_080BB024: .4byte gUnknown_083D0381 +_080BB028: .4byte REG_WIN0H +_080BB02C: .4byte gUnknown_020387B4 +_080BB030: .4byte gTasks +_080BB034: .4byte sub_80BB038 + thumb_func_end sub_80BAF84 + + thumb_func_start sub_80BB038 +sub_80BB038: @ 80BB038 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80BB1D4 + ldr r2, _080BB058 @ =gUnknown_020387B4 + ldr r0, [r2, 0x18] + cmp r0, 0 + beq _080BB0A2 + ldr r0, [r2, 0x14] + cmp r0, 0 + beq _080BB05C + subs r0, 0x1 + str r0, [r2, 0x14] + b _080BB0A2 + .align 2, 0 +_080BB058: .4byte gUnknown_020387B4 +_080BB05C: + ldr r0, _080BB088 @ =gUnknown_083D03F8 + ldr r1, [r2, 0x8] + adds r1, r0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB08C + cmp r1, 0x7F + bne _080BB0A2 + ldr r0, [r2, 0x1C] + adds r0, 0x2 + str r0, [r2, 0x1C] + cmp r0, 0x3E + bgt _080BB0A2 + lsls r0, 24 + asrs r0, 24 + bl SE12PanpotControl + b _080BB0A2 + .align 2, 0 +_080BB088: .4byte gUnknown_083D03F8 +_080BB08C: + ldr r0, [r2, 0x1C] + subs r1, r0, 0x2 + str r1, [r2, 0x1C] + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + ble _080BB0A2 + lsls r0, r1, 24 + asrs r0, 24 + bl SE12PanpotControl +_080BB0A2: + ldr r1, _080BB0EC @ =gMain + ldrh r3, [r1, 0x2E] + movs r0, 0x2 + ands r0, r3 + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, r1, 0 + cmp r4, 0 + beq _080BB104 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BB0F0 @ =0x00007140 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BB0F4 @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BB0F8 @ =0x0000011f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BB0FC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB100 @ =sub_80BA258 + str r1, [r0] + b _080BB1C8 + .align 2, 0 +_080BB0EC: .4byte gMain +_080BB0F0: .4byte 0x00007140 +_080BB0F4: .4byte 0x000011df +_080BB0F8: .4byte 0x0000011f +_080BB0FC: .4byte gTasks +_080BB100: .4byte sub_80BA258 +_080BB104: + movs r6, 0x1 + adds r2, r6, 0 + ands r2, r3 + cmp r2, 0 + beq _080BB15E + ldr r0, _080BB138 @ =gUnknown_083D03F8 + ldr r5, _080BB13C @ =gUnknown_020387B4 + ldr r1, [r5, 0x8] + adds r1, r0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB140 + cmp r1, 0x7F + bne _080BB154 + ldrh r0, [r5] + movs r4, 0x40 + negs r4, r4 + adds r1, r4, 0 + bl PlaySE12WithPanning + str r4, [r5, 0x1C] + b _080BB14C + .align 2, 0 +_080BB138: .4byte gUnknown_083D03F8 +_080BB13C: .4byte gUnknown_020387B4 +_080BB140: + ldrh r0, [r5] + movs r1, 0x3F + bl PlaySE12WithPanning + movs r0, 0x3F + str r0, [r5, 0x1C] +_080BB14C: + str r6, [r5, 0x18] + movs r0, 0x1E + str r0, [r5, 0x14] + b _080BB1C8 +_080BB154: + ldrh r0, [r5] + bl PlaySE12WithPanning + str r4, [r5, 0x18] + b _080BB1C8 +_080BB15E: + movs r0, 0x80 + lsls r0, 2 + ands r0, r3 + cmp r0, 0 + beq _080BB176 + ldr r1, _080BB1AC @ =gUnknown_020387B4 + ldr r0, [r1, 0x8] + adds r0, 0x1 + str r0, [r1, 0x8] + cmp r0, 0x4 + ble _080BB176 + str r2, [r1, 0x8] +_080BB176: + ldrh r1, [r7, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BB192 + ldr r1, _080BB1AC @ =gUnknown_020387B4 + ldr r0, [r1, 0x8] + subs r0, 0x1 + str r0, [r1, 0x8] + cmp r0, 0 + bge _080BB192 + movs r0, 0x4 + str r0, [r1, 0x8] +_080BB192: + ldrh r1, [r7, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080BB1B0 + ldr r1, _080BB1AC @ =gUnknown_020387B4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0xF7 + ble _080BB1C8 + movs r0, 0 + b _080BB1C6 + .align 2, 0 +_080BB1AC: .4byte gUnknown_020387B4 +_080BB1B0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080BB1C8 + ldr r1, _080BB1D0 @ =gUnknown_020387B4 + ldr r0, [r1] + subs r0, 0x1 + str r0, [r1] + cmp r0, 0 + bge _080BB1C8 + movs r0, 0xF7 +_080BB1C6: + str r0, [r1] +_080BB1C8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BB1D0: .4byte gUnknown_020387B4 + thumb_func_end sub_80BB038 + + thumb_func_start sub_80BB1D4 +sub_80BB1D4: @ 80BB1D4 + push {r4,r5,lr} + sub sp, 0x10 + ldr r1, _080BB218 @ =gOtherText_LR + mov r0, sp + movs r2, 0x5 + bl memcpy + add r5, sp, 0x8 + ldr r1, _080BB21C @ =gOtherText_RL + adds r0, r5, 0 + movs r2, 0x5 + bl memcpy + ldr r4, _080BB220 @ =gUnknown_020387B4 + ldr r0, [r4] + movs r1, 0x7 + movs r2, 0x2 + movs r3, 0x3 + bl sub_80BAE78 + ldr r1, _080BB224 @ =gUnknown_083D03F8 + ldr r0, [r4, 0x8] + adds r0, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x80 + negs r0, r0 + cmp r1, r0 + beq _080BB228 + cmp r1, 0x7F + bne _080BB234 + mov r0, sp + b _080BB22A + .align 2, 0 +_080BB218: .4byte gOtherText_LR +_080BB21C: .4byte gOtherText_RL +_080BB220: .4byte gUnknown_020387B4 +_080BB224: .4byte gUnknown_083D03F8 +_080BB228: + adds r0, r5, 0 +_080BB22A: + movs r1, 0x7 + movs r2, 0x4 + bl MenuPrint + b _080BB240 +_080BB234: + adds r0, r1, 0 + movs r1, 0x7 + movs r2, 0x4 + movs r3, 0x3 + bl sub_80BAE78 +_080BB240: + bl IsSEPlaying + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + movs r2, 0x8 + movs r3, 0x1 + bl sub_80BAE78 + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BB1D4 + + thumb_func_start sub_80BB25C +sub_80BB25C: @ 80BB25C + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BB374 @ =gWindowConfig_81E6C3C + bl SetUpWindowConfig + ldr r0, _080BB378 @ =gWindowConfig_81E6CE4 + bl InitMenuWindow + ldr r1, _080BB37C @ =gUnknown_03005D34 + movs r0, 0x1 + strh r0, [r1] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _080BB380 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + ldr r1, _080BB384 @ =0xff00ffff + ands r0, r1 + movs r1, 0xE8 + lsls r1, 13 + orrs r0, r1 + ldr r1, _080BB388 @ =0x00ffffff + ands r0, r1 + movs r1, 0xC0 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0x4] + ldr r1, _080BB38C @ =0xffff00ff + ldr r0, [sp, 0x8] + ands r0, r1 + movs r1, 0xF0 + lsls r1, 5 + orrs r0, r1 + ldr r1, _080BB390 @ =0xffffff00 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + str r0, [sp, 0x8] + movs r1, 0 + ldr r0, _080BB394 @ =gUnknown_03005E98 + strb r1, [r0] + add r4, sp, 0xC +_080BB2BE: + add r0, sp, 0x4 + movs r1, 0x3 + bl sub_8119E3C + lsls r0, 24 + cmp r0, 0 + beq _080BB2BE + ldr r1, _080BB380 @ =0xffff0000 + ldr r0, [sp, 0xC] + ands r0, r1 + ldr r1, _080BB384 @ =0xff00ffff + ands r0, r1 + movs r1, 0xF0 + lsls r1, 12 + orrs r0, r1 + ldr r1, _080BB388 @ =0x00ffffff + ands r0, r1 + movs r1, 0xD0 + lsls r1, 20 + orrs r0, r1 + str r0, [sp, 0xC] + ldr r1, _080BB390 @ =0xffffff00 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0xC + orrs r0, r1 + ldr r1, _080BB38C @ =0xffff00ff + ands r0, r1 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + str r0, [r4, 0x4] + movs r1, 0 + ldr r0, _080BB394 @ =gUnknown_03005E98 + strb r1, [r0] + lsls r5, r6, 2 +_080BB306: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_811A3CC + lsls r0, 24 + cmp r0, 0 + beq _080BB306 + movs r0, 0 + movs r1, 0x10 + movs r2, 0x5 + movs r3, 0x13 + bl MenuDrawTextWindow + bl sub_80BB494 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080BB398 @ =REG_BG2HOFS + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _080BB39C @ =REG_BG2CNT + ldr r2, _080BB3A0 @ =0x00000f01 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080BB3A4 @ =0x00001d03 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + adds r2, 0x3D + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080BB3A8 @ =gMPlay_BGM + movs r1, 0x2 + bl m4aMPlayFadeOutTemporarily + ldr r1, _080BB3AC @ =gTasks + adds r0, r5, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB3B0 @ =sub_80BB3B4 + str r1, [r0] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB374: .4byte gWindowConfig_81E6C3C +_080BB378: .4byte gWindowConfig_81E6CE4 +_080BB37C: .4byte gUnknown_03005D34 +_080BB380: .4byte 0xffff0000 +_080BB384: .4byte 0xff00ffff +_080BB388: .4byte 0x00ffffff +_080BB38C: .4byte 0xffff00ff +_080BB390: .4byte 0xffffff00 +_080BB394: .4byte gUnknown_03005E98 +_080BB398: .4byte REG_BG2HOFS +_080BB39C: .4byte REG_BG2CNT +_080BB3A0: .4byte 0x00000f01 +_080BB3A4: .4byte 0x00001d03 +_080BB3A8: .4byte gMPlay_BGM +_080BB3AC: .4byte gTasks +_080BB3B0: .4byte sub_80BB3B4 + thumb_func_end sub_80BB25C + + thumb_func_start sub_80BB3B4 +sub_80BB3B4: @ 80BB3B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x3 + bl sub_8119F88 + ldr r4, _080BB478 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BB3D4 + ldr r0, _080BB47C @ =gUnknown_03005D34 + ldrh r0, [r0] + bl sub_811A050 +_080BB3D4: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080BB3E4 + bl StopCryAndClearCrySongs +_080BB3E4: + ldrh r1, [r4, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BB408 + ldr r1, _080BB47C @ =gUnknown_03005D34 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _080BB404 + movs r2, 0xC0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] +_080BB404: + bl sub_80BB494 +_080BB408: + ldr r0, _080BB478 @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BB42E + ldr r2, _080BB47C @ =gUnknown_03005D34 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 17 + cmp r0, r1 + bls _080BB42A + movs r0, 0x1 + strh r0, [r2] +_080BB42A: + bl sub_80BB494 +_080BB42E: + ldr r0, _080BB478 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BB472 + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080BB480 @ =0x00007140 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x40 + ldr r2, _080BB484 @ =0x000011df + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080BB488 @ =0x0000011f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080BB48C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BB490 @ =sub_80BA258 + str r1, [r0] + bl sub_811A4F8 +_080BB472: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BB478: .4byte gMain +_080BB47C: .4byte gUnknown_03005D34 +_080BB480: .4byte 0x00007140 +_080BB484: .4byte 0x000011df +_080BB488: .4byte 0x0000011f +_080BB48C: .4byte gTasks +_080BB490: .4byte sub_80BA258 + thumb_func_end sub_80BB3B4 + + thumb_func_start sub_80BB494 +sub_80BB494: @ 80BB494 + push {lr} + ldr r0, _080BB4A8 @ =gUnknown_03005D34 + ldrh r0, [r0] + movs r1, 0x1 + movs r2, 0x11 + movs r3, 0x3 + bl sub_80BAE78 + pop {r0} + bx r0 + .align 2, 0 +_080BB4A8: .4byte gUnknown_03005D34 + thumb_func_end sub_80BB494 + + thumb_func_start sub_80BB4AC +sub_80BB4AC: @ 80BB4AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + movs r0, 0 + strb r0, [r3] + movs r2, 0 + adds r4, r3, 0x2 + movs r5, 0xFF +_080BB4C4: + adds r0, r4, r2 + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x6 + bls _080BB4C4 + movs r2, 0 + adds r5, r3, 0 + adds r5, 0x12 + adds r6, r3, 0 + adds r6, 0x22 + adds r7, r3, 0 + adds r7, 0x4C + adds r0, r3, 0 + adds r0, 0x34 + str r0, [sp] + adds r1, r3, 0 + adds r1, 0x9A + str r1, [sp, 0x4] + movs r0, 0x7C + adds r0, r3 + mov r10, r0 + movs r1, 0x88 + adds r1, r3 + mov r9, r1 + movs r0, 0x94 + adds r0, r3 + mov r8, r0 + adds r1, r3, 0 + adds r1, 0x9 + movs r4, 0 +_080BB508: + adds r0, r1, r2 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080BB508 + movs r0, 0 + movs r1, 0 + strh r1, [r3, 0xE] + strb r0, [r3, 0x10] + strb r0, [r3, 0x11] + movs r0, 0 + strb r0, [r3, 0x1] + movs r2, 0 + adds r4, r5, 0 + adds r3, r6, 0 +_080BB52A: + adds r0, r4, r2 + strb r1, [r0] + adds r0, r3, r2 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080BB52A + movs r2, 0 + mov r12, r7 + movs r5, 0 +_080BB542: + movs r1, 0 + adds r7, r2, 0x1 + lsls r4, r2, 2 + lsls r6, r2, 1 + adds r3, r4, 0 +_080BB54C: + adds r0, r3, r1 + lsls r0, 1 + add r0, r12 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080BB54C + ldr r1, [sp] + adds r0, r1, r4 + str r5, [r0] + ldr r1, [sp, 0x4] + adds r0, r1, r2 + strb r5, [r0] + mov r1, r10 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r9 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r8 + adds r0, r1, r2 + strb r5, [r0] + lsls r0, r7, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080BB542 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB4AC + + thumb_func_start sub_80BB594 +sub_80BB594: @ 80BB594 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08 + adds r0, r1 + bl sub_80BB4AC + pop {r0} + bx r0 + .align 2, 0 +_080BB5B0: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BB594 + + thumb_func_start sub_80BB5B4 +sub_80BB5B4: @ 80BB5B4 + push {r4,lr} + movs r4, 0 +_080BB5B8: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BB594 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BB5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BB5B4 + + thumb_func_start sub_80BB5D0 +sub_80BB5D0: @ 80BB5D0 + ldr r0, _080BB5DC @ =gUnknown_020387DC + ldr r1, _080BB5E0 @ =gUnknown_0202E8CC + ldrh r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_080BB5DC: .4byte gUnknown_020387DC +_080BB5E0: .4byte gUnknown_0202E8CC + thumb_func_end sub_80BB5D0 + + thumb_func_start sub_80BB5E4 +sub_80BB5E4: @ 80BB5E4 + push {r4,lr} + ldr r0, _080BB5F4 @ =gScriptResult + movs r1, 0 + strh r1, [r0] + movs r3, 0 + adds r4, r0, 0 + b _080BB5FE + .align 2, 0 +_080BB5F4: .4byte gScriptResult +_080BB5F8: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_080BB5FE: + cmp r3, 0x13 + bhi _080BB626 + ldr r2, _080BB62C @ =gUnknown_020387DC + ldr r1, _080BB630 @ =gSaveBlock1 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BB634 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _080BB5F8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080BB638 @ =0x00004054 + adds r1, r3, 0 + bl VarSet +_080BB626: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB62C: .4byte gUnknown_020387DC +_080BB630: .4byte gSaveBlock1 +_080BB634: .4byte 0x00001a08 +_080BB638: .4byte 0x00004054 + thumb_func_end sub_80BB5E4 + + thumb_func_start sub_80BB63C +sub_80BB63C: @ 80BB63C + push {lr} + ldr r0, _080BB654 @ =gSaveBlock1 + ldr r1, _080BB658 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080BB660 + ldr r1, _080BB65C @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _080BB664 + .align 2, 0 +_080BB654: .4byte gSaveBlock1 +_080BB658: .4byte 0x00001a08 +_080BB65C: .4byte gScriptResult +_080BB660: + ldr r0, _080BB668 @ =gScriptResult + strh r1, [r0] +_080BB664: + pop {r0} + bx r0 + .align 2, 0 +_080BB668: .4byte gScriptResult + thumb_func_end sub_80BB63C + + thumb_func_start sub_80BB66C +sub_80BB66C: @ 80BB66C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + adds r1, r0, 0 + ldr r2, _080BB6A4 @ =0x00000fff + adds r0, r2, 0 + ands r1, r0 + adds r0, r1, 0 + subs r0, 0x90 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6A8 + movs r0, 0x1 + b _080BB702 + .align 2, 0 +_080BB6A4: .4byte 0x00000fff +_080BB6A8: + adds r0, r1, 0 + subs r0, 0x92 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6B8 + movs r0, 0x2 + b _080BB702 +_080BB6B8: + adds r0, r1, 0 + subs r0, 0x9A + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6C8 + movs r0, 0x3 + b _080BB702 +_080BB6C8: + adds r0, r1, 0 + subs r0, 0x94 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6D8 + movs r0, 0x4 + b _080BB702 +_080BB6D8: + adds r0, r1, 0 + subs r0, 0x96 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB6EC + cmp r1, 0x9C + beq _080BB6EC + cmp r1, 0x9D + bne _080BB6F0 +_080BB6EC: + movs r0, 0x5 + b _080BB702 +_080BB6F0: + adds r0, r1, 0 + subs r0, 0x98 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB700 + movs r0, 0 + b _080BB702 +_080BB700: + movs r0, 0x6 +_080BB702: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BB66C + + thumb_func_start sub_80BB70C +sub_80BB70C: @ 80BB70C + push {r4,lr} + ldr r4, _080BB720 @ =gUnknown_0202E8D2 + bl sub_80BB66C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB720: .4byte gUnknown_0202E8D2 + thumb_func_end sub_80BB70C + + thumb_func_start unref_sub_80BB724 +unref_sub_80BB724: @ 80BB724 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + movs r2, 0 + ldr r6, _080BB748 @ =0x00000fff + lsrs r3, r1, 24 + ldr r5, _080BB74C @ =0x000001ff +_080BB732: + lsls r0, r2, 1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, r3 + bne _080BB750 + lsls r0, r2, 16 + asrs r0, 16 + b _080BB75E + .align 2, 0 +_080BB748: .4byte 0x00000fff +_080BB74C: .4byte 0x000001ff +_080BB750: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r5 + bls _080BB732 + movs r0, 0x1 + negs r0, r0 +_080BB75E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end unref_sub_80BB724 + + thumb_func_start sub_80BB764 +sub_80BB764: @ 80BB764 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + movs r0, 0 + mov r12, r0 + ldr r1, _080BB7C8 @ =gMapHeader + ldr r0, [r1] + ldr r3, [r0, 0x4] + cmp r12, r3 + bge _080BB7EE + ldr r0, [r0] + str r0, [sp, 0x4] + str r3, [sp] +_080BB78E: + movs r2, 0 + mov r1, r12 + lsls r7, r1, 16 + ldr r0, [sp, 0x4] + cmp r2, r0 + bge _080BB7DC + ldr r0, _080BB7C8 @ =gMapHeader + ldr r1, [r0] + asrs r0, r7, 16 + ldr r4, [r1] + adds r6, r0, 0 + muls r6, r4 + ldr r5, [r1, 0xC] +_080BB7A8: + lsls r0, r2, 16 + asrs r3, r0, 16 + adds r0, r6, r3 + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, _080BB7CC @ =0x000003ff + ands r0, r1 + cmp r0, r8 + bne _080BB7D0 + mov r1, r9 + strh r2, [r1] + mov r1, r12 + mov r0, r10 + strh r1, [r0] + b _080BB7EE + .align 2, 0 +_080BB7C8: .4byte gMapHeader +_080BB7CC: .4byte 0x000003ff +_080BB7D0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, r4 + blt _080BB7A8 +_080BB7DC: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r1, r0, 16 + mov r12, r1 + asrs r0, 16 + ldr r1, [sp] + cmp r0, r1 + blt _080BB78E +_080BB7EE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB764 + + thumb_func_start sub_80BB800 +sub_80BB800: @ 80BB800 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + movs r5, 0 + mov r12, r4 + lsls r0, 16 + asrs r3, r0, 16 + ldr r1, _080BB84C @ =gUnknown_083D1358 + mov r8, r1 + adds r7, r0, 0 + mov r4, sp + mov r6, r12 +_080BB834: + ldr r0, _080BB84C @ =gUnknown_083D1358 + lsls r1, r5, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r3 + bne _080BB850 + movs r3, 0 + ldrsh r0, [r4, r3] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r2, 0x2] + b _080BB878 + .align 2, 0 +_080BB84C: .4byte gUnknown_083D1358 +_080BB850: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB834 + movs r5, 0 + mov r4, sp + mov r6, r12 +_080BB860: + lsls r0, r5, 2 + mov r1, r8 + adds r3, r0, r1 + ldrh r1, [r3, 0x2] + asrs r0, r7, 16 + cmp r1, r0 + bne _080BB892 + movs r2, 0 + ldrsh r0, [r4, r2] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r3] +_080BB878: + movs r5, 0xC0 + lsls r5, 4 + adds r2, r5, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + bl CurrentMapDrawMetatileAt + b _080BB89C +_080BB892: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB860 +_080BB89C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB800 + + thumb_func_start sub_80BB8A8 +sub_80BB8A8: @ 80BB8A8 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BB8AE: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BB8BA + adds r0, r1, 0 + b _080BB8C6 +_080BB8BA: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x6 + bls _080BB8AE + movs r0, 0x7 +_080BB8C6: + pop {r1} + bx r1 + thumb_func_end sub_80BB8A8 + + thumb_func_start sub_80BB8CC +sub_80BB8CC: @ 80BB8CC + push {r4-r6,lr} + ldr r2, _080BB948 @ =gSaveBlock1 + ldr r0, _080BB94C @ =gUnknown_020387DC + ldrb r1, [r0] + ldr r3, _080BB950 @ =0x00001a08 + adds r0, r2, r3 + strb r1, [r0] + movs r3, 0 + ldr r0, _080BB954 @ =0x00001a11 + adds r2, r0 + ldr r4, _080BB958 @ =gSaveBlock2 + 0xA +_080BB8E2: + adds r1, r3, r2 + adds r0, r3, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BB8E2 + ldr r0, _080BB95C @ =0x00004054 + movs r1, 0 + bl VarSet + ldr r6, _080BB960 @ =gSaveBlock2 + adds r0, r6, 0 + bl sub_80BB8A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl StringCopyN + ldrb r0, [r6, 0x8] + subs r5, 0x1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r0, _080BB968 @ =0x00004026 + ldr r1, _080BB96C @ =gMapHeader + ldrb r1, [r1, 0x14] + bl VarSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB948: .4byte gSaveBlock1 +_080BB94C: .4byte gUnknown_020387DC +_080BB950: .4byte 0x00001a08 +_080BB954: .4byte 0x00001a11 +_080BB958: .4byte gSaveBlock2 + 0xA +_080BB95C: .4byte 0x00004054 +_080BB960: .4byte gSaveBlock2 +_080BB964: .4byte gSaveBlock1 + 0x1A0A +_080BB968: .4byte 0x00004026 +_080BB96C: .4byte gMapHeader + thumb_func_end sub_80BB8CC + + thumb_func_start sub_80BB970 +sub_80BB970: @ 80BB970 + push {r4-r7,lr} + adds r5, r0, 0 + movs r2, 0 + b _080BBA06 +_080BB978: + ldr r0, [r5, 0x10] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x5] + adds r7, r2, 0x1 + cmp r0, 0x8 + bne _080BBA02 + movs r2, 0 + ldr r4, _080BB9E0 @ =gSaveBlock1 + adds r6, r1, 0 +_080BB990: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BB9E4 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r0] + ldr r0, [r3, 0x8] + cmp r1, r0 + bne _080BB9F8 + ldrh r0, [r3] + adds r0, 0x7 + ldrh r1, [r3, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r3, 0 + lsls r0, 16 + asrs r4, r0, 16 +_080BB9B6: + ldr r0, _080BB9E8 @ =gUnknown_083D1358 + lsls r1, r3, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _080BB9EC + ldr r1, [r5, 0x10] + adds r1, r6, r1 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r2, 0x2] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BBA02 + .align 2, 0 +_080BB9E0: .4byte gSaveBlock1 +_080BB9E4: .4byte 0x00001a08 +_080BB9E8: .4byte gUnknown_083D1358 +_080BB9EC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6 + bls _080BB9B6 + b _080BBA02 +_080BB9F8: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x13 + bls _080BB990 +_080BBA02: + lsls r0, r7, 16 + lsrs r2, r0, 16 +_080BBA06: + ldrb r0, [r5, 0x3] + cmp r2, r0 + bcc _080BB978 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB970 + + thumb_func_start sub_80BBA14 +sub_80BBA14: @ 80BBA14 + push {lr} + ldr r0, _080BBA40 @ =gUnknown_020387DC + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r2, _080BBA44 @ =gUnknown_083D1374 + lsls r0, 26 + asrs r0, 24 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r0, 0x1 + adds r0, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0x19 + bl warp1_set_2 + pop {r0} + bx r0 + .align 2, 0 +_080BBA40: .4byte gUnknown_020387DC +_080BBA44: .4byte gUnknown_083D1374 + thumb_func_end sub_80BBA14 + + thumb_func_start sub_80BBA48 +sub_80BBA48: @ 80BBA48 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BBA6C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080BBA7C + cmp r0, 0x1 + bgt _080BBA70 + cmp r0, 0 + beq _080BBA76 + b _080BBAD0 + .align 2, 0 +_080BBA6C: .4byte gTasks +_080BBA70: + cmp r0, 0x2 + beq _080BBA94 + b _080BBAD0 +_080BBA76: + movs r0, 0x1 + strh r0, [r2, 0x8] + b _080BBAD0 +_080BBA7C: + ldr r0, _080BBA90 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBAD0 + movs r0, 0x2 + strh r0, [r2, 0x8] + b _080BBAD0 + .align 2, 0 +_080BBA90: .4byte gPaletteFade +_080BBA94: + ldr r0, _080BBAD8 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080BBADC @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BBAE0 @ =0x00001a18 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _080BBAB6 + adds r0, 0x1 + strb r0, [r1] +_080BBAB6: + bl sub_80BBA14 + bl warp_in + ldr r0, _080BBAE4 @ =gUnknown_0300485C + ldr r1, _080BBAE8 @ =sub_8080990 + str r1, [r0] + ldr r0, _080BBAEC @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_080BBAD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBAD8: .4byte 0x00004054 +_080BBADC: .4byte gSaveBlock1 +_080BBAE0: .4byte 0x00001a18 +_080BBAE4: .4byte gUnknown_0300485C +_080BBAE8: .4byte sub_8080990 +_080BBAEC: .4byte CB2_LoadMap + thumb_func_end sub_80BBA48 + + thumb_func_start sub_80BBAF0 +sub_80BBAF0: @ 80BBAF0 + push {lr} + ldr r0, _080BBB1C @ =sub_80BBA48 + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, _080BBB20 @ =gSaveBlock1 + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .align 2, 0 +_080BBB1C: .4byte sub_80BBA48 +_080BBB20: .4byte gSaveBlock1 + thumb_func_end sub_80BBAF0 + + thumb_func_start sub_80BBB24 +sub_80BBB24: @ 80BBB24 + push {lr} + ldr r0, _080BBB40 @ =gMapHeader + ldrb r0, [r0, 0x17] + cmp r0, 0x9 + bne _080BBB48 + ldr r0, _080BBB44 @ =0x00004097 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080BBB48 + movs r0, 0 + b _080BBB4A + .align 2, 0 +_080BBB40: .4byte gMapHeader +_080BBB44: .4byte 0x00004097 +_080BBB48: + movs r0, 0x1 +_080BBB4A: + pop {r1} + bx r1 + thumb_func_end sub_80BBB24 + + thumb_func_start sub_80BBB50 +sub_80BBB50: @ 80BBB50 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BBB88 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BBB8C @ =gMapObjects + adds r0, r1 + movs r1, 0x2 + bl FieldObjectTurn + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBB80 + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_080BBB80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBB88: .4byte gPlayerAvatar +_080BBB8C: .4byte gMapObjects + thumb_func_end sub_80BBB50 + + thumb_func_start sub_80BBB90 +sub_80BBB90: @ 80BBB90 + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + bl HideMapNamePopUpWindow + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + bl CurrentMapDrawMetatileAt + bl pal_fill_black + ldr r0, _080BBBE8 @ =sub_80BBB50 + movs r1, 0 + bl CreateTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBBE8: .4byte sub_80BBB50 + thumb_func_end sub_80BBB90 + + thumb_func_start sub_80BBBEC +sub_80BBBEC: @ 80BBBEC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BBC5C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBC52 + ldr r0, _080BBC60 @ =gUnknown_020387DC + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r1, _080BBC64 @ =gSaveBlock1 + movs r5, 0x4 + ldrsb r5, [r1, r5] + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + ldr r4, _080BBC68 @ =gUnknown_083D1374 + lsls r0, 26 + asrs r0, 24 + adds r3, r0, 0x2 + adds r3, r4 + ldrb r3, [r3] + lsls r3, 24 + asrs r3, 24 + adds r0, 0x3 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + adds r0, r5, 0 + bl warp1_set + bl warp_in + ldr r1, _080BBC6C @ =gUnknown_0300485C + ldr r0, _080BBC70 @ =sub_80BBB90 + str r0, [r1] + ldr r0, _080BBC74 @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_080BBC52: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBC5C: .4byte gPaletteFade +_080BBC60: .4byte gUnknown_020387DC +_080BBC64: .4byte gSaveBlock1 +_080BBC68: .4byte gUnknown_083D1374 +_080BBC6C: .4byte gUnknown_0300485C +_080BBC70: .4byte sub_80BBB90 +_080BBC74: .4byte CB2_LoadMap + thumb_func_end sub_80BBBEC + + thumb_func_start sub_80BBC78 +sub_80BBC78: @ 80BBC78 + push {lr} + ldr r0, _080BBCA0 @ =sub_80BBBEC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BBCA4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BBCA0: .4byte sub_80BBBEC +_080BBCA4: .4byte gTasks + thumb_func_end sub_80BBC78 + + thumb_func_start CurrentMapIsSecretBase +CurrentMapIsSecretBase: @ 80BBCA8 + push {lr} + ldr r1, _080BBCC0 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x19 + bne _080BBCC4 + ldrb r0, [r1, 0x5] + cmp r0, 0x17 + bhi _080BBCC4 + movs r0, 0x1 + b _080BBCC6 + .align 2, 0 +_080BBCC0: .4byte gSaveBlock1 +_080BBCC4: + movs r0, 0 +_080BBCC6: + pop {r1} + bx r1 + thumb_func_end CurrentMapIsSecretBase + + thumb_func_start sub_80BBCCC +sub_80BBCCC: @ 80BBCCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + beq _080BBDBC + ldr r0, _080BBD70 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + movs r1, 0 + mov r0, sp + strh r1, [r0] + ldr r6, _080BBD74 @ =gSaveBlock1 + mov r4, sp + ldr r0, _080BBD78 @ =0x00001a2a + adds r7, r6, r0 +_080BBCFC: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + ldrh r1, [r4] + adds r2, r0, r1 + ldr r1, _080BBD7C @ =0x00001a1a + adds r0, r6, r1 + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x77 + bhi _080BBD3A + ldr r0, _080BBD80 @ =gDecorations + ldrb r3, [r1] + lsls r1, r3, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + beq _080BBD3A + adds r0, r2, r7 + ldrb r2, [r0] + lsrs r0, r2, 4 + adds r0, 0x7 + movs r1, 0xF + ands r1, r2 + adds r1, 0x7 + adds r2, r3, 0 + bl sub_80FF394 +_080BBD3A: + ldrh r0, [r4] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r4] + cmp r0, 0xF + bls _080BBCFC + cmp r5, 0 + beq _080BBD88 + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBD84 @ =0x00000e21 + bl MapGridSetMetatileIdAt + b _080BBDBC + .align 2, 0 +_080BBD70: .4byte 0x00004054 +_080BBD74: .4byte gSaveBlock1 +_080BBD78: .4byte 0x00001a2a +_080BBD7C: .4byte 0x00001a1a +_080BBD80: .4byte gDecorations +_080BBD84: .4byte 0x00000e21 +_080BBD88: + mov r0, r8 + cmp r0, 0x1 + bne _080BBDBC + ldr r0, _080BBDC8 @ =0x00004089 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080BBDBC + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBDCC @ =0x00000e0a + bl MapGridSetMetatileIdAt +_080BBDBC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBDC8: .4byte 0x00004089 +_080BBDCC: .4byte 0x00000e0a + thumb_func_end sub_80BBCCC + + thumb_func_start sub_80BBDD0 +sub_80BBDD0: @ 80BBDD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, _080BBE00 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + bne _080BBE08 + ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688 + str r0, [sp, 0x4] + adds r0, 0xC + str r0, [sp, 0x8] + movs r1, 0xC + str r1, [sp, 0xC] + b _080BBE1E + .align 2, 0 +_080BBE00: .4byte 0x00004054 +_080BBE04: .4byte gSaveBlock1 + 0x2688 +_080BBE08: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 5 + ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A + adds r2, r1, r0 + str r2, [sp, 0x4] + adds r0, 0x10 + adds r1, r0 + str r1, [sp, 0x8] + movs r3, 0x10 + str r3, [sp, 0xC] +_080BBE1E: + movs r6, 0 + ldr r4, [sp, 0xC] + cmp r6, r4 + bcc _080BBE28 + b _080BBF6C +_080BBE28: + ldr r5, _080BBF80 @ =gSaveBlock1 + mov r10, r5 +_080BBE2C: + ldr r1, [sp, 0x4] + adds r0, r1, r6 + ldrb r1, [r0] + mov r9, r0 + adds r2, r6, 0x1 + str r2, [sp, 0x10] + cmp r1, 0 + bne _080BBE3E + b _080BBF5E +_080BBE3E: + ldrb r0, [r0] + lsls r0, 5 + ldr r3, _080BBF84 @ =gDecorations + adds r0, r3 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + beq _080BBE4E + b _080BBF5E +_080BBE4E: + movs r5, 0 + ldr r0, _080BBF88 @ =gMapHeader + ldr r2, [r0, 0x4] + ldrb r3, [r2] + mov r8, r0 + cmp r5, r3 + bcs _080BBE8E + ldr r0, [r2, 0x4] + ldrh r1, [r0, 0x14] + ldr r4, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r4] + adds r0, 0xAE + adds r7, r4, 0 + cmp r1, r0 + beq _080BBE8E + adds r4, r2, 0 + adds r2, r3, 0 +_080BBE70: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r2 + bcs _080BBE8E + ldr r1, [r4, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x14] + ldrh r0, [r7] + adds r0, 0xAE + cmp r1, r0 + bne _080BBE70 +_080BBE8E: + mov r1, r8 + ldr r0, [r1, 0x4] + ldrb r0, [r0] + cmp r5, r0 + beq _080BBF5E + ldr r7, _080BBF90 @ =gUnknown_0202E8D0 + ldr r2, [sp, 0x8] + adds r1, r2, r6 + ldrb r0, [r1] + lsrs r0, 4 + strh r0, [r7] + ldr r6, _080BBF94 @ =gUnknown_0202E8D2 + ldrb r1, [r1] + movs r0, 0xF + ands r0, r1 + strh r0, [r6] + ldrh r0, [r7] + adds r0, 0x7 + ldrh r1, [r6] + adds r1, 0x7 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80572D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BBEDA + adds r0, r4, 0 + bl sub_80572EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBF5E +_080BBEDA: + mov r3, r8 + ldr r0, [r3, 0x4] + ldr r1, [r0, 0x4] + lsls r4, r5, 1 + adds r4, r5 + lsls r4, 3 + adds r1, r4, r1 + ldr r5, _080BBF98 @ =0x00003f20 + adds r0, r5, 0 + ldrb r1, [r1, 0x1] + adds r0, r1 + ldr r1, _080BBF9C @ =gScriptResult + strh r0, [r1] + ldrh r0, [r1] + mov r2, r9 + ldrb r1, [r2] + lsls r1, 5 + ldr r3, _080BBFA0 @ =gDecorations + 0x1C + adds r1, r3 + ldr r1, [r1] + ldrh r1, [r1] + bl VarSet + mov r5, r8 + ldr r0, [r5, 0x4] + ldr r0, [r0, 0x4] + adds r4, r0 + ldrb r0, [r4] + ldr r1, _080BBF9C @ =gScriptResult + strh r0, [r1] + ldr r2, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r2] + adds r0, 0xAE + lsls r0, 16 + lsrs r0, 16 + bl FlagReset + ldr r3, _080BBF9C @ =gScriptResult + ldrb r0, [r3] + mov r4, r10 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + bl show_sprite + ldr r5, _080BBF9C @ =gScriptResult + ldrb r0, [r5] + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r4, 0 + ldrsh r3, [r7, r4] + movs r5, 0 + ldrsh r4, [r6, r5] + str r4, [sp] + bl sub_805C0F8 + ldr r1, _080BBF9C @ =gScriptResult + ldrb r0, [r1] + mov r2, r10 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl sub_805C78C + ldr r3, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080BBF5E: + ldr r4, [sp, 0x10] + lsls r0, r4, 24 + lsrs r6, r0, 24 + ldr r5, [sp, 0xC] + cmp r6, r5 + bcs _080BBF6C + b _080BBE2C +_080BBF6C: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBF7C: .4byte gSaveBlock1 + 0x1A1A +_080BBF80: .4byte gSaveBlock1 +_080BBF84: .4byte gDecorations +_080BBF88: .4byte gMapHeader +_080BBF8C: .4byte gUnknown_0202E8CC +_080BBF90: .4byte gUnknown_0202E8D0 +_080BBF94: .4byte gUnknown_0202E8D2 +_080BBF98: .4byte 0x00003f20 +_080BBF9C: .4byte gScriptResult +_080BBFA0: .4byte gDecorations + 0x1C + thumb_func_end sub_80BBDD0 + + thumb_func_start sub_80BBFA4 +sub_80BBFA4: @ 80BBFA4 + push {r4,r5,lr} + ldr r0, _080BBFCC @ =0x00004054 + bl VarGet + ldr r5, _080BBFD0 @ =0x0000401f + ldr r4, _080BBFD4 @ =gUnknown_083D13EC + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + adds r0, r5, 0 + bl VarSet + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBFCC: .4byte 0x00004054 +_080BBFD0: .4byte 0x0000401f +_080BBFD4: .4byte gUnknown_083D13EC + thumb_func_end sub_80BBFA4 + + thumb_func_start sub_80BBFD8 +sub_80BBFD8: @ 80BBFD8 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 + ldrb r0, [r4, 0x3] + cmp r3, r0 + bge _080BC030 + ldr r6, _080BC01C @ =gUnknown_020387DC +_080BBFE8: + lsls r3, 16 + asrs r1, r3, 16 + ldr r2, [r4, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + cmp r0, 0x8 + bne _080BC020 + movs r0, 0 + ldrsh r1, [r5, r0] + ldrh r0, [r2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + movs r0, 0x2 + ldrsh r1, [r5, r0] + ldrh r0, [r2, 0x2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + ldr r0, [r2, 0x8] + strb r0, [r6] + b _080BC030 + .align 2, 0 +_080BC01C: .4byte gUnknown_020387DC +_080BC020: + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r3, r0, 16 + asrs r0, 16 + ldrb r1, [r4, 0x3] + cmp r0, r1 + blt _080BBFE8 +_080BC030: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BBFD8 + + thumb_func_start sub_80BC038 +sub_80BC038: @ 80BC038 + push {lr} + bl sub_80BBFD8 + bl sub_80BB5E4 + ldr r0, _080BC04C @ =gUnknown_081A2E14 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080BC04C: .4byte gUnknown_081A2E14 + thumb_func_end sub_80BC038 + + thumb_func_start sub_80BC050 +sub_80BC050: @ 80BC050 + push {lr} + bl sub_80BB5D0 + bl sub_80BB5E4 + ldr r0, _080BC068 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BC06C + movs r0, 0x1 + b _080BC06E + .align 2, 0 +_080BC068: .4byte gScriptResult +_080BC06C: + movs r0, 0 +_080BC06E: + pop {r1} + bx r1 + thumb_func_end sub_80BC050 + + thumb_func_start sub_80BC074 +sub_80BC074: @ 80BC074 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BC098 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BC0AC + cmp r0, 0x1 + bgt _080BC09C + cmp r0, 0 + beq _080BC0A2 + b _080BC0E4 + .align 2, 0 +_080BC098: .4byte gTasks +_080BC09C: + cmp r0, 0x2 + beq _080BC0C4 + b _080BC0E4 +_080BC0A2: + bl ScriptContext2_Enable + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080BC0E4 +_080BC0AC: + ldr r0, _080BC0C0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BC0E4 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080BC0E4 + .align 2, 0 +_080BC0C0: .4byte gPaletteFade +_080BC0C4: + movs r0, 0x7E + bl copy_saved_warp2_bank_and_enter_x_to_warp1 + bl warp_in + ldr r0, _080BC0EC @ =gUnknown_0300485C + ldr r1, _080BC0F0 @ =mapldr_default + str r1, [r0] + ldr r0, _080BC0F4 @ =CB2_LoadMap + bl SetMainCallback2 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080BC0E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC0EC: .4byte gUnknown_0300485C +_080BC0F0: .4byte mapldr_default +_080BC0F4: .4byte CB2_LoadMap + thumb_func_end sub_80BC074 + + thumb_func_start sub_80BC0F8 +sub_80BC0F8: @ 80BC0F8 + push {lr} + ldr r0, _080BC110 @ =sub_80BC074 + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BC110: .4byte sub_80BC074 + thumb_func_end sub_80BC0F8 + + thumb_func_start sub_80BC114 +sub_80BC114: @ 80BC114 + push {lr} + ldr r0, _080BC12C @ =gSaveBlock1 + ldr r1, _080BC130 @ =0x00001a08 + adds r0, r1 + ldr r1, _080BC134 @ =gUnknown_020387DC + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BC13C + ldr r1, _080BC138 @ =gScriptResult + movs r0, 0x1 + b _080BC140 + .align 2, 0 +_080BC12C: .4byte gSaveBlock1 +_080BC130: .4byte 0x00001a08 +_080BC134: .4byte gUnknown_020387DC +_080BC138: .4byte gScriptResult +_080BC13C: + ldr r1, _080BC148 @ =gScriptResult + movs r0, 0 +_080BC140: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BC148: .4byte gScriptResult + thumb_func_end sub_80BC114 + + thumb_func_start sub_80BC14C +sub_80BC14C: @ 80BC14C + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r5, _080BC174 @ =gSaveBlock1 + ldr r4, _080BC178 @ =0x00001a08 +_080BC158: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080BC17C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BC18A + .align 2, 0 +_080BC174: .4byte gSaveBlock1 +_080BC178: .4byte 0x00001a08 +_080BC17C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC158 + movs r0, 0 +_080BC18A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC14C + + thumb_func_start sub_80BC190 +sub_80BC190: @ 80BC190 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 5 + ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A + adds r4, r0 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + ldr r1, _080BC1CC @ =gOtherText_PlayersBase + adds r0, r5, 0 + bl StringAppend + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080BC1C8: .4byte gSaveBlock1 + 0x1A0A +_080BC1CC: .4byte gOtherText_PlayersBase + thumb_func_end sub_80BC190 + + thumb_func_start GetSecretBaseMapName +GetSecretBaseMapName: @ 80BC1D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + ldr r6, _080BC214 @ =gUnknown_020387DC + ldr r5, _080BC218 @ =gSaveBlock1 + ldr r4, _080BC21C @ =0x00004054 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r5 + ldr r0, _080BC220 @ =0x00001a08 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r6] + adds r0, r4, 0 + bl VarGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_80BC190 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080BC214: .4byte gUnknown_020387DC +_080BC218: .4byte gSaveBlock1 +_080BC21C: .4byte 0x00004054 +_080BC220: .4byte 0x00001a08 + thumb_func_end GetSecretBaseMapName + + thumb_func_start sub_80BC224 +sub_80BC224: @ 80BC224 + push {r4,r5,lr} + ldr r0, _080BC25C @ =0x00004054 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A + adds r4, r0 + ldr r5, _080BC264 @ =gStringVar1 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC25C: .4byte 0x00004054 +_080BC260: .4byte gSaveBlock1 + 0x1A0A +_080BC264: .4byte gStringVar1 + thumb_func_end sub_80BC224 + + thumb_func_start sub_80BC268 +sub_80BC268: @ 80BC268 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC288 @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC28C @ =0x00001a09 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 6 + cmp r0, 0 + bne _080BC290 + movs r0, 0 + b _080BC292 + .align 2, 0 +_080BC288: .4byte gSaveBlock1 +_080BC28C: .4byte 0x00001a09 +_080BC290: + movs r0, 0x1 +_080BC292: + pop {r1} + bx r1 + thumb_func_end sub_80BC268 + + thumb_func_start sub_80BC298 +sub_80BC298: @ 80BC298 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1B + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1C + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1D + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1E + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1F + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC298 + + thumb_func_start sub_80BC300 +sub_80BC300: @ 80BC300 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r10, r0 + movs r6, 0 + mov r9, r6 +_080BC314: + movs r4, 0 + lsls r3, r6, 2 + lsls r2, r6, 1 + ldr r7, _080BC424 @ =gPlayerParty + adds r1, r6, 0x1 + str r1, [sp] + adds r1, r3, 0 +_080BC322: + adds r0, r1, r4 + lsls r0, 1 + ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54 + adds r0, r5, r0 + mov r5, r9 + strh r5, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BC322 + ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84 + adds r0, r1, r2 + strh r5, [r0] + ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90 + adds r0, r5, r2 + mov r1, r9 + strh r1, [r0] + ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C + adds r0, r2, r6 + mov r5, r9 + strb r5, [r0] + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C + adds r0, r1, r3 + mov r2, r9 + str r2, [r0] + ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2 + adds r0, r3, r6 + strb r2, [r0] + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + adds r4, r5, r7 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080BC408 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080BC408 + movs r4, 0 + mov r0, r10 + lsls r0, 2 + mov r8, r0 + mov r1, r10 + lsls r7, r1, 1 + adds r1, 0x1 + str r1, [sp, 0x4] + ldr r2, _080BC424 @ =gPlayerParty +_080BC38E: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, r2 + str r2, [sp, 0x8] + bl GetMonData + mov r3, r8 + adds r1, r3, r4 + lsls r1, 1 + ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54 + adds r1, r3, r1 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x8] + cmp r4, 0x3 + bls _080BC38E + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080BC424 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84 + adds r1, r5, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90 + adds r1, r2, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C + add r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C + add r1, r8 + str r0, [r1] + adds r0, r4, 0 + bl sub_80BC298 + ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2 + add r1, r10 + strb r0, [r1] + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + lsrs r0, 16 + mov r10, r0 +_080BC408: + ldr r5, [sp] + lsls r0, r5, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080BC314 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC424: .4byte gPlayerParty +_080BC428: .4byte gSaveBlock1 + 0x1A54 +_080BC42C: .4byte gSaveBlock1 + 0x1A84 +_080BC430: .4byte gSaveBlock1 + 0x1A90 +_080BC434: .4byte gSaveBlock1 + 0x1A9C +_080BC438: .4byte gSaveBlock1 + 0x1A3C +_080BC43C: .4byte gSaveBlock1 + 0x1AA2 + thumb_func_end sub_80BC300 + + thumb_func_start sub_80BC440 +sub_80BC440: @ 80BC440 + push {r4,r5,lr} + ldr r4, _080BC45C @ =gSaveBlock1 + ldr r0, _080BC460 @ =0x00001a16 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + bl sub_80BC0F8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC45C: .4byte gSaveBlock1 +_080BC460: .4byte 0x00001a16 + thumb_func_end sub_80BC440 + + thumb_func_start sub_80BC464 +sub_80BC464: @ 80BC464 + push {lr} + movs r0, 0x14 + bl sav12_xor_increment + bl sub_80BC440 + pop {r0} + bx r0 + thumb_func_end sub_80BC464 + + thumb_func_start sub_80BC474 +sub_80BC474: @ 80BC474 + push {r4-r7,lr} + ldr r0, _080BC4CC @ =gMapHeader + ldr r4, [r0, 0x4] + movs r6, 0 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcs _080BC504 + ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08 +_080BC484: + ldr r2, [r4, 0x10] + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + adds r7, r1, 0 + cmp r0, 0x8 + bne _080BC4F8 + ldrb r1, [r3] + ldr r0, [r2, 0x8] + cmp r1, r0 + bne _080BC4F8 + ldrh r0, [r2] + adds r0, 0x7 + ldrh r1, [r2, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0 + ldr r5, _080BC4D4 @ =gUnknown_083D1358 + lsls r0, 16 + asrs r2, r0, 16 +_080BC4B2: + lsls r0, r1, 2 + adds r3, r0, r5 + ldrh r0, [r3, 0x2] + cmp r0, r2 + beq _080BC4D8 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x6 + bls _080BC4B2 +_080BC4C6: + bl DrawWholeMapView + b _080BC504 + .align 2, 0 +_080BC4CC: .4byte gMapHeader +_080BC4D0: .4byte gSaveBlock1 + 0x1A08 +_080BC4D4: .4byte gUnknown_083D1358 +_080BC4D8: + ldr r0, [r4, 0x10] + adds r1, r7, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r3] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BC4C6 +_080BC4F8: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcc _080BC484 +_080BC504: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC474 + + thumb_func_start sub_80BC50C +sub_80BC50C: @ 80BC50C + push {r4,r5,lr} + bl sub_80BC474 + movs r0, 0x14 + bl sav12_xor_increment + ldr r4, _080BC530 @ =gSaveBlock1 + ldr r0, _080BC534 @ =0x00001a16 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC530: .4byte gSaveBlock1 +_080BC534: .4byte 0x00001a16 + thumb_func_end sub_80BC50C + + thumb_func_start sub_80BC538 +sub_80BC538: @ 80BC538 + push {r4,r5,lr} + movs r5, 0 + movs r4, 0x1 +_080BC53E: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC554 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC554: + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC53E + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC538 + + thumb_func_start sub_80BC56C +sub_80BC56C: @ 80BC56C + push {lr} + ldr r0, _080BC58C @ =gUnknown_020387DC + ldrb r0, [r0] + bl sub_80BC14C + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080BC594 + ldr r0, _080BC590 @ =gScriptResult + strh r1, [r0] + b _080BC5B2 + .align 2, 0 +_080BC58C: .4byte gUnknown_020387DC +_080BC590: .4byte gScriptResult +_080BC594: + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080BC5AC + ldr r1, _080BC5A8 @ =gScriptResult + movs r0, 0x2 + b _080BC5B0 + .align 2, 0 +_080BC5A8: .4byte gScriptResult +_080BC5AC: + ldr r1, _080BC5B8 @ =gScriptResult + movs r0, 0 +_080BC5B0: + strh r0, [r1] +_080BC5B2: + pop {r0} + bx r0 + .align 2, 0 +_080BC5B8: .4byte gScriptResult + thumb_func_end sub_80BC56C + + thumb_func_start sub_80BC5BC +sub_80BC5BC: @ 80BC5BC + push {lr} + ldr r0, _080BC5F8 @ =gUnknown_020387DC + ldrb r0, [r0] + bl sub_80BC14C + ldr r2, _080BC5FC @ =gSaveBlock1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC600 @ =0x00001a09 + adds r1, r0 + ldrb r3, [r1] + lsrs r2, r3, 6 + movs r0, 0x1 + eors r2, r0 + lsls r2, 6 + movs r0, 0x3F + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + movs r0, 0x86 + lsls r0, 1 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080BC5F8: .4byte gUnknown_020387DC +_080BC5FC: .4byte gSaveBlock1 +_080BC600: .4byte 0x00001a09 + thumb_func_end sub_80BC5BC + + thumb_func_start sub_80BC604 +sub_80BC604: @ 80BC604 + push {lr} + ldr r0, _080BC614 @ =sub_80FE264 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC614: .4byte sub_80FE264 + thumb_func_end sub_80BC604 + + thumb_func_start sub_80BC618 +sub_80BC618: @ 80BC618 + push {lr} + ldr r0, _080BC628 @ =sub_80BC62C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC628: .4byte sub_80BC62C + thumb_func_end sub_80BC618 + + thumb_func_start sub_80BC62C +sub_80BC62C: @ 80BC62C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl ScriptContext2_Enable + bl sub_80F944C + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC688 @ =gTasks + 0x8 + adds r4, r0, r1 + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + adds r1, r0, 0 + cmp r1, 0 + beq _080BC694 + cmp r1, 0x7 + ble _080BC65E + movs r0, 0x7 +_080BC65E: + strh r0, [r4, 0x6] + movs r0, 0 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BC7D8 + ldr r1, _080BC68C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC690 @ =sub_80BC824 + str r1, [r0] + b _080BC6A0 + .align 2, 0 +_080BC688: .4byte gTasks + 0x8 +_080BC68C: .4byte gTasks +_080BC690: .4byte sub_80BC824 +_080BC694: + ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry + ldr r2, _080BC6AC @ =sub_80BCC54 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080BC6A0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC6A8: .4byte gSecretBaseText_NoRegistry +_080BC6AC: .4byte sub_80BCC54 + thumb_func_end sub_80BC62C + + thumb_func_start sub_80BC6B0 +sub_80BC6B0: @ 80BC6B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BC6D8 @ =gTasks + 0x8 + adds r1, r0 + mov r8, r1 + movs r4, 0 + movs r6, 0 + movs r5, 0x1 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r6, r0 + bne _080BC6DC + movs r4, 0x1 + b _080BC706 + .align 2, 0 +_080BC6D8: .4byte gTasks + 0x8 +_080BC6DC: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC6F0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080BC6F0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bhi _080BC706 + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r4, r0 + bne _080BC6DC + adds r4, r5, 0 +_080BC706: + adds r5, r4, 0 + cmp r5, 0x13 + bhi _080BC75A + ldr r7, _080BC7A0 @ =gStringVar1 +_080BC70E: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC750 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80BC190 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + adds r0, r7, 0 + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x8 + beq _080BC75A +_080BC750: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BC70E +_080BC75A: + cmp r6, 0x7 + bhi _080BC7A8 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + ldr r0, _080BC7A4 @ =gUnknownText_Exit + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r6, 0x7 + beq _080BC7B2 + lsls r1, r6, 25 + movs r0, 0x80 + lsls r0, 19 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x12 + movs r2, 0x1C + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + b _080BC7B2 + .align 2, 0 +_080BC7A0: .4byte gStringVar1 +_080BC7A4: .4byte gUnknownText_Exit +_080BC7A8: + movs r0, 0x1 + movs r1, 0xBC + movs r2, 0x98 + bl sub_80F953C +_080BC7B2: + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BC7C4 + movs r0, 0 + bl SetBgTilemapBuffer + b _080BC7CE +_080BC7C4: + movs r0, 0 + movs r1, 0xBC + movs r2, 0x8 + bl sub_80F953C +_080BC7CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC6B0 + + thumb_func_start sub_80BC7D8 +sub_80BC7D8: @ 80BC7D8 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BC820 @ =gTasks + 0x8 + adds r4, r0 + movs r0, 0x11 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldrb r3, [r4, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + adds r0, r5, 0 + bl sub_80BC6B0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC820: .4byte gTasks + 0x8 + thumb_func_end sub_80BC7D8 + + thumb_func_start sub_80BC824 +sub_80BC824: @ 80BC824 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC858 @ =gTasks + 0x8 + adds r4, r0, r1 + ldr r2, _080BC85C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BC874 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BC860 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080BC8B6 + .align 2, 0 +_080BC858: .4byte gTasks + 0x8 +_080BC85C: .4byte gMain +_080BC860: + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + subs r0, 0x1 + b _080BC8A4 +_080BC874: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BC8C2 + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080BC8AE + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + adds r0, 0x1 +_080BC8A4: + strh r0, [r4, 0x4] + adds r0, r5, 0 + bl sub_80BC6B0 + b _080BC940 +_080BC8AE: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080BC8B6: + bl MoveMenuCursor + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2] + b _080BC940 +_080BC8C2: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BC91C + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080BC8FC + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BCC54 + b _080BC940 +_080BC8FC: + bl sub_8072DEC + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x2] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC948 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl sub_80BC980 + b _080BC940 +_080BC91C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_80BCC54 +_080BC940: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BC824 + + thumb_func_start sub_80BC948 +sub_80BC948: @ 80BC948 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r4, 0x1 +_080BC952: + adds r0, r4, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC96E + cmp r6, r5 + bne _080BC968 + adds r0, r4, 0 + b _080BC97A +_080BC968: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC96E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _080BC952 + movs r0, 0 +_080BC97A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BC948 + + thumb_func_start sub_80BC980 +sub_80BC980: @ 80BC980 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80F996C + movs r0, 0x1 + bl sub_80F996C + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r3, _080BC9D8 @ =gUnknown_083D13D4 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x2 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0xA + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x2 + bl InitMenu + ldr r1, _080BC9DC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC9E0 @ =sub_80BC9E4 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC9D8: .4byte gUnknown_083D13D4 +_080BC9DC: .4byte gTasks +_080BC9E0: .4byte sub_80BC9E4 + thumb_func_end sub_80BC980 + + thumb_func_start sub_80BC9E4 +sub_80BC9E4: @ 80BC9E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r2, _080BCA14 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BCA18 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080BCA7C + .align 2, 0 +_080BCA14: .4byte gMain +_080BCA18: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BCA3A + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080BCA7C +_080BCA3A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BCA68 + movs r0, 0x5 + bl PlaySE + ldr r4, _080BCA64 @ =gUnknown_083D13D4 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 21 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + b _080BCA7C + .align 2, 0 +_080BCA64: .4byte gUnknown_083D13D4 +_080BCA68: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80BCBF8 +_080BCA7C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BC9E4 + + thumb_func_start sub_80BCA84 +sub_80BCA84: @ 80BCA84 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BCAD8 @ =gTasks + 0x8 + adds r4, r0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r0, _080BCADC @ =gStringVar1 + ldrb r1, [r4, 0x8] + bl sub_80BC190 + ldr r4, _080BCAE0 @ =gStringVar4 + ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080BCAE8 @ =sub_80BCAEC + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCAD8: .4byte gTasks + 0x8 +_080BCADC: .4byte gStringVar1 +_080BCAE0: .4byte gStringVar4 +_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry +_080BCAE8: .4byte sub_80BCAEC + thumb_func_end sub_80BCA84 + + thumb_func_start sub_80BCAEC +sub_80BCAEC: @ 80BCAEC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _080BCB0C @ =gUnknown_083D13E4 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCB0C: .4byte gUnknown_083D13E4 + thumb_func_end sub_80BCAEC + + thumb_func_start sub_80BCB10 +sub_80BCB10: @ 80BCB10 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, _080BCB80 @ =gTasks + 0x8 + adds r4, r6, r7 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r2, _080BCB84 @ =gSaveBlock1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r2 + ldr r1, _080BCB88 @ =0x00001a09 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldrh r1, [r4, 0x4] + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080BCB5C + subs r0, r1, 0x1 + strh r0, [r4, 0x4] +_080BCB5C: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bgt _080BCB6A + ldrh r0, [r4, 0x6] + subs r0, 0x1 + strh r0, [r4, 0x6] +_080BCB6A: + adds r0, r5, 0 + bl sub_80BC7D8 + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _080BCB8C @ =sub_80BC824 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCB80: .4byte gTasks + 0x8 +_080BCB84: .4byte gSaveBlock1 +_080BCB88: .4byte 0x00001a09 +_080BCB8C: .4byte sub_80BC824 + thumb_func_end sub_80BCB10 + + thumb_func_start sub_80BCB90 +sub_80BCB90: @ 80BCB90 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted + ldr r2, _080BCBBC @ =sub_80BCB10 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBB8: .4byte gOtherText_RegisteredDataDeleted +_080BCBBC: .4byte sub_80BCB10 + thumb_func_end sub_80BCB90 + + thumb_func_start sub_80BCBC0 +sub_80BCBC0: @ 80BCBC0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80BC7D8 + ldr r1, _080BCBF0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BCBF4 @ =sub_80BC824 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBF0: .4byte gTasks +_080BCBF4: .4byte sub_80BC824 + thumb_func_end sub_80BCBC0 + + thumb_func_start sub_80BCBF8 +sub_80BCBF8: @ 80BCBF8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, _080BCC4C @ =gTasks + 0x8 + adds r0, r4, r5 + ldrb r3, [r0, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r0, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + subs r5, 0x8 + adds r4, r5 + ldr r0, _080BCC50 @ =sub_80BC824 + str r0, [r4] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCC4C: .4byte gTasks + 0x8 +_080BCC50: .4byte sub_80BC824 + thumb_func_end sub_80BCBF8 + + thumb_func_start sub_80BCC54 +sub_80BCC54: @ 80BCC54 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BCC84 @ =0x00004054 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl BuyMenuFreeMemory + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r4, 0 + bne _080BCC8C + ldr r0, _080BCC88 @ =gUnknown_0815F399 + bl ScriptContext1_SetupScript + b _080BCC92 + .align 2, 0 +_080BCC84: .4byte 0x00004054 +_080BCC88: .4byte gUnknown_0815F399 +_080BCC8C: + ldr r0, _080BCCA0 @ =gUnknown_0815F49A + bl ScriptContext1_SetupScript +_080BCC92: + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCCA0: .4byte gUnknown_0815F49A + thumb_func_end sub_80BCC54 + + thumb_func_start sub_80BCCA4 +sub_80BCCA4: @ 80BCCA4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BCCDC @ =gSaveBlock1 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r1 + ldr r1, _080BCCE0 @ =0x00001a11 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x5 + bl __umodsi3 + ldr r1, _080BCCE4 @ =0x00001a09 + adds r4, r1 + ldrb r2, [r4] + lsls r2, 27 + lsrs r2, 31 + lsls r1, r2, 2 + adds r1, r2 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BCCDC: .4byte gSaveBlock1 +_080BCCE0: .4byte 0x00001a11 +_080BCCE4: .4byte 0x00001a09 + thumb_func_end sub_80BCCA4 + + thumb_func_start sub_80BCCE8 +sub_80BCCE8: @ 80BCCE8 + push {lr} + ldr r0, _080BCD08 @ =0x00004054 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + bne _080BCD10 + ldr r0, _080BCD0C @ =UnknownString_81A1BB2 + b _080BCD72 + .align 2, 0 +_080BCD08: .4byte 0x00004054 +_080BCD0C: .4byte UnknownString_81A1BB2 +_080BCD10: + cmp r0, 0x1 + bne _080BCD1C + ldr r0, _080BCD18 @ =UnknownString_81A1F67 + b _080BCD72 + .align 2, 0 +_080BCD18: .4byte UnknownString_81A1F67 +_080BCD1C: + cmp r0, 0x2 + bne _080BCD28 + ldr r0, _080BCD24 @ =UnknownString_81A2254 + b _080BCD72 + .align 2, 0 +_080BCD24: .4byte UnknownString_81A2254 +_080BCD28: + cmp r0, 0x3 + bne _080BCD34 + ldr r0, _080BCD30 @ =UnknownString_81A25C3 + b _080BCD72 + .align 2, 0 +_080BCD30: .4byte UnknownString_81A25C3 +_080BCD34: + cmp r0, 0x4 + bne _080BCD40 + ldr r0, _080BCD3C @ =UnknownString_81A2925 + b _080BCD72 + .align 2, 0 +_080BCD3C: .4byte UnknownString_81A2925 +_080BCD40: + cmp r0, 0x5 + bne _080BCD4C + ldr r0, _080BCD48 @ =UnknownString_81A1D74 + b _080BCD72 + .align 2, 0 +_080BCD48: .4byte UnknownString_81A1D74 +_080BCD4C: + cmp r0, 0x6 + bne _080BCD58 + ldr r0, _080BCD54 @ =UnknownString_81A20C9 + b _080BCD72 + .align 2, 0 +_080BCD54: .4byte UnknownString_81A20C9 +_080BCD58: + cmp r0, 0x7 + bne _080BCD64 + ldr r0, _080BCD60 @ =UnknownString_81A2439 + b _080BCD72 + .align 2, 0 +_080BCD60: .4byte UnknownString_81A2439 +_080BCD64: + cmp r1, 0x8 + beq _080BCD70 + ldr r0, _080BCD6C @ =UnknownString_81A2B2A + b _080BCD72 + .align 2, 0 +_080BCD6C: .4byte UnknownString_81A2B2A +_080BCD70: + ldr r0, _080BCD78 @ =UnknownString_81A2754 +_080BCD72: + pop {r1} + bx r1 + .align 2, 0 +_080BCD78: .4byte UnknownString_81A2754 + thumb_func_end sub_80BCCE8 + + thumb_func_start unref_sub_80BCD7C +unref_sub_80BCD7C: @ 80BCD7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + ldr r7, _080BCDFC @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 5 + ldr r0, _080BCE00 @ =0x00001a3c + adds r0, r7 + mov r10, r0 + ldr r1, _080BCE04 @ =0x00001a54 + adds r1, r7 + mov r9, r1 + ldr r2, _080BCE08 @ =0x00001a84 + adds r2, r7 + mov r8, r2 + ldr r0, _080BCE0C @ =0x00000115 + mov r12, r0 +_080BCDAA: + lsls r4, r5, 2 + adds r0, r4, r6 + add r0, r10 + adds r3, r5, 0x1 + str r3, [r0] + lsls r0, r5, 3 + adds r0, r6 + add r0, r9 + strh r3, [r0] + lsls r1, r5, 1 + adds r1, r6 + mov r2, r8 + adds r0, r1, r2 + mov r2, r12 + strh r2, [r0] + ldr r2, _080BCE10 @ =0x00001a90 + adds r0, r7, r2 + adds r1, r0 + strh r3, [r1] + adds r2, r5, r6 + ldr r1, _080BCE14 @ =0x00001a9c + adds r0, r7, r1 + adds r0, r2, r0 + adds r1, r5, 0x5 + strb r1, [r0] + ldr r1, _080BCE18 @ =0x00001aa2 + adds r0, r7, r1 + adds r2, r0 + adds r4, r5 + strb r4, [r2] + lsls r3, 16 + lsrs r5, r3, 16 + cmp r5, 0 + beq _080BCDAA + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCDFC: .4byte gSaveBlock1 +_080BCE00: .4byte 0x00001a3c +_080BCE04: .4byte 0x00001a54 +_080BCE08: .4byte 0x00001a84 +_080BCE0C: .4byte 0x00000115 +_080BCE10: .4byte 0x00001a90 +_080BCE14: .4byte 0x00001a9c +_080BCE18: .4byte 0x00001aa2 + thumb_func_end unref_sub_80BCD7C + + thumb_func_start sub_80BCE1C +sub_80BCE1C: @ 80BCE1C + push {r4,lr} + ldr r0, _080BCE44 @ =0x00004054 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x1 + bl sub_810FB10 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08 + adds r0, r1 + bl CreateSecretBaseEnemyParty + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCE44: .4byte 0x00004054 +_080BCE48: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BCE1C + + thumb_func_start sub_80BCE4C +sub_80BCE4C: @ 80BCE4C + push {lr} + ldr r0, _080BCE80 @ =0x00004054 + bl VarGet + ldr r2, _080BCE84 @ =gSaveBlock1 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BCE88 @ =gScriptResult + ldrb r0, [r0] + ldr r2, _080BCE8C @ =0x00001a09 + adds r1, r2 + movs r2, 0x1 + ands r2, r0 + lsls r2, 5 + ldrb r3, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BCE80: .4byte 0x00004054 +_080BCE84: .4byte gSaveBlock1 +_080BCE88: .4byte gScriptResult +_080BCE8C: .4byte 0x00001a09 + thumb_func_end sub_80BCE4C + + thumb_func_start sub_80BCE90 +sub_80BCE90: @ 80BCE90 + push {r4-r7,lr} + ldr r0, _080BCF04 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080BCF08 @ =0x000008c2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BCED4 + movs r3, 0 + ldr r7, _080BCF0C @ =gSaveBlock1 + ldr r4, _080BCF10 @ =0x00001a09 + movs r6, 0x21 + negs r6, r6 +_080BCEB2: + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 5 + adds r1, r7 + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x13 + bls _080BCEB2 + ldr r0, _080BCF08 @ =0x000008c2 + bl FlagSet +_080BCED4: + ldr r4, _080BCF14 @ =gUnknown_0202E8CC + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r2, _080BCF18 @ =gScriptResult + ldr r1, _080BCF0C @ =gSaveBlock1 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BCF10 @ =0x00001a09 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 31 + strh r0, [r2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCF04: .4byte 0x00004054 +_080BCF08: .4byte 0x000008c2 +_080BCF0C: .4byte gSaveBlock1 +_080BCF10: .4byte 0x00001a09 +_080BCF14: .4byte gUnknown_0202E8CC +_080BCF18: .4byte gScriptResult + thumb_func_end sub_80BCE90 + + thumb_func_start sub_80BCF1C +sub_80BCF1C: @ 80BCF1C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BCF40 @ =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BCF54 + cmp r0, 0x1 + bgt _080BCF44 + cmp r0, 0 + beq _080BCF4A + b _080BD02C + .align 2, 0 +_080BCF40: .4byte gTasks + 0x8 +_080BCF44: + cmp r0, 0x2 + beq _080BD01C + b _080BD02C +_080BCF4A: + adds r0, r4, 0x4 + adds r1, r4, 0x6 + bl PlayerGetDestCoords + b _080BD028 +_080BCF54: + mov r5, sp + adds r5, 0x2 + mov r0, sp + adds r1, r5, 0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080BCF7C + movs r0, 0 + ldrsh r1, [r5, r0] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080BD02C +_080BCF7C: + strh r2, [r4, 0x4] + ldrh r0, [r5] + strh r0, [r4, 0x6] + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFA8 + bl sub_80C6C90 + b _080BD02C +_080BCFA8: + adds r0, r4, 0 + bl sub_8057314 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFD8 + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + mov r1, sp + movs r3, 0 + ldrsh r1, [r1, r3] + movs r3, 0 + ldrsh r2, [r5, r3] + bl sub_80C68A4 + b _080BD02C +_080BCFD8: + adds r0, r4, 0 + bl sub_8057328 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFF6 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl sub_80C6A54 + b _080BD02C +_080BCFF6: + adds r0, r4, 0 + bl sub_805733C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD02C + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + bl sub_80C6C30 + b _080BD02C +_080BD01C: + ldrb r0, [r4, 0x8] + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080BD02C +_080BD028: + movs r0, 0x1 + strh r0, [r4, 0x2] +_080BD02C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BCF1C + + thumb_func_start sub_80BD034 +sub_80BD034: @ 80BD034 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BD064 @ =gSaveBlock1 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r2 + ldr r2, _080BD068 @ =0x00001a08 + adds r0, r4, r2 + movs r2, 0xA0 + bl memcpy + ldr r0, _080BD06C @ =0x00001a09 + adds r4, r0 + ldrb r1, [r4] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BD064: .4byte gSaveBlock1 +_080BD068: .4byte 0x00001a08 +_080BD06C: .4byte 0x00001a09 + thumb_func_end sub_80BD034 + + thumb_func_start sub_80BD070 +sub_80BD070: @ 80BD070 + push {r4,lr} + movs r2, 0 + adds r4, r0, 0 + adds r4, 0x9 + adds r3, r1, 0 + adds r3, 0x9 +_080BD07C: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD08C + movs r0, 0 + b _080BD098 +_080BD08C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD07C + movs r0, 0x1 +_080BD098: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD070 + + thumb_func_start sub_80BD0A0 +sub_80BD0A0: @ 80BD0A0 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r3, 0 + ldrb r0, [r6, 0x2] + cmp r0, 0xFF + bne _080BD0B4 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + beq _080BD0E2 +_080BD0B4: + adds r2, r6, 0x2 + adds r0, r2, r3 + adds r4, r5, 0x2 + adds r1, r4, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD0C8 + movs r0, 0 + b _080BD0E4 +_080BD0C8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x6 + bhi _080BD0E2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 +_080BD0E2: + movs r0, 0x1 +_080BD0E4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD0A0 + + thumb_func_start sub_80BD0EC +sub_80BD0EC: @ 80BD0EC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrb r2, [r4, 0x1] + movs r0, 0x10 + adds r1, r0, 0 + ands r1, r2 + ldrb r2, [r5, 0x1] + ands r0, r2 + cmp r1, r0 + bne _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD070 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD0A0 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + movs r0, 0x1 + b _080BD124 +_080BD122: + movs r0, 0 +_080BD124: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD0EC + + thumb_func_start sub_80BD12C +sub_80BD12C: @ 80BD12C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r4, _080BD150 @ =gSaveBlock1 + ldr r3, _080BD154 @ =0x00001a08 +_080BD138: + lsls r0, r1, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080BD158 + adds r0, r1, 0 + b _080BD168 + .align 2, 0 +_080BD150: .4byte gSaveBlock1 +_080BD154: .4byte 0x00001a08 +_080BD158: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD138 + movs r0, 0x1 + negs r0, r0 +_080BD168: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD12C + + thumb_func_start sub_80BD170 +sub_80BD170: @ 80BD170 + push {r4,lr} + movs r2, 0x1 + ldr r4, _080BD194 @ =gSaveBlock1 + ldr r3, _080BD198 @ =0x00001a08 +_080BD178: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080BD19C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BD1AA + .align 2, 0 +_080BD194: .4byte gSaveBlock1 +_080BD198: .4byte 0x00001a08 +_080BD19C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD178 + movs r0, 0 +_080BD1AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD170 + + thumb_func_start sub_80BD1B0 +sub_80BD1B0: @ 80BD1B0 + push {r4,lr} + movs r3, 0x1 + ldr r4, _080BD1DC @ =gSaveBlock1 +_080BD1B6: + lsls r2, r3, 16 + asrs r1, r2, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BD1E0 @ =0x00001a09 + adds r0, r1 + ldrb r1, [r0] + lsrs r0, r1, 6 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r1, 28 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r3, 24 + lsrs r0, 24 + b _080BD1F4 + .align 2, 0 +_080BD1DC: .4byte gSaveBlock1 +_080BD1E0: .4byte 0x00001a09 +_080BD1E4: + movs r1, 0x80 + lsls r1, 9 + adds r0, r2, r1 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD1B6 + movs r0, 0 +_080BD1F4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD1B0 + + thumb_func_start sub_80BD1FC +sub_80BD1FC: @ 80BD1FC + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD278 + ldrb r0, [r5] + bl sub_80BD12C + lsls r0, 16 + lsrs r4, r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + beq _080BD278 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _080BD254 + ldr r0, _080BD24C @ =gSaveBlock1 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 5 + adds r1, r0 + ldr r0, _080BD250 @ =0x00001a09 + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + beq _080BD278 + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD246 + ldrb r1, [r5, 0x1] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _080BD278 +_080BD246: + lsls r4, 24 + lsrs r4, 24 + b _080BD26C + .align 2, 0 +_080BD24C: .4byte gSaveBlock1 +_080BD250: .4byte 0x00001a09 +_080BD254: + bl sub_80BD170 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080BD26C + bl sub_80BD1B0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080BD278 +_080BD26C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD034 + adds r0, r4, 0 + b _080BD27A +_080BD278: + movs r0, 0 +_080BD27A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD1FC + + thumb_func_start sub_80BD280 +sub_80BD280: @ 80BD280 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xA0 + ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08 + mov r8, r0 + movs r2, 0x1 +_080BD290: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + mov r9, r1 + cmp r5, 0x13 + bhi _080BD30C + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + mov r1, r8 + adds r6, r0, r1 + movs r7, 0xC0 +_080BD2A8: + ldrb r0, [r6, 0x1] + adds r3, r7, 0 + ands r3, r0 + cmp r3, 0 + bne _080BD2C6 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x40 + beq _080BD2DE +_080BD2C6: + cmp r3, 0x80 + bne _080BD302 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x80 + beq _080BD302 +_080BD2DE: + mov r0, sp + adds r1, r6, 0 + movs r2, 0xA0 + bl memcpy + adds r4, r5 + lsls r4, 5 + add r4, r8 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xA0 + bl memcpy + adds r0, r4, 0 + mov r1, sp + movs r2, 0xA0 + bl memcpy +_080BD302: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD2A8 +_080BD30C: + mov r1, r9 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x12 + bls _080BD290 + add sp, 0xA0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD324: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD280 + + thumb_func_start sub_80BD328 +sub_80BD328: @ 80BD328 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r4, 0x1 +_080BD332: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + adds r1, r0, r6 + ldrb r0, [r1, 0x1] + lsrs r0, 6 + cmp r0, r5 + bne _080BD348 + adds r0, r1, 0 + bl sub_80BD1FC +_080BD348: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BD332 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BD328 + + thumb_func_start sub_80BD358 +sub_80BD358: @ 80BD358 + push {r4-r6,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD372 + ldrb r0, [r5, 0x1] + lsls r0, 27 + ldr r1, _080BD378 @ =gSaveBlock2 + lsrs r0, 31 + adds r4, r1, 0 + ldrb r1, [r4, 0x8] + cmp r0, r1 + beq _080BD37C +_080BD372: + movs r0, 0 + b _080BD3D4 + .align 2, 0 +_080BD378: .4byte gSaveBlock2 +_080BD37C: + movs r2, 0 + adds r3, r5, 0 + adds r3, 0x9 + adds r6, r4, 0 + adds r6, 0xA +_080BD386: + adds r0, r3, r2 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD386 + movs r2, 0 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + bne _080BD3AA + ldrb r0, [r4] + cmp r0, 0xFF + beq _080BD3D2 +_080BD3AA: + adds r3, r5, 0x2 + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bhi _080BD3D2 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA +_080BD3D2: + movs r0, 0x1 +_080BD3D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD358 + + thumb_func_start sub_80BD3DC +sub_80BD3DC: @ 80BD3DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + mov r9, r1 + mov r8, r2 + movs r5, 0 + movs r6, 0 +_080BD3F0: + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + bne _080BD41A + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r10 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD41A + adds r0, r4, 0 + bl sub_80BB4AC + movs r0, 0x1 + orrs r5, r0 +_080BD41A: + movs r7, 0x2 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + bne _080BD448 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD448 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD448: + movs r7, 0x4 + movs r0, 0x4 + ands r0, r5 + cmp r0, 0 + bne _080BD476 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD476 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD476: + cmp r5, 0x7 + beq _080BD484 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x13 + bls _080BD3F0 +_080BD484: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD3DC + + thumb_func_start sub_80BD494 +sub_80BD494: @ 80BD494 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + movs r5, 0 +_080BD4A4: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD4FE + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80BD0EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD4FE + cmp r7, 0 + bne _080BD4D0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4D0: + ldrh r0, [r6, 0xE] + ldrh r3, [r4, 0xE] + cmp r0, r3 + bls _080BD4E0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4E0: + ldrb r0, [r6, 0x1] + lsls r0, 28 + lsrs r0, 28 + ldrb r1, [r4, 0x1] + movs r3, 0x10 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x1] + adds r0, r6, 0 + bl sub_80BB4AC + movs r0, 0x1 + b _080BD50A +_080BD4FE: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD4A4 +_080BD508: + movs r0, 0 +_080BD50A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80BD494 + + thumb_func_start sub_80BD514 +sub_80BD514: @ 80BD514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + adds r7, r1, 0 + mov r8, r2 + adds r6, r3, 0 + movs r5, 0x1 +_080BD526: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r9 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD578 + ldrb r1, [r4, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _080BD54E + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] +_080BD54E: + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD578: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD526 + movs r5, 0 +_080BD584: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r4, r0, r7 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD5B8 + ldrb r0, [r4, 0x1] + movs r2, 0x21 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD5B8 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5B8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD584 + movs r5, 0 + movs r0, 0x21 + negs r0, r0 + adds r7, r0, 0 +_080BD5CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r4, r0, 5 + mov r2, r8 + adds r1, r4, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5EA + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] + adds r0, r1, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5EA: + adds r1, r4, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5F8 + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] +_080BD5F8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD5CA + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD514 + + thumb_func_start sub_80BD610 +sub_80BD610: @ 80BD610 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl sub_80BD3DC + ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80BD514 + adds r0, r4, 0 + bl sub_80BD1FC + adds r0, r5, 0 + bl sub_80BD1FC + adds r0, r6, 0 + bl sub_80BD1FC + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r4, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0 + bl sub_80BD328 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BD670: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD610 + + thumb_func_start sub_80BD674 +sub_80BD674: @ 80BD674 + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0x60 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BD68C + b _080BD790 +_080BD68C: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080BD69E + cmp r0, 0x3 + beq _080BD6BA + b _080BD6C8 +_080BD69E: + lsls r4, r5, 1 + adds r0, r6, r4 + movs r1, 0 + adds r2, r5, 0 + bl memset + adds r4, r5 + adds r4, r6, r4 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + b _080BD6C8 +_080BD6BA: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + movs r1, 0 + adds r2, r5, 0 + bl memset +_080BD6C8: + cmp r7, 0x1 + beq _080BD6F0 + cmp r7, 0x1 + bgt _080BD6D6 + cmp r7, 0 + beq _080BD6E0 + b _080BD71C +_080BD6D6: + cmp r7, 0x2 + beq _080BD700 + cmp r7, 0x3 + beq _080BD710 + b _080BD71C +_080BD6E0: + adds r0, r6, r5 + lsls r2, r5, 1 + adds r1, r6, r2 + adds r2, r5 + adds r2, r6, r2 + bl sub_80BD610 + b _080BD71C +_080BD6F0: + lsls r1, r5, 1 + adds r0, r6, r1 + adds r1, r5 + adds r1, r6, r1 + adds r2, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD700: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + adds r2, r6, r5 + adds r1, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD710: + adds r1, r6, r5 + lsls r2, r5, 1 + adds r2, r6, r2 + adds r0, r6, 0 + bl sub_80BD610 +_080BD71C: + movs r3, 0x1 + ldr r6, _080BD798 @ =gSaveBlock1 + movs r5, 0x10 + negs r5, r5 + ldr r4, _080BD79C @ =0x00001a09 +_080BD726: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r6 + adds r2, r0, r4 + ldrb r1, [r2] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + bne _080BD746 + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + ands r0, r5 + strb r0, [r2] +_080BD746: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD726 + bl sub_80BD280 + movs r3, 0x1 + ldr r4, _080BD798 @ =gSaveBlock1 + ldr r6, _080BD79C @ =0x00001a09 + adds r7, r4, 0 + movs r5, 0x3F +_080BD75E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r4 + adds r2, r0, r6 + ldrb r1, [r2] + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD776 + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2] +_080BD776: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD75E + ldr r0, _080BD7A0 @ =0x00001a16 + adds r2, r7, r0 + ldrh r1, [r2] + ldr r0, _080BD7A4 @ =0x0000ffff + cmp r1, r0 + beq _080BD790 + adds r0, r1, 0x1 + strh r0, [r2] +_080BD790: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD798: .4byte gSaveBlock1 +_080BD79C: .4byte 0x00001a09 +_080BD7A0: .4byte 0x00001a16 +_080BD7A4: .4byte 0x0000ffff + thumb_func_end sub_80BD674 + + thumb_func_start sub_80BD7A8 +sub_80BD7A8: @ 80BD7A8 + push {r4-r7,lr} + movs r3, 0 + ldr r6, _080BD7F0 @ =gSaveBlock1 + movs r4, 0 + ldr r0, _080BD7F4 @ =0x0000273a + adds r5, r6, r0 +_080BD7B4: + lsls r2, r3, 3 + adds r2, r3 + lsls r2, 2 + adds r1, r2, r6 + ldr r7, _080BD7F8 @ =0x00002738 + adds r0, r1, r7 + strb r4, [r0] + ldr r0, _080BD7FC @ =0x00002739 + adds r1, r0 + strb r4, [r1] + movs r1, 0 + adds r3, 0x1 +_080BD7CC: + adds r0, r1, r2 + adds r0, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x21 + bls _080BD7CC + lsls r0, r3, 24 + lsrs r3, r0, 24 + cmp r3, 0x18 + bls _080BD7B4 + bl sub_80BEBF4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD7F0: .4byte gSaveBlock1 +_080BD7F4: .4byte 0x0000273a +_080BD7F8: .4byte 0x00002738 +_080BD7FC: .4byte 0x00002739 + thumb_func_end sub_80BD7A8 + + thumb_func_start special_0x44 +special_0x44: @ 80BD800 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0x5 + ldr r1, _080BD874 @ =gSaveBlock1 + ldr r2, _080BD878 @ =0x000027ec + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080BD834 + adds r2, r1, 0 + ldr r1, _080BD87C @ =0x00002738 +_080BD81A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x17 + bhi _080BD834 + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080BD81A +_080BD834: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + ldr r7, _080BD874 @ =gSaveBlock1 + ldr r0, _080BD87C @ =0x00002738 + adds r0, r7 + mov r9, r0 +_080BD850: + lsls r0, r4, 3 + adds r0, r4 + lsls r6, r0, 2 + adds r5, r6, r7 + ldr r1, _080BD87C @ =0x00002738 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _080BD884 + ldr r2, _080BD880 @ =0x00002739 + adds r0, r5, r2 + ldrb r0, [r0] + b _080BD890 + .align 2, 0 +_080BD874: .4byte gSaveBlock1 +_080BD878: .4byte 0x000027ec +_080BD87C: .4byte 0x00002738 +_080BD880: .4byte 0x00002739 +_080BD884: + mov r0, r9 + adds r1, r6, r0 + ldrh r0, [r1, 0x16] + cmp r0, 0 + bne _080BD898 + ldrb r0, [r1, 0x1] +_080BD890: + cmp r0, 0x1 + bne _080BD898 + adds r0, r4, 0 + b _080BD8AC +_080BD898: + cmp r4, 0 + bne _080BD8A0 + movs r4, 0x17 + b _080BD8A6 +_080BD8A0: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080BD8A6: + cmp r4, r8 + bne _080BD850 + movs r0, 0xFF +_080BD8AC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end special_0x44 + + thumb_func_start sub_80BD8B8 +sub_80BD8B8: @ 80BD8B8 + push {lr} + bl special_0x44 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + bne _080BD8CA + movs r0, 0xFF + b _080BD902 +_080BD8CA: + ldr r2, _080BD8F4 @ =gSaveBlock1 + ldr r3, _080BD8F8 @ =0x00002afc + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080BD900 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r2, _080BD8FC @ =0x00002738 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BD900 + bl sub_80BDA30 + lsls r0, 24 + lsrs r0, 24 + b _080BD902 + .align 2, 0 +_080BD8F4: .4byte gSaveBlock1 +_080BD8F8: .4byte 0x00002afc +_080BD8FC: .4byte 0x00002738 +_080BD900: + adds r0, r1, 0 +_080BD902: + pop {r1} + bx r1 + thumb_func_end sub_80BD8B8 + + thumb_func_start UpdateTVScreensOnMap +UpdateTVScreensOnMap: @ 80BD908 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, _080BD938 @ =0x00000831 + bl FlagSet + bl CheckForBigMovieOrEmergencyNewsOnTV + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BD92C + cmp r0, 0x2 + beq _080BD97E + ldr r0, _080BD93C @ =gSaveBlock1 + ldrh r0, [r0, 0x4] + cmp r0, 0xD + bne _080BD940 +_080BD92C: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl SetTVMetatilesOnMap + b _080BD97E + .align 2, 0 +_080BD938: .4byte 0x00000831 +_080BD93C: .4byte gSaveBlock1 +_080BD940: + ldr r0, _080BD984 @ =0x00000832 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BD97E + bl sub_80BD8B8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080BD96E + bl sub_80BECA0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080BD96E + bl IsTVShowInSearchOfTrainersAiring + lsls r0, 24 + cmp r0, 0 + beq _080BD97E +_080BD96E: + ldr r0, _080BD988 @ =0x00000831 + bl FlagReset + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl SetTVMetatilesOnMap +_080BD97E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BD984: .4byte 0x00000832 +_080BD988: .4byte 0x00000831 + thumb_func_end UpdateTVScreensOnMap + + thumb_func_start SetTVMetatilesOnMap +SetTVMetatilesOnMap: @ 80BD98C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + movs r5, 0 + cmp r5, r10 + bge _080BD9E0 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1, 0 + mov r8, r2 + mov r1, r8 + orrs r1, r0 + mov r8, r1 +_080BD9B2: + movs r4, 0 + adds r7, r5, 0x1 + cmp r4, r9 + bge _080BD9DA + mov r0, r8 + lsls r6, r0, 16 +_080BD9BE: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + cmp r0, 0x86 + bne _080BD9D4 + adds r0, r4, 0 + adds r1, r5, 0 + lsrs r2, r6, 16 + bl MapGridSetMetatileIdAt +_080BD9D4: + adds r4, 0x1 + cmp r4, r9 + blt _080BD9BE +_080BD9DA: + adds r5, r7, 0 + cmp r5, r10 + blt _080BD9B2 +_080BD9E0: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end SetTVMetatilesOnMap + + thumb_func_start TurnOffTVScreen +TurnOffTVScreen: @ 80BD9F0 + push {lr} + ldr r1, _080BDA08 @ =gUnknown_03004870 + ldr r0, [r1] + ldr r1, [r1, 0x4] + movs r2, 0x2 + bl SetTVMetatilesOnMap + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_080BDA08: .4byte gUnknown_03004870 + thumb_func_end TurnOffTVScreen + + thumb_func_start sub_80BDA0C +sub_80BDA0C: @ 80BDA0C + ldr r2, _080BDA24 @ =gSaveBlock1 + ldr r0, _080BDA28 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080BDA2C @ =0x00002738 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080BDA24: .4byte gSaveBlock1 +_080BDA28: .4byte gUnknown_0202E8CC +_080BDA2C: .4byte 0x00002738 + thumb_func_end sub_80BDA0C + + thumb_func_start sub_80BDA30 +sub_80BDA30: @ 80BDA30 + push {r4,lr} + movs r2, 0 + ldr r3, _080BDA5C @ =gSaveBlock1 +_080BDA36: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r3 + ldr r4, _080BDA60 @ =0x00002738 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080BDA64 + cmp r0, 0x29 + beq _080BDA64 + adds r4, 0x1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BDA64 + adds r0, r2, 0 + b _080BDA70 + .align 2, 0 +_080BDA5C: .4byte gSaveBlock1 +_080BDA60: .4byte 0x00002738 +_080BDA64: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080BDA36 + movs r0, 0xFF +_080BDA70: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BDA30 + + thumb_func_start special_0x4a +special_0x4a: @ 80BDA78 + push {lr} + ldr r2, _080BDAA4 @ =gUnknown_0202E8CC + ldrh r1, [r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BDAAC + movs r3, 0xF1 + lsls r3, 2 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, 0 + beq _080BDAAC + bl sub_80BDA30 + lsls r0, 24 + lsrs r0, 24 + b _080BDAAE + .align 2, 0 +_080BDAA4: .4byte gUnknown_0202E8CC +_080BDAA8: .4byte gSaveBlock1 + 0x2738 +_080BDAAC: + ldrb r0, [r2] +_080BDAAE: + pop {r1} + bx r1 + thumb_func_end special_0x4a + + thumb_func_start sub_80BDAB4 +sub_80BDAB4: @ 80BDAB4 + push {r4,lr} + ldr r2, _080BDAF8 @ =gSaveBlock1 + ldr r1, _080BDAFC @ =0x00002b10 + adds r0, r2, r1 + movs r3, 0 + movs r1, 0 + strh r1, [r0] + ldr r4, _080BDB00 @ =0x00002b12 + adds r0, r2, r4 + strh r1, [r0] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080BDB04 @ =0x00002b16 + adds r1, r2, r0 + ldr r0, _080BDB08 @ =0x0000ffff + strh r0, [r1] + adds r4, 0x6 + adds r1, r2, r4 + movs r0, 0 + strb r0, [r1] + ldr r0, _080BDB0C @ =0x00002b1b + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r1, _080BDB10 @ =0x00002b18 + adds r0, r2, r1 + strb r3, [r0] + subs r4, 0x1 + adds r2, r4 + strb r3, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BDAF8: .4byte gSaveBlock1 +_080BDAFC: .4byte 0x00002b10 +_080BDB00: .4byte 0x00002b12 +_080BDB04: .4byte 0x00002b16 +_080BDB08: .4byte 0x0000ffff +_080BDB0C: .4byte 0x00002b1b +_080BDB10: .4byte 0x00002b18 + thumb_func_end sub_80BDAB4 + + thumb_func_start GabbyAndTyBeforeInterview +GabbyAndTyBeforeInterview: @ 80BDB14 + push {r4,r5,lr} + ldr r2, _080BDB68 @ =gSaveBlock1 + ldr r3, _080BDB6C @ =gUnknown_030042E0 + ldrh r1, [r3, 0x6] + ldr r4, _080BDB70 @ =0x00002b10 + adds r0, r2, r4 + strh r1, [r0] + ldrh r1, [r3, 0x26] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldrh r1, [r3, 0x22] + adds r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r0, _080BDB74 @ =0x00002b19 + adds r4, r2, r0 + ldrb r1, [r4] + adds r0, r1, 0 + adds r5, r2, 0 + cmp r0, 0xFF + beq _080BDB44 + adds r0, r1, 0x1 + strb r0, [r4] +_080BDB44: + ldrb r0, [r3, 0x5] + lsls r0, 31 + ldr r1, _080BDB78 @ =0x00002b1a + adds r4, r5, r1 + lsrs r0, 31 + ldrb r1, [r4] + movs r2, 0x2 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4] + ldrb r0, [r3] + cmp r0, 0 + beq _080BDB7C + movs r0, 0x2 + orrs r2, r0 + b _080BDB82 + .align 2, 0 +_080BDB68: .4byte gSaveBlock1 +_080BDB6C: .4byte gUnknown_030042E0 +_080BDB70: .4byte 0x00002b10 +_080BDB74: .4byte 0x00002b19 +_080BDB78: .4byte 0x00002b1a +_080BDB7C: + movs r0, 0x3 + negs r0, r0 + ands r2, r0 +_080BDB82: + strb r2, [r4] + ldrb r0, [r3, 0x3] + cmp r0, 0 + beq _080BDB9C + ldr r4, _080BDB98 @ =0x00002b1a + adds r0, r5, r4 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _080BDBAA + .align 2, 0 +_080BDB98: .4byte 0x00002b1a +_080BDB9C: + ldr r0, _080BDBDC @ =0x00002b1a + adds r2, r5, r0 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080BDBAA: + ldrb r1, [r3, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BDBE0 + movs r1, 0 + adds r0, r3, 0 + adds r0, 0x36 + ldrb r0, [r0] + cmp r0, 0 + bne _080BDBE0 +_080BDBC0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bhi _080BDBEC + adds r0, r3, 0 + adds r0, 0x36 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _080BDBC0 + ldr r4, _080BDBDC @ =0x00002b1a + adds r0, r5, r4 + b _080BDBE4 + .align 2, 0 +_080BDBDC: .4byte 0x00002b1a +_080BDBE0: + ldr r1, _080BDC08 @ =0x00002b1a + adds r0, r5, r1 +_080BDBE4: + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_080BDBEC: + bl TakeTVShowInSearchOfTrainersOffTheAir + ldr r0, _080BDC0C @ =gSaveBlock1 + ldr r4, _080BDC10 @ =0x00002b14 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0 + bne _080BDC02 + movs r0, 0x1 + bl FlagSet +_080BDC02: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BDC08: .4byte 0x00002b1a +_080BDC0C: .4byte gSaveBlock1 +_080BDC10: .4byte 0x00002b14 + thumb_func_end GabbyAndTyBeforeInterview + + thumb_func_start sub_80BDC14 +sub_80BDC14: @ 80BDC14 + push {r4-r6,lr} + ldr r4, _080BDC70 @ =gSaveBlock1 + ldr r0, _080BDC74 @ =0x00002b1a + adds r6, r4, r0 + ldrb r3, [r6] + lsls r1, r3, 31 + adds r0, 0x1 + adds r5, r4, r0 + lsrs r1, 31 + ldrb r2, [r5] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + movs r1, 0x2 + ands r1, r3 + movs r2, 0x3 + negs r2, r2 + ands r0, r2 + orrs r0, r1 + movs r1, 0x4 + ands r1, r3 + subs r2, 0x2 + ands r0, r2 + orrs r0, r1 + movs r1, 0x8 + ands r1, r3 + subs r2, 0x4 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + movs r0, 0x10 + orrs r3, r0 + strb r3, [r6] + ldr r0, _080BDC78 @ =gMapHeader + ldrb r0, [r0, 0x14] + ldr r1, _080BDC7C @ =0x00002b18 + adds r4, r1 + strb r0, [r4] + movs r0, 0x6 + bl sav12_xor_increment + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BDC70: .4byte gSaveBlock1 +_080BDC74: .4byte 0x00002b1a +_080BDC78: .4byte gMapHeader +_080BDC7C: .4byte 0x00002b18 + thumb_func_end sub_80BDC14 + + thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir +TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80 + ldr r0, _080BDC94 @ =gSaveBlock1 + ldr r1, _080BDC98 @ =0x00002b1a + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x11 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080BDC94: .4byte gSaveBlock1 +_080BDC98: .4byte 0x00002b1a + thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir + + thumb_func_start GabbyAndTyGetBattleNum +GabbyAndTyGetBattleNum: @ 80BDC9C + push {lr} + ldr r0, _080BDCBC @ =gSaveBlock1 + ldr r2, _080BDCC0 @ =0x00002b19 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0x5 + bls _080BDCB8 + ldrb r0, [r1] + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x6 + lsls r0, 24 + lsrs r0, 24 +_080BDCB8: + pop {r1} + bx r1 + .align 2, 0 +_080BDCBC: .4byte gSaveBlock1 +_080BDCC0: .4byte 0x00002b19 + thumb_func_end GabbyAndTyGetBattleNum + + thumb_func_start IsTVShowInSearchOfTrainersAiring +IsTVShowInSearchOfTrainersAiring: @ 80BDCC4 + ldr r0, _080BDCD4 @ =gSaveBlock1 + ldr r1, _080BDCD8 @ =0x00002b1a + adds r0, r1 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 31 + bx lr + .align 2, 0 +_080BDCD4: .4byte gSaveBlock1 +_080BDCD8: .4byte 0x00002b1a + thumb_func_end IsTVShowInSearchOfTrainersAiring + + thumb_func_start GabbyAndTyGetLastQuote +GabbyAndTyGetLastQuote: @ 80BDCDC + push {r4,r5,lr} + ldr r0, _080BDD00 @ =gSaveBlock1 + ldr r1, _080BDD04 @ =0x00002b16 + adds r4, r0, r1 + ldrh r0, [r4] + ldr r5, _080BDD08 @ =0x0000ffff + cmp r0, r5 + beq _080BDD10 + ldr r0, _080BDD0C @ =gStringVar1 + ldrh r1, [r4] + bl sub_80EB3FC + ldrh r1, [r4] + adds r0, r5, 0 + orrs r0, r1 + strh r0, [r4] + movs r0, 0x1 + b _080BDD12 + .align 2, 0 +_080BDD00: .4byte gSaveBlock1 +_080BDD04: .4byte 0x00002b16 +_080BDD08: .4byte 0x0000ffff +_080BDD0C: .4byte gStringVar1 +_080BDD10: + movs r0, 0 +_080BDD12: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GabbyAndTyGetLastQuote + + thumb_func_start sub_80BDD18 +sub_80BDD18: @ 80BDD18 + push {lr} + ldr r0, _080BDD30 @ =gSaveBlock1 + ldr r1, _080BDD34 @ =0x00002b1b + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BDD38 + movs r0, 0x1 + b _080BDD5E + .align 2, 0 +_080BDD30: .4byte gSaveBlock1 +_080BDD34: .4byte 0x00002b1b +_080BDD38: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080BDD44 + movs r0, 0x2 + b _080BDD5E +_080BDD44: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080BDD50 + movs r0, 0x3 + b _080BDD5E +_080BDD50: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080BDD5C + movs r0, 0 + b _080BDD5E +_080BDD5C: + movs r0, 0x4 +_080BDD5E: + pop {r1} + bx r1 + thumb_func_end sub_80BDD18 + + thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds +GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64 + push {lr} + bl GabbyAndTyGetBattleNum + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x7 + bhi _080BDE3C + lsls r0, 2 + ldr r1, _080BDD80 @ =_080BDD84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BDD80: .4byte _080BDD84 + .align 2, 0 +_080BDD84: + .4byte _080BDDA4 + .4byte _080BDDB8 + .4byte _080BDDCC + .4byte _080BDDE0 + .4byte _080BDDF4 + .4byte _080BDE08 + .4byte _080BDE1C + .4byte _080BDE30 +_080BDDA4: + ldr r1, _080BDDB0 @ =gUnknown_0202E8CC + movs r0, 0xE + strh r0, [r1] + ldr r1, _080BDDB4 @ =gUnknown_0202E8CE + movs r0, 0xD + b _080BDE3A + .align 2, 0 +_080BDDB0: .4byte gUnknown_0202E8CC +_080BDDB4: .4byte gUnknown_0202E8CE +_080BDDB8: + ldr r1, _080BDDC4 @ =gUnknown_0202E8CC + movs r0, 0x5 + strh r0, [r1] + ldr r1, _080BDDC8 @ =gUnknown_0202E8CE + movs r0, 0x6 + b _080BDE3A + .align 2, 0 +_080BDDC4: .4byte gUnknown_0202E8CC +_080BDDC8: .4byte gUnknown_0202E8CE +_080BDDCC: + ldr r1, _080BDDD8 @ =gUnknown_0202E8CC + movs r0, 0x12 + strh r0, [r1] + ldr r1, _080BDDDC @ =gUnknown_0202E8CE + movs r0, 0x11 + b _080BDE3A + .align 2, 0 +_080BDDD8: .4byte gUnknown_0202E8CC +_080BDDDC: .4byte gUnknown_0202E8CE +_080BDDE0: + ldr r1, _080BDDEC @ =gUnknown_0202E8CC + movs r0, 0x15 + strh r0, [r1] + ldr r1, _080BDDF0 @ =gUnknown_0202E8CE + movs r0, 0x16 + b _080BDE3A + .align 2, 0 +_080BDDEC: .4byte gUnknown_0202E8CC +_080BDDF0: .4byte gUnknown_0202E8CE +_080BDDF4: + ldr r1, _080BDE00 @ =gUnknown_0202E8CC + movs r0, 0x8 + strh r0, [r1] + ldr r1, _080BDE04 @ =gUnknown_0202E8CE + movs r0, 0x9 + b _080BDE3A + .align 2, 0 +_080BDE00: .4byte gUnknown_0202E8CC +_080BDE04: .4byte gUnknown_0202E8CE +_080BDE08: + ldr r1, _080BDE14 @ =gUnknown_0202E8CC + movs r0, 0x13 + strh r0, [r1] + ldr r1, _080BDE18 @ =gUnknown_0202E8CE + movs r0, 0x14 + b _080BDE3A + .align 2, 0 +_080BDE14: .4byte gUnknown_0202E8CC +_080BDE18: .4byte gUnknown_0202E8CE +_080BDE1C: + ldr r1, _080BDE28 @ =gUnknown_0202E8CC + movs r0, 0x17 + strh r0, [r1] + ldr r1, _080BDE2C @ =gUnknown_0202E8CE + movs r0, 0x18 + b _080BDE3A + .align 2, 0 +_080BDE28: .4byte gUnknown_0202E8CC +_080BDE2C: .4byte gUnknown_0202E8CE +_080BDE30: + ldr r1, _080BDE40 @ =gUnknown_0202E8CC + movs r0, 0xA + strh r0, [r1] + ldr r1, _080BDE44 @ =gUnknown_0202E8CE + movs r0, 0xB +_080BDE3A: + strh r0, [r1] +_080BDE3C: + pop {r0} + bx r0 + .align 2, 0 +_080BDE40: .4byte gUnknown_0202E8CC +_080BDE44: .4byte gUnknown_0202E8CE + thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds + + thumb_func_start sub_80BDE48 +sub_80BDE48: @ 80BDE48 + push {lr} + ldr r0, _080BDE60 @ =gUnknown_0202E8CE + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x6 + bhi _080BDEA6 + lsls r0, 2 + ldr r1, _080BDE64 @ =_080BDE68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BDE60: .4byte gUnknown_0202E8CE +_080BDE64: .4byte _080BDE68 + .align 2, 0 +_080BDE68: + .4byte _080BDE84 + .4byte _080BDE8A + .4byte _080BDE90 + .4byte _080BDE96 + .4byte _080BDEA6 + .4byte _080BDE9C + .4byte _080BDEA2 +_080BDE84: + bl sub_80BE5FC + b _080BDEA6 +_080BDE8A: + bl sub_80BE65C + b _080BDEA6 +_080BDE90: + bl sub_80BE6A0 + b _080BDEA6 +_080BDE96: + bl nullsub_21 + b _080BDEA6 +_080BDE9C: + bl sub_80BE188 + b _080BDEA6 +_080BDEA2: + bl sub_80BE320 +_080BDEA6: + pop {r0} + bx r0 + thumb_func_end sub_80BDE48 + + thumb_func_start sub_80BDEAC +sub_80BDEAC: @ 80BDEAC + push {lr} + adds r1, r0, 0 + movs r2, 0x2 + ldrb r0, [r1] + cmp r0, 0xFC + bne _080BDEC0 + ldrb r0, [r1, 0x1] + cmp r0, 0x15 + bne _080BDEC0 + movs r2, 0x1 +_080BDEC0: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80BDEAC + + thumb_func_start sub_80BDEC8 +sub_80BDEC8: @ 80BDEC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + bl sub_80BEB20 + bl sub_80BE778 + ldr r5, _080BDEE8 @ =gUnknown_030042E0 + ldrh r0, [r5, 0x28] + cmp r0, 0 + bne _080BDEEC + bl sub_80BE074 + b _080BE012 + .align 2, 0 +_080BDEE8: .4byte gUnknown_030042E0 +_080BDEEC: + bl sub_80BE028 + ldr r0, _080BDF98 @ =0x0000ffff + bl sub_80BF77C + lsls r0, 24 + cmp r0, 0 + beq _080BDEFE + b _080BE012 +_080BDEFE: + ldrh r1, [r5, 0x28] + movs r0, 0xB + muls r0, r1 + ldr r1, _080BDF9C @ =gSpeciesNames + adds r0, r1 + adds r1, r5, 0 + adds r1, 0x2A + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _080BDF16 + b _080BE012 +_080BDF16: + ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738 + bl sub_80BF74C + ldr r1, _080BDFA4 @ =gUnknown_03005D38 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE012 + movs r0, 0x15 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE012 + movs r2, 0 + adds r7, r5, 0 + adds r1, r7, 0 + adds r1, 0x36 +_080BDF42: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _080BDF42 + cmp r4, 0 + bne _080BDF64 + ldrb r1, [r7, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BE012 +_080BDF64: + movs r4, 0 + ldr r0, _080BDFA4 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738 + adds r5, r0, r1 + movs r0, 0x15 + strb r0, [r5] + strb r4, [r5, 0x1] + ldrb r1, [r7, 0x5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BDFAC + movs r4, 0x1 + movs r0, 0x1 + adds r3, r5, 0 + adds r3, 0x13 + ldr r1, _080BDFA8 @ =gSaveBlock2 + mov r8, r1 + adds r6, r5, 0x4 + b _080BDFDE + .align 2, 0 +_080BDF98: .4byte 0x0000ffff +_080BDF9C: .4byte gSpeciesNames +_080BDFA0: .4byte gSaveBlock1 + 0x2738 +_080BDFA4: .4byte gUnknown_03005D38 +_080BDFA8: .4byte gSaveBlock2 +_080BDFAC: + movs r2, 0 + ldr r0, _080BE01C @ =gUnknown_02024C04 + mov r12, r0 + adds r3, r5, 0 + adds r3, 0x13 + ldr r1, _080BE020 @ =gSaveBlock2 + mov r8, r1 + adds r6, r5, 0x4 + adds r1, r7, 0 + adds r1, 0x36 +_080BDFC0: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xA + bls _080BDFC0 + cmp r4, 0xFF + bls _080BDFDA + movs r4, 0xFF +_080BDFDA: + mov r1, r12 + ldrh r0, [r1] +_080BDFDE: + strb r4, [r5, 0x12] + strb r0, [r5, 0xF] + adds r0, r3, 0 + mov r1, r8 + bl StringCopy + ldr r4, _080BE024 @ =gUnknown_0300430A + adds r0, r6, 0 + adds r1, r4, 0 + bl StringCopy + subs r4, 0x2A + ldrh r0, [r4, 0x28] + strh r0, [r5, 0x10] + adds r0, r5, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r5, 0x2] + adds r0, r6, 0 + bl sub_80BDEAC + strb r0, [r5, 0x3] + adds r0, r6, 0 + bl StripExtCtrlCodes +_080BE012: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE01C: .4byte gUnknown_02024C04 +_080BE020: .4byte gSaveBlock2 +_080BE024: .4byte gUnknown_0300430A + thumb_func_end sub_80BDEC8 + + thumb_func_start sub_80BE028 +sub_80BE028: @ 80BE028 + push {r4,lr} + ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98 + ldrb r0, [r4] + cmp r0, 0x19 + beq _080BE048 + ldr r1, _080BE068 @ =0xfffffca0 + adds r0, r4, r1 + movs r1, 0x18 + bl sub_80BF55C + movs r0, 0x5 + bl sub_8053108 + strh r0, [r4, 0x6] + movs r0, 0x19 + strb r0, [r4] +_080BE048: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + ldr r1, _080BE06C @ =gUnknown_030042E0 + ldrh r0, [r1, 0x28] + strh r0, [r4, 0x4] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x8] + ldr r0, _080BE070 @ =gMapHeader + ldrb r0, [r0, 0x14] + strb r0, [r4, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE064: .4byte gSaveBlock1 + 0x2A98 +_080BE068: .4byte 0xfffffca0 +_080BE06C: .4byte gUnknown_030042E0 +_080BE070: .4byte gMapHeader + thumb_func_end sub_80BE028 + + thumb_func_start sub_80BE074 +sub_80BE074: @ 80BE074 + push {r4-r7,lr} + ldr r0, _080BE118 @ =0x0000ffff + bl sub_80BF77C + lsls r0, 24 + cmp r0, 0 + bne _080BE112 + movs r1, 0 + movs r5, 0 + ldr r2, _080BE11C @ =gUnknown_03004316 +_080BE088: + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bls _080BE088 + cmp r5, 0xFF + bls _080BE0A2 + movs r5, 0xFF +_080BE0A2: + cmp r5, 0x2 + bls _080BE112 + ldr r7, _080BE120 @ =gUnknown_02024D26 + ldrb r0, [r7] + cmp r0, 0x1 + bne _080BE112 + ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738 + adds r0, r6, 0 + bl sub_80BF74C + ldr r4, _080BE128 @ =gUnknown_03005D38 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE112 + movs r0, 0x17 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE112 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r6 + movs r1, 0 + movs r0, 0x17 + strb r0, [r4] + strb r1, [r4, 0x1] + ldr r1, _080BE12C @ =gUnknown_030042E0 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x20] + strh r0, [r4, 0xE] + strb r5, [r4, 0x10] + ldrb r0, [r7] + strb r0, [r4, 0x11] + ldr r0, _080BE130 @ =gMapHeader + ldrb r0, [r0, 0x14] + strb r0, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BE134 @ =gSaveBlock2 + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0x2] +_080BE112: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE118: .4byte 0x0000ffff +_080BE11C: .4byte gUnknown_03004316 +_080BE120: .4byte gUnknown_02024D26 +_080BE124: .4byte gSaveBlock1 + 0x2738 +_080BE128: .4byte gUnknown_03005D38 +_080BE12C: .4byte gUnknown_030042E0 +_080BE130: .4byte gMapHeader +_080BE134: .4byte gSaveBlock2 + thumb_func_end sub_80BE074 + + thumb_func_start sub_80BE138 +sub_80BE138: @ 80BE138 + push {r4,lr} + adds r4, r0, 0 + bl sub_80BFB94 + strb r0, [r4, 0x1E] + lsrs r2, r0, 8 + strb r2, [r4, 0x1F] + adds r1, r4, 0 + adds r1, 0x20 + strb r0, [r1] + adds r1, 0x1 + strb r2, [r1] + adds r1, 0x1 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x23 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE138 + + thumb_func_start sub_80BE160 +sub_80BE160: @ 80BE160 + push {r4,lr} + adds r4, r0, 0 + bl sub_80BFB94 + adds r1, r4, 0 + adds r1, 0x20 + strb r0, [r1] + lsrs r1, r0, 8 + adds r2, r4, 0 + adds r2, 0x21 + strb r1, [r2] + adds r2, 0x1 + strb r0, [r2] + adds r0, r4, 0 + adds r0, 0x23 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE160 + + thumb_func_start sub_80BE188 +sub_80BE188: @ 80BE188 + push {r4-r6,lr} + ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98 + ldrb r1, [r6] + cmp r1, 0x6 + bne _080BE224 + ldr r0, _080BE230 @ =gUnknown_03005D38 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r2, _080BE234 @ =0xfffffca0 + adds r0, r6, r2 + adds r4, r0 + strb r1, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + ldrh r0, [r6, 0x2] + strh r0, [r4, 0x2] + adds r0, r4, 0 + adds r0, 0x16 + ldr r1, _080BE238 @ =gSaveBlock2 + bl StringCopy + adds r5, r4, 0 + adds r5, 0x8 + adds r1, r6, 0 + adds r1, 0x8 + adds r0, r5, 0 + bl StringCopy + ldrb r0, [r6, 0x13] + lsls r0, 29 + lsrs r0, 29 + ldrb r2, [r4, 0x13] + movs r3, 0x8 + negs r3, r3 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x13] + ldrb r2, [r6, 0x13] + movs r0, 0x18 + ands r0, r2 + movs r2, 0x19 + negs r2, r2 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0x13] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x14] + ldrb r0, [r6, 0x13] + movs r1, 0x60 + ands r1, r0 + movs r0, 0x61 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x13] + ldrb r1, [r6, 0x13] + lsls r1, 29 + lsrs r1, 29 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x13] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0x1F] + adds r0, r5, 0 + bl StripExtCtrlCodes +_080BE224: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE22C: .4byte gSaveBlock1 + 0x2A98 +_080BE230: .4byte gUnknown_03005D38 +_080BE234: .4byte 0xfffffca0 +_080BE238: .4byte gSaveBlock2 + thumb_func_end sub_80BE188 + + thumb_func_start sub_80BE23C +sub_80BE23C: @ 80BE23C + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98 + bl sub_80BF484 + ldr r0, _080BE27C @ =0xfffffca0 + adds r5, r4, r0 + adds r0, r5, 0 + bl sub_80BF720 + ldr r1, _080BE280 @ =gUnknown_03005D38 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE270 + adds r0, r5, 0 + movs r1, 0x18 + bl sub_80BF55C + strh r6, [r4, 0x14] + movs r0, 0x6 + strb r0, [r4] +_080BE270: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE278: .4byte gSaveBlock1 + 0x2A98 +_080BE27C: .4byte 0xfffffca0 +_080BE280: .4byte gUnknown_03005D38 + thumb_func_end sub_80BE23C + + thumb_func_start sub_80BE284 +sub_80BE284: @ 80BE284 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98 + ldr r1, _080BE308 @ =0xfffffca0 + adds r0, r7, r1 + bl sub_80BF720 + ldr r1, _080BE30C @ =gUnknown_03005D38 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE2FE + movs r3, 0x3 + adds r1, r4, 0 + ands r1, r3 + lsls r1, 5 + ldrb r2, [r7, 0x13] + movs r0, 0x61 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + ldr r1, _080BE310 @ =gUnknown_0203869C + ldrb r2, [r1] + movs r1, 0x7 + ands r1, r2 + movs r2, 0x8 + negs r2, r2 + ands r0, r2 + orrs r0, r1 + ldr r1, _080BE314 @ =gUnknown_0203869E + ldrb r1, [r1] + ands r3, r1 + lsls r3, 3 + movs r1, 0x19 + negs r1, r1 + ands r0, r1 + orrs r0, r3 + strb r0, [r7, 0x13] + ldr r6, _080BE318 @ =gUnknown_02038694 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080BE31C @ =gPlayerParty + adds r0, r4 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r7, 0x2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + adds r2, r7, 0 + adds r2, 0x8 + movs r1, 0x2 + bl GetMonData +_080BE2FE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE304: .4byte gSaveBlock1 + 0x2A98 +_080BE308: .4byte 0xfffffca0 +_080BE30C: .4byte gUnknown_03005D38 +_080BE310: .4byte gUnknown_0203869C +_080BE314: .4byte gUnknown_0203869E +_080BE318: .4byte gUnknown_02038694 +_080BE31C: .4byte gPlayerParty + thumb_func_end sub_80BE284 + + thumb_func_start sub_80BE320 +sub_80BE320: @ 80BE320 + push {r4-r6,lr} + ldr r0, _080BE384 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738 + adds r6, r0, r1 + movs r0, 0x7 + strb r0, [r6] + movs r0, 0x1 + strb r0, [r6, 0x1] + adds r0, r6, 0x2 + ldr r4, _080BE38C @ =gSaveBlock2 + adds r1, r4, 0 + bl StringCopy + adds r0, r6, 0 + adds r0, 0xC + ldr r2, _080BE390 @ =0x00000484 + adds r1, r4, r2 + bl StringCopy + movs r1, 0x90 + lsls r1, 3 + adds r0, r4, r1 + ldrh r0, [r0] + strh r0, [r6, 0xA] + ldr r2, _080BE394 @ =0x00000482 + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r6, 0x14] + movs r0, 0xAF + lsls r0, 3 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_8135D3C + strh r0, [r6, 0x16] + ldr r1, _080BE398 @ =0x00000555 + adds r4, r1 + ldrb r0, [r4] + strb r0, [r6, 0x1C] + ldrb r0, [r5] + cmp r0, 0 + bne _080BE39C + movs r0, 0x32 + b _080BE39E + .align 2, 0 +_080BE384: .4byte gUnknown_03005D38 +_080BE388: .4byte gSaveBlock1 + 0x2738 +_080BE38C: .4byte gSaveBlock2 +_080BE390: .4byte 0x00000484 +_080BE394: .4byte 0x00000482 +_080BE398: .4byte 0x00000555 +_080BE39C: + movs r0, 0x64 +_080BE39E: + strb r0, [r6, 0x1A] + ldr r0, _080BE3B8 @ =gUnknown_0202E8CC + ldrh r0, [r0] + strb r0, [r6, 0x1B] + adds r0, r6, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r6, 0x1D] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE3B8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80BE320 + + thumb_func_start sub_80BE3BC +sub_80BE3BC: @ 80BE3BC + push {r4-r7,lr} + ldr r0, _080BE460 @ =0x00005555 + bl sub_80BF77C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080BE458 + ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738 + adds r0, r6, 0 + bl sub_80BF74C + ldr r5, _080BE468 @ =gUnknown_03005D38 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE458 + movs r0, 0x16 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BE458 + bl sub_80BF20C + ldr r2, _080BE46C @ =gUnknown_02038724 + ldrh r0, [r2, 0x2] + cmp r0, 0x13 + bls _080BE458 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r5, r0, r6 + movs r0, 0x16 + strb r0, [r5] + strb r4, [r5, 0x1] + ldr r0, _080BE470 @ =gMapHeader + ldrb r0, [r0, 0x14] + strb r0, [r5, 0x12] + movs r4, 0 + adds r7, r5, 0x6 + mov r12, r2 + adds r6, r5, 0 + adds r6, 0xC +_080BE420: + lsls r2, r4, 1 + adds r3, r7, r2 + lsls r1, r4, 2 + add r1, r12 + ldrh r0, [r1] + strh r0, [r3] + adds r2, r6, r2 + ldrh r0, [r1, 0x2] + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080BE420 + movs r0, 0x1 + bl GetPriceReduction + strb r0, [r5, 0x2] + adds r0, r5, 0 + adds r0, 0x13 + ldr r1, _080BE474 @ =gSaveBlock2 + bl StringCopy + adds r0, r5, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r5, 0x3] +_080BE458: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE460: .4byte 0x00005555 +_080BE464: .4byte gSaveBlock1 + 0x2738 +_080BE468: .4byte gUnknown_03005D38 +_080BE46C: .4byte gUnknown_02038724 +_080BE470: .4byte gMapHeader +_080BE474: .4byte gSaveBlock2 + thumb_func_end sub_80BE3BC + + thumb_func_start sub_80BE478 +sub_80BE478: @ 80BE478 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + bl sub_80BF478 + ldr r0, _080BE554 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BE548 + ldr r0, _080BE558 @ =gUnknown_0202E8CC + mov r8, r0 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r6, _080BE55C @ =gPlayerParty + adds r0, r6 + ldr r4, _080BE560 @ =gStringVar1 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + ldr r1, _080BE564 @ =gSaveBlock2 + mov r9, r1 + mov r0, r9 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BE548 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BE548 + ldr r0, _080BE568 @ =gUnknown_03005D38 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738 + adds r4, r0 + movs r0, 0x5 + strb r0, [r4] + movs r5, 0x1 + strb r5, [r4, 0x1] + mov r1, r8 + ldrh r0, [r1] + muls r0, r7 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + strb r0, [r4, 0x1A] + bl Random + lsls r0, 16 + lsrs r0, 16 + ands r0, r5 + strb r0, [r4, 0x1B] + ldrh r0, [r4, 0x2] + bl sub_80BF674 + strh r0, [r4, 0x1C] + adds r0, r4, 0 + adds r0, 0xF + mov r1, r9 + bl StringCopy + mov r1, r8 + ldrh r0, [r1] + muls r0, r7 + adds r0, r6 + adds r5, r4, 0x4 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0x1F] + adds r0, r5, 0 + bl StripExtCtrlCodes +_080BE548: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BE554: .4byte gScriptResult +_080BE558: .4byte gUnknown_0202E8CC +_080BE55C: .4byte gPlayerParty +_080BE560: .4byte gStringVar1 +_080BE564: .4byte gSaveBlock2 +_080BE568: .4byte gUnknown_03005D38 +_080BE56C: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BE478 + + thumb_func_start StartMassOutbreak +StartMassOutbreak: @ 80BE570 + push {r4,lr} + ldr r0, _080BE5F0 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738 + adds r0, r2 + ldrh r3, [r0, 0xC] + movs r4, 0xF1 + lsls r4, 2 + adds r1, r2, r4 + strh r3, [r1] + ldrb r3, [r0, 0x10] + adds r4, 0x2 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x11] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x14] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrb r3, [r0, 0x2] + adds r4, 0x1 + adds r1, r2, r4 + strb r3, [r1] + ldrh r3, [r0, 0xE] + adds r4, 0x1 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x4] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x6] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0x8] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrh r3, [r0, 0xA] + adds r4, 0x2 + adds r1, r2, r4 + strh r3, [r1] + ldrb r3, [r0, 0x3] + adds r4, 0x2 + adds r1, r2, r4 + strb r3, [r1] + ldrb r1, [r0, 0x13] + ldr r3, _080BE5F8 @ =0x000003d5 + adds r0, r2, r3 + strb r1, [r0] + adds r4, 0x2 + adds r2, r4 + movs r0, 0x2 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE5F0: .4byte gUnknown_0202E8CC +_080BE5F4: .4byte gSaveBlock1 + 0x2738 +_080BE5F8: .4byte 0x000003d5 + thumb_func_end StartMassOutbreak + + thumb_func_start sub_80BE5FC +sub_80BE5FC: @ 80BE5FC + push {r4,lr} + ldr r0, _080BE64C @ =gUnknown_03005D38 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + movs r0, 0x1 + strb r0, [r4] + strb r0, [r4, 0x1] + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, _080BE654 @ =gSaveBlock2 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080BE658 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE64C: .4byte gUnknown_03005D38 +_080BE650: .4byte gSaveBlock1 + 0x2738 +_080BE654: .4byte gSaveBlock2 +_080BE658: .4byte gPlayerParty + thumb_func_end sub_80BE5FC + + thumb_func_start sub_80BE65C +sub_80BE65C: @ 80BE65C + push {r4-r6,lr} + ldr r0, _080BE694 @ =gUnknown_03005D38 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + movs r6, 0 + movs r5, 0x2 + strb r5, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + adds r0, 0x10 + ldr r1, _080BE69C @ =gSaveBlock2 + bl StringCopy + strh r6, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + strb r5, [r4, 0x18] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE694: .4byte gUnknown_03005D38 +_080BE698: .4byte gSaveBlock1 + 0x2738 +_080BE69C: .4byte gSaveBlock2 + thumb_func_end sub_80BE65C + + thumb_func_start sub_80BE6A0 +sub_80BE6A0: @ 80BE6A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _080BE760 @ =gUnknown_03005D38 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + movs r0, 0x3 + strb r0, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, _080BE768 @ =gPlayerParty + adds r0, r6 + movs r1, 0x20 + movs r2, 0 + bl GetMonData + lsrs r0, 4 + movs r1, 0xF + ands r0, r1 + ldrb r2, [r4, 0x4] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + ldr r0, _080BE76C @ =gUnknown_0202E8D2 + ldrb r0, [r0] + lsls r0, 4 + movs r2, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + adds r0, r4, 0x5 + ldr r1, _080BE770 @ =gSaveBlock2 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + adds r5, r4, 0 + adds r5, 0x10 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + strh r0, [r4, 0x2] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0xD] + adds r0, r5, 0 + bl sub_80BDEAC + strb r0, [r4, 0xE] + adds r0, r5, 0 + bl StripExtCtrlCodes + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE760: .4byte gUnknown_03005D38 +_080BE764: .4byte gSaveBlock1 + 0x2738 +_080BE768: .4byte gPlayerParty +_080BE76C: .4byte gUnknown_0202E8D2 +_080BE770: .4byte gSaveBlock2 + thumb_func_end sub_80BE6A0 + + thumb_func_start nullsub_21 +nullsub_21: @ 80BE774 + bx lr + thumb_func_end nullsub_21 + + thumb_func_start sub_80BE778 +sub_80BE778: @ 80BE778 + push {r4-r6,lr} + ldr r0, _080BE83C @ =0x00000804 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BE836 + movs r1, 0 + ldr r3, _080BE840 @ =gSaveBlock1 + ldr r2, _080BE844 @ =0x00002738 +_080BE78C: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x29 + beq _080BE836 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x17 + bls _080BE78C + ldr r0, _080BE848 @ =0x00000147 + bl sub_80BF77C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080BE836 + ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738 + adds r0, r6, 0 + bl sub_80BF720 + ldr r4, _080BE850 @ =gUnknown_03005D38 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BE836 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + ldrsb r1, [r4, r1] + lsls r4, r1, 3 + adds r4, r1 + lsls r4, 2 + adds r4, r6 + movs r1, 0x29 + strb r1, [r4] + movs r3, 0x1 + strb r3, [r4, 0x1] + ldr r2, _080BE854 @ =gUnknown_083D13F8 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0xA] + strb r0, [r4, 0x14] + strb r5, [r4, 0x2] + strb r5, [r4, 0x3] + ldrh r0, [r1] + movs r2, 0 + strh r0, [r4, 0xC] + strh r5, [r4, 0xE] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x4] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x6] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x8] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0xA] + ldrb r0, [r1, 0xB] + strb r0, [r4, 0x10] + strb r2, [r4, 0x11] + strb r2, [r4, 0x12] + movs r0, 0x32 + strb r0, [r4, 0x13] + strb r2, [r4, 0x15] + strh r3, [r4, 0x16] + adds r0, r4, 0 + bl sub_80BE160 + movs r0, 0x2 + strb r0, [r4, 0x18] +_080BE836: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BE83C: .4byte 0x00000804 +_080BE840: .4byte gSaveBlock1 +_080BE844: .4byte 0x00002738 +_080BE848: .4byte 0x00000147 +_080BE84C: .4byte gSaveBlock1 + 0x2738 +_080BE850: .4byte gUnknown_03005D38 +_080BE854: .4byte gUnknown_083D13F8 + thumb_func_end sub_80BE778 + + thumb_func_start EndMassOutbreak +EndMassOutbreak: @ 80BE858 + push {r4,lr} + ldr r0, _080BE8B4 @ =gSaveBlock1 + ldr r2, _080BE8B8 @ =0x00002afc + adds r1, r0, r2 + movs r3, 0 + movs r2, 0 + strh r2, [r1] + ldr r4, _080BE8BC @ =0x00002afe + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strh r2, [r1] + adds r4, 0x2 + adds r1, r0, r4 + strb r3, [r1] + adds r4, 0x1 + adds r1, r0, r4 + strb r3, [r1] + ldr r1, _080BE8C0 @ =0x00002b0e + adds r0, r1 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE8B4: .4byte gSaveBlock1 +_080BE8B8: .4byte 0x00002afc +_080BE8BC: .4byte 0x00002afe +_080BE8C0: .4byte 0x00002b0e + thumb_func_end EndMassOutbreak + + thumb_func_start sub_80BE8C4 +sub_80BE8C4: @ 80BE8C4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_80BE8EC + adds r0, r4, 0 + bl UpdateMassOutbreakTimeLeft + adds r0, r4, 0 + bl sub_80BEE84 + adds r0, r4, 0 + bl sub_80BEA5C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BE8C4 + + thumb_func_start sub_80BE8EC +sub_80BE8EC: @ 80BE8EC + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080BE930 @ =gSaveBlock1 + ldr r2, _080BE934 @ =0x00002afc + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _080BE94C + movs r3, 0 + adds r5, r1, 0 + ldr r7, _080BE938 @ =0x00002738 + adds r6, r5, r7 +_080BE906: + lsls r0, r3, 3 + adds r0, r3 + lsls r2, r0, 2 + adds r1, r2, r5 + ldr r7, _080BE938 @ =0x00002738 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, 0x29 + bne _080BE942 + adds r7, 0x1 + adds r0, r1, r7 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BE942 + adds r1, r2, r6 + ldrh r0, [r1, 0x16] + cmp r0, r4 + bcs _080BE93C + movs r0, 0 + strh r0, [r1, 0x16] + b _080BE94C + .align 2, 0 +_080BE930: .4byte gSaveBlock1 +_080BE934: .4byte 0x00002afc +_080BE938: .4byte 0x00002738 +_080BE93C: + subs r0, r4 + strh r0, [r1, 0x16] + b _080BE94C +_080BE942: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x17 + bls _080BE906 +_080BE94C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BE8EC + + thumb_func_start UpdateMassOutbreakTimeLeft +UpdateMassOutbreakTimeLeft: @ 80BE954 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080BE96C @ =gSaveBlock1 + ldr r3, _080BE970 @ =0x00002b0e + adds r2, r0, r3 + ldrh r0, [r2] + cmp r0, r1 + bhi _080BE974 + bl EndMassOutbreak + b _080BE978 + .align 2, 0 +_080BE96C: .4byte gSaveBlock1 +_080BE970: .4byte 0x00002b0e +_080BE974: + subs r0, r1 + strh r0, [r2] +_080BE978: + pop {r0} + bx r0 + thumb_func_end UpdateMassOutbreakTimeLeft + + thumb_func_start sub_80BE97C +sub_80BE97C: @ 80BE97C + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + beq _080BE9A4 + ldr r4, _080BE9A0 @ =gUnknown_020387E2 + ldrh r0, [r4] + lsrs r0, 8 + cmp r0, 0x4 + bls _080BE992 + bl sub_80BE9D4 +_080BE992: + ldrb r0, [r4] + strh r0, [r4] + cmp r0, 0xFF + beq _080BE9C8 + adds r0, 0x1 + b _080BE9C6 + .align 2, 0 +_080BE9A0: .4byte gUnknown_020387E2 +_080BE9A4: + ldr r4, _080BE9D0 @ =gUnknown_020387E2 + ldrb r0, [r4] + cmp r0, 0x4 + bls _080BE9B0 + bl sub_80BE9D4 +_080BE9B0: + ldrh r0, [r4] + movs r1, 0xFF + lsls r1, 8 + ands r1, r0 + strh r1, [r4] + lsrs r0, r1, 8 + cmp r0, 0xFF + beq _080BE9C8 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 +_080BE9C6: + strh r0, [r4] +_080BE9C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BE9D0: .4byte gUnknown_020387E2 + thumb_func_end sub_80BE97C + + thumb_func_start sub_80BE9D4 +sub_80BE9D4: @ 80BE9D4 + push {r4,r5,lr} + ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738 + adds r0, r5, 0 + bl sub_80BF74C + ldr r4, _080BEA40 @ =gUnknown_03005D38 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEA36 + movs r0, 0x18 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEA36 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r5 + movs r1, 0 + movs r0, 0x18 + strb r0, [r4] + strb r1, [r4, 0x1] + ldr r1, _080BEA44 @ =gUnknown_020387E2 + ldrh r0, [r1] + strb r0, [r4, 0x2] + ldrh r0, [r1] + lsrs r0, 8 + strb r0, [r4, 0x3] + ldr r0, _080BEA48 @ =gUnknown_020387E0 + ldrh r0, [r0] + strh r0, [r4, 0x4] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BEA4C @ =gSaveBlock2 + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0x6] +_080BEA36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BEA3C: .4byte gSaveBlock1 + 0x2738 +_080BEA40: .4byte gUnknown_03005D38 +_080BEA44: .4byte gUnknown_020387E2 +_080BEA48: .4byte gUnknown_020387E0 +_080BEA4C: .4byte gSaveBlock2 + thumb_func_end sub_80BE9D4 + + thumb_func_start sub_80BEA50 +sub_80BEA50: @ 80BEA50 + ldr r1, _080BEA58 @ =gUnknown_020387E0 + strh r0, [r1] + bx lr + .align 2, 0 +_080BEA58: .4byte gUnknown_020387E0 + thumb_func_end sub_80BEA50 + + thumb_func_start sub_80BEA5C +sub_80BEA5C: @ 80BEA5C + push {lr} + ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98 + ldrb r0, [r1] + cmp r0, 0x19 + bne _080BEA84 + ldrh r0, [r1, 0x2] + cmp r0, 0x13 + bhi _080BEA80 + ldr r2, _080BEA7C @ =0xfffffca0 + adds r0, r1, r2 + movs r1, 0x18 + bl sub_80BF55C + b _080BEA84 + .align 2, 0 +_080BEA78: .4byte gSaveBlock1 + 0x2A98 +_080BEA7C: .4byte 0xfffffca0 +_080BEA80: + bl sub_80BEA88 +_080BEA84: + pop {r0} + bx r0 + thumb_func_end sub_80BEA5C + + thumb_func_start sub_80BEA88 +sub_80BEA88: @ 80BEA88 + push {r4-r7,lr} + ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98 + ldr r0, _080BEB10 @ =0x0000ffff + bl sub_80BF77C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080BEB04 + ldr r0, _080BEB14 @ =0xfffffca0 + adds r7, r5, r0 + adds r0, r7, 0 + bl sub_80BF74C + ldr r4, _080BEB18 @ =gUnknown_03005D38 + strb r0, [r4] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEB04 + movs r0, 0x19 + bl sub_80BF1B4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEB04 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + adds r4, r7 + movs r0, 0x19 + strb r0, [r4] + strb r6, [r4, 0x1] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x2] + movs r0, 0x5 + bl sub_8053108 + ldrh r1, [r5, 0x6] + subs r0, r1 + strh r0, [r4, 0x6] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x8] + ldrb r0, [r5, 0xA] + strb r0, [r4, 0xA] + adds r0, r4, 0 + adds r0, 0x13 + ldr r1, _080BEB1C @ =gSaveBlock2 + bl StringCopy + adds r0, r4, 0 + bl sub_80BE138 + movs r0, 0x2 + strb r0, [r4, 0xB] +_080BEB04: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BEB0C: .4byte gSaveBlock1 + 0x2A98 +_080BEB10: .4byte 0x0000ffff +_080BEB14: .4byte 0xfffffca0 +_080BEB18: .4byte gUnknown_03005D38 +_080BEB1C: .4byte gSaveBlock2 + thumb_func_end sub_80BEA88 + + thumb_func_start sub_80BEB20 +sub_80BEB20: @ 80BEB20 + push {r4-r6,lr} + ldr r0, _080BEBAC @ =0x00000804 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080BEBA6 + ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC + adds r0, r6, 0 + bl sub_80BEBC8 + ldr r5, _080BEBB4 @ =gUnknown_03005D38 + strb r0, [r5] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BEBA6 + ldr r0, _080BEBB8 @ =0x0000028f + bl sub_80BF77C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEBA6 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BEE48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEBA6 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + ldr r1, _080BEBBC @ =0xffffd544 + adds r2, r6, r1 + adds r0, r6, r0 + strb r4, [r0] + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + adds r0, r2 + ldr r1, _080BEBC0 @ =0x00002abe + adds r0, r1 + movs r1, 0x4 + strh r1, [r0] + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 2 + adds r0, r2 + ldr r1, _080BEBC4 @ =0x00002abd + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080BEBA6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BEBAC: .4byte 0x00000804 +_080BEBB0: .4byte gSaveBlock1 + 0x2ABC +_080BEBB4: .4byte gUnknown_03005D38 +_080BEBB8: .4byte 0x0000028f +_080BEBBC: .4byte 0xffffd544 +_080BEBC0: .4byte 0x00002abe +_080BEBC4: .4byte 0x00002abd + thumb_func_end sub_80BEB20 + + thumb_func_start sub_80BEBC8 +sub_80BEBC8: @ 80BEBC8 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BEBCE: + lsls r0, r1, 24 + asrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BEBE0 + adds r0, r1, 0 + b _080BEBF0 +_080BEBE0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0xF + ble _080BEBCE + movs r0, 0x1 + negs r0, r0 +_080BEBF0: + pop {r1} + bx r1 + thumb_func_end sub_80BEBC8 + + thumb_func_start sub_80BEBF4 +sub_80BEBF4: @ 80BEBF4 + push {r4,lr} + movs r4, 0 +_080BEBF8: + adds r0, r4, 0 + bl sub_80BEC10 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080BEBF8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BEBF4 + + thumb_func_start sub_80BEC10 +sub_80BEC10: @ 80BEC10 + lsls r0, 24 + ldr r1, _080BEC30 @ =gSaveBlock1 + lsrs r0, 22 + adds r0, r1 + ldr r2, _080BEC34 @ =0x00002abc + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r3, _080BEC38 @ =0x00002abd + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _080BEC3C @ =0x00002abe + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080BEC30: .4byte gSaveBlock1 +_080BEC34: .4byte 0x00002abc +_080BEC38: .4byte 0x00002abd +_080BEC3C: .4byte 0x00002abe + thumb_func_end sub_80BEC10 + + thumb_func_start sub_80BEC40 +sub_80BEC40: @ 80BEC40 + push {r4-r7,lr} + movs r1, 0 + ldr r6, _080BEC80 @ =gSaveBlock1 +_080BEC46: + ldr r3, _080BEC80 @ =gSaveBlock1 + lsls r2, r1, 2 + adds r0, r2, r3 + ldr r4, _080BEC84 @ =0x00002abc + adds r0, r4 + ldrb r0, [r0] + adds r5, r1, 0x1 + cmp r0, 0 + bne _080BEC92 + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bhi _080BEC92 + adds r4, r3, r4 + adds r3, r2, r4 +_080BEC64: + lsls r2, r1, 2 + adds r0, r2, r6 + ldr r7, _080BEC84 @ =0x00002abc + adds r0, r7 + ldrb r0, [r0] + cmp r0, 0 + beq _080BEC88 + adds r0, r2, r4 + ldr r0, [r0] + str r0, [r3] + adds r0, r1, 0 + bl sub_80BEC10 + b _080BEC92 + .align 2, 0 +_080BEC80: .4byte gSaveBlock1 +_080BEC84: .4byte 0x00002abc +_080BEC88: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080BEC64 +_080BEC92: + lsls r0, r5, 24 + lsrs r1, r0, 24 + cmp r1, 0xE + bls _080BEC46 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BEC40 + + thumb_func_start sub_80BECA0 +sub_80BECA0: @ 80BECA0 + push {r4,lr} + movs r2, 0 + ldr r3, _080BECCC @ =gSaveBlock1 +_080BECA6: + lsls r0, r2, 2 + adds r1, r0, r3 + ldr r4, _080BECD0 @ =0x00002abc + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080BECD4 + adds r4, 0x1 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080BECD4 + adds r4, 0x1 + adds r0, r1, r4 + ldrh r0, [r0] + cmp r0, 0x2 + bhi _080BECD4 + adds r0, r2, 0 + b _080BECE0 + .align 2, 0 +_080BECCC: .4byte gSaveBlock1 +_080BECD0: .4byte 0x00002abc +_080BECD4: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080BECA6 + movs r0, 0xFF +_080BECE0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BECA0 + + thumb_func_start sub_80BECE8 +sub_80BECE8: @ 80BECE8 + push {r4,lr} + bl sub_80BECA0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + bne _080BED00 + ldr r1, _080BECFC @ =gScriptResult + movs r0, 0 + b _080BED86 + .align 2, 0 +_080BECFC: .4byte gScriptResult +_080BED00: + ldr r0, _080BED2C @ =gSaveBlock1 + lsls r1, 2 + adds r4, r1, r0 + ldr r0, _080BED30 @ =0x00002abe + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _080BED5C + ldr r2, _080BED34 @ =0x00002abd + adds r1, r4, r2 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _080BED38 @ =gLocalTime + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x13 + bgt _080BED40 + ldr r1, _080BED3C @ =gUnknown_083D1444 + subs r2, 0x1 + b _080BED44 + .align 2, 0 +_080BED2C: .4byte gSaveBlock1 +_080BED30: .4byte 0x00002abe +_080BED34: .4byte 0x00002abd +_080BED38: .4byte gLocalTime +_080BED3C: .4byte gUnknown_083D1444 +_080BED40: + ldr r1, _080BED54 @ =gUnknown_083D1454 + ldr r2, _080BED58 @ =0x00002abc +_080BED44: + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + b _080BED82 + .align 2, 0 +_080BED54: .4byte gUnknown_083D1454 +_080BED58: .4byte 0x00002abc +_080BED5C: + ldrh r1, [r1] + ldr r0, _080BED90 @ =gStringVar1 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r0, _080BED94 @ =0x00002abd + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r1, _080BED98 @ =gUnknown_083D1434 + ldr r2, _080BED9C @ =0x00002abc + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage +_080BED82: + ldr r1, _080BEDA0 @ =gScriptResult + movs r0, 0x1 +_080BED86: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BED90: .4byte gStringVar1 +_080BED94: .4byte 0x00002abd +_080BED98: .4byte gUnknown_083D1434 +_080BED9C: .4byte 0x00002abc +_080BEDA0: .4byte gScriptResult + thumb_func_end sub_80BECE8 + + thumb_func_start GetPriceReduction +GetPriceReduction: @ 80BEDA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080BEDB4 + b _080BEDF6 +_080BEDB0: + movs r0, 0x1 + b _080BEDF8 +_080BEDB4: + movs r2, 0 + ldr r4, _080BEDE0 @ =gSaveBlock1 +_080BEDB8: + lsls r0, r2, 2 + adds r1, r0, r4 + ldr r5, _080BEDE4 @ =0x00002abc + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r3 + bne _080BEDEC + ldr r2, _080BEDE8 @ =0x00002abd + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080BEDF6 + adds r0, r3, 0 + bl IsPriceDiscounted + lsls r0, 24 + cmp r0, 0 + bne _080BEDB0 + b _080BEDF6 + .align 2, 0 +_080BEDE0: .4byte gSaveBlock1 +_080BEDE4: .4byte 0x00002abc +_080BEDE8: .4byte 0x00002abd +_080BEDEC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080BEDB8 +_080BEDF6: + movs r0, 0 +_080BEDF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GetPriceReduction + + thumb_func_start IsPriceDiscounted +IsPriceDiscounted: @ 80BEE00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BEE12 + cmp r0, 0x3 + beq _080BEE30 +_080BEE0E: + movs r0, 0x1 + b _080BEE3C +_080BEE12: + ldr r0, _080BEE28 @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _080BEE3A + ldr r0, _080BEE2C @ =gUnknown_0202E8DE + ldrh r0, [r0] + cmp r0, 0x1A + beq _080BEE0E + b _080BEE3A + .align 2, 0 +_080BEE28: .4byte gSaveBlock1 +_080BEE2C: .4byte gUnknown_0202E8DE +_080BEE30: + ldr r0, _080BEE40 @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + ldr r0, _080BEE44 @ =0x0000160d + cmp r1, r0 + beq _080BEE0E +_080BEE3A: + movs r0, 0 +_080BEE3C: + pop {r1} + bx r1 + .align 2, 0 +_080BEE40: .4byte gSaveBlock1 +_080BEE44: .4byte 0x0000160d + thumb_func_end IsPriceDiscounted + + thumb_func_start sub_80BEE48 +sub_80BEE48: @ 80BEE48 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080BEE56 +_080BEE52: + movs r0, 0x1 + b _080BEE74 +_080BEE56: + movs r1, 0 + ldr r4, _080BEE7C @ =gSaveBlock1 + ldr r3, _080BEE80 @ =0x00002abc +_080BEE5C: + lsls r0, r1, 2 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + beq _080BEE52 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080BEE5C + movs r0, 0 +_080BEE74: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BEE7C: .4byte gSaveBlock1 +_080BEE80: .4byte 0x00002abc + thumb_func_end sub_80BEE48 + + thumb_func_start sub_80BEE84 +sub_80BEE84: @ 80BEE84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 + ldr r0, _080BEEB8 @ =gSaveBlock1 + mov r8, r0 +_080BEE94: + lsls r0, r5, 2 + mov r1, r8 + adds r2, r0, r1 + ldr r3, _080BEEBC @ =0x00002abc + adds r1, r2, r3 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0 + beq _080BEEEC + ldr r1, _080BEEC0 @ =0x00002abe + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r7 + bcs _080BEEC4 + adds r0, r5, 0 + bl sub_80BEC10 + b _080BEEEC + .align 2, 0 +_080BEEB8: .4byte gSaveBlock1 +_080BEEBC: .4byte 0x00002abc +_080BEEC0: .4byte 0x00002abe +_080BEEC4: + ldr r3, _080BEF04 @ =0x00002abd + adds r4, r2, r3 + ldrb r0, [r4] + cmp r0, 0 + bne _080BEEDE + ldr r0, _080BEF08 @ =0x00000804 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BEEDE + strb r0, [r4] +_080BEEDE: + mov r0, r8 + adds r1, r6, r0 + ldr r3, _080BEF0C @ =0x00002abe + adds r1, r3 + ldrh r0, [r1] + subs r0, r7 + strh r0, [r1] +_080BEEEC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080BEE94 + bl sub_80BEC40 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BEF04: .4byte 0x00002abd +_080BEF08: .4byte 0x00000804 +_080BEF0C: .4byte 0x00002abe + thumb_func_end sub_80BEE84 + + thumb_func_start sub_80BEF10 +sub_80BEF10: @ 80BEF10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + beq _080BEF50 + cmp r1, 0x1 + bgt _080BEF2A + cmp r1, 0 + beq _080BEF34 + b _080BEF98 +_080BEF2A: + cmp r2, 0x2 + beq _080BEF6C + cmp r2, 0x3 + beq _080BEF88 + b _080BEF98 +_080BEF34: + ldr r1, _080BEF48 @ =gUnknown_083D1464 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF4C @ =gUnknown_083CE048 + ldr r1, [r1, 0x14] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF48: .4byte gUnknown_083D1464 +_080BEF4C: .4byte gUnknown_083CE048 +_080BEF50: + ldr r1, _080BEF64 @ =gUnknown_083D1464 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF68 @ =gUnknown_083CE048 + ldr r1, [r1, 0x18] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF64: .4byte gUnknown_083D1464 +_080BEF68: .4byte gUnknown_083CE048 +_080BEF6C: + ldr r1, _080BEF80 @ =gUnknown_083D1464 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEF84 @ =gUnknown_083CE048 + ldr r1, [r1, 0x1C] + bl StringCopy + b _080BEF98 + .align 2, 0 +_080BEF80: .4byte gUnknown_083D1464 +_080BEF84: .4byte gUnknown_083CE048 +_080BEF88: + ldr r1, _080BEF9C @ =gUnknown_083D1464 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEFA0 @ =gUnknown_083CE048 + ldr r1, [r1, 0x20] + bl StringCopy +_080BEF98: + pop {r0} + bx r0 + .align 2, 0 +_080BEF9C: .4byte gUnknown_083D1464 +_080BEFA0: .4byte gUnknown_083CE048 + thumb_func_end sub_80BEF10 + + thumb_func_start CopyContestCategoryToStringVar +CopyContestCategoryToStringVar: @ 80BEFA4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, 0x4 + bhi _080BF054 + lsls r0, 2 + ldr r1, _080BEFBC @ =_080BEFC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BEFBC: .4byte _080BEFC0 + .align 2, 0 +_080BEFC0: + .4byte _080BEFD4 + .4byte _080BEFF0 + .4byte _080BF00C + .4byte _080BF028 + .4byte _080BF044 +_080BEFD4: + ldr r1, _080BEFE8 @ =gUnknown_083D1464 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BEFEC @ =gUnknown_083CE048 + ldr r1, [r1] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BEFE8: .4byte gUnknown_083D1464 +_080BEFEC: .4byte gUnknown_083CE048 +_080BEFF0: + ldr r1, _080BF004 @ =gUnknown_083D1464 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF008 @ =gUnknown_083CE048 + ldr r1, [r1, 0x4] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF004: .4byte gUnknown_083D1464 +_080BF008: .4byte gUnknown_083CE048 +_080BF00C: + ldr r1, _080BF020 @ =gUnknown_083D1464 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF024 @ =gUnknown_083CE048 + ldr r1, [r1, 0x8] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF020: .4byte gUnknown_083D1464 +_080BF024: .4byte gUnknown_083CE048 +_080BF028: + ldr r1, _080BF03C @ =gUnknown_083D1464 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF040 @ =gUnknown_083CE048 + ldr r1, [r1, 0xC] + bl StringCopy + b _080BF054 + .align 2, 0 +_080BF03C: .4byte gUnknown_083D1464 +_080BF040: .4byte gUnknown_083CE048 +_080BF044: + ldr r1, _080BF058 @ =gUnknown_083D1464 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080BF05C @ =gUnknown_083CE048 + ldr r1, [r1, 0x10] + bl StringCopy +_080BF054: + pop {r0} + bx r0 + .align 2, 0 +_080BF058: .4byte gUnknown_083D1464 +_080BF05C: .4byte gUnknown_083CE048 + thumb_func_end CopyContestCategoryToStringVar + + thumb_func_start SetContestCategoryStringVarForInterview +SetContestCategoryStringVarForInterview: @ 80BF060 + push {lr} + ldr r0, _080BF080 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrb r1, [r0, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + pop {r0} + bx r0 + .align 2, 0 +_080BF080: .4byte gUnknown_0202E8CC +_080BF084: .4byte gSaveBlock1 + 0x2738 + thumb_func_end SetContestCategoryStringVarForInterview + + thumb_func_start sub_80BF088 +sub_80BF088: @ 80BF088 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + ldr r0, _080BF0B4 @ =gUnknown_083D1464 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + lsls r3, 24 + lsrs r3, 24 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BF0B4: .4byte gUnknown_083D1464 + thumb_func_end sub_80BF088 + + thumb_func_start sub_80BF0B8 +sub_80BF0B8: @ 80BF0B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xA + bl __divsi3 + cmp r0, 0 + beq _080BF144 + adds r0, r4, 0 + movs r1, 0x64 + bl __divsi3 + cmp r0, 0 + bne _080BF0D6 + movs r0, 0x2 + b _080BF14E +_080BF0D6: + movs r1, 0xFA + lsls r1, 2 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF0E8 + movs r0, 0x3 + b _080BF14E +_080BF0E8: + ldr r1, _080BF0F8 @ =0x00002710 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF0FC + movs r0, 0x4 + b _080BF14E + .align 2, 0 +_080BF0F8: .4byte 0x00002710 +_080BF0FC: + ldr r1, _080BF10C @ =0x000186a0 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF110 + movs r0, 0x5 + b _080BF14E + .align 2, 0 +_080BF10C: .4byte 0x000186a0 +_080BF110: + ldr r1, _080BF120 @ =0x000f4240 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF124 + movs r0, 0x6 + b _080BF14E + .align 2, 0 +_080BF120: .4byte 0x000f4240 +_080BF124: + ldr r1, _080BF134 @ =0x00989680 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + bne _080BF138 + movs r0, 0x7 + b _080BF14E + .align 2, 0 +_080BF134: .4byte 0x00989680 +_080BF138: + ldr r1, _080BF148 @ =0x05f5e100 + adds r0, r4, 0 + bl __divsi3 + cmp r0, 0 + beq _080BF14C +_080BF144: + movs r0, 0x1 + b _080BF14E + .align 2, 0 +_080BF148: .4byte 0x05f5e100 +_080BF14C: + movs r0, 0x8 +_080BF14E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF0B8 + + thumb_func_start sub_80BF154 +sub_80BF154: @ 80BF154 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r7, 0 + movs r5, 0 +_080BF166: + lsls r4, r5, 1 + adds r0, r6, 0x6 + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, 0 + beq _080BF186 + bl itemid_get_market_price + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + adds r1, 0xC + adds r1, r4 + ldrh r1, [r1] + muls r0, r1 + adds r7, r0 +_080BF186: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080BF166 + ldrb r0, [r6, 0x2] + cmp r0, 0x1 + bne _080BF1A0 + asrs r1, r7, 1 + mov r0, r8 + bl sub_80BF088 + b _080BF1A8 +_080BF1A0: + mov r0, r8 + adds r1, r7, 0 + bl sub_80BF088 +_080BF1A8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BF154 + + thumb_func_start sub_80BF1B4 +sub_80BF1B4: @ 80BF1B4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738 + bl sub_80BFB94 + adds r5, r0, 0 + movs r4, 0x5 +_080BF1C4: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1] + cmp r0, r6 + bne _080BF1F8 + movs r3, 0xFF + adds r0, r5, 0 + ands r0, r3 + adds r2, r1, 0 + adds r2, 0x22 + ldrb r2, [r2] + cmp r0, r2 + bne _080BF1F8 + lsrs r0, r5, 8 + ands r0, r3 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080BF1F8 + movs r0, 0x1 + b _080BF204 + .align 2, 0 +_080BF1F4: .4byte gSaveBlock1 + 0x2738 +_080BF1F8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x17 + bls _080BF1C4 + movs r0, 0 +_080BF204: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80BF1B4 + + thumb_func_start sub_80BF20C +sub_80BF20C: @ 80BF20C + push {r4-r7,lr} + movs r2, 0 +_080BF210: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + adds r7, r1, 0 + cmp r5, 0x2 + bhi _080BF248 + ldr r6, _080BF258 @ =gUnknown_02038724 + lsls r0, r2, 2 + adds r4, r0, r6 +_080BF222: + lsls r0, r5, 2 + adds r3, r0, r6 + ldrh r0, [r4, 0x2] + ldrh r1, [r3, 0x2] + cmp r0, r1 + bcs _080BF23E + ldrh r1, [r4] + adds r2, r0, 0 + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3, 0x2] + strh r0, [r4, 0x2] + strh r1, [r3] + strh r2, [r3, 0x2] +_080BF23E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080BF222 +_080BF248: + lsls r0, r7, 24 + lsrs r2, r0, 24 + cmp r2, 0x1 + bls _080BF210 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF258: .4byte gUnknown_02038724 + thumb_func_end sub_80BF20C + + thumb_func_start sub_80BF25C +sub_80BF25C: @ 80BF25C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0 + ldr r3, _080BF28C @ =gSaveBlock1 + ldr r0, _080BF290 @ =0x00002738 + adds r4, r3, r0 +_080BF26A: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + ldr r6, _080BF290 @ =0x00002738 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r5 + bne _080BF2AE + ldr r3, _080BF294 @ =0x00002739 + adds r0, r2, r3 + ldrb r2, [r0] + cmp r2, 0x1 + bne _080BF29C + ldr r0, _080BF298 @ =gScriptResult + strh r2, [r0] + b _080BF2BC + .align 2, 0 +_080BF28C: .4byte gSaveBlock1 +_080BF290: .4byte 0x00002738 +_080BF294: .4byte 0x00002739 +_080BF298: .4byte gScriptResult +_080BF29C: + adds r0, r4, 0 + bl sub_80BF55C + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80BF6D8 + b _080BF2BC +_080BF2AE: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF26A + bl sub_80BF6D8 +_080BF2BC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BF25C + + thumb_func_start sub_80BF2C4 +sub_80BF2C4: @ 80BF2C4 + push {lr} + ldr r1, _080BF2E0 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080BF2E4 @ =gUnknown_0202E8CE + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x6 + bhi _080BF330 + lsls r0, 2 + ldr r1, _080BF2E8 @ =_080BF2EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BF2E0: .4byte gScriptResult +_080BF2E4: .4byte gUnknown_0202E8CE +_080BF2E8: .4byte _080BF2EC + .align 2, 0 +_080BF2EC: + .4byte _080BF308 + .4byte _080BF30E + .4byte _080BF314 + .4byte _080BF31A + .4byte _080BF320 + .4byte _080BF326 + .4byte _080BF32C +_080BF308: + bl sub_80BF334 + b _080BF330 +_080BF30E: + bl sub_80BF3A4 + b _080BF330 +_080BF314: + bl sub_80BF3DC + b _080BF330 +_080BF31A: + bl sub_80BF46C + b _080BF330 +_080BF320: + bl sub_80BF478 + b _080BF330 +_080BF326: + bl sub_80BF484 + b _080BF330 +_080BF32C: + bl sub_80BF4BC +_080BF330: + pop {r0} + bx r0 + thumb_func_end sub_80BF2C4 + + thumb_func_start sub_80BF334 +sub_80BF334: @ 80BF334 + push {r4,lr} + movs r0, 0x1 + bl sub_80BF25C + ldr r0, _080BF38C @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080BF384 + ldr r4, _080BF390 @ =gStringVar1 + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080BF394 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r1, r0 + ldr r0, _080BF398 @ =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r0, _080BF39C @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x6 + bl sub_80EB6FC +_080BF384: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BF38C: .4byte gScriptResult +_080BF390: .4byte gStringVar1 +_080BF394: .4byte gPlayerParty +_080BF398: .4byte gSpeciesNames +_080BF39C: .4byte gUnknown_03005D38 +_080BF3A0: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF334 + + thumb_func_start sub_80BF3A4 +sub_80BF3A4: @ 80BF3A4 + push {lr} + movs r0, 0x2 + bl sub_80BF25C + ldr r0, _080BF3D0 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080BF3CC + ldr r0, _080BF3D4 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x6 + bl sub_80EB6FC +_080BF3CC: + pop {r0} + bx r0 + .align 2, 0 +_080BF3D0: .4byte gScriptResult +_080BF3D4: .4byte gUnknown_03005D38 +_080BF3D8: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF3A4 + + thumb_func_start sub_80BF3DC +sub_80BF3DC: @ 80BF3DC + push {r4-r6,lr} + movs r0, 0x3 + bl sub_80BF25C + ldr r0, _080BF450 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080BF448 + ldr r6, _080BF454 @ =gStringVar1 + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + movs r5, 0x64 + muls r0, r5 + ldr r4, _080BF458 @ =gPlayerParty + adds r0, r4 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r1, r0 + ldr r0, _080BF45C @ =gSpeciesNames + adds r1, r0 + adds r0, r6, 0 + bl StringCopy + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + muls r0, r5 + adds r0, r4 + ldr r4, _080BF460 @ =gStringVar2 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + ldr r0, _080BF464 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + adds r0, 0x1C + movs r1, 0x2 + bl sub_80EB6FC +_080BF448: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BF450: .4byte gScriptResult +_080BF454: .4byte gStringVar1 +_080BF458: .4byte gPlayerParty +_080BF45C: .4byte gSpeciesNames +_080BF460: .4byte gStringVar2 +_080BF464: .4byte gUnknown_03005D38 +_080BF468: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF3DC + + thumb_func_start sub_80BF46C +sub_80BF46C: @ 80BF46C + ldr r1, _080BF474 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + bx lr + .align 2, 0 +_080BF474: .4byte gScriptResult + thumb_func_end sub_80BF46C + + thumb_func_start sub_80BF478 +sub_80BF478: @ 80BF478 + push {lr} + movs r0, 0x5 + bl sub_80BF25C + pop {r0} + bx r0 + thumb_func_end sub_80BF478 + + thumb_func_start sub_80BF484 +sub_80BF484: @ 80BF484 + push {lr} + movs r0, 0x6 + bl sub_80BF25C + ldr r0, _080BF4B0 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080BF4AC + ldr r0, _080BF4B4 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + adds r0, 0x4 + movs r1, 0x2 + bl sub_80EB6FC +_080BF4AC: + pop {r0} + bx r0 + .align 2, 0 +_080BF4B0: .4byte gScriptResult +_080BF4B4: .4byte gUnknown_03005D38 +_080BF4B8: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF484 + + thumb_func_start sub_80BF4BC +sub_80BF4BC: @ 80BF4BC + push {lr} + movs r0, 0x7 + bl sub_80BF25C + ldr r0, _080BF4E8 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080BF4E4 + ldr r0, _080BF4EC @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + adds r0, 0x18 + movs r1, 0x1 + bl sub_80EB6FC +_080BF4E4: + pop {r0} + bx r0 + .align 2, 0 +_080BF4E8: .4byte gScriptResult +_080BF4EC: .4byte gUnknown_03005D38 +_080BF4F0: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BF4BC + + thumb_func_start sub_80BF4F4 +sub_80BF4F4: @ 80BF4F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, _080BF530 @ =gPlayerParty + adds r4, r0 + ldr r5, _080BF534 @ =gStringVar1 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0 + bl GetMonData + movs r1, 0xB + muls r0, r1 + ldr r1, _080BF538 @ =gSpeciesNames + adds r0, r1 + adds r1, r5, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _080BF53C + movs r0, 0x1 + b _080BF53E + .align 2, 0 +_080BF530: .4byte gPlayerParty +_080BF534: .4byte gStringVar1 +_080BF538: .4byte gSpeciesNames +_080BF53C: + movs r0, 0 +_080BF53E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BF4F4 + + thumb_func_start sub_80BF544 +sub_80BF544: @ 80BF544 + push {lr} + bl sub_810F87C + lsls r0, 24 + lsrs r0, 24 + bl sub_80BF4F4 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80BF544 + + thumb_func_start sub_80BF55C +sub_80BF55C: @ 80BF55C + push {lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 3 + adds r2, r1 + lsls r2, 2 + adds r2, r0 + movs r0, 0 + strb r0, [r2] + strb r0, [r2, 0x1] + movs r1, 0 + adds r2, 0x2 + movs r3, 0 +_080BF576: + adds r0, r2, r1 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x21 + bls _080BF576 + pop {r0} + bx r0 + thumb_func_end sub_80BF55C + + thumb_func_start sub_80BF588 +sub_80BF588: @ 80BF588 + push {r4-r7,lr} + adds r4, r0, 0 + movs r5, 0 +_080BF58E: + lsls r0, r5, 3 + adds r0, r5 + lsls r1, r0, 2 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF5D2 + adds r0, r5, 0x1 + b _080BF5CA +_080BF5A0: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, 0 + beq _080BF5C8 + adds r1, r4 + adds r0, r3, 0 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80BF55C + b _080BF5D2 +_080BF5C8: + adds r0, r2, 0x1 +_080BF5CA: + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _080BF5A0 +_080BF5D2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080BF58E + movs r5, 0x5 +_080BF5DE: + lsls r0, r5, 3 + adds r0, r5 + lsls r1, r0, 2 + adds r0, r1, r4 + ldrb r0, [r0] + adds r5, 0x1 + cmp r0, 0 + bne _080BF62A + lsls r0, r5, 24 + b _080BF624 +_080BF5F2: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r0, [r3] + cmp r0, 0 + beq _080BF620 + adds r1, r4 + adds r0, r3, 0 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738 + adds r1, r2, 0 + bl sub_80BF55C + b _080BF62A + .align 2, 0 +_080BF61C: .4byte gSaveBlock1 + 0x2738 +_080BF620: + adds r0, r2, 0x1 + lsls r0, 24 +_080BF624: + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080BF5F2 +_080BF62A: + lsls r0, r5, 24 + lsrs r5, r0, 24 + cmp r5, 0x17 + bls _080BF5DE + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BF588 + + thumb_func_start sub_80BF638 +sub_80BF638: @ 80BF638 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80BF674 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _080BF66C @ =gUnknown_083D1464 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0xB + muls r1, r5 + ldr r2, _080BF670 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080BF66C: .4byte gUnknown_083D1464 +_080BF670: .4byte gSpeciesNames + thumb_func_end sub_80BF638 + + thumb_func_start sub_80BF674 +sub_80BF674: @ 80BF674 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080BF694 @ =0x0000019b + bl __umodsi3 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, r4, 0 + b _080BF6B2 + .align 2, 0 +_080BF694: .4byte 0x0000019b +_080BF698: + cmp r4, 0x1 + bne _080BF6A4 + ldr r4, _080BF6A0 @ =0x0000019b + b _080BF6AA + .align 2, 0 +_080BF6A0: .4byte 0x0000019b +_080BF6A4: + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080BF6AA: + cmp r4, r6 + bne _080BF6B2 + adds r4, r5, 0 + b _080BF6CE +_080BF6B2: + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _080BF698 + cmp r4, r5 + beq _080BF698 +_080BF6CE: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BF674 + + thumb_func_start sub_80BF6D8 +sub_80BF6D8: @ 80BF6D8 + push {lr} + ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738 + bl sub_80BF720 + ldr r1, _080BF704 @ =gUnknown_03005D38 + strb r0, [r1] + ldr r2, _080BF708 @ =gUnknown_0202E8D0 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + strh r1, [r2] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080BF710 + ldr r1, _080BF70C @ =gScriptResult + movs r0, 0x1 + b _080BF714 + .align 2, 0 +_080BF700: .4byte gSaveBlock1 + 0x2738 +_080BF704: .4byte gUnknown_03005D38 +_080BF708: .4byte gUnknown_0202E8D0 +_080BF70C: .4byte gScriptResult +_080BF710: + ldr r1, _080BF71C @ =gScriptResult + movs r0, 0 +_080BF714: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BF71C: .4byte gScriptResult + thumb_func_end sub_80BF6D8 + + thumb_func_start sub_80BF720 +sub_80BF720: @ 80BF720 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BF726: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF73A + lsls r0, r1, 24 + asrs r0, 24 + b _080BF748 +_080BF73A: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF726 + movs r0, 0x1 + negs r0, r0 +_080BF748: + pop {r1} + bx r1 + thumb_func_end sub_80BF720 + + thumb_func_start sub_80BF74C +sub_80BF74C: @ 80BF74C + push {lr} + adds r2, r0, 0 + movs r1, 0x5 +_080BF752: + lsls r0, r1, 24 + asrs r1, r0, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080BF768 + adds r0, r1, 0 + b _080BF778 +_080BF768: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r0, 24 + cmp r0, 0x17 + ble _080BF752 + movs r0, 0x1 + negs r0, r0 +_080BF778: + pop {r1} + bx r1 + thumb_func_end sub_80BF74C + + thumb_func_start sub_80BF77C +sub_80BF77C: @ 80BF77C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bls _080BF794 + movs r0, 0x1 + b _080BF796 +_080BF794: + movs r0, 0 +_080BF796: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF77C + + thumb_func_start sub_80BF79C +sub_80BF79C: @ 80BF79C + push {r4-r6,lr} + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r4, 0x4 + ldr r6, _080BF7B8 @ =0x0000ffff + b _080BF7C2 + .align 2, 0 +_080BF7B8: .4byte 0x0000ffff +_080BF7BC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080BF7C2: + cmp r2, 0x6 + bne _080BF7C8 + movs r2, 0 +_080BF7C8: + lsls r1, r2, 1 + adds r0, r5, r1 + ldrh r0, [r0] + adds r3, r4, 0x4 + cmp r0, r6 + beq _080BF7BC + ldr r0, _080BF7E4 @ =gStringVar3 + adds r1, r3, r1 + ldrh r1, [r1] + bl sub_80EB3FC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BF7E4: .4byte gStringVar3 + thumb_func_end sub_80BF79C + + thumb_func_start sub_80BF7E8 +sub_80BF7E8: @ 80BF7E8 + push {lr} + adds r2, r0, 0 + movs r3, 0 + movs r1, 0 + ldrb r0, [r2, 0x4] + cmp r0, 0xFF + beq _080BF814 + adds r2, 0x4 +_080BF7F8: + adds r0, r2, r1 + ldrb r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xA + bhi _080BF814 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BF7F8 +_080BF814: + movs r0, 0x7 + ands r3, r0 + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_80BF7E8 + + thumb_func_start sub_80BF820 +sub_80BF820: @ 80BF820 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + movs r2, 0 + movs r7, 0xFF +_080BF844: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080BF844 + cmp r3, 0 + bne _080BF8A6 + ldr r4, [sp, 0x20] + adds r4, 0xF + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF874 + mov r0, sp + adds r1, r4, r5 + b _080BF920 +_080BF874: + cmp r6, 0x1 + bne _080BF880 + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080BF920 +_080BF880: + cmp r6, 0x2 + bne _080BF892 + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + adds r0, r4, r0 + b _080BF950 +_080BF892: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4, r0 + b _080BF950 +_080BF8A6: + cmp r3, 0x1 + bne _080BF8F4 + ldr r4, [sp, 0x20] + adds r4, 0x4 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF8C2 + mov r0, sp + adds r1, r4, r5 + b _080BF920 +_080BF8C2: + cmp r6, 0x1 + bne _080BF8CE + mov r0, sp + subs r1, r2, r5 + adds r1, r4, r1 + b _080BF920 +_080BF8CE: + cmp r6, 0x2 + bne _080BF8E0 + mov r1, sp + adds r0, r4, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + adds r0, r4, r0 + b _080BF950 +_080BF8E0: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4, r0 + b _080BF950 +_080BF8F4: + movs r0, 0xB + muls r4, r0 + ldr r7, _080BF910 @ =gSpeciesNames + adds r0, r4, r7 + bl StringLength + lsls r0, 16 + lsrs r2, r0, 16 + cmp r6, 0 + bne _080BF914 + mov r0, sp + adds r1, r5, r4 + b _080BF91E + .align 2, 0 +_080BF910: .4byte gSpeciesNames +_080BF914: + cmp r6, 0x1 + bne _080BF926 + mov r0, sp + subs r1, r2, r5 + adds r1, r4 +_080BF91E: + adds r1, r7 +_080BF920: + ldrb r1, [r1] + strb r1, [r0] + b _080BF954 +_080BF926: + cmp r6, 0x2 + bne _080BF93A + mov r1, sp + adds r0, r5, r4 + adds r0, r7 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + adds r0, r5, r0 + b _080BF94E +_080BF93A: + mov r1, sp + subs r0, r2, 0x2 + subs r0, r5 + adds r0, r4 + adds r0, r7 + ldrb r0, [r0] + strb r0, [r1] + subs r0, r2, 0x1 + subs r0, r5 + adds r0, r4 +_080BF94E: + adds r0, r7 +_080BF950: + ldrb r0, [r0] + strb r0, [r1, 0x1] +_080BF954: + ldr r0, _080BF970 @ =gUnknown_083D1464 + mov r2, r8 + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + mov r1, sp + bl StringCopy + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BF970: .4byte gUnknown_083D1464 + thumb_func_end sub_80BF820 + + thumb_func_start sub_80BF974 +sub_80BF974: @ 80BF974 + push {r4,lr} + movs r1, 0 + ldr r4, _080BF994 @ =gSaveBlock1 + ldr r0, _080BF998 @ =gUnknown_0202E8CC + ldrh r2, [r0] + ldr r3, _080BF99C @ =0x00002738 +_080BF980: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080BF9A0 + movs r0, 0x1 + b _080BF9AC + .align 2, 0 +_080BF994: .4byte gSaveBlock1 +_080BF998: .4byte gUnknown_0202E8CC +_080BF99C: .4byte 0x00002738 +_080BF9A0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080BF980 + movs r0, 0 +_080BF9AC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF974 + + thumb_func_start sub_80BF9B4 +sub_80BF9B4: @ 80BF9B4 + push {r4,lr} + ldr r0, _080BF9E0 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BF9E4 @ =gPlayerParty + adds r0, r1 + ldr r4, _080BF9E8 @ =gStringVar1 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + ldr r0, _080BF9EC @ =gStringVar3 + adds r1, r4, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _080BF9F0 + bl sub_80BE478 + movs r0, 0x1 + b _080BF9F2 + .align 2, 0 +_080BF9E0: .4byte gUnknown_0202E8CC +_080BF9E4: .4byte gPlayerParty +_080BF9E8: .4byte gStringVar1 +_080BF9EC: .4byte gStringVar3 +_080BF9F0: + movs r0, 0 +_080BF9F2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BF9B4 + + thumb_func_start sub_80BF9F8 +sub_80BF9F8: @ 80BF9F8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _080BFAA0 @ =gUnknown_0202E8CC + mov r9, r0 + ldrh r0, [r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, _080BFAA4 @ =gPlayerParty + adds r0, r6 + ldr r2, _080BFAA8 @ =gStringVar3 + movs r1, 0x2 + bl GetMonData + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + ldr r1, _080BFAAC @ =gStringVar2 + mov r10, r1 + movs r1, 0x2 + mov r2, r10 + bl GetMonData + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + movs r2, 0 + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + bl GetMonGender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r9 + ldrh r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r0, _080BFAB0 @ =c2_080CC144 + str r0, [sp, 0x4] + movs r0, 0x3 + mov r1, r10 + adds r2, r5, 0 + adds r3, r4, 0 + bl DoNamingScreen + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BFAA0: .4byte gUnknown_0202E8CC +_080BFAA4: .4byte gPlayerParty +_080BFAA8: .4byte gStringVar3 +_080BFAAC: .4byte gStringVar2 +_080BFAB0: .4byte c2_080CC144 + thumb_func_end sub_80BF9F8 + + thumb_func_start c2_080CC144 +c2_080CC144: @ 80BFAB4 + push {lr} + ldr r0, _080BFAD4 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFAD8 @ =gPlayerParty + adds r0, r1 + ldr r2, _080BFADC @ =gStringVar2 + movs r1, 0x2 + bl SetMonData + bl c2_exit_to_overworld_1_continue_scripts_restart_music + pop {r0} + bx r0 + .align 2, 0 +_080BFAD4: .4byte gUnknown_0202E8CC +_080BFAD8: .4byte gPlayerParty +_080BFADC: .4byte gStringVar2 + thumb_func_end c2_080CC144 + + thumb_func_start sub_80BFAE0 +sub_80BFAE0: @ 80BFAE0 + push {r4,lr} + ldr r0, _080BFB04 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFB08 @ =gPlayerParty + adds r0, r1 + ldr r4, _080BFB0C @ =gStringVar1 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFB04: .4byte gUnknown_0202E8CC +_080BFB08: .4byte gPlayerParty +_080BFB0C: .4byte gStringVar1 + thumb_func_end sub_80BFAE0 + + thumb_func_start sub_80BFB10 +sub_80BFB10: @ 80BFB10 + push {r4,lr} + bl sub_80BFB94 + adds r4, r0, 0 + ldr r0, _080BFB38 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080BFB3C @ =gPlayerParty + adds r0, r1 + movs r1, 0x1 + movs r2, 0 + bl GetMonData + cmp r4, r0 + bne _080BFB44 + ldr r1, _080BFB40 @ =gScriptResult + movs r0, 0 + b _080BFB48 + .align 2, 0 +_080BFB38: .4byte gUnknown_0202E8CC +_080BFB3C: .4byte gPlayerParty +_080BFB40: .4byte gScriptResult +_080BFB44: + ldr r1, _080BFB50 @ =gScriptResult + movs r0, 0x1 +_080BFB48: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFB50: .4byte gScriptResult + thumb_func_end sub_80BFB10 + + thumb_func_start sub_80BFB54 +sub_80BFB54: @ 80BFB54 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + adds r2, r1, 0 + cmp r1, 0 + beq _080BFB8A + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080BFB6E + movs r0, 0x2 + b _080BFB90 +_080BFB6E: + adds r0, r1, 0 + subs r0, 0x15 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080BFB7E + movs r0, 0x3 + b _080BFB90 +_080BFB7E: + adds r0, r2, 0 + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _080BFB8E +_080BFB8A: + movs r0, 0 + b _080BFB90 +_080BFB8E: + movs r0, 0x4 +_080BFB90: + pop {r1} + bx r1 + thumb_func_end sub_80BFB54 + + thumb_func_start sub_80BFB94 +sub_80BFB94: @ 80BFB94 + ldr r2, _080BFBAC @ =gSaveBlock2 + ldrb r0, [r2, 0xD] + lsls r0, 24 + ldrb r1, [r2, 0xC] + lsls r1, 16 + orrs r0, r1 + ldrb r1, [r2, 0xB] + lsls r1, 8 + orrs r0, r1 + ldrb r1, [r2, 0xA] + orrs r0, r1 + bx lr + .align 2, 0 +_080BFBAC: .4byte gSaveBlock2 + thumb_func_end sub_80BFB94 + + thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV +CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0 + push {lr} + ldr r1, _080BFBD0 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x1 + bne _080BFBCC + ldr r0, _080BFBD4 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080BFBD8 + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0 + beq _080BFBE0 +_080BFBCC: + movs r0, 0 + b _080BFC0A + .align 2, 0 +_080BFBD0: .4byte gSaveBlock1 +_080BFBD4: .4byte gSaveBlock2 +_080BFBD8: + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0x2 + bne _080BFBCC +_080BFBE0: + ldr r0, _080BFC04 @ =0x0000085d + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFBFE + movs r0, 0x83 + lsls r0, 4 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFC08 +_080BFBFE: + movs r0, 0x1 + b _080BFC0A + .align 2, 0 +_080BFC04: .4byte 0x0000085d +_080BFC08: + movs r0, 0x2 +_080BFC0A: + pop {r1} + bx r1 + thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV + + thumb_func_start GetMomOrDadStringForTVMessage +GetMomOrDadStringForTVMessage: @ 80BFC10 + push {r4,lr} + ldr r1, _080BFC40 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x1 + bne _080BFC6C + ldr r0, _080BFC44 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080BFC54 + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080BFC6C + ldr r0, _080BFC48 @ =gStringVar1 + ldr r1, _080BFC4C @ =gOtherText_Mom + bl StringCopy + ldr r0, _080BFC50 @ =0x00004003 + movs r1, 0x1 + bl VarSet + b _080BFC6C + .align 2, 0 +_080BFC40: .4byte gSaveBlock1 +_080BFC44: .4byte gSaveBlock2 +_080BFC48: .4byte gStringVar1 +_080BFC4C: .4byte gOtherText_Mom +_080BFC50: .4byte 0x00004003 +_080BFC54: + movs r0, 0x5 + ldrsb r0, [r1, r0] + cmp r0, 0x2 + bne _080BFC6C + ldr r0, _080BFCB4 @ =gStringVar1 + ldr r1, _080BFCB8 @ =gOtherText_Mom + bl StringCopy + ldr r0, _080BFCBC @ =0x00004003 + movs r1, 0x1 + bl VarSet +_080BFC6C: + ldr r4, _080BFCBC @ =0x00004003 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080BFCAA + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _080BFCC0 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _080BFCD4 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080BFCC0 +_080BFCAA: + ldr r0, _080BFCB4 @ =gStringVar1 + ldr r1, _080BFCB8 @ =gOtherText_Mom + bl StringCopy + b _080BFD10 + .align 2, 0 +_080BFCB4: .4byte gStringVar1 +_080BFCB8: .4byte gOtherText_Mom +_080BFCBC: .4byte 0x00004003 +_080BFCC0: + ldr r0, _080BFCCC @ =gStringVar1 + ldr r1, _080BFCD0 @ =gOtherText_Dad + bl StringCopy + b _080BFD10 + .align 2, 0 +_080BFCCC: .4byte gStringVar1 +_080BFCD0: .4byte gOtherText_Dad +_080BFCD4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BFD00 + ldr r0, _080BFCF8 @ =gStringVar1 + ldr r1, _080BFCFC @ =gOtherText_Mom + bl StringCopy + adds r0, r4, 0 + movs r1, 0x1 + bl VarSet + b _080BFD10 + .align 2, 0 +_080BFCF8: .4byte gStringVar1 +_080BFCFC: .4byte gOtherText_Mom +_080BFD00: + ldr r0, _080BFD18 @ =gStringVar1 + ldr r1, _080BFD1C @ =gOtherText_Dad + bl StringCopy + adds r0, r4, 0 + movs r1, 0x2 + bl VarSet +_080BFD10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BFD18: .4byte gStringVar1 +_080BFD1C: .4byte gOtherText_Dad + thumb_func_end GetMomOrDadStringForTVMessage + + thumb_func_start sub_80BFD20 +sub_80BFD20: @ 80BFD20 + push {lr} + ldr r0, _080BFD3C @ =0x000040bc + movs r1, 0 + bl VarSet + ldr r0, _080BFD40 @ =gSaveBlock1 + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x5 + bl RemoveFieldObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_080BFD3C: .4byte 0x000040bc +_080BFD40: .4byte gSaveBlock1 + thumb_func_end sub_80BFD20 + + thumb_func_start sub_80BFD44 +sub_80BFD44: @ 80BFD44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + movs r4, 0 +_080BFD54: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 5 + adds r0, r4 + lsls r0, 2 + ldr r5, _080BFD8C @ =0x02007000 + adds r0, r5 + adds r1, r4, 0 + muls r1, r7 + add r1, r8 + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080BFD54 + adds r4, r5, 0 + cmp r6, 0x1 + beq _080BFDBC + cmp r6, 0x1 + bgt _080BFD90 + cmp r6, 0 + beq _080BFD9A + b _080BFDFC + .align 2, 0 +_080BFD8C: .4byte 0x02007000 +_080BFD90: + cmp r6, 0x2 + beq _080BFDCC + cmp r6, 0x3 + beq _080BFDE8 + b _080BFDFC +_080BFD9A: + ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738 + movs r2, 0xE1 + lsls r2, 2 + adds r1, r4, r2 + movs r3, 0xE1 + lsls r3, 3 + adds r2, r4, r3 + ldr r5, _080BFDB8 @ =0x00000a8c + adds r3, r4, r5 + bl sub_80BFE24 + b _080BFDFC + .align 2, 0 +_080BFDB4: .4byte gSaveBlock1 + 0x2738 +_080BFDB8: .4byte 0x00000a8c +_080BFDBC: + ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738 + movs r0, 0xE1 + lsls r0, 3 + adds r2, r4, r0 + b _080BFDD4 + .align 2, 0 +_080BFDC8: .4byte gSaveBlock1 + 0x2738 +_080BFDCC: + movs r0, 0xE1 + lsls r0, 2 + adds r1, r4, r0 + ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738 +_080BFDD4: + ldr r5, _080BFDE4 @ =0x00000a8c + adds r3, r4, r5 + adds r0, r4, 0 + bl sub_80BFE24 + b _080BFDFC + .align 2, 0 +_080BFDE0: .4byte gSaveBlock1 + 0x2738 +_080BFDE4: .4byte 0x00000a8c +_080BFDE8: + movs r0, 0xE1 + lsls r0, 2 + adds r1, r5, r0 + movs r3, 0xE1 + lsls r3, 3 + adds r2, r5, r3 + ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738 + adds r0, r5, 0 + bl sub_80BFE24 +_080BFDFC: + ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738 + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80C04A0 + adds r0, r4, 0 + bl sub_80BF588 + bl sub_80C01D4 + bl sub_80C0408 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BFE20: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80BFD44 + + thumb_func_start sub_80BFE24 +sub_80BFE24: @ 80BFE24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + str r0, [sp, 0x10] + str r1, [sp, 0x14] + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + add r0, sp, 0x10 + str r0, [sp] + add r0, sp, 0x14 + str r0, [sp, 0x4] + add r0, sp, 0x18 + str r0, [sp, 0x8] + add r0, sp, 0x1C + str r0, [sp, 0xC] + bl GetLinkPlayerCount + ldr r1, _080BFEA0 @ =gUnknown_03000720 + strb r0, [r1] +_080BFE50: + movs r6, 0 + ldr r0, _080BFEA0 @ =gUnknown_03000720 + ldrb r1, [r0] + cmp r6, r1 + bcs _080BFE50 + mov r10, r0 +_080BFE5C: + cmp r6, 0 + bne _080BFE64 + ldr r2, _080BFEA4 @ =gUnknown_020387E4 + strb r6, [r2] +_080BFE64: + lsls r4, r6, 2 + mov r3, sp + adds r0, r3, r4 + ldr r0, [r0] + ldr r0, [r0] + bl sub_80C019C + ldr r1, _080BFEA8 @ =gUnknown_03000722 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + adds r7, r4, 0 + cmp r0, r1 + bne _080BFEAC + ldr r1, _080BFEA4 @ =gUnknown_020387E4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + mov r2, r10 + ldrb r2, [r2] + cmp r0, r2 + beq _080BFF58 + adds r6, 0x1 + mov r9, r6 + b _080BFF3C + .align 2, 0 +_080BFEA0: .4byte gUnknown_03000720 +_080BFEA4: .4byte gUnknown_020387E4 +_080BFEA8: .4byte gUnknown_03000722 +_080BFEAC: + movs r5, 0 + mov r3, r10 + ldrb r0, [r3] + subs r0, 0x1 + adds r2, r6, 0x1 + mov r9, r2 + cmp r5, r0 + bge _080BFF22 + ldr r3, _080BFF4C @ =gUnknown_03000720 + mov r8, r3 +_080BFEC0: + adds r0, r6, r5 + adds r4, r0, 0x1 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl sub_80BF74C + ldr r1, _080BFF50 @ =gUnknown_03005D38 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080BFF12 + mov r2, r8 + ldrb r1, [r2] + adds r0, r4, 0 + bl __modsi3 + adds r2, r0, 0 + lsls r0, r2, 2 + add r0, sp + ldr r0, [r0] + mov r3, sp + adds r1, r3, r7 + ldr r1, [r1] + lsls r2, 24 + lsrs r2, 24 + bl sub_80BFF68 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BFF22 +_080BFF12: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + blt _080BFEC0 +_080BFF22: + mov r2, r10 + ldrb r0, [r2] + subs r0, 0x1 + cmp r5, r0 + bne _080BFF3C + mov r3, sp + adds r0, r3, r7 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, _080BFF54 @ =gUnknown_03000722 + ldrb r1, [r1] + bl sub_80BF55C +_080BFF3C: + mov r1, r9 + lsls r0, r1, 24 + lsrs r6, r0, 24 + mov r2, r10 + ldrb r2, [r2] + cmp r6, r2 + bcc _080BFE5C + b _080BFE50 + .align 2, 0 +_080BFF4C: .4byte gUnknown_03000720 +_080BFF50: .4byte gUnknown_03005D38 +_080BFF54: .4byte gUnknown_03000722 +_080BFF58: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BFE24 + + thumb_func_start sub_80BFF68 +sub_80BFF68: @ 80BFF68 + push {r4-r7,lr} + sub sp, 0x4 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r4, [r0] + ldr r6, [r1] + movs r5, 0 + ldr r2, _080BFFA4 @ =gUnknown_03000722 + movs r1, 0 + ldrsb r1, [r2, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0] + str r2, [sp] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + ldr r2, [sp] + cmp r0, 0x3 + beq _080BFFD8 + cmp r0, 0x3 + bgt _080BFFA8 + cmp r0, 0x2 + beq _080BFFAE + b _080C0026 + .align 2, 0 +_080BFFA4: .4byte gUnknown_03000722 +_080BFFA8: + cmp r1, 0x4 + beq _080C0000 + b _080C0026 +_080BFFAE: + ldr r0, _080BFFD4 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C004C + b _080C0022 + .align 2, 0 +_080BFFD4: .4byte gUnknown_03005D38 +_080BFFD8: + ldr r0, _080BFFFC @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C00B4 + b _080C0022 + .align 2, 0 +_080BFFFC: .4byte gUnknown_03005D38 +_080C0000: + ldr r0, _080C0030 @ =gUnknown_03005D38 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4, r0 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r1, r2, 3 + adds r1, r2 + lsls r1, 2 + adds r1, r6, r1 + adds r2, r7, 0 + bl sub_80C0134 +_080C0022: + lsls r0, 24 + lsrs r5, r0, 24 +_080C0026: + cmp r5, 0x1 + beq _080C0034 + movs r0, 0 + b _080C0040 + .align 2, 0 +_080C0030: .4byte gUnknown_03005D38 +_080C0034: + ldr r0, _080C0048 @ =gUnknown_03000722 + ldrb r1, [r0] + adds r0, r6, 0 + bl sub_80BF55C + movs r0, 0x1 +_080C0040: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C0048: .4byte gUnknown_03000722 + thumb_func_end sub_80BFF68 + + thumb_func_start sub_80C004C +sub_80C004C: @ 80C004C + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r5, r0, 0 + movs r2, 0xFF + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r0, r1 + bne _080C007C + lsrs r0, r5, 8 + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C007C + movs r0, 0 + b _080C00AC +_080C007C: + adds r1, r4, 0 + adds r1, 0x20 + ldrb r0, [r1] + adds r2, r4, 0 + adds r2, 0x22 + strb r0, [r2] + adds r3, r4, 0 + adds r3, 0x21 + ldrb r0, [r3] + adds r2, 0x1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, 8 + strb r0, [r3] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] +_080C00AC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C004C + + thumb_func_start sub_80C00B4 +sub_80C00B4: @ 80C00B4 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r2, r0, 0 + movs r3, 0xFF + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x20 + ldrb r1, [r1] + cmp r0, r1 + bne _080C00E0 + lsrs r0, r2, 8 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r0, r1 + beq _080C0100 +_080C00E0: + movs r3, 0xFF + adds r0, r2, 0 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x22 + lsrs r5, r2, 8 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0104 + adds r0, r5, 0 + ands r0, r3 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0104 +_080C0100: + movs r0, 0 + b _080C012C +_080C0104: + ldrb r1, [r4, 0x1E] + adds r0, r4, 0 + adds r0, 0x20 + strb r1, [r0] + ldrb r0, [r4, 0x1F] + adds r1, r4, 0 + adds r1, 0x21 + strb r0, [r1] + strb r2, [r4, 0x1E] + strb r5, [r4, 0x1F] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] +_080C012C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C00B4 + + thumb_func_start sub_80C0134 +sub_80C0134: @ 80C0134 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + lsls r0, r2, 24 + lsrs r0, 24 + bl GetLinkPlayerTrainerId + adds r5, r0, 0 + movs r2, 0xFF + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0164 + lsrs r0, r5, 8 + ands r0, r2 + adds r1, r4, 0 + adds r1, 0x23 + ldrb r1, [r1] + cmp r0, r1 + bne _080C0164 + movs r0, 0 + b _080C0196 +_080C0164: + adds r1, r4, 0 + adds r1, 0x20 + ldrb r0, [r1] + adds r2, r4, 0 + adds r2, 0x22 + strb r0, [r2] + adds r3, r4, 0 + adds r3, 0x21 + ldrb r0, [r3] + adds r2, 0x1 + strb r0, [r2] + strb r5, [r1] + lsrs r0, r5, 8 + strb r0, [r3] + adds r1, r6, 0 + adds r0, r4, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r0, 0x1 + strb r0, [r6, 0x1] + strh r0, [r6, 0x16] +_080C0196: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C0134 + + thumb_func_start sub_80C019C +sub_80C019C: @ 80C019C + push {lr} + adds r3, r0, 0 + movs r2, 0 +_080C01A2: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r3 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080C01C2 + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bhi _080C01C2 + lsls r0, r2, 24 + asrs r0, 24 + b _080C01D0 +_080C01C2: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x17 + bls _080C01A2 + movs r0, 0x1 + negs r0, r0 +_080C01D0: + pop {r1} + bx r1 + thumb_func_end sub_80C019C + + thumb_func_start sub_80C01D4 +sub_80C01D4: @ 80C01D4 + push {r4-r6,lr} + movs r6, 0 +_080C01D8: + ldr r0, _080C01F8 @ =gSaveBlock1 + lsls r2, r6, 3 + adds r1, r2, r6 + lsls r1, 2 + adds r1, r0 + ldr r0, _080C01FC @ =0x00002738 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x29 + bls _080C01EE + b _080C038C +_080C01EE: + lsls r0, 2 + ldr r1, _080C0200 @ =_080C0204 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C01F8: .4byte gSaveBlock1 +_080C01FC: .4byte 0x00002738 +_080C0200: .4byte _080C0204 + .align 2, 0 +_080C0204: + .4byte _080C0394 + .4byte _080C02AC + .4byte _080C0394 + .4byte _080C02BC + .4byte _080C02CC + .4byte _080C02DC + .4byte _080C02F8 + .4byte _080C0308 + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C0324 + .4byte _080C0394 + .4byte _080C0334 + .4byte _080C0350 + .4byte _080C0368 + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C038C + .4byte _080C0394 +_080C02AC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C02B8: .4byte gSaveBlock1 + 0x2738 +_080C02BC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C02C8: .4byte gSaveBlock1 + 0x2738 +_080C02CC: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x6] + b _080C035A + .align 2, 0 +_080C02D8: .4byte gSaveBlock1 + 0x2738 +_080C02DC: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + ldrh r0, [r4, 0x2] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x1C] + b _080C037E + .align 2, 0 +_080C02F4: .4byte gSaveBlock1 + 0x2738 +_080C02F8: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x2] + b _080C035A + .align 2, 0 +_080C0304: .4byte gSaveBlock1 + 0x2738 +_080C0308: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + ldrh r0, [r4, 0xA] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x14] + b _080C037E + .align 2, 0 +_080C0320: .4byte gSaveBlock1 + 0x2738 +_080C0324: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x10] + b _080C035A + .align 2, 0 +_080C0330: .4byte gSaveBlock1 + 0x2738 +_080C0334: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C034C @ =gSaveBlock1 + 0x2738 + adds r4, r0 + ldrh r0, [r4, 0xC] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0xE] + b _080C037E + .align 2, 0 +_080C034C: .4byte gSaveBlock1 + 0x2738 +_080C0350: + adds r0, r2, r6 + lsls r0, 2 + ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738 + adds r0, r1 + ldrh r0, [r0, 0x4] +_080C035A: + lsls r1, r6, 24 + lsrs r1, 24 + bl sub_80C03C8 + b _080C0394 + .align 2, 0 +_080C0364: .4byte gSaveBlock1 + 0x2738 +_080C0368: + adds r4, r2, r6 + lsls r4, 2 + ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + ldrh r0, [r4, 0x8] + lsls r5, r6, 24 + lsrs r5, 24 + adds r1, r5, 0 + bl sub_80C03C8 + ldrh r0, [r4, 0x4] +_080C037E: + adds r1, r5, 0 + bl sub_80C03C8 + b _080C0394 + .align 2, 0 +_080C0388: .4byte gSaveBlock1 + 0x2738 +_080C038C: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_80C03A8 +_080C0394: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x17 + bhi _080C03A0 + b _080C01D8 +_080C03A0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80C01D4 + + thumb_func_start sub_80C03A8 +sub_80C03A8: @ 80C03A8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C03C0 @ =gSaveBlock1 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080C03C4 @ =0x00002739 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080C03C0: .4byte gSaveBlock1 +_080C03C4: .4byte 0x00002739 + thumb_func_end sub_80C03A8 + + thumb_func_start sub_80C03C8 +sub_80C03C8: @ 80C03C8 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + asrs r2, r0, 24 + cmp r2, 0 + bne _080C03F8 + ldr r1, _080C0400 @ =gSaveBlock1 + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _080C0404 @ =0x00002739 + adds r0, r1 + strb r2, [r0] +_080C03F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C0400: .4byte gSaveBlock1 +_080C0404: .4byte 0x00002739 + thumb_func_end sub_80C03C8 + + thumb_func_start sub_80C0408 +sub_80C0408: @ 80C0408 + push {r4-r6,lr} + ldr r0, _080C044C @ =0x00000804 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C0444 + movs r2, 0 + ldr r6, _080C0450 @ =gSaveBlock1 + ldr r4, _080C0454 @ =0x00002739 + movs r3, 0 + ldr r5, _080C0458 @ =0x00002738 +_080C0422: + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r6 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080C0436 + cmp r0, 0x29 + bne _080C043A +_080C0436: + adds r0, r1, r4 + strb r3, [r0] +_080C043A: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x17 + bls _080C0422 +_080C0444: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C044C: .4byte 0x00000804 +_080C0450: .4byte gSaveBlock1 +_080C0454: .4byte 0x00002739 +_080C0458: .4byte 0x00002738 + thumb_func_end sub_80C0408 + + thumb_func_start sub_80C045C +sub_80C045C: @ 80C045C + push {r4-r6,lr} + movs r5, 0 + ldr r6, _080C0494 @ =gSaveBlock1 +_080C0462: + lsls r0, r5, 3 + adds r0, r5 + lsls r0, 2 + adds r4, r0, r6 + ldr r1, _080C0498 @ =0x00002738 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80BFB54 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080C0484 + ldr r0, _080C049C @ =0x00002739 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] +_080C0484: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _080C0462 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C0494: .4byte gSaveBlock1 +_080C0498: .4byte 0x00002738 +_080C049C: .4byte 0x00002739 + thumb_func_end sub_80C045C + + thumb_func_start sub_80C04A0 +sub_80C04A0: @ 80C04A0 + push {r4,r5,lr} + movs r3, 0 + movs r2, 0x5 + ldr r5, _080C0508 @ =gSaveBlock1 + ldr r4, _080C050C @ =0x00002738 +_080C04AA: + lsls r0, r2, 24 + asrs r1, r0, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080C04C8 + lsls r0, r3, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r3, r0, 24 +_080C04C8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x17 + ble _080C04AA + movs r2, 0 + lsls r0, r3, 24 + asrs r0, 24 + movs r1, 0x5 + subs r0, r1, r0 + cmp r2, r0 + bge _080C0502 + adds r5, r0, 0 +_080C04E4: + lsls r1, r2, 24 + asrs r4, r1, 24 + movs r0, 0xA0 + lsls r0, 19 + adds r1, r0 + lsrs r1, 24 + ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738 + bl sub_80BF55C + adds r4, 0x1 + lsls r4, 24 + lsrs r2, r4, 24 + asrs r4, 24 + cmp r4, r5 + blt _080C04E4 +_080C0502: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0508: .4byte gSaveBlock1 +_080C050C: .4byte 0x00002738 +_080C0510: .4byte gSaveBlock1 + 0x2738 + thumb_func_end sub_80C04A0 + + thumb_func_start sub_80C0514 +sub_80C0514: @ 80C0514 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + movs r4, 0 +_080C0524: + lsls r0, r4, 6 + ldr r6, _080C0550 @ =0x02007000 + adds r0, r6 + adds r1, r4, 0 + muls r1, r7 + add r1, r8 + movs r2, 0x40 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080C0524 + adds r4, r6, 0 + cmp r5, 0x1 + beq _080C0578 + cmp r5, 0x1 + bgt _080C0554 + cmp r5, 0 + beq _080C055E + b _080C05AC + .align 2, 0 +_080C0550: .4byte 0x02007000 +_080C0554: + cmp r5, 0x2 + beq _080C0584 + cmp r5, 0x3 + beq _080C059C + b _080C05AC +_080C055E: + ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC + adds r1, r4, 0 + adds r1, 0x40 + adds r2, r4, 0 + adds r2, 0x80 + adds r3, r4, 0 + adds r3, 0xC0 + bl sub_80C05C4 + b _080C05AC + .align 2, 0 +_080C0574: .4byte gSaveBlock1 + 0x2ABC +_080C0578: + ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC + adds r2, r4, 0 + adds r2, 0x80 + b _080C058A + .align 2, 0 +_080C0580: .4byte gSaveBlock1 + 0x2ABC +_080C0584: + adds r1, r4, 0 + adds r1, 0x40 + ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC +_080C058A: + adds r3, r4, 0 + adds r3, 0xC0 + adds r0, r4, 0 + bl sub_80C05C4 + b _080C05AC + .align 2, 0 +_080C0598: .4byte gSaveBlock1 + 0x2ABC +_080C059C: + adds r1, r6, 0 + adds r1, 0x40 + adds r2, r6, 0 + adds r2, 0x80 + ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC + adds r0, r6, 0 + bl sub_80C05C4 +_080C05AC: + bl sub_80C0750 + bl sub_80C0788 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C05C0: .4byte gSaveBlock1 + 0x2ABC + thumb_func_end sub_80C0514 + + thumb_func_start sub_80C05C4 +sub_80C05C4: @ 80C05C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r0, [sp, 0x10] + str r1, [sp, 0x14] + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + add r0, sp, 0x10 + str r0, [sp] + add r0, sp, 0x14 + str r0, [sp, 0x4] + add r0, sp, 0x18 + str r0, [sp, 0x8] + add r0, sp, 0x1C + str r0, [sp, 0xC] + bl GetLinkPlayerCount + ldr r1, _080C0600 @ =gUnknown_03000721 + strb r0, [r1] + movs r0, 0 + mov r10, r0 +_080C05F4: + movs r7, 0 + mov r1, r10 + adds r1, 0x1 + str r1, [sp, 0x20] + b _080C068C + .align 2, 0 +_080C0600: .4byte gUnknown_03000721 +_080C0604: + lsls r4, r7, 2 + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + ldr r0, [r0] + mov r1, r10 + bl sub_80C0730 + ldr r1, _080C06B0 @ =gUnknown_03000722 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + mov r8, r4 + adds r1, r7, 0x1 + mov r9, r1 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080C0686 + movs r5, 0 + ldr r1, _080C06B4 @ =gUnknown_03000721 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + bge _080C0686 + adds r6, r1, 0 +_080C0638: + adds r0, r7, r5 + adds r4, r0, 0x1 + ldrb r1, [r6] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r0, [r0] + bl sub_80BEBC8 + ldr r1, _080C06B8 @ =gUnknown_03005D38 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _080C0678 + ldrb r1, [r6] + adds r0, r4, 0 + bl __modsi3 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + mov r1, sp + add r1, r8 + ldr r1, [r1] + bl sub_80C06BC +_080C0678: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6] + subs r0, 0x1 + cmp r5, r0 + blt _080C0638 +_080C0686: + mov r1, r9 + lsls r0, r1, 24 + lsrs r7, r0, 24 +_080C068C: + ldr r0, _080C06B4 @ =gUnknown_03000721 + ldrb r0, [r0] + cmp r7, r0 + bcc _080C0604 + ldr r1, [sp, 0x20] + lsls r0, r1, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0xF + bls _080C05F4 + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C06B0: .4byte gUnknown_03000722 +_080C06B4: .4byte gUnknown_03000721 +_080C06B8: .4byte gUnknown_03005D38 + thumb_func_end sub_80C05C4 + + thumb_func_start sub_80C06BC +sub_80C06BC: @ 80C06BC + push {lr} + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _080C06E0 @ =gUnknown_03000722 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + lsls r2, 2 + adds r1, r2 + ldr r2, _080C06E4 @ =gUnknown_03005D38 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + bl sub_80C06E8 + pop {r0} + bx r0 + .align 2, 0 +_080C06E0: .4byte gUnknown_03000722 +_080C06E4: .4byte gUnknown_03005D38 + thumb_func_end sub_80C06BC + + thumb_func_start sub_80C06E8 +sub_80C06E8: @ 80C06E8 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + ldrb r3, [r5] + adds r0, r3, 0 + cmp r0, 0 + bne _080C06FE +_080C06FA: + movs r0, 0 + b _080C072A +_080C06FE: + movs r1, 0 + adds r2, r3, 0 + adds r3, r0, 0 +_080C0704: + lsls r0, r1, 2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + beq _080C06FA + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080C0704 + lsls r0, r6, 24 + asrs r0, 22 + adds r0, r4 + strb r2, [r0] + movs r1, 0x1 + strb r1, [r0, 0x1] + ldrh r1, [r5, 0x2] + strh r1, [r0, 0x2] + movs r0, 0x1 +_080C072A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C06E8 + + thumb_func_start sub_80C0730 +sub_80C0730: @ 80C0730 + push {lr} + lsls r1, 24 + lsrs r2, r1, 24 + lsls r1, r2, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080C0746 + lsls r0, r2, 24 + asrs r0, 24 + b _080C074A +_080C0746: + movs r0, 0x1 + negs r0, r0 +_080C074A: + pop {r1} + bx r1 + thumb_func_end sub_80C0730 + + thumb_func_start sub_80C0750 +sub_80C0750: @ 80C0750 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080C0780 @ =gSaveBlock1 +_080C0756: + lsls r0, r4, 2 + adds r0, r5 + ldr r1, _080C0784 @ =0x00002abc + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bls _080C076A + adds r0, r4, 0 + bl sub_80BEC10 +_080C076A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080C0756 + bl sub_80BEC40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0780: .4byte gSaveBlock1 +_080C0784: .4byte 0x00002abc + thumb_func_end sub_80C0750 + + thumb_func_start sub_80C0788 +sub_80C0788: @ 80C0788 + push {r4,lr} + ldr r0, _080C07B8 @ =0x00000804 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C07B2 + movs r1, 0 + ldr r4, _080C07BC @ =gSaveBlock1 + ldr r3, _080C07C0 @ =0x00002abd + movs r2, 0 +_080C07A0: + lsls r0, r1, 2 + adds r0, r4 + adds r0, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080C07A0 +_080C07B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C07B8: .4byte 0x00000804 +_080C07BC: .4byte gSaveBlock1 +_080C07C0: .4byte 0x00002abd + thumb_func_end sub_80C0788 + + thumb_func_start sub_80C07C4 +sub_80C07C4: @ 80C07C4 + push {lr} + ldr r2, _080C07F8 @ =gSaveBlock1 + ldr r0, _080C07FC @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldr r2, _080C0800 @ =0x00002739 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C07E0 + b _080C08F8 +_080C07E0: + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x28 + bls _080C07EE + b _080C08F8 +_080C07EE: + lsls r0, 2 + ldr r1, _080C0804 @ =_080C0808 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C07F8: .4byte gSaveBlock1 +_080C07FC: .4byte gUnknown_0202E8CC +_080C0800: .4byte 0x00002739 +_080C0804: .4byte _080C0808 + .align 2, 0 +_080C0808: + .4byte _080C08AC + .4byte _080C08B2 + .4byte _080C08B8 + .4byte _080C08BE + .4byte _080C08E2 + .4byte _080C08CA + .4byte _080C08D0 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08D6 + .4byte _080C08DC + .4byte _080C08E8 + .4byte _080C08EE + .4byte _080C08F4 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08F8 + .4byte _080C08C4 +_080C08AC: + bl DoTVShowPokemonFanClubLetter + b _080C08F8 +_080C08B2: + bl DoTVShowRecentHappenings + b _080C08F8 +_080C08B8: + bl DoTVShowPokemonFanClubOpinions + b _080C08F8 +_080C08BE: + bl nullsub_22 + b _080C08F8 +_080C08C4: + bl DoTVShowPokemonNewsMassOutbreak + b _080C08F8 +_080C08CA: + bl DoTVShowBravoTrainerPokemonProfile + b _080C08F8 +_080C08D0: + bl sub_80C0B9C + b _080C08F8 +_080C08D6: + bl DoTVShowPokemonTodaySuccessfulCapture + b _080C08F8 +_080C08DC: + bl DoTVShowTodaysSmartShopper + b _080C08F8 +_080C08E2: + bl DoTVShowTheNameRaterShow + b _080C08F8 +_080C08E8: + bl DoTVShowPokemonTodayFailedCapture + b _080C08F8 +_080C08EE: + bl DoTVShowPokemonAngler + b _080C08F8 +_080C08F4: + bl DoTVShowTheWorldOfMasters +_080C08F8: + pop {r0} + bx r0 + thumb_func_end sub_80C07C4 + + thumb_func_start sub_80C08FC +sub_80C08FC: @ 80C08FC + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 24 + lsrs r4, 24 + bl StringCopy + cmp r4, 0x1 + bhi _080C0914 + adds r0, r5, 0 + movs r1, 0x1 + bl ConvertInternationalString +_080C0914: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C08FC + + thumb_func_start DoTVShowBravoTrainerPokemonProfile +DoTVShowBravoTrainerPokemonProfile: @ 80C091C + push {r4,r5,lr} + ldr r0, _080C0948 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C094C @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r1, _080C0950 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0954 @ =gUnknown_020387E8 + ldrb r5, [r0] + cmp r5, 0x8 + bls _080C093C + b _080C0B7A +_080C093C: + lsls r0, r5, 2 + ldr r1, _080C0958 @ =_080C095C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0948: .4byte gUnknown_0202E8CC +_080C094C: .4byte gSaveBlock1 + 0x2738 +_080C0950: .4byte gScriptResult +_080C0954: .4byte gUnknown_020387E8 +_080C0958: .4byte _080C095C + .align 2, 0 +_080C095C: + .4byte _080C0980 + .4byte _080C09D8 + .4byte _080C0A10 + .4byte _080C0A40 + .4byte _080C0A74 + .4byte _080C0AA8 + .4byte _080C0AEC + .4byte _080C0B34 + .4byte _080C0B64 +_080C0980: + ldr r0, _080C09C0 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + ldrb r1, [r4, 0x13] + lsls r1, 27 + lsrs r1, 30 + movs r0, 0x2 + bl sub_80BEF10 + ldrh r1, [r4, 0x2] + movs r0, 0xB + muls r0, r1 + ldr r1, _080C09C4 @ =gSpeciesNames + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _080C09CC + ldr r1, _080C09C8 @ =gUnknown_020387E8 + movs r0, 0x8 + b _080C0B78 + .align 2, 0 +_080C09C0: .4byte gStringVar1 +_080C09C4: .4byte gSpeciesNames +_080C09C8: .4byte gUnknown_020387E8 +_080C09CC: + ldr r1, _080C09D4 @ =gUnknown_020387E8 + movs r0, 0x1 + b _080C0B78 + .align 2, 0 +_080C09D4: .4byte gUnknown_020387E8 +_080C09D8: + ldr r0, _080C0A04 @ =gStringVar1 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0A08 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C0A0C @ =gStringVar2 + adds r1, r4, 0 + adds r1, 0x8 + ldrb r2, [r4, 0x1F] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x2 + bl CopyContestCategoryToStringVar + b _080C0B74 + .align 2, 0 +_080C0A04: .4byte gStringVar1 +_080C0A08: .4byte gSpeciesNames +_080C0A0C: .4byte gStringVar2 +_080C0A10: + ldr r0, _080C0A2C @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _080C0A34 + ldr r1, _080C0A30 @ =gUnknown_020387E8 + movs r0, 0x3 + b _080C0B78 + .align 2, 0 +_080C0A2C: .4byte gStringVar1 +_080C0A30: .4byte gUnknown_020387E8 +_080C0A34: + ldr r1, _080C0A3C @ =gUnknown_020387E8 + movs r0, 0x4 + b _080C0B78 + .align 2, 0 +_080C0A3C: .4byte gUnknown_020387E8 +_080C0A40: + ldr r0, _080C0A68 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0A6C @ =gStringVar2 + ldrh r1, [r4, 0x4] + bl sub_80EB3FC + ldrb r1, [r4, 0x13] + lsls r1, 25 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldr r1, _080C0A70 @ =gUnknown_020387E8 + movs r0, 0x5 + b _080C0B78 + .align 2, 0 +_080C0A68: .4byte gStringVar1 +_080C0A6C: .4byte gStringVar2 +_080C0A70: .4byte gUnknown_020387E8 +_080C0A74: + ldr r0, _080C0A9C @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0AA0 @ =gStringVar2 + ldrh r1, [r4, 0x4] + bl sub_80EB3FC + ldrb r1, [r4, 0x13] + lsls r1, 25 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldr r1, _080C0AA4 @ =gUnknown_020387E8 + movs r0, 0x5 + b _080C0B78 + .align 2, 0 +_080C0A9C: .4byte gStringVar1 +_080C0AA0: .4byte gStringVar2 +_080C0AA4: .4byte gUnknown_020387E8 +_080C0AA8: + ldr r0, _080C0AD4 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldrb r1, [r4, 0x13] + lsls r1, 29 + lsrs r1, 29 + movs r0, 0x1 + bl CopyContestCategoryToStringVar + ldr r0, _080C0AD8 @ =gStringVar3 + ldrh r1, [r4, 0x6] + bl sub_80EB3FC + ldrh r0, [r4, 0x14] + cmp r0, 0 + beq _080C0AE0 + ldr r1, _080C0ADC @ =gUnknown_020387E8 + movs r0, 0x6 + b _080C0B78 + .align 2, 0 +_080C0AD4: .4byte gStringVar1 +_080C0AD8: .4byte gStringVar3 +_080C0ADC: .4byte gUnknown_020387E8 +_080C0AE0: + ldr r1, _080C0AE8 @ =gUnknown_020387E8 + movs r0, 0x7 + b _080C0B78 + .align 2, 0 +_080C0AE8: .4byte gUnknown_020387E8 +_080C0AEC: + ldr r0, _080C0B1C @ =gStringVar1 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B20 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C0B24 @ =gStringVar2 + ldrh r2, [r4, 0x14] + movs r1, 0xD + muls r1, r2 + ldr r2, _080C0B28 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r0, _080C0B2C @ =gStringVar3 + ldrh r1, [r4, 0x6] + bl sub_80EB3FC + ldr r1, _080C0B30 @ =gUnknown_020387E8 + movs r0, 0x7 + b _080C0B78 + .align 2, 0 +_080C0B1C: .4byte gStringVar1 +_080C0B20: .4byte gSpeciesNames +_080C0B24: .4byte gStringVar2 +_080C0B28: .4byte gMoveNames +_080C0B2C: .4byte gStringVar3 +_080C0B30: .4byte gUnknown_020387E8 +_080C0B34: + ldr r0, _080C0B58 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x16 + ldrb r2, [r4, 0x1E] + bl sub_80C08FC + ldr r0, _080C0B5C @ =gStringVar2 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B60 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + bl TVShowDone + b _080C0B7A + .align 2, 0 +_080C0B58: .4byte gStringVar1 +_080C0B5C: .4byte gStringVar2 +_080C0B60: .4byte gSpeciesNames +_080C0B64: + ldr r0, _080C0B8C @ =gStringVar1 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0B90 @ =gSpeciesNames + adds r1, r2 + bl StringCopy +_080C0B74: + ldr r1, _080C0B94 @ =gUnknown_020387E8 + movs r0, 0x2 +_080C0B78: + strb r0, [r1] +_080C0B7A: + ldr r0, _080C0B98 @ =gUnknown_083D1524 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0B8C: .4byte gStringVar1 +_080C0B90: .4byte gSpeciesNames +_080C0B94: .4byte gUnknown_020387E8 +_080C0B98: .4byte gUnknown_083D1524 + thumb_func_end DoTVShowBravoTrainerPokemonProfile + + thumb_func_start sub_80C0B9C +sub_80C0B9C: @ 80C0B9C + push {r4,r5,lr} + ldr r0, _080C0BC8 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r1, _080C0BD0 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0BD4 @ =gUnknown_020387E8 + ldrb r5, [r0] + adds r2, r0, 0 + cmp r5, 0xE + bls _080C0BBE + b _080C0DDE +_080C0BBE: + lsls r0, r5, 2 + ldr r1, _080C0BD8 @ =_080C0BDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0BC8: .4byte gUnknown_0202E8CC +_080C0BCC: .4byte gSaveBlock1 + 0x2738 +_080C0BD0: .4byte gScriptResult +_080C0BD4: .4byte gUnknown_020387E8 +_080C0BD8: .4byte _080C0BDC + .align 2, 0 +_080C0BDC: + .4byte _080C0C18 + .4byte _080C0C5C + .4byte _080C0C8C + .4byte _080C0CB0 + .4byte _080C0CDC + .4byte _080C0D24 + .4byte _080C0D30 + .4byte _080C0D3C + .4byte _080C0D42 + .4byte _080C0D42 + .4byte _080C0D42 + .4byte _080C0D5C + .4byte _080C0D88 + .4byte _080C0D88 + .4byte _080C0DC0 +_080C0C18: + ldr r0, _080C0C40 @ =gStringVar1 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0C44 @ =gStringVar2 + ldrh r2, [r4, 0xA] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0C48 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrh r0, [r4, 0x16] + cmp r0, 0x6 + bls _080C0C50 + ldr r1, _080C0C4C @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C40: .4byte gStringVar1 +_080C0C44: .4byte gStringVar2 +_080C0C48: .4byte gSpeciesNames +_080C0C4C: .4byte gUnknown_020387E8 +_080C0C50: + ldr r1, _080C0C58 @ =gUnknown_020387E8 + movs r0, 0x2 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C58: .4byte gUnknown_020387E8 +_080C0C5C: + ldrb r1, [r4, 0x1A] + movs r0, 0 + bl sub_80BF088 + ldrh r1, [r4, 0x16] + movs r0, 0x1 + bl sub_80BF088 + ldrb r0, [r4, 0x1C] + cmp r0, 0x1 + bne _080C0C80 + ldr r1, _080C0C7C @ =gUnknown_020387E8 + movs r0, 0x3 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C7C: .4byte gUnknown_020387E8 +_080C0C80: + ldr r1, _080C0C88 @ =gUnknown_020387E8 + movs r0, 0x4 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0C88: .4byte gUnknown_020387E8 +_080C0C8C: + ldr r0, _080C0CAC @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldrh r1, [r4, 0x16] + adds r1, 0x1 + movs r0, 0x1 + bl sub_80BF088 +_080C0CA2: + ldrb r0, [r4, 0x1B] + cmp r0, 0 + beq _080C0CFE + b _080C0D18 + .align 2, 0 +_080C0CAC: .4byte gStringVar1 +_080C0CB0: + ldr r0, _080C0CD0 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0CD4 @ =gStringVar2 + ldrh r2, [r4, 0x14] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0CD8 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + b _080C0CA2 + .align 2, 0 +_080C0CD0: .4byte gStringVar1 +_080C0CD4: .4byte gStringVar2 +_080C0CD8: .4byte gSpeciesNames +_080C0CDC: + ldr r0, _080C0D08 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0D0C @ =gStringVar2 + ldrh r2, [r4, 0x14] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0D10 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _080C0D18 +_080C0CFE: + ldr r1, _080C0D14 @ =gUnknown_020387E8 + movs r0, 0x5 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D08: .4byte gStringVar1 +_080C0D0C: .4byte gStringVar2 +_080C0D10: .4byte gSpeciesNames +_080C0D14: .4byte gUnknown_020387E8 +_080C0D18: + ldr r1, _080C0D20 @ =gUnknown_020387E8 + movs r0, 0x6 + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D20: .4byte gUnknown_020387E8 +_080C0D24: + ldr r0, _080C0D2C @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0xC + b _080C0D46 + .align 2, 0 +_080C0D2C: .4byte gStringVar1 +_080C0D30: + ldr r0, _080C0D38 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0xC + b _080C0D46 + .align 2, 0 +_080C0D38: .4byte gStringVar1 +_080C0D3C: + movs r0, 0xB + strb r0, [r2] + b _080C0DDE +_080C0D42: + ldr r0, _080C0D54 @ =gStringVar1 + adds r1, r4, 0x2 +_080C0D46: + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r1, _080C0D58 @ =gUnknown_020387E8 + movs r0, 0xB + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D54: .4byte gStringVar1 +_080C0D58: .4byte gUnknown_020387E8 +_080C0D5C: + ldr r0, _080C0D74 @ =gStringVar1 + ldrh r1, [r4, 0x18] + bl sub_80EB3FC + ldrb r0, [r4, 0x1B] + cmp r0, 0 + bne _080C0D7C + ldr r1, _080C0D78 @ =gUnknown_020387E8 + movs r0, 0xC + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D74: .4byte gStringVar1 +_080C0D78: .4byte gUnknown_020387E8 +_080C0D7C: + ldr r1, _080C0D84 @ =gUnknown_020387E8 + movs r0, 0xD + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0D84: .4byte gUnknown_020387E8 +_080C0D88: + ldr r0, _080C0DB0 @ =gStringVar1 + ldrh r1, [r4, 0x18] + bl sub_80EB3FC + ldr r0, _080C0DB4 @ =gStringVar2 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0DB8 @ =gStringVar3 + adds r1, r4, 0 + adds r1, 0xC + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r1, _080C0DBC @ =gUnknown_020387E8 + movs r0, 0xE + strb r0, [r1] + b _080C0DDE + .align 2, 0 +_080C0DB0: .4byte gStringVar1 +_080C0DB4: .4byte gStringVar2 +_080C0DB8: .4byte gStringVar3 +_080C0DBC: .4byte gUnknown_020387E8 +_080C0DC0: + ldr r0, _080C0DF0 @ =gStringVar1 + adds r1, r4, 0x2 + ldrb r2, [r4, 0x1D] + bl sub_80C08FC + ldr r0, _080C0DF4 @ =gStringVar2 + ldrh r2, [r4, 0xA] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C0DF8 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + bl TVShowDone +_080C0DDE: + ldr r0, _080C0DFC @ =gUnknown_083D1548 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C0DF0: .4byte gStringVar1 +_080C0DF4: .4byte gStringVar2 +_080C0DF8: .4byte gSpeciesNames +_080C0DFC: .4byte gUnknown_083D1548 + thumb_func_end sub_80C0B9C + + thumb_func_start DoTVShowTodaysSmartShopper +DoTVShowTodaysSmartShopper: @ 80C0E00 + push {r4-r6,lr} + ldr r0, _080C0E2C @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738 + adds r5, r0, r1 + ldr r1, _080C0E34 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C0E38 @ =gUnknown_020387E8 + ldrb r6, [r0] + adds r2, r0, 0 + cmp r6, 0xC + bls _080C0E22 + b _080C1014 +_080C0E22: + lsls r0, r6, 2 + ldr r1, _080C0E3C @ =_080C0E40 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C0E2C: .4byte gUnknown_0202E8CC +_080C0E30: .4byte gSaveBlock1 + 0x2738 +_080C0E34: .4byte gScriptResult +_080C0E38: .4byte gUnknown_020387E8 +_080C0E3C: .4byte _080C0E40 + .align 2, 0 +_080C0E40: + .4byte _080C0E74 + .4byte _080C0EB0 + .4byte _080C0EF8 + .4byte _080C0F0A + .4byte _080C0EF8 + .4byte _080C0EF8 + .4byte _080C0F34 + .4byte _080C0F64 + .4byte _080C0F94 + .4byte _080C0FA0 + .4byte _080C0FAE + .4byte _080C0FC0 + .4byte _080C1004 +_080C0E74: + ldr r0, _080C0E98 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r0, _080C0E9C @ =gStringVar2 + ldrb r1, [r5, 0x12] + movs r2, 0 + bl sub_80FBFB4 + ldrh r0, [r5, 0xC] + cmp r0, 0xFE + bls _080C0EA4 + ldr r1, _080C0EA0 @ =gUnknown_020387E8 + movs r0, 0xB + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0E98: .4byte gStringVar1 +_080C0E9C: .4byte gStringVar2 +_080C0EA0: .4byte gUnknown_020387E8 +_080C0EA4: + ldr r1, _080C0EAC @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0EAC: .4byte gUnknown_020387E8 +_080C0EB0: + ldr r0, _080C0EEC @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C0EF0 @ =gStringVar2 + ldrh r0, [r5, 0x6] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0xC] + movs r0, 0x2 + bl sub_80BF088 + ldr r4, _080C0EF4 @ =gUnknown_020387E8 + bl Random + ldrb r2, [r4] + adds r2, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, r2 + strb r0, [r4] + b _080C1014 + .align 2, 0 +_080C0EEC: .4byte gStringVar1 +_080C0EF0: .4byte gStringVar2 +_080C0EF4: .4byte gUnknown_020387E8 +_080C0EF8: + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _080C0F04 + movs r0, 0x6 + strb r0, [r2] + b _080C1014 +_080C0F04: + movs r0, 0xA + strb r0, [r2] + b _080C1014 +_080C0F0A: + ldrh r1, [r5, 0xC] + adds r1, 0x1 + movs r0, 0x2 + bl sub_80BF088 + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _080C0F28 + ldr r1, _080C0F24 @ =gUnknown_020387E8 + movs r0, 0x6 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F24: .4byte gUnknown_020387E8 +_080C0F28: + ldr r1, _080C0F30 @ =gUnknown_020387E8 + movs r0, 0xA + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F30: .4byte gUnknown_020387E8 +_080C0F34: + ldr r4, _080C0F5C @ =gStringVar2 + ldrh r0, [r5, 0x8] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0xE] + movs r0, 0x2 + bl sub_80BF088 + ldrh r0, [r5, 0xA] + cmp r0, 0 + beq _080C0F7C + ldr r1, _080C0F60 @ =gUnknown_020387E8 + movs r0, 0x7 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F5C: .4byte gStringVar2 +_080C0F60: .4byte gUnknown_020387E8 +_080C0F64: + ldr r4, _080C0F8C @ =gStringVar2 + ldrh r0, [r5, 0xA] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrh r1, [r5, 0x10] + movs r0, 0x2 + bl sub_80BF088 +_080C0F7C: + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + beq _080C0FE2 + ldr r1, _080C0F90 @ =gUnknown_020387E8 + movs r0, 0x9 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0F8C: .4byte gStringVar2 +_080C0F90: .4byte gUnknown_020387E8 +_080C0F94: + ldrh r0, [r5, 0xC] + cmp r0, 0xFE + bls _080C0FBA + movs r0, 0xC + strb r0, [r2] + b _080C1014 +_080C0FA0: + movs r0, 0x1 + adds r1, r5, 0 + bl sub_80BF154 + bl TVShowDone + b _080C1014 +_080C0FAE: + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + bne _080C0FBA + movs r0, 0x8 + strb r0, [r2] + b _080C1014 +_080C0FBA: + movs r0, 0x9 + strb r0, [r2] + b _080C1014 +_080C0FC0: + ldr r0, _080C0FEC @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C0FF0 @ =gStringVar2 + ldrh r0, [r5, 0x6] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r0, [r5, 0x2] + cmp r0, 0x1 + bne _080C0FF8 +_080C0FE2: + ldr r1, _080C0FF4 @ =gUnknown_020387E8 + movs r0, 0x8 + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C0FEC: .4byte gStringVar1 +_080C0FF0: .4byte gStringVar2 +_080C0FF4: .4byte gUnknown_020387E8 +_080C0FF8: + ldr r1, _080C1000 @ =gUnknown_020387E8 + movs r0, 0xC + strb r0, [r1] + b _080C1014 + .align 2, 0 +_080C1000: .4byte gUnknown_020387E8 +_080C1004: + ldr r0, _080C1028 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + bl TVShowDone +_080C1014: + ldr r0, _080C102C @ =gUnknown_083D14F0 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1028: .4byte gStringVar1 +_080C102C: .4byte gUnknown_083D14F0 + thumb_func_end DoTVShowTodaysSmartShopper + + thumb_func_start DoTVShowTheNameRaterShow +DoTVShowTheNameRaterShow: @ 80C1030 + push {r4-r7,lr} + sub sp, 0x8 + ldr r0, _080C1060 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738 + adds r6, r0, r1 + ldr r1, _080C1068 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C106C @ =gUnknown_020387E8 + ldrb r7, [r0] + adds r2, r0, 0 + cmp r7, 0x12 + bls _080C1054 + b _080C138A +_080C1054: + lsls r0, r7, 2 + ldr r1, _080C1070 @ =_080C1074 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1060: .4byte gUnknown_0202E8CC +_080C1064: .4byte gSaveBlock1 + 0x2738 +_080C1068: .4byte gScriptResult +_080C106C: .4byte gUnknown_020387E8 +_080C1070: .4byte _080C1074 + .align 2, 0 +_080C1074: + .4byte _080C10C0 + .4byte _080C1108 + .4byte _080C112A + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1108 + .4byte _080C1170 + .4byte _080C1170 + .4byte _080C1170 + .4byte _080C136C + .4byte _080C11CC + .4byte _080C1228 + .4byte _080C127C + .4byte _080C12D4 + .4byte _080C1314 + .4byte _080C1370 +_080C10C0: + ldr r0, _080C10F4 @ =gStringVar1 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + ldr r0, _080C10F8 @ =gStringVar2 + ldrh r2, [r6, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C10FC @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C1100 @ =gStringVar3 + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldr r4, _080C1104 @ =gUnknown_020387E8 + adds r0, r6, 0 + bl sub_80BF7E8 + adds r0, 0x1 + strb r0, [r4] + b _080C138A + .align 2, 0 +_080C10F4: .4byte gStringVar1 +_080C10F8: .4byte gStringVar2 +_080C10FC: .4byte gSpeciesNames +_080C1100: .4byte gStringVar3 +_080C1104: .4byte gUnknown_020387E8 +_080C1108: + ldrb r0, [r6, 0x1A] + cmp r0, 0 + bne _080C1114 + movs r0, 0x9 + strb r0, [r2] + b _080C138A +_080C1114: + cmp r0, 0x1 + bne _080C111E + movs r0, 0xA + strb r0, [r2] + b _080C138A +_080C111E: + cmp r0, 0x2 + beq _080C1124 + b _080C138A +_080C1124: + movs r0, 0xB + strb r0, [r2] + b _080C138A +_080C112A: + ldr r0, _080C1144 @ =gStringVar1 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + ldrb r0, [r6, 0x1A] + cmp r0, 0 + bne _080C114C + ldr r1, _080C1148 @ =gUnknown_020387E8 + movs r0, 0x9 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1144: .4byte gStringVar1 +_080C1148: .4byte gUnknown_020387E8 +_080C114C: + cmp r0, 0x1 + bne _080C115C + ldr r1, _080C1158 @ =gUnknown_020387E8 + movs r0, 0xA + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1158: .4byte gUnknown_020387E8 +_080C115C: + cmp r0, 0x2 + beq _080C1162 + b _080C138A +_080C1162: + ldr r1, _080C116C @ =gUnknown_020387E8 + movs r0, 0xB + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C116C: .4byte gUnknown_020387E8 +_080C1170: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C11BC @ =gStringVar3 + ldr r4, _080C11C0 @ =gStringVar1 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C11C4 @ =gStringVar2 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + adds r0, r4, 0 + bl sub_80C08FC + ldr r1, _080C11C8 @ =gUnknown_020387E8 + movs r0, 0xC + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C11BC: .4byte gStringVar3 +_080C11C0: .4byte gStringVar1 +_080C11C4: .4byte gStringVar2 +_080C11C8: .4byte gUnknown_020387E8 +_080C11CC: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1218 @ =gStringVar3 + ldr r4, _080C121C @ =gStringVar1 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0 + bl sub_80BF820 + ldr r0, _080C1220 @ =gStringVar2 + ldrb r2, [r6, 0x1E] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + adds r0, r4, 0 + bl sub_80C08FC + ldr r1, _080C1224 @ =gUnknown_020387E8 + movs r0, 0xE + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1218: .4byte gStringVar3 +_080C121C: .4byte gStringVar1 +_080C1220: .4byte gStringVar2 +_080C1224: .4byte gUnknown_020387E8 +_080C1228: + movs r5, 0 + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0 + bl sub_80BF820 + ldr r0, _080C1270 @ =gStringVar3 + ldr r4, _080C1274 @ =gStringVar1 + ldrb r2, [r6, 0x1E] + adds r1, r4, 0 + bl sub_80C08FC + str r5, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1278 @ =gStringVar2 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + adds r0, r4, 0 + bl sub_80C08FC + b _080C1354 + .align 2, 0 +_080C1270: .4byte gStringVar3 +_080C1274: .4byte gStringVar1 +_080C1278: .4byte gStringVar2 +_080C127C: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C12C4 @ =gStringVar1 + ldr r4, _080C12C8 @ =gStringVar2 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + ldrh r1, [r6, 0x2] + movs r0, 0xB + muls r1, r0 + ldr r0, _080C12CC @ =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldrh r0, [r6, 0x2] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80BF820 + ldr r1, _080C12D0 @ =gUnknown_020387E8 + movs r0, 0x10 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C12C4: .4byte gStringVar1 +_080C12C8: .4byte gStringVar2 +_080C12CC: .4byte gSpeciesNames +_080C12D0: .4byte gUnknown_020387E8 +_080C12D4: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0x3 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C1308 @ =gStringVar3 + ldr r1, _080C130C @ =gStringVar1 + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldrh r0, [r6, 0x2] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl sub_80BF820 + ldr r1, _080C1310 @ =gUnknown_020387E8 + movs r0, 0x11 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C1308: .4byte gStringVar3 +_080C130C: .4byte gStringVar1 +_080C1310: .4byte gUnknown_020387E8 +_080C1314: + movs r0, 0 + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1 + bl sub_80BF820 + ldr r0, _080C135C @ =gStringVar1 + ldr r4, _080C1360 @ =gStringVar2 + ldrb r2, [r6, 0x1F] + adds r1, r4, 0 + bl sub_80C08FC + ldrh r0, [r6, 0x1C] + str r0, [sp] + str r6, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80BF820 + ldrh r1, [r6, 0x1C] + movs r0, 0xB + muls r1, r0 + ldr r0, _080C1364 @ =gSpeciesNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy +_080C1354: + ldr r1, _080C1368 @ =gUnknown_020387E8 + movs r0, 0x12 + strb r0, [r1] + b _080C138A + .align 2, 0 +_080C135C: .4byte gStringVar1 +_080C1360: .4byte gStringVar2 +_080C1364: .4byte gSpeciesNames +_080C1368: .4byte gUnknown_020387E8 +_080C136C: + movs r7, 0x12 + strb r7, [r2] +_080C1370: + ldr r0, _080C13A0 @ =gStringVar1 + adds r1, r6, 0x4 + ldrb r2, [r6, 0x1F] + bl sub_80C08FC + ldr r0, _080C13A4 @ =gStringVar2 + adds r1, r6, 0 + adds r1, 0xF + ldrb r2, [r6, 0x1E] + bl sub_80C08FC + bl TVShowDone +_080C138A: + ldr r0, _080C13A8 @ =gUnknown_083D1584 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C13A0: .4byte gStringVar1 +_080C13A4: .4byte gStringVar2 +_080C13A8: .4byte gUnknown_083D1584 + thumb_func_end DoTVShowTheNameRaterShow + + thumb_func_start DoTVShowPokemonTodaySuccessfulCapture +DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC + push {r4-r6,lr} + ldr r0, _080C13D8 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738 + adds r5, r0, r1 + ldr r1, _080C13E0 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C13E4 @ =gUnknown_020387E8 + ldrb r6, [r0] + adds r2, r0, 0 + cmp r6, 0xB + bls _080C13CE + b _080C15DC +_080C13CE: + lsls r0, r6, 2 + ldr r1, _080C13E8 @ =_080C13EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C13D8: .4byte gUnknown_0202E8CC +_080C13DC: .4byte gSaveBlock1 + 0x2738 +_080C13E0: .4byte gScriptResult +_080C13E4: .4byte gUnknown_020387E8 +_080C13E8: .4byte _080C13EC + .align 2, 0 +_080C13EC: + .4byte _080C141C + .4byte _080C1470 + .4byte _080C1476 + .4byte _080C14B0 + .4byte _080C14E8 + .4byte _080C14EE + .4byte _080C1524 + .4byte _080C1578 + .4byte _080C1578 + .4byte _080C15A8 + .4byte _080C15A8 + .4byte _080C15D8 +_080C141C: + ldr r0, _080C1450 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1454 @ =gStringVar2 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1458 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C145C @ =gStringVar3 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldrb r0, [r5, 0xF] + cmp r0, 0x1 + bne _080C1464 + ldr r1, _080C1460 @ =gUnknown_020387E8 + movs r0, 0x5 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C1450: .4byte gStringVar1 +_080C1454: .4byte gStringVar2 +_080C1458: .4byte gSpeciesNames +_080C145C: .4byte gStringVar3 +_080C1460: .4byte gUnknown_020387E8 +_080C1464: + ldr r1, _080C146C @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C146C: .4byte gUnknown_020387E8 +_080C1470: + movs r0, 0x2 + strb r0, [r2] + b _080C15DC +_080C1476: + ldr r4, _080C149C @ =gStringVar2 + ldrb r0, [r5, 0xF] + bl itemid_get_item + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldrb r1, [r5, 0x12] + movs r0, 0x2 + bl sub_80BF088 + ldrb r0, [r5, 0x12] + cmp r0, 0x3 + bhi _080C14A4 + ldr r1, _080C14A0 @ =gUnknown_020387E8 + movs r0, 0x3 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C149C: .4byte gStringVar2 +_080C14A0: .4byte gUnknown_020387E8 +_080C14A4: + ldr r1, _080C14AC @ =gUnknown_020387E8 + movs r0, 0x4 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C14AC: .4byte gUnknown_020387E8 +_080C14B0: + ldr r0, _080C14D8 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C14DC @ =gStringVar2 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C14E0 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C14E4 @ =gStringVar3 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + b _080C150A + .align 2, 0 +_080C14D8: .4byte gStringVar1 +_080C14DC: .4byte gStringVar2 +_080C14E0: .4byte gSpeciesNames +_080C14E4: .4byte gStringVar3 +_080C14E8: + movs r0, 0x6 + strb r0, [r2] + b _080C15DC +_080C14EE: + ldr r0, _080C1514 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1518 @ =gStringVar2 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C151C @ =gSpeciesNames + adds r1, r2 + bl StringCopy +_080C150A: + ldr r1, _080C1520 @ =gUnknown_020387E8 + movs r0, 0x6 + strb r0, [r1] + b _080C15DC + .align 2, 0 +_080C1514: .4byte gStringVar1 +_080C1518: .4byte gStringVar2 +_080C151C: .4byte gSpeciesNames +_080C1520: .4byte gUnknown_020387E8 +_080C1524: + ldr r0, _080C1564 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x13 + ldrb r2, [r5, 0x2] + bl sub_80C08FC + ldr r0, _080C1568 @ =gStringVar2 + ldrh r2, [r5, 0x10] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C156C @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C1570 @ =gStringVar3 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldr r4, _080C1574 @ =gUnknown_020387E8 + bl Random + ldrb r2, [r4] + adds r2, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, r2 + strb r0, [r4] + b _080C15DC + .align 2, 0 +_080C1564: .4byte gStringVar1 +_080C1568: .4byte gStringVar2 +_080C156C: .4byte gSpeciesNames +_080C1570: .4byte gStringVar3 +_080C1574: .4byte gUnknown_020387E8 +_080C1578: + ldr r0, _080C159C @ =gStringVar1 + ldrh r1, [r5, 0x10] + movs r4, 0xB + muls r1, r4 + ldr r2, _080C15A0 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C15A4 @ =gStringVar2 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC + ldrh r1, [r5, 0x10] + movs r0, 0x2 + bl sub_80BF638 + b _080C15C2 + .align 2, 0 +_080C159C: .4byte gStringVar1 +_080C15A0: .4byte gSpeciesNames +_080C15A4: .4byte gStringVar2 +_080C15A8: + ldr r0, _080C15C8 @ =gStringVar1 + ldrh r1, [r5, 0x10] + movs r4, 0xB + muls r1, r4 + ldr r2, _080C15CC @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C15D0 @ =gStringVar2 + adds r1, r5, 0x4 + ldrb r2, [r5, 0x3] + bl sub_80C08FC +_080C15C2: + ldr r0, _080C15D4 @ =gUnknown_020387E8 + strb r4, [r0] + b _080C15DC + .align 2, 0 +_080C15C8: .4byte gStringVar1 +_080C15CC: .4byte gSpeciesNames +_080C15D0: .4byte gStringVar2 +_080C15D4: .4byte gUnknown_020387E8 +_080C15D8: + bl TVShowDone +_080C15DC: + ldr r0, _080C15F0 @ =gUnknown_083D14C0 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C15F0: .4byte gUnknown_083D14C0 + thumb_func_end DoTVShowPokemonTodaySuccessfulCapture + + thumb_func_start DoTVShowPokemonTodayFailedCapture +DoTVShowPokemonTodayFailedCapture: @ 80C15F4 + push {r4,r5,lr} + ldr r0, _080C1620 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r1, _080C1628 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C162C @ =gUnknown_020387E8 + ldrb r5, [r0] + cmp r5, 0x6 + bls _080C1614 + b _080C173C +_080C1614: + lsls r0, r5, 2 + ldr r1, _080C1630 @ =_080C1634 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1620: .4byte gUnknown_0202E8CC +_080C1624: .4byte gSaveBlock1 + 0x2738 +_080C1628: .4byte gScriptResult +_080C162C: .4byte gUnknown_020387E8 +_080C1630: .4byte _080C1634 + .align 2, 0 +_080C1634: + .4byte _080C1650 + .4byte _080C1684 + .4byte _080C16D8 + .4byte _080C16D8 + .4byte _080C171C + .4byte _080C171C + .4byte _080C1738 +_080C1650: + ldr r0, _080C1674 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r0, _080C1678 @ =gStringVar2 + ldrh r2, [r4, 0xC] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C167C @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r1, _080C1680 @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1674: .4byte gStringVar1 +_080C1678: .4byte gStringVar2 +_080C167C: .4byte gSpeciesNames +_080C1680: .4byte gUnknown_020387E8 +_080C1684: + ldr r0, _080C16B8 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r0, _080C16BC @ =gStringVar2 + ldrb r1, [r4, 0x12] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C16C0 @ =gStringVar3 + ldrh r2, [r4, 0xE] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C16C4 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrb r0, [r4, 0x11] + cmp r0, 0x1 + bne _080C16CC + ldr r1, _080C16C8 @ =gUnknown_020387E8 + movs r0, 0x3 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C16B8: .4byte gStringVar1 +_080C16BC: .4byte gStringVar2 +_080C16C0: .4byte gStringVar3 +_080C16C4: .4byte gSpeciesNames +_080C16C8: .4byte gUnknown_020387E8 +_080C16CC: + ldr r1, _080C16D4 @ =gUnknown_020387E8 + movs r0, 0x2 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C16D4: .4byte gUnknown_020387E8 +_080C16D8: + ldr r0, _080C1708 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldrb r1, [r4, 0x10] + movs r0, 0x1 + bl sub_80BF088 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080C1710 + ldr r1, _080C170C @ =gUnknown_020387E8 + movs r0, 0x5 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1708: .4byte gStringVar1 +_080C170C: .4byte gUnknown_020387E8 +_080C1710: + ldr r1, _080C1718 @ =gUnknown_020387E8 + movs r0, 0x4 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1718: .4byte gUnknown_020387E8 +_080C171C: + ldr r0, _080C1730 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x2] + bl sub_80C08FC + ldr r1, _080C1734 @ =gUnknown_020387E8 + movs r0, 0x6 + strb r0, [r1] + b _080C173C + .align 2, 0 +_080C1730: .4byte gStringVar1 +_080C1734: .4byte gUnknown_020387E8 +_080C1738: + bl TVShowDone +_080C173C: + ldr r0, _080C1750 @ =gUnknown_083D15D0 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1750: .4byte gUnknown_083D15D0 + thumb_func_end DoTVShowPokemonTodayFailedCapture + + thumb_func_start DoTVShowPokemonFanClubLetter +DoTVShowPokemonFanClubLetter: @ 80C1754 + push {r4-r7,lr} + ldr r0, _080C1780 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738 + adds r5, r0, r1 + ldr r1, _080C1788 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C178C @ =gUnknown_020387E8 + ldrb r7, [r0] + adds r6, r0, 0 + cmp r7, 0x33 + bls _080C1776 + b _080C1960 +_080C1776: + lsls r0, r7, 2 + ldr r1, _080C1790 @ =_080C1794 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1780: .4byte gUnknown_0202E8CC +_080C1784: .4byte gSaveBlock1 + 0x2738 +_080C1788: .4byte gScriptResult +_080C178C: .4byte gUnknown_020387E8 +_080C1790: .4byte _080C1794 + .align 2, 0 +_080C1794: + .4byte _080C1864 + .4byte _080C1898 + .4byte _080C18C4 + .4byte _080C18CA + .4byte _080C18E2 + .4byte _080C18E2 + .4byte _080C18E2 + .4byte _080C18F4 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1960 + .4byte _080C1916 + .4byte _080C193C +_080C1864: + ldr r0, _080C1888 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x10 + ldrb r2, [r5, 0x18] + bl sub_80C08FC + ldr r0, _080C188C @ =gStringVar2 + ldrh r2, [r5, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1890 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r1, _080C1894 @ =gUnknown_020387E8 + movs r0, 0x32 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C1888: .4byte gStringVar1 +_080C188C: .4byte gStringVar2 +_080C1890: .4byte gSpeciesNames +_080C1894: .4byte gUnknown_020387E8 +_080C1898: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r2, r0, 0x1 + cmp r2, 0x1 + bne _080C18B8 + ldr r1, _080C18B4 @ =gUnknown_020387E8 + movs r0, 0x2 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18B4: .4byte gUnknown_020387E8 +_080C18B8: + ldr r1, _080C18C0 @ =gUnknown_020387E8 + adds r0, r2, 0x2 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18C0: .4byte gUnknown_020387E8 +_080C18C4: + movs r0, 0x33 + strb r0, [r6] + b _080C1960 +_080C18CA: + bl Random + ldrb r4, [r6] + adds r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, r4 + strb r0, [r6] + b _080C1960 +_080C18E2: + adds r0, r5, 0 + bl sub_80BF79C + ldr r1, _080C18F0 @ =gUnknown_020387E8 + movs r0, 0x7 + strb r0, [r1] + b _080C1960 + .align 2, 0 +_080C18F0: .4byte gUnknown_020387E8 +_080C18F4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + bl __umodsi3 + adds r0, 0x46 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0x2 + adds r1, r2, 0 + bl sub_80BF088 + bl TVShowDone + b _080C1960 +_080C1916: + ldr r4, _080C1934 @ =gStringVar4 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C1938 @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C196C + .align 2, 0 +_080C1934: .4byte gStringVar4 +_080C1938: .4byte gUnknown_020387E8 +_080C193C: + ldr r4, _080C1958 @ =gStringVar4 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C195C @ =gUnknown_020387E8 + movs r0, 0x3 + strb r0, [r1] + b _080C196C + .align 2, 0 +_080C1958: .4byte gStringVar4 +_080C195C: .4byte gUnknown_020387E8 +_080C1960: + ldr r0, _080C1974 @ =gUnknown_083D1470 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080C196C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1974: .4byte gUnknown_083D1470 + thumb_func_end DoTVShowPokemonFanClubLetter + + thumb_func_start DoTVShowRecentHappenings +DoTVShowRecentHappenings: @ 80C1978 + push {r4-r7,lr} + ldr r0, _080C19A4 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738 + adds r5, r0, r1 + ldr r1, _080C19AC @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r0, _080C19B0 @ =gUnknown_020387E8 + ldrb r6, [r0] + adds r7, r0, 0 + cmp r6, 0x32 + bls _080C199A + b _080C1AF0 +_080C199A: + lsls r0, r6, 2 + ldr r1, _080C19B4 @ =_080C19B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C19A4: .4byte gUnknown_0202E8CC +_080C19A8: .4byte gSaveBlock1 + 0x2738 +_080C19AC: .4byte gScriptResult +_080C19B0: .4byte gUnknown_020387E8 +_080C19B4: .4byte _080C19B8 + .align 2, 0 +_080C19B8: + .4byte _080C1A84 + .4byte _080C1AA8 + .4byte _080C1AC0 + .4byte _080C1AC0 + .4byte _080C1AC0 + .4byte _080C1AC6 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1AF0 + .4byte _080C1ACC +_080C1A84: + ldr r0, _080C1AA0 @ =gStringVar1 + adds r1, r5, 0 + adds r1, 0x10 + ldrb r2, [r5, 0x18] + bl sub_80C08FC + adds r0, r5, 0 + bl sub_80BF79C + ldr r1, _080C1AA4 @ =gUnknown_020387E8 + movs r0, 0x32 + strb r0, [r1] + b _080C1AF0 + .align 2, 0 +_080C1AA0: .4byte gStringVar1 +_080C1AA4: .4byte gUnknown_020387E8 +_080C1AA8: + bl Random + ldrb r4, [r7] + adds r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, r4 + strb r0, [r7] + b _080C1AF0 +_080C1AC0: + movs r0, 0x5 + strb r0, [r7] + b _080C1AF0 +_080C1AC6: + bl TVShowDone + b _080C1AF0 +_080C1ACC: + ldr r4, _080C1AE8 @ =gStringVar4 + adds r1, r5, 0x4 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldMessage + ldr r1, _080C1AEC @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C1AFC + .align 2, 0 +_080C1AE8: .4byte gStringVar4 +_080C1AEC: .4byte gUnknown_020387E8 +_080C1AF0: + ldr r0, _080C1B04 @ =gUnknown_083D1490 + lsls r1, r6, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage +_080C1AFC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1B04: .4byte gUnknown_083D1490 + thumb_func_end DoTVShowRecentHappenings + + thumb_func_start DoTVShowPokemonFanClubOpinions +DoTVShowPokemonFanClubOpinions: @ 80C1B08 + push {r4-r6,lr} + ldr r0, _080C1B30 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r1, _080C1B38 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r6, _080C1B3C @ =gUnknown_020387E8 + ldrb r5, [r6] + cmp r5, 0x3 + bgt _080C1B40 + cmp r5, 0x1 + bge _080C1B88 + cmp r5, 0 + beq _080C1B46 + b _080C1BD6 + .align 2, 0 +_080C1B30: .4byte gUnknown_0202E8CC +_080C1B34: .4byte gSaveBlock1 + 0x2738 +_080C1B38: .4byte gScriptResult +_080C1B3C: .4byte gUnknown_020387E8 +_080C1B40: + cmp r5, 0x4 + beq _080C1BC0 + b _080C1BD6 +_080C1B46: + ldr r0, _080C1B78 @ =gStringVar1 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1B7C @ =gStringVar2 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1B80 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C1B84 @ =gStringVar3 + adds r1, r4, 0 + adds r1, 0x10 + ldrb r2, [r4, 0xE] + bl sub_80C08FC + ldrb r0, [r4, 0x4] + lsrs r0, 4 + adds r0, 0x1 + strb r0, [r6] + b _080C1BD6 + .align 2, 0 +_080C1B78: .4byte gStringVar1 +_080C1B7C: .4byte gStringVar2 +_080C1B80: .4byte gSpeciesNames +_080C1B84: .4byte gStringVar3 +_080C1B88: + ldr r0, _080C1BB0 @ =gStringVar1 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1BB4 @ =gStringVar2 + ldrh r2, [r4, 0x2] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1BB8 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldr r0, _080C1BBC @ =gStringVar3 + ldrh r1, [r4, 0x1C] + bl sub_80EB3FC + movs r0, 0x4 + strb r0, [r6] + b _080C1BD6 + .align 2, 0 +_080C1BB0: .4byte gStringVar1 +_080C1BB4: .4byte gStringVar2 +_080C1BB8: .4byte gSpeciesNames +_080C1BBC: .4byte gStringVar3 +_080C1BC0: + ldr r0, _080C1BE8 @ =gStringVar1 + adds r1, r4, 0x5 + ldrb r2, [r4, 0xD] + bl sub_80C08FC + ldr r0, _080C1BEC @ =gStringVar3 + ldrh r1, [r4, 0x1E] + bl sub_80EB3FC + bl TVShowDone +_080C1BD6: + ldr r0, _080C1BF0 @ =gUnknown_083D14A8 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1BE8: .4byte gStringVar1 +_080C1BEC: .4byte gStringVar3 +_080C1BF0: .4byte gUnknown_083D14A8 + thumb_func_end DoTVShowPokemonFanClubOpinions + + thumb_func_start nullsub_22 +nullsub_22: @ 80C1BF4 + bx lr + thumb_func_end nullsub_22 + + thumb_func_start DoTVShowPokemonNewsMassOutbreak +DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8 + push {r4,lr} + ldr r0, _080C1C40 @ =gUnknown_0202E8CC + ldrh r0, [r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738 + adds r4, r0 + ldr r0, _080C1C48 @ =gStringVar1 + ldrb r1, [r4, 0x10] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1C4C @ =gStringVar2 + ldrh r2, [r4, 0xC] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1C50 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + bl TVShowDone + bl StartMassOutbreak + ldr r1, _080C1C54 @ =gUnknown_083D14BC + ldr r0, _080C1C58 @ =gUnknown_020387E8 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl ShowFieldMessage + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C1C40: .4byte gUnknown_0202E8CC +_080C1C44: .4byte gSaveBlock1 + 0x2738 +_080C1C48: .4byte gStringVar1 +_080C1C4C: .4byte gStringVar2 +_080C1C50: .4byte gSpeciesNames +_080C1C54: .4byte gUnknown_083D14BC +_080C1C58: .4byte gUnknown_020387E8 + thumb_func_end DoTVShowPokemonNewsMassOutbreak + + thumb_func_start DoTVShowInSearchOfTrainers +DoTVShowInSearchOfTrainers: @ 80C1C5C + push {r4-r7,lr} + ldr r0, _080C1C7C @ =gScriptResult + movs r1, 0 + strh r1, [r0] + ldr r0, _080C1C80 @ =gUnknown_020387E8 + ldrb r7, [r0] + adds r2, r0, 0 + cmp r7, 0x8 + bls _080C1C70 + b _080C1DF8 +_080C1C70: + lsls r0, r7, 2 + ldr r1, _080C1C84 @ =_080C1C88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C1C7C: .4byte gScriptResult +_080C1C80: .4byte gUnknown_020387E8 +_080C1C84: .4byte _080C1C88 + .align 2, 0 +_080C1C88: + .4byte _080C1CAC + .4byte _080C1CF0 + .4byte _080C1CF6 + .4byte _080C1D44 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB0 + .4byte _080C1DB6 +_080C1CAC: + ldr r0, _080C1CD0 @ =gStringVar1 + ldr r4, _080C1CD4 @ =gSaveBlock1 + ldr r2, _080C1CD8 @ =0x00002b18 + adds r1, r4, r2 + ldrb r1, [r1] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1CDC @ =0x00002b19 + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0x1 + bls _080C1CE4 + ldr r1, _080C1CE0 @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1CD0: .4byte gStringVar1 +_080C1CD4: .4byte gSaveBlock1 +_080C1CD8: .4byte 0x00002b18 +_080C1CDC: .4byte 0x00002b19 +_080C1CE0: .4byte gUnknown_020387E8 +_080C1CE4: + ldr r1, _080C1CEC @ =gUnknown_020387E8 + movs r0, 0x2 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1CEC: .4byte gUnknown_020387E8 +_080C1CF0: + movs r0, 0x2 + strb r0, [r2] + b _080C1DF8 +_080C1CF6: + ldr r0, _080C1D0C @ =gSaveBlock1 + ldr r1, _080C1D10 @ =0x00002b1a + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C1D14 + movs r0, 0x4 + strb r0, [r2] + b _080C1DF8 + .align 2, 0 +_080C1D0C: .4byte gSaveBlock1 +_080C1D10: .4byte 0x00002b1a +_080C1D14: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080C1D22 + movs r0, 0x5 + strb r0, [r2] + b _080C1DF8 +_080C1D22: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080C1D30 + movs r0, 0x6 + strb r0, [r2] + b _080C1DF8 +_080C1D30: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C1D3E + movs r0, 0x7 + strb r0, [r2] + b _080C1DF8 +_080C1D3E: + movs r0, 0x3 + strb r0, [r2] + b _080C1DF8 +_080C1D44: + ldr r0, _080C1D88 @ =gStringVar1 + ldr r4, _080C1D8C @ =gSaveBlock1 + ldr r2, _080C1D90 @ =0x00002b10 + adds r1, r4, r2 + ldrh r1, [r1] + movs r6, 0xB + muls r1, r6 + ldr r5, _080C1D94 @ =gSpeciesNames + adds r1, r5 + bl StringCopy + ldr r0, _080C1D98 @ =gStringVar2 + ldr r2, _080C1D9C @ =0x00002b14 + adds r1, r4, r2 + ldrh r2, [r1] + movs r1, 0xD + muls r1, r2 + ldr r2, _080C1DA0 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r0, _080C1DA4 @ =gStringVar3 + ldr r1, _080C1DA8 @ =0x00002b12 + adds r4, r1 + ldrh r1, [r4] + muls r1, r6 + adds r1, r5 + bl StringCopy + ldr r1, _080C1DAC @ =gUnknown_020387E8 + movs r0, 0x8 + strb r0, [r1] + b _080C1DF8 + .align 2, 0 +_080C1D88: .4byte gStringVar1 +_080C1D8C: .4byte gSaveBlock1 +_080C1D90: .4byte 0x00002b10 +_080C1D94: .4byte gSpeciesNames +_080C1D98: .4byte gStringVar2 +_080C1D9C: .4byte 0x00002b14 +_080C1DA0: .4byte gMoveNames +_080C1DA4: .4byte gStringVar3 +_080C1DA8: .4byte 0x00002b12 +_080C1DAC: .4byte gUnknown_020387E8 +_080C1DB0: + movs r0, 0x8 + strb r0, [r2] + b _080C1DF8 +_080C1DB6: + ldr r0, _080C1E0C @ =gStringVar1 + ldr r4, _080C1E10 @ =gSaveBlock1 + ldr r2, _080C1E14 @ =0x00002b16 + adds r1, r4, r2 + ldrh r1, [r1] + bl sub_80EB3FC + ldr r0, _080C1E18 @ =gStringVar2 + ldr r2, _080C1E1C @ =0x00002b10 + adds r1, r4, r2 + ldrh r1, [r1] + movs r6, 0xB + muls r1, r6 + ldr r5, _080C1E20 @ =gSpeciesNames + adds r1, r5 + bl StringCopy + ldr r0, _080C1E24 @ =gStringVar3 + ldr r1, _080C1E28 @ =0x00002b12 + adds r4, r1 + ldrh r1, [r4] + muls r1, r6 + adds r1, r5 + bl StringCopy + ldr r1, _080C1E2C @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + ldr r1, _080C1E30 @ =gUnknown_020387E8 + movs r0, 0 + strb r0, [r1] + bl TakeTVShowInSearchOfTrainersOffTheAir +_080C1DF8: + ldr r0, _080C1E34 @ =gUnknown_083D1600 + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C1E0C: .4byte gStringVar1 +_080C1E10: .4byte gSaveBlock1 +_080C1E14: .4byte 0x00002b16 +_080C1E18: .4byte gStringVar2 +_080C1E1C: .4byte 0x00002b10 +_080C1E20: .4byte gSpeciesNames +_080C1E24: .4byte gStringVar3 +_080C1E28: .4byte 0x00002b12 +_080C1E2C: .4byte gScriptResult +_080C1E30: .4byte gUnknown_020387E8 +_080C1E34: .4byte gUnknown_083D1600 + thumb_func_end DoTVShowInSearchOfTrainers + + thumb_func_start DoTVShowPokemonAngler +DoTVShowPokemonAngler: @ 80C1E38 + push {r4,r5,lr} + ldr r0, _080C1E5C @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r0, _080C1E64 @ =gScriptResult + movs r1, 0 + strh r1, [r0] + ldrb r0, [r4, 0x2] + ldrb r2, [r4, 0x3] + cmp r0, r2 + bcs _080C1E6C + ldr r0, _080C1E68 @ =gUnknown_020387E8 + strb r1, [r0] + b _080C1E74 + .align 2, 0 +_080C1E5C: .4byte gUnknown_0202E8CC +_080C1E60: .4byte gSaveBlock1 + 0x2738 +_080C1E64: .4byte gScriptResult +_080C1E68: .4byte gUnknown_020387E8 +_080C1E6C: + ldr r1, _080C1E80 @ =gUnknown_020387E8 + movs r0, 0x1 + strb r0, [r1] + adds r0, r1, 0 +_080C1E74: + ldrb r5, [r0] + cmp r5, 0 + beq _080C1E84 + cmp r5, 0x1 + beq _080C1EBC + b _080C1EE4 + .align 2, 0 +_080C1E80: .4byte gUnknown_020387E8 +_080C1E84: + ldr r0, _080C1EB0 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x6] + bl sub_80C08FC + ldr r0, _080C1EB4 @ =gStringVar2 + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1EB8 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrb r1, [r4, 0x3] + movs r0, 0x2 + bl sub_80BF088 + bl TVShowDone + b _080C1EE4 + .align 2, 0 +_080C1EB0: .4byte gStringVar1 +_080C1EB4: .4byte gStringVar2 +_080C1EB8: .4byte gSpeciesNames +_080C1EBC: + ldr r0, _080C1EF8 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0x6] + bl sub_80C08FC + ldr r0, _080C1EFC @ =gStringVar2 + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1F00 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrb r1, [r4, 0x2] + movs r0, 0x2 + bl sub_80BF088 + bl TVShowDone +_080C1EE4: + ldr r0, _080C1F04 @ =gUnknown_083D15EC + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C1EF8: .4byte gStringVar1 +_080C1EFC: .4byte gStringVar2 +_080C1F00: .4byte gSpeciesNames +_080C1F04: .4byte gUnknown_083D15EC + thumb_func_end DoTVShowPokemonAngler + + thumb_func_start DoTVShowTheWorldOfMasters +DoTVShowTheWorldOfMasters: @ 80C1F08 + push {r4-r6,lr} + ldr r0, _080C1F30 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738 + adds r4, r0, r1 + ldr r1, _080C1F38 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + ldr r6, _080C1F3C @ =gUnknown_020387E8 + ldrb r5, [r6] + cmp r5, 0x1 + beq _080C1F6C + cmp r5, 0x1 + bgt _080C1F40 + cmp r5, 0 + beq _080C1F46 + b _080C1FB6 + .align 2, 0 +_080C1F30: .4byte gUnknown_0202E8CC +_080C1F34: .4byte gSaveBlock1 + 0x2738 +_080C1F38: .4byte gScriptResult +_080C1F3C: .4byte gUnknown_020387E8 +_080C1F40: + cmp r5, 0x2 + beq _080C1F8C + b _080C1FB6 +_080C1F46: + ldr r0, _080C1F68 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0xB] + bl sub_80C08FC + ldrh r1, [r4, 0x6] + movs r0, 0x1 + bl sub_80BF088 + ldrh r1, [r4, 0x2] + movs r0, 0x2 + bl sub_80BF088 + movs r0, 0x1 + strb r0, [r6] + b _080C1FB6 + .align 2, 0 +_080C1F68: .4byte gStringVar1 +_080C1F6C: + ldr r0, _080C1F84 @ =gStringVar1 + ldrh r2, [r4, 0x8] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1F88 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + movs r0, 0x2 + strb r0, [r6] + b _080C1FB6 + .align 2, 0 +_080C1F84: .4byte gStringVar1 +_080C1F88: .4byte gSpeciesNames +_080C1F8C: + ldr r0, _080C1FC8 @ =gStringVar1 + adds r1, r4, 0 + adds r1, 0x13 + ldrb r2, [r4, 0xB] + bl sub_80C08FC + ldr r0, _080C1FCC @ =gStringVar2 + ldrb r1, [r4, 0xA] + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080C1FD0 @ =gStringVar3 + ldrh r2, [r4, 0x4] + movs r1, 0xB + muls r1, r2 + ldr r2, _080C1FD4 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + bl TVShowDone +_080C1FB6: + ldr r0, _080C1FD8 @ =gUnknown_083D15F4 + lsls r1, r5, 2 + adds r1, r0 + ldr r0, [r1] + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C1FC8: .4byte gStringVar1 +_080C1FCC: .4byte gStringVar2 +_080C1FD0: .4byte gStringVar3 +_080C1FD4: .4byte gSpeciesNames +_080C1FD8: .4byte gUnknown_083D15F4 + thumb_func_end DoTVShowTheWorldOfMasters + + thumb_func_start TVShowDone +TVShowDone: @ 80C1FDC + ldr r1, _080C2000 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + ldr r1, _080C2004 @ =gUnknown_020387E8 + movs r0, 0 + strb r0, [r1] + ldr r2, _080C2008 @ =gSaveBlock1 + ldr r0, _080C200C @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080C2010 @ =0x00002739 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080C2000: .4byte gScriptResult +_080C2004: .4byte gUnknown_020387E8 +_080C2008: .4byte gSaveBlock1 +_080C200C: .4byte gUnknown_0202E8CC +_080C2010: .4byte 0x00002739 + thumb_func_end TVShowDone + + thumb_func_start sub_80C2014 +sub_80C2014: @ 80C2014 + ldr r1, _080C201C @ =gUnknown_020387E8 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080C201C: .4byte gUnknown_020387E8 + thumb_func_end sub_80C2014 + + thumb_func_start sub_80C2020 +sub_80C2020: @ 80C2020 + push {r4,r5,lr} + movs r5, 0x80 + lsls r5, 19 + movs r0, 0x40 + strh r0, [r5] + ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080C20F4 @ =gMenuWindow + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r1, _080C20F8 @ =REG_BG0CNT + movs r2, 0xF8 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C20FC @ =0x00001803 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080C2100 @ =0x00001c03 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080C2104 @ =0x00003a03 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2108 @ =REG_MOSAIC + movs r2, 0 + strh r2, [r0] + adds r1, 0x3A + ldr r3, _080C210C @ =0x00003f3f + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + subs r3, 0x11 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080C2110 @ =REG_WIN0H + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + subs r0, 0x2 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + adds r0, 0xA + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0x44 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + ldrh r0, [r5] + movs r3, 0xFE + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r5] + ldr r0, _080C2114 @ =gUnknown_030042A4 + strh r2, [r0] + ldr r0, _080C2118 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r0, _080C211C @ =gUnknown_030042C0 + strh r2, [r0] + ldr r0, _080C2120 @ =gUnknown_030041B4 + strh r2, [r0] + ldr r0, _080C2124 @ =gUnknown_03004288 + strh r2, [r0] + ldr r0, _080C2128 @ =gUnknown_03004280 + strh r2, [r0] + ldr r0, _080C212C @ =gUnknown_030041B0 + strh r2, [r0] + ldr r0, _080C2130 @ =gUnknown_030041B8 + strh r2, [r0] + ldr r0, _080C2134 @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080C2138 @ =gUnknown_03004240 + strh r2, [r0] + ldr r0, _080C213C @ =gUnknown_03004200 + strh r2, [r0] + ldr r0, _080C2140 @ =gUnknown_03004244 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C20F0: .4byte gWindowConfig_81E6FA0 +_080C20F4: .4byte gMenuWindow +_080C20F8: .4byte REG_BG0CNT +_080C20FC: .4byte 0x00001803 +_080C2100: .4byte 0x00001c03 +_080C2104: .4byte 0x00003a03 +_080C2108: .4byte REG_MOSAIC +_080C210C: .4byte 0x00003f3f +_080C2110: .4byte REG_WIN0H +_080C2114: .4byte gUnknown_030042A4 +_080C2118: .4byte gUnknown_030042A0 +_080C211C: .4byte gUnknown_030042C0 +_080C2120: .4byte gUnknown_030041B4 +_080C2124: .4byte gUnknown_03004288 +_080C2128: .4byte gUnknown_03004280 +_080C212C: .4byte gUnknown_030041B0 +_080C2130: .4byte gUnknown_030041B8 +_080C2134: .4byte gUnknown_030042C4 +_080C2138: .4byte gUnknown_03004240 +_080C213C: .4byte gUnknown_03004200 +_080C2140: .4byte gUnknown_03004244 + thumb_func_end sub_80C2020 + + thumb_func_start sub_80C2144 +sub_80C2144: @ 80C2144 + push {r4-r7,lr} + sub sp, 0x4 + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + ldr r0, _080C220C @ =gUnknown_08D1977C + mov r12, r0 + movs r5, 0 + ldr r1, _080C2210 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080C2214 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_080C2162: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080C2162 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0xC0 + lsls r1, 19 + mov r0, r12 + bl LZDecompressVram + ldr r0, _080C2218 @ =gUnknown_08D1A490 + ldr r1, _080C221C @ =0x0600d000 + bl LZDecompressVram + ldr r0, _080C2220 @ =gUnknown_08D1A364 + ldr r1, _080C2224 @ =0x0600e000 + bl LZDecompressVram + ldr r0, _080C2228 @ =gUnknown_08D1A250 + ldr r1, _080C222C @ =0x0600f000 + bl LZDecompressVram + bl sub_80C37E4 + ldr r0, _080C2230 @ =gUnknown_08D1A618 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r0, _080C2234 @ =gWindowConfig_81E6FA0 + bl LoadFontDefaultPalette + movs r6, 0 +_080C21C0: + lsls r5, r6, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C3990 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80C39E4 + movs r5, 0 + lsls r1, r6, 1 + adds r2, r6, 0x1 + mov r12, r2 + lsls r4, 24 + asrs r7, r4, 24 + adds r1, r6 + lsls r1, 6 + lsls r4, r0, 24 +_080C21EC: + ldr r6, _080C2238 @ =0x000060b2 + cmp r5, r7 + bge _080C21F4 + adds r6, 0x2 +_080C21F4: + asrs r2, r4, 24 + adds r0, r2, 0 + cmp r2, 0 + bge _080C21FE + negs r0, r2 +_080C21FE: + cmp r5, r0 + bge _080C2240 + ldr r3, _080C223C @ =0x000060a4 + cmp r2, 0 + bge _080C2242 + adds r3, 0x2 + b _080C2242 + .align 2, 0 +_080C220C: .4byte gUnknown_08D1977C +_080C2210: .4byte 0x040000d4 +_080C2214: .4byte 0x85000400 +_080C2218: .4byte gUnknown_08D1A490 +_080C221C: .4byte 0x0600d000 +_080C2220: .4byte gUnknown_08D1A364 +_080C2224: .4byte 0x0600e000 +_080C2228: .4byte gUnknown_08D1A250 +_080C222C: .4byte 0x0600f000 +_080C2230: .4byte gUnknown_08D1A618 +_080C2234: .4byte gWindowConfig_81E6FA0 +_080C2238: .4byte 0x000060b2 +_080C223C: .4byte 0x000060a4 +_080C2240: + ldr r3, _080C2264 @ =0x000060a2 +_080C2242: + ldr r2, _080C2268 @ =0x0600c166 + adds r0, r1, r2 + strh r6, [r0] + adds r2, 0x40 + adds r0, r1, r2 + strh r3, [r0] + adds r1, 0x2 + adds r5, 0x1 + cmp r5, 0x9 + ble _080C21EC + mov r6, r12 + cmp r6, 0x3 + ble _080C21C0 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2264: .4byte 0x000060a2 +_080C2268: .4byte 0x0600c166 + thumb_func_end sub_80C2144 + + thumb_func_start sub_80C226C +sub_80C226C: @ 80C226C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C2288 @ =gUnknown_02038695 + ldrb r0, [r0] + cmp r5, r0 + bne _080C2294 + ldr r0, _080C228C @ =gUnknown_020238CC + ldr r1, _080C2290 @ =gUnknown_083D17DC + bl StringCopy + adds r2, r0, 0 + b _080C2296 + .align 2, 0 +_080C2288: .4byte gUnknown_02038695 +_080C228C: .4byte gUnknown_020238CC +_080C2290: .4byte gUnknown_083D17DC +_080C2294: + ldr r2, _080C22E8 @ =gUnknown_020238CC +_080C2296: + movs r4, 0xFC + strb r4, [r2] + movs r0, 0x6 + strb r0, [r2, 0x1] + movs r0, 0x4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r6, r5, 6 + ldr r7, _080C22EC @ =gUnknown_02038572 + adds r1, r6, r7 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + strb r4, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + movs r0, 0x32 + strb r0, [r2, 0x2] + adds r2, 0x3 + ldr r1, _080C22F0 @ =gUnknown_083D17E0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080C22F4 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C22FC + lsls r4, r5, 3 + subs r1, r4, r5 + lsls r1, 2 + ldr r0, _080C22F8 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + b _080C230A + .align 2, 0 +_080C22E8: .4byte gUnknown_020238CC +_080C22EC: .4byte gUnknown_02038572 +_080C22F0: .4byte gUnknown_083D17E0 +_080C22F4: .4byte gUnknown_0203869A +_080C22F8: .4byte gLinkPlayers + 0x8 +_080C22FC: + adds r1, r7, 0 + adds r1, 0xB + adds r1, r6, r1 + adds r0, r2, 0 + bl StringCopy + lsls r4, r5, 3 +_080C230A: + ldr r0, _080C2334 @ =gMenuWindow + ldr r1, _080C2338 @ =gUnknown_020238CC + adds r2, r4, r5 + lsls r2, 18 + ldr r3, _080C233C @ =0x03020000 + adds r2, r3 + lsrs r2, 16 + lsls r3, r5, 1 + adds r3, r5 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x7 + bl sub_8003460 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2334: .4byte gMenuWindow +_080C2338: .4byte gUnknown_020238CC +_080C233C: .4byte 0x03020000 + thumb_func_end sub_80C226C + + thumb_func_start sub_80C2340 +sub_80C2340: @ 80C2340 + push {r4,lr} + movs r4, 0 +_080C2344: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80C226C + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2344 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C2340 + + thumb_func_start sub_80C2358 +sub_80C2358: @ 80C2358 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080C240C @ =gPaletteFade + ldrb r0, [r5, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r5, 0x8] + movs r0, 0 + bl SetVBlankCallback + bl sub_80C2020 + bl dp12_8087EA4 + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + bl sub_80C2144 + bl sub_80C310C + movs r0, 0 + movs r1, 0x1 + bl sub_80C30D4 + bl sub_80C2340 + ldr r4, _080C2410 @ =0x02018000 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x18 + bl memset + adds r0, r4, 0 + adds r0, 0x18 + movs r1, 0 + movs r2, 0x50 + bl memset + bl sub_80C33DC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrb r1, [r5, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r5, 0x8] + ldr r0, _080C2414 @ =sub_80C24F4 + movs r1, 0x5 + bl CreateTask + strb r0, [r4, 0x2] + ldr r0, _080C2418 @ =sub_80C2430 + bl SetMainCallback2 + ldr r1, _080C241C @ =gUnknown_03004200 + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2420 @ =gUnknown_03004244 + ldr r2, _080C2424 @ =0x000080a0 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080C2428 @ =sub_80C2F28 + movs r1, 0x14 + bl CreateTask + bl sub_80C3F00 + movs r0, 0xDF + lsls r0, 1 + bl PlayBGM + ldr r0, _080C242C @ =sub_80C2448 + bl SetVBlankCallback + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C240C: .4byte gPaletteFade +_080C2410: .4byte 0x02018000 +_080C2414: .4byte sub_80C24F4 +_080C2418: .4byte sub_80C2430 +_080C241C: .4byte gUnknown_03004200 +_080C2420: .4byte gUnknown_03004244 +_080C2424: .4byte 0x000080a0 +_080C2428: .4byte sub_80C2F28 +_080C242C: .4byte sub_80C2448 + thumb_func_end sub_80C2358 + + thumb_func_start sub_80C2430 +sub_80C2430: @ 80C2430 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80C2430 + + thumb_func_start sub_80C2448 +sub_80C2448: @ 80C2448 + push {lr} + ldr r1, _080C24C0 @ =REG_BG0HOFS + ldr r0, _080C24C4 @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24C8 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24CC @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D0 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D4 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24D8 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24DC @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080C24E0 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080C24E4 @ =gUnknown_030042C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24E8 @ =gUnknown_03004240 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080C24EC @ =gUnknown_03004200 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080C24F0 @ =gUnknown_03004244 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080C24C0: .4byte REG_BG0HOFS +_080C24C4: .4byte gUnknown_030042A4 +_080C24C8: .4byte gUnknown_030042A0 +_080C24CC: .4byte gUnknown_030042C0 +_080C24D0: .4byte gUnknown_030041B4 +_080C24D4: .4byte gUnknown_03004288 +_080C24D8: .4byte gUnknown_03004280 +_080C24DC: .4byte gUnknown_030041B0 +_080C24E0: .4byte gUnknown_030041B8 +_080C24E4: .4byte gUnknown_030042C4 +_080C24E8: .4byte gUnknown_03004240 +_080C24EC: .4byte gUnknown_03004200 +_080C24F0: .4byte gUnknown_03004244 + thumb_func_end sub_80C2448 + + thumb_func_start sub_80C24F4 +sub_80C24F4: @ 80C24F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r2, r4, 0 + ldr r0, _080C252C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C254E + ldr r0, _080C2530 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2540 + ldr r0, _080C2534 @ =gOtherText_LinkStandby + bl sub_80C3698 + ldr r1, _080C2538 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C253C @ =sub_80C255C + str r1, [r0] + b _080C254E + .align 2, 0 +_080C252C: .4byte gPaletteFade +_080C2530: .4byte gUnknown_0203869A +_080C2534: .4byte gOtherText_LinkStandby +_080C2538: .4byte gTasks +_080C253C: .4byte sub_80C255C +_080C2540: + ldr r0, _080C2554 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2558 @ =sub_80C2600 + str r0, [r1] +_080C254E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2554: .4byte gTasks +_080C2558: .4byte sub_80C2600 + thumb_func_end sub_80C24F4 + + thumb_func_start sub_80C255C +sub_80C255C: @ 80C255C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080C258C + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C258C + ldr r0, _080C2598 @ =sub_80C25A4 + movs r1, 0 + bl CreateTask + ldr r1, _080C259C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C25A0 @ =TaskDummy + str r1, [r0] +_080C258C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2594: .4byte gReceivedRemoteLinkPlayers +_080C2598: .4byte sub_80C25A4 +_080C259C: .4byte gTasks +_080C25A0: .4byte TaskDummy + thumb_func_end sub_80C255C + + thumb_func_start sub_80C25A4 +sub_80C25A4: @ 80C25A4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C25B8 @ =sub_80C89DC + ldr r2, _080C25BC @ =sub_80C25C0 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C25B8: .4byte sub_80C89DC +_080C25BC: .4byte sub_80C25C0 + thumb_func_end sub_80C25A4 + + thumb_func_start sub_80C25C0 +sub_80C25C0: @ 80C25C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C25EC + adds r0, r4, 0 + bl DestroyTask + ldr r2, _080C25F4 @ =gTasks + ldr r0, _080C25F8 @ =0x02018000 + ldrb r1, [r0, 0x2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080C25FC @ =sub_80C2600 + str r1, [r0] + bl sub_80C3764 +_080C25EC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C25F4: .4byte gTasks +_080C25F8: .4byte 0x02018000 +_080C25FC: .4byte sub_80C2600 + thumb_func_end sub_80C25C0 + + thumb_func_start sub_80C2600 +sub_80C2600: @ 80C2600 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2644 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrh r1, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080C2654 + ldr r0, _080C2648 @ =sub_80C2F64 + movs r1, 0x14 + bl CreateTask + ldr r4, _080C264C @ =gContestText_AnnounceResults + ldr r0, _080C2650 @ =0x02018000 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + movs r2, 0x78 + b _080C26A6 + .align 2, 0 +_080C2644: .4byte gTasks +_080C2648: .4byte sub_80C2F64 +_080C264C: .4byte gContestText_AnnounceResults +_080C2650: .4byte 0x02018000 +_080C2654: + cmp r0, 0x1 + bne _080C2668 + ldr r0, _080C2664 @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080C26D4 + b _080C267C + .align 2, 0 +_080C2664: .4byte 0x02018000 +_080C2668: + cmp r0, 0x2 + bne _080C2684 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C26D4 + movs r0, 0 +_080C267C: + strh r0, [r5, 0xA] + adds r0, r1, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 +_080C2684: + cmp r0, 0x3 + bne _080C26C0 + ldr r4, _080C26B4 @ =gContestText_PreliminaryResults + ldr r0, _080C26B8 @ =0x02018000 + ldrb r1, [r0] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C26BC @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 +_080C26A6: + bl sub_80C34CC + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080C26D4 + .align 2, 0 +_080C26B4: .4byte gContestText_PreliminaryResults +_080C26B8: .4byte 0x02018000 +_080C26BC: .4byte 0x0000ffff +_080C26C0: + cmp r0, 0x4 + bne _080C26D4 + ldr r0, _080C26DC @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0x2 + bne _080C26D4 + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080C26E0 @ =sub_80C26E4 + str r0, [r5] +_080C26D4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C26DC: .4byte 0x02018000 +_080C26E0: .4byte sub_80C26E4 + thumb_func_end sub_80C2600 + + thumb_func_start sub_80C26E4 +sub_80C26E4: @ 80C26E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2708 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C2744 + cmp r0, 0x1 + bgt _080C270C + cmp r0, 0 + beq _080C2712 + b _080C2766 + .align 2, 0 +_080C2708: .4byte gTasks +_080C270C: + cmp r0, 0x2 + beq _080C2754 + b _080C2766 +_080C2712: + ldr r5, _080C2738 @ =0x02018000 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C2766 + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C273C + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2738: .4byte 0x02018000 +_080C273C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2766 +_080C2744: + ldr r0, _080C2750 @ =0x02018000 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C2766 + strh r0, [r4, 0x8] + b _080C2766 + .align 2, 0 +_080C2750: .4byte 0x02018000 +_080C2754: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xC] + ldr r0, _080C276C @ =sub_80C2770 + str r0, [r4] +_080C2766: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C276C: .4byte sub_80C2770 + thumb_func_end sub_80C26E4 + + thumb_func_start sub_80C2770 +sub_80C2770: @ 80C2770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r4, r2, 0 + ldr r5, _080C27BC @ =0x02018000 + ldrb r3, [r5, 0x4] + cmp r3, 0 + bne _080C27CC + ldr r1, _080C27C0 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080C27DE + strh r3, [r1, 0xA] + ldr r4, _080C27C4 @ =gContestText_Round2Results + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C27C8 @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC + b _080C27DE + .align 2, 0 +_080C27BC: .4byte 0x02018000 +_080C27C0: .4byte gTasks +_080C27C4: .4byte gContestText_Round2Results +_080C27C8: .4byte 0x0000ffff +_080C27CC: + cmp r3, 0x2 + bne _080C27DE + ldr r0, _080C27E4 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C27E8 @ =sub_80C27EC + str r0, [r1] +_080C27DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C27E4: .4byte gTasks +_080C27E8: .4byte sub_80C27EC + thumb_func_end sub_80C2770 + + thumb_func_start sub_80C27EC +sub_80C27EC: @ 80C27EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C2810 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C284C + cmp r0, 0x1 + bgt _080C2814 + cmp r0, 0 + beq _080C281A + b _080C286C + .align 2, 0 +_080C2810: .4byte gTasks +_080C2814: + cmp r0, 0x2 + beq _080C285C + b _080C286C +_080C281A: + ldr r5, _080C2840 @ =0x02018000 + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080C286C + ldrh r1, [r4, 0xC] + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_80C40D4 + ldrb r0, [r5, 0x14] + cmp r0, 0 + bne _080C2844 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2840: .4byte 0x02018000 +_080C2844: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C286C +_080C284C: + ldr r0, _080C2858 @ =0x02018000 + ldrb r0, [r0, 0x14] + cmp r0, 0 + bne _080C286C + strh r0, [r4, 0x8] + b _080C286C + .align 2, 0 +_080C2858: .4byte 0x02018000 +_080C285C: + movs r0, 0x88 + lsls r0, 3 + bl sub_80C3520 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080C2874 @ =sub_80C2878 + str r0, [r4] +_080C286C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2874: .4byte sub_80C2878 + thumb_func_end sub_80C27EC + + thumb_func_start sub_80C2878 +sub_80C2878: @ 80C2878 + push {r4-r7,lr} + sub sp, 0x64 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C28A0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x5 + bls _080C2896 + b _080C2A80 +_080C2896: + lsls r0, 2 + ldr r1, _080C28A4 @ =_080C28A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C28A0: .4byte gTasks +_080C28A4: .4byte _080C28A8 + .align 2, 0 +_080C28A8: + .4byte _080C28C0 + .4byte _080C28E0 + .4byte _080C28FE + .4byte _080C2938 + .4byte _080C299C + .4byte _080C2A70 +_080C28C0: + ldr r0, _080C28DC @ =0x02018000 + ldrb r0, [r0, 0x4] + cmp r0, 0 + beq _080C28CA + b _080C2A80 +_080C28CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2A80 + .align 2, 0 +_080C28DC: .4byte 0x02018000 +_080C28E0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C28F8 + b _080C2A80 +_080C28F8: + movs r0, 0 + strh r0, [r1, 0xA] + b _080C2A4A +_080C28FE: + movs r4, 0 + lsls r6, r5, 2 + ldr r7, _080C292C @ =gTasks +_080C2904: + ldr r0, _080C2930 @ =sub_80C3A5C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + ldr r0, _080C2934 @ =gUnknown_02038690 + adds r0, r4, r0 + ldrb r0, [r0] + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + adds r4, 0x1 + cmp r4, 0x3 + ble _080C2904 + b _080C2A42 + .align 2, 0 +_080C292C: .4byte gTasks +_080C2930: .4byte sub_80C3A5C +_080C2934: .4byte gUnknown_02038690 +_080C2938: + ldr r0, _080C2990 @ =0x02018000 + ldrb r0, [r0, 0x5] + cmp r0, 0x4 + beq _080C2942 + b _080C2A80 +_080C2942: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + beq _080C295A + b _080C2A80 +_080C295A: + movs r0, 0 + strh r0, [r4, 0xA] + ldr r0, _080C2994 @ =sub_80C3B30 + movs r1, 0xA + bl CreateTask + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r4, 0 + ldr r1, _080C2998 @ =gUnknown_02038690 + ldrb r0, [r1] + cmp r0, 0 + beq _080C2984 +_080C2976: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C2984 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2976 +_080C2984: + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0xE + bl sub_80C3E60 + b _080C2A80 + .align 2, 0 +_080C2990: .4byte 0x02018000 +_080C2994: .4byte sub_80C3B30 +_080C2998: .4byte gUnknown_02038690 +_080C299C: + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r2, r0, r2 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + adds r6, r1, 0 + cmp r0, 0x15 + bne _080C2A80 + movs r0, 0 + strh r0, [r2, 0xA] + movs r4, 0 + ldr r2, _080C29F4 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r1, _080C29F8 @ =gUnknown_0203869A + ldr r3, _080C29FC @ =gStringVar1 + cmp r0, 0 + beq _080C29D4 +_080C29C6: + adds r4, 0x1 + cmp r4, 0x3 + bgt _080C29D4 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C29C6 +_080C29D4: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2A04 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r0, _080C2A00 @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + lsls r4, 6 + b _080C2A10 + .align 2, 0 +_080C29F4: .4byte gUnknown_02038690 +_080C29F8: .4byte gUnknown_0203869A +_080C29FC: .4byte gStringVar1 +_080C2A00: .4byte gLinkPlayers + 0x8 +_080C2A04: + lsls r4, 6 + ldr r1, _080C2A54 @ =gUnknown_0203857D + adds r1, r4, r1 + adds r0, r3, 0 + bl StringCopy +_080C2A10: + ldr r0, _080C2A58 @ =gStringVar2 + ldr r1, _080C2A5C @ =gUnknown_02038572 + adds r1, r4, r1 + bl StringCopy + ldr r1, _080C2A60 @ =gContestText_PokeWon + mov r0, sp + bl StringExpandPlaceholders + ldr r0, _080C2A64 @ =0x02018000 + ldrb r1, [r0] + mov r0, sp + bl sub_80C3158 + mov r0, sp + bl sub_80C34AC + lsls r0, 16 + asrs r0, 16 + ldr r2, _080C2A68 @ =0x0000ffff + movs r3, 0x88 + lsls r3, 3 + movs r1, 0x90 + bl sub_80C34CC +_080C2A42: + ldr r0, _080C2A6C @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 +_080C2A4A: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2A80 + .align 2, 0 +_080C2A54: .4byte gUnknown_0203857D +_080C2A58: .4byte gStringVar2 +_080C2A5C: .4byte gUnknown_02038572 +_080C2A60: .4byte gContestText_PokeWon +_080C2A64: .4byte 0x02018000 +_080C2A68: .4byte 0x0000ffff +_080C2A6C: .4byte gTasks +_080C2A70: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080C2A88 @ =sub_80C2A8C + str r1, [r0] +_080C2A80: + add sp, 0x64 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2A88: .4byte sub_80C2A8C + thumb_func_end sub_80C2878 + + thumb_func_start sub_80C2A8C +sub_80C2A8C: @ 80C2A8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C2ABC @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080C2AB2 + b _080C2D04 +_080C2AB2: + lsls r0, 2 + ldr r1, _080C2AC0 @ =_080C2AC4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C2ABC: .4byte gTasks +_080C2AC0: .4byte _080C2AC4 + .align 2, 0 +_080C2AC4: + .4byte _080C2ADC + .4byte _080C2C04 + .4byte _080C2C54 + .4byte _080C2C64 + .4byte _080C2CA8 + .4byte _080C2CE8 +_080C2ADC: + ldr r1, _080C2BC4 @ =gUnknown_030042C4 + movs r0, 0xF0 + strh r0, [r1] + ldr r1, _080C2BC8 @ =gUnknown_03004240 + ldr r3, _080C2BCC @ =0x00005050 + adds r0, r3, 0 + strh r0, [r1] + movs r1, 0 + ldr r3, _080C2BD0 @ =gUnknown_02038690 + ldrb r0, [r3] + lsls r4, r7, 2 + mov r10, r4 + ldr r2, _080C2BD4 @ =gUnknown_02038570 + ldr r5, _080C2BD8 @ =gMonFrontPicTable + mov r12, r5 + ldr r4, _080C2BDC @ =gMonFrontPicCoords + mov r8, r4 + ldr r5, _080C2BE0 @ =gUnknown_081FAF4C + mov r9, r5 + cmp r0, 0 + beq _080C2B14 +_080C2B06: + adds r1, 0x1 + cmp r1, 0x3 + bgt _080C2B14 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C2B06 +_080C2B14: + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r4, [r0] + adds r0, r2, 0 + adds r0, 0x3C + adds r1, r0 + ldr r1, [r1] + str r1, [sp, 0xC] + lsls r0, r6, 3 + add r0, r12 + lsls r2, r6, 2 + add r2, r8 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + mov r5, r9 + ldr r3, [r5, 0x4] + str r3, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + ldr r3, _080C2BE4 @ =0x02000000 + bl sub_800D334 + adds r0, r6, 0 + ldr r1, [sp, 0xC] + adds r2, r4, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C2BE8 @ =gUnknown_02024E8C + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x50 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080C2BEC @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r3, r2, r5 + strh r6, [r3, 0x30] + ldrb r4, [r3, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + strb r1, [r3, 0x5] + adds r5, 0x1C + adds r2, r5 + ldr r1, _080C2BF0 @ =sub_80C3C44 + str r1, [r2] + ldr r2, _080C2BE4 @ =0x02000000 + movs r3, 0xC0 + lsls r3, 9 + adds r1, r2, r3 + strb r0, [r1, 0x8] + ldr r0, _080C2BF4 @ =gUnknown_083D17CC + bl LoadCompressedObjectPic + ldr r0, _080C2BF8 @ =gUnknown_083D17D4 + bl LoadCompressedObjectPalette + ldr r0, _080C2BFC @ =sub_80C3D04 + movs r1, 0xA + bl CreateTask + ldr r0, _080C2C00 @ =gTasks + mov r4, r10 + adds r1, r4, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C2D04 + .align 2, 0 +_080C2BC4: .4byte gUnknown_030042C4 +_080C2BC8: .4byte gUnknown_03004240 +_080C2BCC: .4byte 0x00005050 +_080C2BD0: .4byte gUnknown_02038690 +_080C2BD4: .4byte gUnknown_02038570 +_080C2BD8: .4byte gMonFrontPicTable +_080C2BDC: .4byte gMonFrontPicCoords +_080C2BE0: .4byte gUnknown_081FAF4C +_080C2BE4: .4byte 0x02000000 +_080C2BE8: .4byte gUnknown_02024E8C +_080C2BEC: .4byte gSprites +_080C2BF0: .4byte sub_80C3C44 +_080C2BF4: .4byte gUnknown_083D17CC +_080C2BF8: .4byte gUnknown_083D17D4 +_080C2BFC: .4byte sub_80C3D04 +_080C2C00: .4byte gTasks +_080C2C04: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080C2D04 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080C2C30 + movs r0, 0x20 + strh r0, [r4, 0xC] +_080C2C30: + ldrb r2, [r4, 0xC] + ldr r3, _080C2C50 @ =gUnknown_03004240 + movs r0, 0x50 + subs r0, r2 + lsls r0, 8 + adds r1, r2, 0 + adds r1, 0x50 + orrs r0, r1 + strh r0, [r3] + cmp r2, 0x20 + bne _080C2D04 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C50: .4byte gUnknown_03004240 +_080C2C54: + ldr r0, _080C2C60 @ =0x02018000 + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + bne _080C2D04 + b _080C2CD0 + .align 2, 0 +_080C2C60: .4byte 0x02018000 +_080C2C64: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r4 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x79 + bne _080C2D04 + movs r0, 0 + strh r0, [r3, 0xA] + ldr r2, _080C2C9C @ =gSprites + ldr r0, _080C2CA0 @ =0x02018000 + ldrb r1, [r0, 0x8] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080C2CA4 @ =sub_80C3CB8 + str r1, [r0] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080C2D04 + .align 2, 0 +_080C2C9C: .4byte gSprites +_080C2CA0: .4byte 0x02018000 +_080C2CA4: .4byte sub_80C3CB8 +_080C2CA8: + ldr r0, _080C2CE0 @ =0x02018000 + ldrb r0, [r0, 0x6] + cmp r0, 0x2 + bne _080C2D04 + ldr r3, _080C2CE4 @ =gUnknown_03004240 + ldrh r0, [r3] + lsrs r2, r0, 8 + adds r0, r2, 0x2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x50 + bls _080C2CC2 + movs r2, 0x50 +_080C2CC2: + lsls r1, r2, 8 + movs r0, 0xA0 + subs r0, r2 + orrs r1, r0 + strh r1, [r3] + cmp r2, 0x50 + bne _080C2D04 +_080C2CD0: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C2D04 + .align 2, 0 +_080C2CE0: .4byte 0x02018000 +_080C2CE4: .4byte gUnknown_03004240 +_080C2CE8: + ldr r2, _080C2D14 @ =0x02018000 + ldrb r0, [r2, 0x6] + cmp r0, 0x2 + bne _080C2D04 + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x9] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r4 + strh r1, [r0, 0x8] + ldr r1, _080C2D18 @ =sub_80C2D1C + str r1, [r0] +_080C2D04: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D14: .4byte 0x02018000 +_080C2D18: .4byte sub_80C2D1C + thumb_func_end sub_80C2A8C + + thumb_func_start sub_80C2D1C +sub_80C2D1C: @ 80C2D1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080C2D6C @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C2D66 + ldr r0, _080C2D70 @ =gUnknown_0203869A + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + lsls r6, r7, 2 + cmp r0, 0 + bne _080C2D5A + ldr r5, _080C2D74 @ =gUnknown_02038570 + movs r4, 0x3 +_080C2D42: + ldrh r0, [r5] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + adds r5, 0x40 + subs r4, 0x1 + cmp r4, 0 + bge _080C2D42 +_080C2D5A: + ldr r0, _080C2D78 @ =gTasks + adds r1, r6, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2D7C @ =sub_80C2D80 + str r0, [r1] +_080C2D66: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C2D6C: .4byte gMain +_080C2D70: .4byte gUnknown_0203869A +_080C2D74: .4byte gUnknown_02038570 +_080C2D78: .4byte gTasks +_080C2D7C: .4byte sub_80C2D80 + thumb_func_end sub_80C2D1C + + thumb_func_start sub_80C2D80 +sub_80C2D80: @ 80C2D80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2DAC @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C2DBC + ldr r0, _080C2DB0 @ =gOtherText_LinkStandby + bl sub_80C3698 + bl sub_800832C + ldr r1, _080C2DB4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2DB8 @ =sub_80C2DD8 + str r1, [r0] + b _080C2DCA + .align 2, 0 +_080C2DAC: .4byte gUnknown_0203869A +_080C2DB0: .4byte gOtherText_LinkStandby +_080C2DB4: .4byte gTasks +_080C2DB8: .4byte sub_80C2DD8 +_080C2DBC: + ldr r0, _080C2DD0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C2DD4 @ =sub_80C2E14 + str r0, [r1] +_080C2DCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2DD0: .4byte gTasks +_080C2DD4: .4byte sub_80C2E14 + thumb_func_end sub_80C2D80 + + thumb_func_start sub_80C2DD8 +sub_80C2DD8: @ 80C2DD8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers + ldrb r1, [r0] + cmp r1, 0 + bne _080C2DFC + ldr r0, _080C2E08 @ =gUnknown_0203869A + strb r1, [r0] + bl sub_80C3764 + ldr r1, _080C2E0C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E10 @ =sub_80C2E14 + str r1, [r0] +_080C2DFC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C2E04: .4byte gReceivedRemoteLinkPlayers +_080C2E08: .4byte gUnknown_0203869A +_080C2E0C: .4byte gTasks +_080C2E10: .4byte sub_80C2E14 + thumb_func_end sub_80C2DD8 + + thumb_func_start sub_80C2E14 +sub_80C2E14: @ 80C2E14 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080C2E80 @ =gUnknown_02038690 + ldr r0, _080C2E84 @ =gUnknown_02038695 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + bl sub_80BE284 + movs r0, 0x2 + bl sub_810FB10 + ldr r0, _080C2E88 @ =gUnknown_0203869E + ldrb r0, [r0] + bl sub_80B2A7C + movs r0, 0xFE + bl sub_80B2A7C + ldr r4, _080C2E8C @ =0x02000000 + ldr r0, _080C2E90 @ =0x00015ddf + adds r1, r4, r0 + movs r6, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C2E94 @ =0x00015dde + adds r4, r1 + strb r0, [r4] + str r6, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldr r1, _080C2E98 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C2E9C @ =sub_80C2EA0 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C2E80: .4byte gUnknown_02038690 +_080C2E84: .4byte gUnknown_02038695 +_080C2E88: .4byte gUnknown_0203869E +_080C2E8C: .4byte 0x02000000 +_080C2E90: .4byte 0x00015ddf +_080C2E94: .4byte 0x00015dde +_080C2E98: .4byte gTasks +_080C2E9C: .4byte sub_80C2EA0 + thumb_func_end sub_80C2E14 + + thumb_func_start sub_80C2EA0 +sub_80C2EA0: @ 80C2EA0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + ldr r0, _080C2ED8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080C2F18 + ldr r1, _080C2EDC @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C2EE8 + ldr r0, _080C2EE0 @ =0x02018000 + ldrb r0, [r0, 0x3] + bl DestroyTask + ldr r0, _080C2EE4 @ =0x0000ffff + b _080C2EEE + .align 2, 0 +_080C2ED8: .4byte gPaletteFade +_080C2EDC: .4byte gTasks +_080C2EE0: .4byte 0x02018000 +_080C2EE4: .4byte 0x0000ffff +_080C2EE8: + cmp r0, 0x1 + bne _080C2F04 + ldr r0, _080C2F00 @ =0xffff0000 +_080C2EEE: + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080C2F18 + .align 2, 0 +_080C2F00: .4byte 0xffff0000 +_080C2F04: + ldr r0, _080C2F20 @ =REG_BLDCNT + strh r3, [r0] + adds r0, 0x4 + strh r3, [r0] + adds r0, r5, 0 + bl DestroyTask + ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_080C2F18: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F20: .4byte REG_BLDCNT +_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C2EA0 + + thumb_func_start sub_80C2F28 +sub_80C2F28: @ 80C2F28 + push {r4,r5,lr} + ldr r2, _080C2F5C @ =gUnknown_030041B0 + ldrh r3, [r2] + adds r0, r3, 0x2 + strh r0, [r2] + ldr r4, _080C2F60 @ =gUnknown_030041B8 + ldrh r5, [r4] + adds r1, r5, 0x1 + strh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F48 + adds r0, r3, 0 + subs r0, 0xFD + strh r0, [r2] +_080C2F48: + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0xFF + bls _080C2F56 + adds r0, r5, 0 + subs r0, 0xFE + strh r0, [r4] +_080C2F56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C2F5C: .4byte gUnknown_030041B0 +_080C2F60: .4byte gUnknown_030041B8 + thumb_func_end sub_80C2F28 + + thumb_func_start sub_80C2F64 +sub_80C2F64: @ 80C2F64 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C2F94 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080C2FE6 + movs r0, 0 + strh r0, [r2, 0x8] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080C2F98 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + b _080C2F9C + .align 2, 0 +_080C2F94: .4byte gTasks +_080C2F98: + ldrh r0, [r2, 0xA] + subs r0, 0x1 +_080C2F9C: + strh r0, [r2, 0xA] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x10 + bne _080C2FB2 + movs r0, 0x1 + b _080C2FB6 +_080C2FB2: + cmp r0, 0 + bne _080C2FB8 +_080C2FB6: + strh r0, [r1, 0xC] +_080C2FB8: + ldr r0, _080C3000 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r2, [r4, 0xA] + ldr r3, _080C3004 @ =0x00002ede + movs r0, 0x6B + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C3008 @ =0x00007fff + movs r0, 0x68 + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldr r3, _080C300C @ =0x000077be + movs r0, 0x6E + movs r1, 0x1 + bl BlendPalette +_080C2FE6: + ldr r1, _080C3000 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r3, 0xA + ldrsh r4, [r0, r3] + cmp r4, 0 + bne _080C3014 + ldr r0, _080C3010 @ =0x02018000 + strb r4, [r0, 0xA] + b _080C301A + .align 2, 0 +_080C3000: .4byte gTasks +_080C3004: .4byte 0x00002ede +_080C3008: .4byte 0x00007fff +_080C300C: .4byte 0x000077be +_080C3010: .4byte 0x02018000 +_080C3014: + ldr r1, _080C3020 @ =0x02018000 + movs r0, 0x1 + strb r0, [r1, 0xA] +_080C301A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3020: .4byte 0x02018000 + thumb_func_end sub_80C2F64 + + thumb_func_start sub_80C3024 +sub_80C3024: @ 80C3024 + push {r4-r6,lr} + ldr r6, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + cmp r3, 0 + beq _080C30B0 + adds r1, r6, 0 + bl sub_809D4F4 + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30A0 @ =0x06004000 + adds r1, r2 + ldr r2, _080C30A4 @ =0x040000d4 + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080C30A8 @ =0x84000060 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, r4, 0 + adds r1, 0xA + lsls r1, 28 + lsls r0, r4, 20 + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + orrs r0, r1 + lsrs r1, r0, 16 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 21 + movs r2, 0x83 + lsls r2, 16 + adds r0, r2 + lsrs r5, r0, 16 + movs r2, 0 + ldr r6, _080C30AC @ =0x0600c000 +_080C307C: + lsls r0, r2, 5 + adds r4, r2, 0x1 + adds r0, r5 + movs r3, 0x3 + lsls r0, 1 + adds r2, r0, r6 +_080C3088: + strh r1, [r2] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3088 + adds r2, r4, 0 + cmp r2, 0x2 + ble _080C307C + b _080C30CA + .align 2, 0 +_080C30A0: .4byte 0x06004000 +_080C30A4: .4byte 0x040000d4 +_080C30A8: .4byte 0x84000060 +_080C30AC: .4byte 0x0600c000 +_080C30B0: + adds r1, r6, 0 + bl sub_809D4F4 + lsls r1, r5, 9 + adds r0, r1 + adds r0, 0x80 + lsls r1, r4, 9 + ldr r2, _080C30D0 @ =0x06004000 + adds r1, r2 + movs r2, 0xC0 + lsls r2, 1 + bl RequestSpriteCopy +_080C30CA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C30D0: .4byte 0x06004000 + thumb_func_end sub_80C3024 + + thumb_func_start sub_80C30D4 +sub_80C30D4: @ 80C30D4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + movs r5, 0 + ldr r4, _080C3108 @ =gUnknown_02038570 +_080C30E4: + ldrh r0, [r4] + lsls r1, r5, 24 + lsrs r1, 24 + ldr r2, [r4, 0x38] + str r2, [sp] + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_80C3024 + adds r4, 0x40 + adds r5, 0x1 + cmp r5, 0x3 + ble _080C30E4 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3108: .4byte gUnknown_02038570 + thumb_func_end sub_80C30D4 + + thumb_func_start sub_80C310C +sub_80C310C: @ 80C310C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _080C314C @ =gMonIconPaletteIndices + movs r5, 0xA0 + lsls r5, 16 +_080C3116: + ldr r1, _080C3150 @ =gUnknown_02038570 + lsls r0, r4, 6 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0 + bl mon_icon_convert_unown_species_id + lsls r0, 16 + lsrs r0, 16 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 5 + ldr r1, _080C3154 @ =gMonIconPalettes + adds r0, r1 + lsrs r1, r5, 16 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x80 + lsls r0, 13 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x3 + ble _080C3116 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C314C: .4byte gMonIconPaletteIndices +_080C3150: .4byte gUnknown_02038570 +_080C3154: .4byte gMonIconPalettes + thumb_func_end sub_80C310C + + thumb_func_start sub_80C3158 +sub_80C3158: @ 80C3158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + ldr r3, _080C32C0 @ =gSprites + adds r2, r3 + mov r1, sp + ldrh r0, [r2, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1] + mov r4, sp + movs r0, 0x2E + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x2] + movs r0, 0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x4] + movs r0, 0x32 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r4, 0x6] + ldr r1, _080C32C4 @ =gWindowConfig_81E7278 + mov r8, r1 + ldr r7, _080C32C8 @ =0x06010000 + ldr r2, _080C32CC @ =0x040000d4 + ldr r6, _080C32D0 @ =0x85000100 + mov r1, sp + movs r5, 0 + add r3, sp, 0x8 + movs r4, 0x3 +_080C31CE: + ldrh r0, [r1] + lsls r0, 5 + adds r0, r7 + str r5, [sp, 0x8] + str r3, [r2] + str r0, [r2, 0x4] + str r6, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080C31CE + mov r0, r8 + mov r1, r9 + bl GetStringWidthGivenWindowConfig + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080C32D4 @ =gUnknown_020238CC + ldr r1, _080C32D8 @ =gUnknown_083D17E2 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + mvns r0, r5 + adds r1, r0, 0x1 + movs r0, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080C3218 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + lsrs r0, r1, 1 + strb r0, [r2, 0x2] + adds r2, 0x3 +_080C3218: + adds r6, r5, 0x7 + movs r1, 0x8 + negs r1, r1 + adds r0, r1, 0 + ands r6, r0 + lsls r6, 24 + lsrs r5, r6, 24 + adds r0, r2, 0 + mov r1, r9 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + strb r5, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080C32DC @ =0x02018068 + mov r10, r0 + ldr r1, _080C32D4 @ =gUnknown_020238CC + bl sub_80034D4 + mov r0, sp + ldrh r4, [r0] + lsls r4, 5 + ldr r1, _080C32C8 @ =0x06010000 + adds r7, r4, r1 + ldr r0, _080C32E0 @ =gUnknown_083D1624 + mov r9, r0 + ldr r1, _080C32E4 @ =REG_BG0CNT + mov r8, r1 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + mov r5, r9 + adds r5, 0x80 + ldr r0, _080C32E8 @ =0x06010100 + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + ldr r0, _080C32EC @ =0x06010200 + adds r1, r4, r0 + adds r0, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, r9 + adds r0, 0x40 + ldr r1, _080C32F0 @ =0x06010300 + adds r4, r1 + adds r1, r4, 0 + mov r2, r8 + bl CpuSet + lsrs r5, r6, 27 + movs r4, 0 + cmp r4, r5 + bgt _080C3382 + mov r6, sp + mov r0, r10 + adds r0, 0x20 + str r0, [sp, 0xC] + mov r1, r10 + str r1, [sp, 0x10] + ldr r0, _080C32F4 @ =0x0600fd20 + str r0, [sp, 0x14] + ldr r1, _080C32F8 @ =0x0600fe20 + str r1, [sp, 0x18] + ldr r0, _080C32FC @ =0x0600ff20 + mov r10, r0 + ldr r1, _080C3300 @ =0x06010020 + mov r9, r1 +_080C32B2: + cmp r4, 0x6 + bgt _080C3304 + ldrh r0, [r6] + lsls r0, 5 + mov r1, r9 + b _080C3322 + .align 2, 0 +_080C32C0: .4byte gSprites +_080C32C4: .4byte gWindowConfig_81E7278 +_080C32C8: .4byte 0x06010000 +_080C32CC: .4byte 0x040000d4 +_080C32D0: .4byte 0x85000100 +_080C32D4: .4byte gUnknown_020238CC +_080C32D8: .4byte gUnknown_083D17E2 +_080C32DC: .4byte 0x02018068 +_080C32E0: .4byte gUnknown_083D1624 +_080C32E4: .4byte REG_BG0CNT +_080C32E8: .4byte 0x06010100 +_080C32EC: .4byte 0x06010200 +_080C32F0: .4byte 0x06010300 +_080C32F4: .4byte 0x0600fd20 +_080C32F8: .4byte 0x0600fe20 +_080C32FC: .4byte 0x0600ff20 +_080C3300: .4byte 0x06010020 +_080C3304: + cmp r4, 0xE + bgt _080C3310 + ldrh r0, [r6, 0x2] + lsls r0, 5 + mov r1, r10 + b _080C3322 +_080C3310: + cmp r4, 0x16 + bgt _080C331C + ldrh r0, [r6, 0x4] + lsls r0, 5 + ldr r1, [sp, 0x18] + b _080C3322 +_080C331C: + ldrh r0, [r6, 0x6] + lsls r0, 5 + ldr r1, [sp, 0x14] +_080C3322: + adds r7, r0, r1 + cmp r4, r5 + beq _080C3382 + ldr r0, _080C33D0 @ =gUnknown_083D16E4 + adds r1, r7, 0 + mov r2, r8 + bl CpuSet + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, _080C33D0 @ =gUnknown_083D16E4 + adds r0, 0x20 + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + ldr r0, [sp, 0x10] + mov r2, r8 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + ldr r0, [sp, 0xC] + mov r2, r8 + bl CpuSet + ldr r1, [sp, 0xC] + adds r1, 0x40 + str r1, [sp, 0xC] + ldr r0, [sp, 0x10] + adds r0, 0x40 + str r0, [sp, 0x10] + ldr r1, [sp, 0x14] + adds r1, 0x20 + str r1, [sp, 0x14] + ldr r0, [sp, 0x18] + adds r0, 0x20 + str r0, [sp, 0x18] + movs r1, 0x20 + add r10, r1 + add r9, r1 + adds r4, 0x1 + cmp r4, r5 + ble _080C32B2 +_080C3382: + ldr r4, _080C33D4 @ =gUnknown_083D1644 + ldr r5, _080C33D8 @ =REG_BG0CNT + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl CpuSet + adds r6, r4, 0 + adds r6, 0x80 + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x80 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + adds r4, 0x40 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r7, r0 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C33D0: .4byte gUnknown_083D16E4 +_080C33D4: .4byte gUnknown_083D1644 +_080C33D8: .4byte REG_BG0CNT + thumb_func_end sub_80C3158 + + thumb_func_start sub_80C33DC +sub_80C33DC: @ 80C33DC + push {r4-r6,lr} + sub sp, 0x20 + mov r1, sp + ldr r0, _080C3498 @ =gSpriteTemplate_83D174C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r5, sp, 0x18 + ldr r6, _080C349C @ =gUnknown_083D1764 + movs r4, 0x7 +_080C33F2: + adds r0, r6, 0 + bl LoadSpriteSheet + adds r6, 0x8 + subs r4, 0x1 + cmp r4, 0 + bge _080C33F2 + ldr r0, _080C34A0 @ =gUnknown_083D17A4 + bl LoadSpritePalette + movs r4, 0 + mov r6, sp +_080C340A: + mov r0, sp + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x90 + movs r3, 0xA + bl CreateSprite + adds r1, r5, r4 + strb r0, [r1] + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + adds r4, 0x1 + cmp r4, 0x7 + ble _080C340A + ldr r2, _080C34A4 @ =gSprites + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x1] + movs r3, 0 + strh r1, [r0, 0x2E] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x2] + strh r1, [r0, 0x30] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x3] + strh r1, [r0, 0x32] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x5] + strh r1, [r0, 0x2E] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x6] + strh r1, [r0, 0x30] + ldrb r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r5, 0x7] + strh r1, [r0, 0x32] + ldr r1, _080C34A8 @ =0x02018000 + ldrb r0, [r5] + strb r0, [r1] + strb r3, [r1, 0x4] + ldrb r0, [r5, 0x4] + strb r0, [r1, 0x1] + bl sub_80C3764 + add sp, 0x20 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3498: .4byte gSpriteTemplate_83D174C +_080C349C: .4byte gUnknown_083D1764 +_080C34A0: .4byte gUnknown_083D17A4 +_080C34A4: .4byte gSprites +_080C34A8: .4byte 0x02018000 + thumb_func_end sub_80C33DC + + thumb_func_start sub_80C34AC +sub_80C34AC: @ 80C34AC + push {lr} + bl StringLength + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 25 + lsrs r1, 25 + movs r0, 0x70 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80C34AC + + thumb_func_start sub_80C34CC +sub_80C34CC: @ 80C34CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, _080C3514 @ =0x02018000 + mov r8, r4 + ldrb r5, [r4] + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r5, _080C3518 @ =gSprites + adds r4, r5 + movs r6, 0 + movs r5, 0x88 + lsls r5, 1 + strh r5, [r4, 0x20] + strh r1, [r4, 0x22] + strh r6, [r4, 0x24] + strh r6, [r4, 0x26] + lsls r0, 16 + asrs r0, 16 + adds r0, 0x20 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + strh r3, [r4, 0x3A] + strh r6, [r4, 0x3C] + ldr r0, _080C351C @ =sub_80C3588 + str r0, [r4, 0x1C] + movs r0, 0x1 + mov r1, r8 + strb r0, [r1, 0x4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3514: .4byte 0x02018000 +_080C3518: .4byte gSprites +_080C351C: .4byte sub_80C3588 + thumb_func_end sub_80C34CC + + thumb_func_start sub_80C3520 +sub_80C3520: @ 80C3520 + push {r4,r5,lr} + ldr r4, _080C3558 @ =0x02018000 + ldrb r2, [r4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _080C355C @ =gSprites + adds r1, r2 + ldrh r2, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r2, r3 + movs r3, 0 + strh r2, [r1, 0x20] + ldrh r2, [r1, 0x26] + ldrh r5, [r1, 0x22] + adds r2, r5 + strh r2, [r1, 0x22] + strh r3, [r1, 0x26] + strh r3, [r1, 0x24] + strh r0, [r1, 0x3A] + strh r3, [r1, 0x3C] + ldr r0, _080C3560 @ =sub_80C3630 + str r0, [r1, 0x1C] + movs r0, 0x3 + strb r0, [r4, 0x4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3558: .4byte 0x02018000 +_080C355C: .4byte gSprites +_080C3560: .4byte sub_80C3630 + thumb_func_end sub_80C3520 + + thumb_func_start sub_80C3564 +sub_80C3564: @ 80C3564 + movs r3, 0 + movs r2, 0 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r1, 0x90 + strh r1, [r0, 0x22] + strh r2, [r0, 0x26] + strh r2, [r0, 0x24] + ldr r1, _080C3580 @ =SpriteCallbackDummy + str r1, [r0, 0x1C] + ldr r0, _080C3584 @ =0x02018000 + strb r3, [r0, 0x4] + bx lr + .align 2, 0 +_080C3580: .4byte SpriteCallbackDummy +_080C3584: .4byte 0x02018000 + thumb_func_end sub_80C3564 + + thumb_func_start sub_80C3588 +sub_80C3588: @ 80C3588 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x3C] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r3, 0x36] + movs r4, 0x36 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _080C35B2 + strh r2, [r3, 0x20] +_080C35B2: + movs r4, 0 + ldr r6, _080C35F4 @ =gSprites + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C35BC: + movs r7, 0 + ldrsh r0, [r2, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C35BC + movs r0, 0x20 + ldrsh r1, [r3, r0] + movs r2, 0x36 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _080C35EC + ldr r0, _080C35F8 @ =sub_80C35FC + str r0, [r3, 0x1C] +_080C35EC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C35F4: .4byte gSprites +_080C35F8: .4byte sub_80C35FC + thumb_func_end sub_80C3588 + + thumb_func_start sub_80C35FC +sub_80C35FC: @ 80C35FC + push {lr} + adds r2, r0, 0 + ldr r0, _080C3628 @ =0x02018000 + movs r1, 0x2 + strb r1, [r0, 0x4] + ldrh r3, [r2, 0x38] + ldr r1, _080C362C @ =0xffff0000 + lsrs r0, r1, 16 + cmp r3, r0 + beq _080C3624 + subs r0, r3, 0x1 + strh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 16 + asrs r1, 16 + cmp r0, r1 + bne _080C3624 + ldrh r0, [r2, 0x3A] + bl sub_80C3520 +_080C3624: + pop {r0} + bx r0 + .align 2, 0 +_080C3628: .4byte 0x02018000 +_080C362C: .4byte 0xffff0000 + thumb_func_end sub_80C35FC + + thumb_func_start sub_80C3630 +sub_80C3630: @ 80C3630 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + ldrh r0, [r3, 0x3C] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r0, 0xFF + ands r2, r0 + strh r2, [r3, 0x3C] + movs r4, 0 + ldr r6, _080C3694 @ =gSprites + movs r5, 0x40 + adds r2, r3, 0 + adds r2, 0x2E +_080C3654: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r3, 0x24] + ldrh r7, [r3, 0x20] + adds r0, r7 + adds r0, r5 + strh r0, [r1, 0x20] + adds r5, 0x40 + adds r2, 0x2 + adds r4, 0x1 + cmp r4, 0x2 + ble _080C3654 + movs r1, 0x20 + ldrsh r0, [r3, r1] + movs r2, 0x24 + ldrsh r1, [r3, r2] + adds r0, r1 + movs r1, 0xE0 + negs r1, r1 + cmp r0, r1 + bge _080C368C + adds r0, r3, 0 + bl sub_80C3564 +_080C368C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3694: .4byte gSprites + thumb_func_end sub_80C3630 + + thumb_func_start sub_80C3698 +sub_80C3698: @ 80C3698 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080C374C @ =0x02018000 + ldrb r1, [r5, 0x1] + bl sub_80C3158 + adds r0, r4, 0 + bl sub_80C34AC + lsls r0, 16 + lsrs r0, 16 + ldrb r2, [r5, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r3, _080C3750 @ =gSprites + adds r4, r1, r3 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x50 + strh r0, [r4, 0x22] + adds r5, r4, 0 + adds r5, 0x3E + ldrb r1, [r5] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r5] + movs r5, 0 + adds r6, r3, 0 + mov r12, r2 + movs r3, 0x40 +_080C36DA: + lsls r0, r5, 1 + adds r2, r4, 0 + adds r2, 0x2E + adds r2, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r4, 0x24] + ldrh r7, [r4, 0x20] + adds r0, r7 + adds r0, r3 + strh r0, [r1, 0x20] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x22] + strh r1, [r0, 0x22] + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + adds r3, 0x40 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C36DA + ldr r1, _080C3754 @ =gUnknown_030042C4 + movs r0, 0xF0 + strh r0, [r1] + ldr r2, _080C3758 @ =gUnknown_03004240 + ldrh r1, [r4, 0x22] + adds r0, r1, 0 + subs r0, 0x10 + lsls r0, 8 + adds r1, 0x10 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080C375C @ =REG_WININ + ldr r2, _080C3760 @ =0x00003f3e + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C374C: .4byte 0x02018000 +_080C3750: .4byte gSprites +_080C3754: .4byte gUnknown_030042C4 +_080C3758: .4byte gUnknown_03004240 +_080C375C: .4byte REG_WININ +_080C3760: .4byte 0x00003f3e + thumb_func_end sub_80C3698 + + thumb_func_start sub_80C3764 +sub_80C3764: @ 80C3764 + push {r4-r7,lr} + ldr r0, _080C37C8 @ =0x02018000 + ldrb r0, [r0, 0x1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r3, _080C37CC @ =gSprites + adds r2, r3 + movs r0, 0x3E + adds r0, r2 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x4 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r7, _080C37D0 @ =gUnknown_030042C4 + ldr r6, _080C37D4 @ =gUnknown_03004240 + adds r5, r3, 0 + movs r4, 0x4 + adds r2, 0x2E + movs r3, 0x2 +_080C3790: + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3790 + movs r1, 0 + strh r1, [r7] + strh r1, [r6] + ldr r0, _080C37D8 @ =REG_WIN0H + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldr r1, _080C37DC @ =REG_WININ + ldr r2, _080C37E0 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C37C8: .4byte 0x02018000 +_080C37CC: .4byte gSprites +_080C37D0: .4byte gUnknown_030042C4 +_080C37D4: .4byte gUnknown_03004240 +_080C37D8: .4byte REG_WIN0H +_080C37DC: .4byte REG_WININ +_080C37E0: .4byte 0x00003f3f + thumb_func_end sub_80C3764 + + thumb_func_start sub_80C37E4 +sub_80C37E4: @ 80C37E4 + push {r4-r6,lr} + sub sp, 0x10 + movs r5, 0x1 + movs r4, 0 + ldr r0, _080C3808 @ =gUnknown_0203869A + ldrb r0, [r0] + adds r1, r5, 0 + ands r1, r0 + cmp r1, 0 + beq _080C3814 + ldr r0, _080C380C @ =0x0600e000 + ldr r3, _080C3810 @ =gUnknown_08E964B8 + movs r1, 0x9 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + b _080C386A + .align 2, 0 +_080C3808: .4byte gUnknown_0203869A +_080C380C: .4byte 0x0600e000 +_080C3810: .4byte gUnknown_08E964B8 +_080C3814: + ldr r0, _080C3830 @ =gUnknown_0203869E + ldrh r2, [r0] + cmp r2, 0 + bne _080C383C + movs r4, 0x1 + ldr r0, _080C3834 @ =0x0600e000 + ldr r3, _080C3838 @ =gUnknown_08E964B8 + str r2, [sp] + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + b _080C3870 + .align 2, 0 +_080C3830: .4byte gUnknown_0203869E +_080C3834: .4byte 0x0600e000 +_080C3838: .4byte gUnknown_08E964B8 +_080C383C: + cmp r2, 0x1 + bne _080C385C + ldr r0, _080C3854 @ =0x0600e000 + ldr r3, _080C3858 @ =gUnknown_08E964B8 + movs r1, 0x9 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + b _080C3870 + .align 2, 0 +_080C3854: .4byte 0x0600e000 +_080C3858: .4byte gUnknown_08E964B8 +_080C385C: + cmp r2, 0x2 + bne _080C3884 + ldr r0, _080C387C @ =0x0600e000 + ldr r3, _080C3880 @ =gUnknown_08E964B8 + movs r1, 0x11 + str r1, [sp] + str r4, [sp, 0x4] +_080C386A: + movs r1, 0x8 + str r1, [sp, 0x8] + str r2, [sp, 0xC] +_080C3870: + movs r1, 0x5 + movs r2, 0x1 + bl sub_809D104 + b _080C389E + .align 2, 0 +_080C387C: .4byte 0x0600e000 +_080C3880: .4byte gUnknown_08E964B8 +_080C3884: + movs r4, 0x1 + ldr r0, _080C38C0 @ =0x0600e000 + ldr r3, _080C38C4 @ =gUnknown_08E964B8 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + movs r1, 0x5 + movs r2, 0x1 + bl sub_809D104 +_080C389E: + adds r4, 0xD + ldr r0, _080C38C8 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0 + bne _080C38CC + movs r6, 0 + ldr r0, _080C38C0 @ =0x0600e000 + ldr r3, _080C38C4 @ =gUnknown_08E964B8 + movs r1, 0x11 + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r2, [sp, 0xC] + b _080C392A + .align 2, 0 +_080C38C0: .4byte 0x0600e000 +_080C38C4: .4byte gUnknown_08E964B8 +_080C38C8: .4byte gUnknown_0203869C +_080C38CC: + cmp r0, 0x1 + bne _080C38EC + movs r6, 0x1 + ldr r0, _080C38E4 @ =0x0600e000 + ldr r3, _080C38E8 @ =gUnknown_08E964B8 + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xB + b _080C3924 + .align 2, 0 +_080C38E4: .4byte 0x0600e000 +_080C38E8: .4byte gUnknown_08E964B8 +_080C38EC: + cmp r0, 0x2 + bne _080C3910 + movs r6, 0x2 + ldr r0, _080C3908 @ =0x0600e000 + ldr r3, _080C390C @ =gUnknown_08E964B8 + movs r1, 0xB + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r6, [sp, 0xC] + b _080C392A + .align 2, 0 +_080C3908: .4byte 0x0600e000 +_080C390C: .4byte gUnknown_08E964B8 +_080C3910: + cmp r0, 0x3 + bne _080C393C + movs r6, 0x3 + ldr r0, _080C3934 @ =0x0600e000 + ldr r3, _080C3938 @ =gUnknown_08E964B8 + movs r1, 0x15 + str r1, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + movs r1, 0xA +_080C3924: + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] +_080C392A: + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_809D104 + b _080C395A + .align 2, 0 +_080C3934: .4byte 0x0600e000 +_080C3938: .4byte gUnknown_08E964B8 +_080C393C: + movs r6, 0x4 + ldr r0, _080C3984 @ =0x0600e000 + ldr r3, _080C3988 @ =gUnknown_08E964B8 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_809D104 +_080C395A: + ldr r5, _080C398C @ =0x00000fff + lsls r4, r6, 12 + ldr r2, _080C3984 @ =0x0600e000 + movs r3, 0x7F +_080C3962: + ldrh r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r2] + adds r0, r4, 0 + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3962 + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C3984: .4byte 0x0600e000 +_080C3988: .4byte gUnknown_08E964B8 +_080C398C: .4byte 0x00000fff + thumb_func_end sub_80C37E4 + + thumb_func_start sub_80C3990 +sub_80C3990: @ 80C3990 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r1, _080C39DC @ =gUnknown_02038670 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x3F + bl __udivsi3 + adds r1, r0, 0 + ldr r0, _080C39E0 @ =0x0000ffff + ands r0, r1 + cmp r0, 0 + beq _080C39BC + movs r0, 0x80 + lsls r0, 9 + adds r1, r0 +_080C39BC: + lsrs r1, 16 + cmp r1, 0 + bne _080C39C8 + cmp r4, 0 + beq _080C39C8 + movs r1, 0x1 +_080C39C8: + cmp r5, 0 + beq _080C39D2 + cmp r1, 0xA + bls _080C39D2 + movs r1, 0xA +_080C39D2: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080C39DC: .4byte gUnknown_02038670 +_080C39E0: .4byte 0x0000ffff + thumb_func_end sub_80C3990 + + thumb_func_start sub_80C39E4 +sub_80C39E4: @ 80C39E4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080C3A44 @ =gUnknown_02038688 + lsls r0, r5, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r7, r1, 0 + cmp r0, 0 + bge _080C3A00 + negs r0, r0 +_080C3A00: + lsls r4, r0, 16 + adds r0, r4, 0 + movs r1, 0x50 + bl __udivsi3 + adds r2, r0, 0 + ldr r0, _080C3A48 @ =0x0000ffff + ands r0, r2 + cmp r0, 0 + beq _080C3A1A + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 +_080C3A1A: + lsrs r2, 16 + cmp r2, 0 + bne _080C3A26 + cmp r4, 0 + beq _080C3A26 + movs r2, 0x1 +_080C3A26: + cmp r6, 0 + beq _080C3A30 + cmp r2, 0xA + bls _080C3A30 + movs r2, 0xA +_080C3A30: + lsls r0, r5, 1 + adds r0, r7 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080C3A4C + negs r0, r2 + lsls r0, 24 + b _080C3A4E + .align 2, 0 +_080C3A44: .4byte gUnknown_02038688 +_080C3A48: .4byte 0x0000ffff +_080C3A4C: + lsls r0, r2, 24 +_080C3A4E: + lsrs r0, 24 + lsls r0, 24 + asrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C39E4 + + thumb_func_start sub_80C3A5C +sub_80C3A5C: @ 80C3A5C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _080C3A90 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0x1C] + movs r1, 0x1C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080C3A94 + movs r1, 0x8 + ldrsh r0, [r3, r1] + movs r1, 0x3 + subs r1, r0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + strh r0, [r3, 0x1E] + adds r0, r2, 0x1 + strh r0, [r3, 0x1C] + b _080C3B12 + .align 2, 0 +_080C3A90: .4byte gTasks +_080C3A94: + cmp r0, 0x1 + bne _080C3B12 + ldrh r0, [r3, 0x1E] + subs r0, 0x1 + strh r0, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080C3B12 + movs r0, 0x8 + ldrsh r2, [r3, r0] + lsls r2, 17 + ldr r1, _080C3B18 @ =0x50430000 + adds r2, r1 + lsrs r2, 16 + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B1C @ =0x0600e142 + adds r0, r1 + strh r2, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B20 @ =0x0600e144 + adds r0, r1 + adds r1, r2, 0x1 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B24 @ =0x0600e182 + adds r0, r1 + adds r1, r2, 0 + adds r1, 0x10 + strh r1, [r0] + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 6 + ldr r1, _080C3B28 @ =0x0600e184 + adds r0, r1 + adds r2, 0x11 + strh r2, [r0] + ldr r1, _080C3B2C @ =0x02018000 + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + adds r0, r4, 0 + bl DestroyTask + movs r0, 0x18 + bl PlaySE +_080C3B12: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3B18: .4byte 0x50430000 +_080C3B1C: .4byte 0x0600e142 +_080C3B20: .4byte 0x0600e144 +_080C3B24: .4byte 0x0600e182 +_080C3B28: .4byte 0x0600e184 +_080C3B2C: .4byte 0x02018000 + thumb_func_end sub_80C3A5C + + thumb_func_start sub_80C3B30 +sub_80C3B30: @ 80C3B30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r5, 0 + ldr r1, _080C3BC0 @ =gUnknown_02038690 + ldrb r0, [r1] + ldr r2, _080C3BC4 @ =gTasks + mov r10, r2 + cmp r0, 0 + beq _080C3B5C +_080C3B4E: + adds r5, 0x1 + cmp r5, 0x3 + bgt _080C3B5C + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080C3B4E +_080C3B5C: + movs r1, 0 + lsls r0, r5, 1 + mov r2, r12 + lsls r2, 2 + mov r9, r2 + adds r0, r5 + lsls r0, 5 + mov r8, r0 + ldr r7, _080C3BC8 @ =0x00000fff + movs r0, 0x90 + lsls r0, 8 + adds r6, r0, 0 +_080C3B74: + lsls r0, r1, 5 + adds r4, r1, 0x1 + add r0, r8 + movs r3, 0x1D + lsls r0, 1 + ldr r1, _080C3BCC @ =0x0600e100 + adds r2, r0, r1 +_080C3B82: + ldrh r1, [r2] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3B82 + adds r1, r4, 0 + cmp r1, 0x2 + ble _080C3B74 + mov r0, r9 + add r0, r12 + lsls r0, 3 + add r0, r10 + strh r5, [r0, 0x1C] + movs r1, 0x1 + strh r1, [r0, 0x20] + ldr r2, _080C3BD0 @ =sub_80C3BD8 + str r2, [r0] + mov r1, r12 + ldr r0, _080C3BD4 @ =0x02018000 + strb r1, [r0, 0x3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3BC0: .4byte gUnknown_02038690 +_080C3BC4: .4byte gTasks +_080C3BC8: .4byte 0x00000fff +_080C3BCC: .4byte 0x0600e100 +_080C3BD0: .4byte sub_80C3BD8 +_080C3BD4: .4byte 0x02018000 + thumb_func_end sub_80C3B30 + + thumb_func_start sub_80C3BD8 +sub_80C3BD8: @ 80C3BD8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3C24 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x1 + bne _080C3C3C + movs r0, 0 + strh r0, [r4, 0x1E] + ldrh r2, [r4, 0x20] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080C3C28 @ =0x00006f8d + movs r0, 0x91 + movs r1, 0x1 + bl BlendPalette + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C3C2C + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080C3C3C + strh r5, [r4, 0x22] + b _080C3C3C + .align 2, 0 +_080C3C24: .4byte gTasks +_080C3C28: .4byte 0x00006f8d +_080C3C2C: + ldrh r0, [r4, 0x20] + subs r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080C3C3C + strh r0, [r4, 0x22] +_080C3C3C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C3BD8 + + thumb_func_start sub_80C3C44 +sub_80C3C44: @ 80C3C44 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080C3C6C + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080C3CA8 + ldrh r0, [r4, 0x30] + movs r1, 0 + bl PlayCry1 + movs r0, 0 + strh r0, [r4, 0x30] + b _080C3CA8 +_080C3C6C: + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r1, [r4, 0x30] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x20] + subs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x77 + bgt _080C3C92 + movs r0, 0x78 + strh r0, [r4, 0x20] +_080C3C92: + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + bne _080C3CA8 + ldr r0, _080C3CB0 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080C3CB4 @ =0x02018000 + movs r0, 0x1 + strb r0, [r1, 0x6] +_080C3CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C3CB0: .4byte SpriteCallbackDummy +_080C3CB4: .4byte 0x02018000 + thumb_func_end sub_80C3C44 + + thumb_func_start sub_80C3CB8 +sub_80C3CB8: @ 80C3CB8 + push {lr} + adds r3, r0, 0 + movs r0, 0xC0 + lsls r0, 3 + adds r2, r0, 0 + ldrh r0, [r3, 0x30] + adds r2, r0 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r3, 0x20] + subs r0, r1 + strh r0, [r3, 0x20] + movs r1, 0xFF + ands r2, r1 + strh r2, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080C3CF8 + ldr r0, _080C3CFC @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080C3D00 @ =0x02018000 + movs r0, 0x2 + strb r0, [r1, 0x6] +_080C3CF8: + pop {r0} + bx r0 + .align 2, 0 +_080C3CFC: .4byte SpriteCallbackDummy +_080C3D00: .4byte 0x02018000 + thumb_func_end sub_80C3CB8 + + thumb_func_start sub_80C3D04 +sub_80C3D04: @ 80C3D04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080C3DD8 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080C3DBE + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _080C3DDC @ =0x02018000 + mov r8, r0 + ldrb r0, [r0, 0x7] + cmp r0, 0x27 + bhi _080C3DBE + ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r1, r0, 0 + subs r1, 0x14 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0x2C + movs r3, 0x5 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + ldr r1, _080C3DE4 @ =gSprites + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r1 + lsls r0, 23 + lsrs r0, 23 + strh r0, [r5, 0x2E] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + adds r0, 0x10 + strh r0, [r5, 0x30] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xFF + ands r0, r1 + adds r0, 0x30 + strh r0, [r5, 0x32] + bl Random + ldrh r6, [r5, 0x4] + lsls r4, r6, 22 + lsrs r4, 22 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + adds r4, r0 + ldr r1, _080C3DE8 @ =0x000003ff + adds r0, r1, 0 + ands r4, r0 + ldr r0, _080C3DEC @ =0xfffffc00 + ands r0, r6 + orrs r0, r4 + strh r0, [r5, 0x4] + mov r1, r8 + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] +_080C3DBE: + ldr r0, _080C3DDC @ =0x02018000 + ldrb r0, [r0, 0x9] + cmp r0, 0 + beq _080C3DCC + adds r0, r7, 0 + bl DestroyTask +_080C3DCC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C3DD8: .4byte gTasks +_080C3DDC: .4byte 0x02018000 +_080C3DE0: .4byte gSpriteTemplate_83D17B4 +_080C3DE4: .4byte gSprites +_080C3DE8: .4byte 0x000003ff +_080C3DEC: .4byte 0xfffffc00 + thumb_func_end sub_80C3D04 + + thumb_func_start sub_80C3DF0 +sub_80C3DF0: @ 80C3DF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x32] + ldrh r0, [r4, 0x36] + adds r1, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x36] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldr r5, _080C3E5C @ =0x02018000 + ldrb r0, [r5, 0x9] + cmp r0, 0 + beq _080C3E3A + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080C3E3A: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xF8 + bgt _080C3E4A + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x74 + ble _080C3E56 +_080C3E4A: + adds r0, r4, 0 + bl DestroySprite + ldrb r0, [r5, 0x7] + subs r0, 0x1 + strb r0, [r5, 0x7] +_080C3E56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E5C: .4byte 0x02018000 + thumb_func_end sub_80C3DF0 + + thumb_func_start sub_80C3E60 +sub_80C3E60: @ 80C3E60 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080C3E98 @ =sub_80C3EA4 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3E9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + ldr r0, _080C3EA0 @ =gUnknown_02038570 + lsls r4, 6 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r1, 0xC] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3E98: .4byte sub_80C3EA4 +_080C3E9C: .4byte gTasks +_080C3EA0: .4byte gUnknown_02038570 + thumb_func_end sub_80C3E60 + + thumb_func_start sub_80C3EA4 +sub_80C3EA4: @ 80C3EA4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C3EF8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrb r5, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080C3EEE + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0xC] + ldrb r2, [r4, 0x1E] + ldr r1, _080C3EFC @ =gUnknown_02038570 + lsls r3, r5, 6 + adds r1, 0x38 + adds r3, r1 + ldr r1, [r3] + str r1, [sp] + adds r1, r5, 0 + movs r3, 0 + bl sub_80C3024 + ldrh r0, [r4, 0x1E] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x1E] +_080C3EEE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3EF8: .4byte gTasks +_080C3EFC: .4byte gUnknown_02038570 + thumb_func_end sub_80C3EA4 + + thumb_func_start sub_80C3F00 +sub_80C3F00: @ 80C3F00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _080C4098 @ =gUnknown_02038678 + ldrh r2, [r0] + adds r4, r0, 0 + adds r3, r4, 0x2 + movs r0, 0x2 + mov r8, r0 +_080C3F16: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + bge _080C3F24 + ldrh r2, [r3] +_080C3F24: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + mov r1, r8 + cmp r1, 0 + bge _080C3F16 + lsls r0, r2, 16 + mov r9, r0 + cmp r0, 0 + bge _080C3F62 + ldrh r2, [r4] + adds r3, r4, 0x2 + movs r4, 0x2 + mov r8, r4 +_080C3F42: + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0 + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _080C3F50 + ldrh r2, [r3] +_080C3F50: + adds r3, 0x2 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + lsls r1, r2, 16 + mov r9, r1 + mov r4, r8 + cmp r4, 0 + bge _080C3F42 +_080C3F62: + movs r5, 0 + mov r8, r5 + mov r10, r5 +_080C3F68: + ldr r0, _080C409C @ =gUnknown_02038670 + mov r1, r8 + lsls r7, r1, 1 + adds r0, r7, r0 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + mov r4, r9 + asrs r6, r4, 16 + adds r1, r6, 0 + cmp r6, 0 + bge _080C3F8A + negs r1, r6 +_080C3F8A: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3F9C + adds r4, 0xA +_080C3F9C: + ldr r0, _080C40A0 @ =0x02018018 + mov r1, r10 + adds r5, r1, r0 + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + ldr r0, _080C40A4 @ =gUnknown_02038688 + adds r7, r0 + movs r2, 0 + ldrsh r1, [r7, r2] + cmp r1, 0 + bge _080C3FBA + negs r1, r1 +_080C3FBA: + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r6, 0 + cmp r1, 0 + bge _080C3FCC + negs r1, r1 +_080C3FCC: + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C3FDE + adds r4, 0xA +_080C3FDE: + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + str r0, [r5, 0x4] + movs r4, 0 + ldrsh r0, [r7, r4] + cmp r0, 0 + bge _080C3FF4 + movs r0, 0x1 + strb r0, [r5, 0x10] +_080C3FF4: + ldr r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + movs r4, 0xFF + ands r0, r4 + cmp r0, 0x7F + bls _080C4016 + movs r0, 0x80 + lsls r0, 1 + adds r1, r0 +_080C4016: + lsrs r0, r1, 8 + str r0, [r5, 0x8] + ldr r1, [r5, 0x4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r0, r1 + lsls r0, 11 + movs r1, 0x64 + bl __divsi3 + adds r1, r0, 0 + ands r0, r4 + cmp r0, 0x7F + bls _080C403A + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 +_080C403A: + lsrs r0, r1, 8 + str r0, [r5, 0xC] + mov r0, r8 + lsls r4, r0, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C3990 + strb r0, [r5, 0x11] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80C39E4 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080C4060 + negs r0, r0 +_080C4060: + strb r0, [r5, 0x12] + ldr r0, _080C40A8 @ =gUnknown_02038690 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0 + beq _080C40B4 + ldr r4, [r5, 0x8] + ldrh r2, [r5, 0x8] + ldr r3, [r5, 0xC] + ldrh r1, [r5, 0xC] + ldrb r0, [r5, 0x10] + cmp r0, 0 + beq _080C4080 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080C4080: + lsls r0, r2, 16 + asrs r2, r0, 16 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r0, r2, r1 + cmp r0, 0x58 + bne _080C40B4 + cmp r1, 0 + ble _080C40AC + subs r0, r3, 0x1 + str r0, [r5, 0xC] + b _080C40B4 + .align 2, 0 +_080C4098: .4byte gUnknown_02038678 +_080C409C: .4byte gUnknown_02038670 +_080C40A0: .4byte 0x02018018 +_080C40A4: .4byte gUnknown_02038688 +_080C40A8: .4byte gUnknown_02038690 +_080C40AC: + cmp r2, 0 + ble _080C40B4 + subs r0, r4, 0x1 + str r0, [r5, 0x8] +_080C40B4: + movs r1, 0x14 + add r10, r1 + movs r2, 0x1 + add r8, r2 + mov r4, r8 + cmp r4, 0x3 + bgt _080C40C4 + b _080C3F68 +_080C40C4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C3F00 + + thumb_func_start sub_80C40D4 +sub_80C40D4: @ 80C40D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + mov r10, r1 + movs r2, 0 + str r2, [sp] + cmp r0, 0 + bne _080C4198 + mov r8, r2 + ldr r0, _080C417C @ =0x02018018 + subs r1, 0x18 + adds r1, r0 + mov r9, r1 + adds r4, r0, 0 + adds r4, 0x8 + movs r6, 0xA0 +_080C4102: + ldrb r0, [r4, 0x9] + cmp r7, r0 + bcs _080C416A + adds r0, 0x13 + adds r0, r6, r0 + subs r0, r7 + lsls r0, 1 + ldr r2, _080C4180 @ =0x0600bffe + adds r0, r2 + ldr r2, _080C4184 @ =0x000060b3 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _080C4188 @ =sub_80C42C0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r4] + lsls r0, 16 + ldrb r1, [r4, 0x9] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C418C @ =0x0000ffff + ands r0, r3 + ldr r1, _080C4190 @ =0x00007fff + cmp r0, r1 + bls _080C4146 + movs r0, 0x80 + lsls r0, 9 + adds r3, r0 +_080C4146: + ldr r1, _080C4194 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] + lsrs r1, r3, 16 + strh r1, [r0, 0xA] + mov r2, r9 + ldrb r0, [r2, 0x14] + adds r0, 0x1 + strb r0, [r2, 0x14] + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C416A: + adds r4, 0x14 + adds r6, 0x60 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + ble _080C4102 + b _080C4292 + .align 2, 0 +_080C417C: .4byte 0x02018018 +_080C4180: .4byte 0x0600bffe +_080C4184: .4byte 0x000060b3 +_080C4188: .4byte sub_80C42C0 +_080C418C: .4byte 0x0000ffff +_080C4190: .4byte 0x00007fff +_080C4194: .4byte gTasks +_080C4198: + movs r2, 0 + mov r8, r2 + ldr r0, _080C4220 @ =0x02018018 + mov r12, r0 + mov r9, r2 + movs r1, 0xC0 + str r1, [sp, 0x4] +_080C41A6: + mov r6, r9 + add r6, r12 + ldrb r1, [r6, 0x12] + ldrb r0, [r6, 0x10] + ldr r2, _080C4224 @ =0x000060a3 + cmp r0, 0 + beq _080C41B6 + adds r2, 0x2 +_080C41B6: + lsls r0, r1, 24 + asrs r0, 24 + cmp r7, r0 + bge _080C427E + adds r0, 0x13 + ldr r1, [sp, 0x4] + adds r0, r1, r0 + subs r0, r7 + lsls r0, 1 + ldr r1, _080C4228 @ =0x0600bffe + adds r0, r1 + strh r2, [r0] + ldr r0, _080C422C @ =sub_80C42C0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, [r6, 0xC] + lsls r0, 16 + ldrb r1, [r6, 0x12] + bl __udivsi3 + adds r1, r7, 0x1 + adds r3, r0, 0 + muls r3, r1 + ldr r0, _080C4230 @ =0x0000ffff + ands r0, r3 + ldr r1, _080C4234 @ =0x00007fff + cmp r0, r1 + bls _080C41FA + movs r2, 0x80 + lsls r2, 9 + adds r3, r2 +_080C41FA: + ldr r1, _080C4238 @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r4, r0, r1 + mov r0, r8 + strh r0, [r4, 0x8] + ldrb r0, [r6, 0x10] + adds r6, r1, 0 + cmp r0, 0 + beq _080C423C + movs r0, 0x1 + strh r0, [r4, 0xC] + ldr r0, [sp] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + b _080C4246 + .align 2, 0 +_080C4220: .4byte 0x02018018 +_080C4224: .4byte 0x000060a3 +_080C4228: .4byte 0x0600bffe +_080C422C: .4byte sub_80C42C0 +_080C4230: .4byte 0x0000ffff +_080C4234: .4byte 0x00007fff +_080C4238: .4byte gTasks +_080C423C: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_080C4246: + ldr r0, _080C4264 @ =0x02018018 + mov r1, r9 + adds r4, r1, r0 + ldrb r1, [r4, 0x10] + mov r12, r0 + cmp r1, 0 + beq _080C4268 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + subs r1, r2 + b _080C4274 + .align 2, 0 +_080C4264: .4byte 0x02018018 +_080C4268: + adds r0, r2, r5 + lsls r0, 3 + adds r0, r6 + lsrs r2, r3, 16 + ldr r1, [r4, 0x8] + adds r1, r2 +_080C4274: + strh r1, [r0, 0xA] + ldr r1, _080C42BC @ =0x02018000 + ldrb r0, [r1, 0x14] + adds r0, 0x1 + strb r0, [r1, 0x14] +_080C427E: + movs r2, 0x14 + add r9, r2 + ldr r0, [sp, 0x4] + adds r0, 0x60 + str r0, [sp, 0x4] + movs r1, 0x1 + add r8, r1 + mov r2, r8 + cmp r2, 0x3 + ble _080C41A6 +_080C4292: + ldr r0, [sp] + cmp r0, 0 + beq _080C429E + movs r0, 0x16 + bl PlaySE +_080C429E: + mov r1, r10 + cmp r1, 0 + beq _080C42AA + movs r0, 0x15 + bl PlaySE +_080C42AA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C42BC: .4byte 0x02018000 + thumb_func_end sub_80C40D4 + + thumb_func_start sub_80C42C0 +sub_80C42C0: @ 80C42C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + movs r6, 0 + mov r9, r6 + ldr r1, _080C4308 @ =gTasks + lsls r0, 2 + add r0, r12 + lsls r0, 3 + adds r0, r1 + ldrb r5, [r0, 0x8] + ldrh r7, [r0, 0xA] + ldrh r1, [r0, 0xC] + mov r8, r1 + movs r2, 0xC + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080C4310 + ldr r1, _080C430C @ =0x02018000 + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0 + bgt _080C4328 + b _080C4326 + .align 2, 0 +_080C4308: .4byte gTasks +_080C430C: .4byte 0x02018000 +_080C4310: + ldr r1, _080C4350 @ =0x02018000 + lsls r2, r5, 1 + adds r0, r1, 0 + adds r0, 0xC + adds r0, r2, r0 + movs r3, 0 + ldrsh r0, [r0, r3] + mov r10, r1 + adds r4, r2, 0 + cmp r0, 0x57 + ble _080C4328 +_080C4326: + movs r6, 0x1 +_080C4328: + mov r0, r10 + adds r0, 0xC + adds r3, r4, r0 + ldrh r2, [r3] + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r7, 16 + asrs r0, 16 + cmp r1, r0 + bne _080C4340 + movs r1, 0x1 + mov r9, r1 +_080C4340: + mov r0, r9 + cmp r0, 0 + bne _080C4362 + cmp r6, 0 + beq _080C4354 + strh r7, [r3] + b _080C4362 + .align 2, 0 +_080C4350: .4byte 0x02018000 +_080C4354: + mov r1, r8 + cmp r1, 0 + beq _080C435E + subs r0, r2, 0x1 + b _080C4360 +_080C435E: + adds r0, r2, 0x1 +_080C4360: + strh r0, [r3] +_080C4362: + cmp r6, 0 + bne _080C43C8 + mov r2, r9 + cmp r2, 0 + bne _080C43CE + movs r2, 0 + ldr r0, _080C4388 @ =0x0201800c + adds r6, r4, r0 + adds r0, r4, r5 + lsls r5, r0, 5 +_080C4376: + movs r0, 0 + ldrsh r3, [r6, r0] + adds r0, r2, 0x1 + lsls r1, r0, 3 + adds r4, r0, 0 + cmp r3, r1 + blt _080C438C + movs r0, 0x8 + b _080C43A8 + .align 2, 0 +_080C4388: .4byte 0x0201800c +_080C438C: + lsls r0, r2, 3 + cmp r3, r0 + blt _080C43A6 + adds r0, r3, 0 + cmp r3, 0 + bge _080C439A + adds r0, r3, 0x7 +_080C439A: + asrs r0, 3 + lsls r0, 3 + subs r0, r3, r0 + lsls r0, 24 + lsrs r0, 24 + b _080C43A8 +_080C43A6: + movs r0, 0 +_080C43A8: + cmp r0, 0x3 + bhi _080C43B4 + ldr r3, _080C43B0 @ =0x0000504c + b _080C43B6 + .align 2, 0 +_080C43B0: .4byte 0x0000504c +_080C43B4: + ldr r3, _080C43EC @ =0x00005057 +_080C43B6: + adds r1, r0, r3 + adds r0, r5, r2 + lsls r0, 1 + ldr r2, _080C43F0 @ =0x0600e18e + adds r0, r2 + strh r1, [r0] + adds r2, r4, 0 + cmp r2, 0xA + ble _080C4376 +_080C43C8: + mov r3, r9 + cmp r3, 0 + beq _080C43DC +_080C43CE: + mov r1, r10 + ldrb r0, [r1, 0x14] + subs r0, 0x1 + strb r0, [r1, 0x14] + mov r0, r12 + bl DestroyTask +_080C43DC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C43EC: .4byte 0x00005057 +_080C43F0: .4byte 0x0600e18e + thumb_func_end sub_80C42C0 + + thumb_func_start sub_80C43F4 +sub_80C43F4: @ 80C43F4 + push {r4,r5,lr} + ldr r0, _080C442C @ =gUnknown_02038694 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080C4430 @ =gPlayerParty + adds r0, r1 + bl sub_80AE47C + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + cmp r5, 0 + beq _080C4422 + ldr r4, _080C4434 @ =gUnknown_0203869C + ldrb r0, [r4] + ldr r1, _080C4438 @ =gUnknown_0203869E + ldrb r1, [r1] + bl sub_80AE398 + ldrb r0, [r4] + bl sub_80AE82C +_080C4422: + ldr r0, _080C443C @ =gScriptResult + strh r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C442C: .4byte gUnknown_02038694 +_080C4430: .4byte gPlayerParty +_080C4434: .4byte gUnknown_0203869C +_080C4438: .4byte gUnknown_0203869E +_080C443C: .4byte gScriptResult + thumb_func_end sub_80C43F4 + + thumb_func_start sub_80C4440 +sub_80C4440: @ 80C4440 + push {r4,lr} + movs r4, 0 + ldr r0, _080C4464 @ =gUnknown_02038694 + ldrb r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080C4468 @ =gPlayerParty + adds r2, r1, r0 + ldr r0, _080C446C @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C44B2 + lsls r0, 2 + ldr r1, _080C4470 @ =_080C4474 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4464: .4byte gUnknown_02038694 +_080C4468: .4byte gPlayerParty +_080C446C: .4byte gUnknown_0203869C +_080C4470: .4byte _080C4474 + .align 2, 0 +_080C4474: + .4byte _080C4488 + .4byte _080C448E + .4byte _080C4494 + .4byte _080C449A + .4byte _080C44A0 +_080C4488: + adds r0, r2, 0 + movs r1, 0x32 + b _080C44A4 +_080C448E: + adds r0, r2, 0 + movs r1, 0x33 + b _080C44A4 +_080C4494: + adds r0, r2, 0 + movs r1, 0x34 + b _080C44A4 +_080C449A: + adds r0, r2, 0 + movs r1, 0x35 + b _080C44A4 +_080C44A0: + adds r0, r2, 0 + movs r1, 0x36 +_080C44A4: + bl GetMonData + ldr r1, _080C44BC @ =gUnknown_0203869E + ldrh r1, [r1] + cmp r0, r1 + bls _080C44B2 + movs r4, 0x1 +_080C44B2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C44BC: .4byte gUnknown_0203869E + thumb_func_end sub_80C4440 + + thumb_func_start sub_80C44C0 +sub_80C44C0: @ 80C44C0 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _080C44E8 @ =gUnknown_02038690 + ldr r0, _080C44EC @ =gUnknown_02038695 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080C44D4 + b _080C465E +_080C44D4: + ldr r0, _080C44F0 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bls _080C44DE + b _080C465E +_080C44DE: + lsls r0, 2 + ldr r1, _080C44F4 @ =_080C44F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C44E8: .4byte gUnknown_02038690 +_080C44EC: .4byte gUnknown_02038695 +_080C44F0: .4byte gUnknown_0203869C +_080C44F4: .4byte _080C44F8 + .align 2, 0 +_080C44F8: + .4byte _080C450C + .4byte _080C4554 + .4byte _080C4598 + .4byte _080C45DC + .4byte _080C4624 +_080C450C: + ldr r6, _080C4548 @ =gUnknown_02038694 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C454C @ =gPlayerParty + adds r0, r4 + movs r1, 0x32 + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + mov r0, sp + strb r1, [r0] + ldr r0, _080C4550 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r1, r0 + bls _080C4530 + b _080C465E +_080C4530: + adds r0, r1, 0 + cmp r0, 0x3 + bls _080C4538 + b _080C465E +_080C4538: + adds r1, r0, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x32 + b _080C4610 + .align 2, 0 +_080C4548: .4byte gUnknown_02038694 +_080C454C: .4byte gPlayerParty +_080C4550: .4byte gUnknown_0203869E +_080C4554: + mov r4, sp + ldr r7, _080C458C @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C4590 @ =gPlayerParty + adds r0, r5 + movs r1, 0x33 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4594 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x33 + b _080C4610 + .align 2, 0 +_080C458C: .4byte gUnknown_02038694 +_080C4590: .4byte gPlayerParty +_080C4594: .4byte gUnknown_0203869E +_080C4598: + mov r4, sp + ldr r7, _080C45D0 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C45D4 @ =gPlayerParty + adds r0, r5 + movs r1, 0x34 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C45D8 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x34 + b _080C4610 + .align 2, 0 +_080C45D0: .4byte gUnknown_02038694 +_080C45D4: .4byte gPlayerParty +_080C45D8: .4byte gUnknown_0203869E +_080C45DC: + mov r4, sp + ldr r7, _080C4618 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C461C @ =gPlayerParty + adds r0, r5 + movs r1, 0x35 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4620 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x35 +_080C4610: + mov r2, sp + bl SetMonData + b _080C465E + .align 2, 0 +_080C4618: .4byte gUnknown_02038694 +_080C461C: .4byte gPlayerParty +_080C4620: .4byte gUnknown_0203869E +_080C4624: + mov r4, sp + ldr r7, _080C4668 @ =gUnknown_02038694 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080C466C @ =gPlayerParty + adds r0, r5 + movs r1, 0x36 + bl GetMonData + strb r0, [r4] + mov r0, sp + ldrb r2, [r0] + ldr r0, _080C4670 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r2, r0 + bhi _080C465E + cmp r2, 0x3 + bhi _080C465E + mov r1, sp + adds r0, r2, 0x1 + strb r0, [r1] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x36 + mov r2, sp + bl SetMonData +_080C465E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4668: .4byte gUnknown_02038694 +_080C466C: .4byte gPlayerParty +_080C4670: .4byte gUnknown_0203869E + thumb_func_end sub_80C44C0 + + thumb_func_start sub_80C4674 +sub_80C4674: @ 80C4674 + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C4690 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C4690 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString +_080C4690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4674 + + thumb_func_start sub_80C4698 +sub_80C4698: @ 80C4698 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r1, r4, 6 + ldr r0, _080C46E0 @ =gUnknown_02038572 + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + ldr r0, _080C46E4 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C46DA + ldr r0, _080C46E8 @ =gLinkPlayers + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x1A] + cmp r0, 0x1 + bne _080C46DA + adds r0, r5, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl ConvertInternationalString +_080C46DA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C46E0: .4byte gUnknown_02038572 +_080C46E4: .4byte gUnknown_0203869A +_080C46E8: .4byte gLinkPlayers + thumb_func_end sub_80C4698 + + thumb_func_start sub_80C46EC +sub_80C46EC: @ 80C46EC + push {lr} + ldr r0, _080C4710 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4720 + ldr r0, _080C4714 @ =gStringVar1 + ldr r1, _080C4718 @ =gUnknown_0202E8D0 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080C471C @ =gLinkPlayers + 0x8 + adds r1, r2 + bl sub_80C4674 + b _080C4730 + .align 2, 0 +_080C4710: .4byte gUnknown_0203869A +_080C4714: .4byte gStringVar1 +_080C4718: .4byte gUnknown_0202E8D0 +_080C471C: .4byte gLinkPlayers + 0x8 +_080C4720: + ldr r0, _080C4734 @ =gStringVar1 + ldr r1, _080C4738 @ =gUnknown_0202E8D0 + ldrh r1, [r1] + lsls r1, 6 + ldr r2, _080C473C @ =gUnknown_0203857D + adds r1, r2 + bl sub_80C4674 +_080C4730: + pop {r0} + bx r0 + .align 2, 0 +_080C4734: .4byte gStringVar1 +_080C4738: .4byte gUnknown_0202E8D0 +_080C473C: .4byte gUnknown_0203857D + thumb_func_end sub_80C46EC + + thumb_func_start sub_80C4740 +sub_80C4740: @ 80C4740 + push {lr} + ldr r0, _080C4750 @ =gStringVar3 + ldr r1, _080C4754 @ =gUnknown_0202E8D0 + ldrb r1, [r1] + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4750: .4byte gStringVar3 +_080C4754: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4740 + + thumb_func_start sub_80C4758 +sub_80C4758: @ 80C4758 + push {r4-r6,lr} + movs r1, 0 + movs r2, 0 + ldr r5, _080C4794 @ =gUnknown_0202E8CC + ldr r4, _080C4798 @ =gUnknown_02038670 + ldr r0, _080C479C @ =gUnknown_0202E8D0 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r4 + movs r6, 0 + ldrsh r3, [r0, r6] +_080C476E: + lsls r0, r1, 1 + adds r0, r4 + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r3, r0 + bge _080C4780 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4780: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C476E + strh r2, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4794: .4byte gUnknown_0202E8CC +_080C4798: .4byte gUnknown_02038670 +_080C479C: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4758 + + thumb_func_start sub_80C47A0 +sub_80C47A0: @ 80C47A0 + ldr r2, _080C47B4 @ =gUnknown_0202E8CC + ldr r1, _080C47B8 @ =gUnknown_02038670 + ldr r0, _080C47BC @ =gUnknown_0202E8D0 + ldrh r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C47B4: .4byte gUnknown_0202E8CC +_080C47B8: .4byte gUnknown_02038670 +_080C47BC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C47A0 + + thumb_func_start sub_80C47C0 +sub_80C47C0: @ 80C47C0 + push {lr} + movs r1, 0 + ldr r2, _080C47E8 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r3, _080C47EC @ =gUnknown_0202E8CE + cmp r0, 0 + beq _080C47E0 +_080C47CE: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C47E0 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C47CE +_080C47E0: + strh r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_080C47E8: .4byte gUnknown_02038690 +_080C47EC: .4byte gUnknown_0202E8CE + thumb_func_end sub_80C47C0 + + thumb_func_start sub_80C47F0 +sub_80C47F0: @ 80C47F0 + push {r4,lr} + movs r2, 0 + ldr r3, _080C4830 @ =gUnknown_02038690 + ldrb r0, [r3] + ldr r1, _080C4834 @ =gUnknown_0203869A + ldr r4, _080C4838 @ =gStringVar3 + cmp r0, 0 + beq _080C4812 +_080C4800: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bhi _080C4812 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4800 +_080C4812: + ldrb r1, [r1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4840 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r0, _080C483C @ =gLinkPlayers + 0x8 + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 + b _080C484C + .align 2, 0 +_080C4830: .4byte gUnknown_02038690 +_080C4834: .4byte gUnknown_0203869A +_080C4838: .4byte gStringVar3 +_080C483C: .4byte gLinkPlayers + 0x8 +_080C4840: + lsls r1, r2, 6 + ldr r0, _080C4854 @ =gUnknown_0203857D + adds r1, r0 + adds r0, r4, 0 + bl sub_80C4674 +_080C484C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4854: .4byte gUnknown_0203857D + thumb_func_end sub_80C47F0 + + thumb_func_start sub_80C4858 +sub_80C4858: @ 80C4858 + push {lr} + movs r1, 0 + ldr r2, _080C4884 @ =gUnknown_02038690 + ldrb r0, [r2] + ldr r3, _080C4888 @ =gStringVar1 + cmp r0, 0 + beq _080C4878 +_080C4866: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080C4878 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4866 +_080C4878: + adds r0, r3, 0 + bl sub_80C4698 + pop {r0} + bx r0 + .align 2, 0 +_080C4884: .4byte gUnknown_02038690 +_080C4888: .4byte gStringVar1 + thumb_func_end sub_80C4858 + + thumb_func_start sub_80C488C +sub_80C488C: @ 80C488C + push {lr} + ldr r0, _080C4898 @ =sub_80AB47C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4898: .4byte sub_80AB47C + thumb_func_end sub_80C488C + + thumb_func_start sub_80C489C +sub_80C489C: @ 80C489C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C48C0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C48BA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C48C4 @ =sub_80C488C + bl SetMainCallback2 +_080C48BA: + pop {r0} + bx r0 + .align 2, 0 +_080C48C0: .4byte gPaletteFade +_080C48C4: .4byte sub_80C488C + thumb_func_end sub_80C489C + + thumb_func_start sub_80C48C8 +sub_80C48C8: @ 80C48C8 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C48F0 @ =sub_80C489C + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C48F0: .4byte sub_80C489C + thumb_func_end sub_80C48C8 + + thumb_func_start sub_80C48F4 +sub_80C48F4: @ 80C48F4 + ldr r2, _080C4908 @ =gUnknown_0202E8CC + ldr r1, _080C490C @ =gUnknown_02038570 + ldr r0, _080C4910 @ =gUnknown_0202E8D0 + ldrh r0, [r0] + lsls r0, 6 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + bx lr + .align 2, 0 +_080C4908: .4byte gUnknown_0202E8CC +_080C490C: .4byte gUnknown_02038570 +_080C4910: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C48F4 + + thumb_func_start sub_80C4914 +sub_80C4914: @ 80C4914 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C4938 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C4932 + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080C493C @ =sub_80C2358 + bl SetMainCallback2 +_080C4932: + pop {r0} + bx r0 + .align 2, 0 +_080C4938: .4byte gPaletteFade +_080C493C: .4byte sub_80C2358 + thumb_func_end sub_80C4914 + + thumb_func_start sub_80C4940 +sub_80C4940: @ 80C4940 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080C4968 @ =sub_80C4914 + movs r1, 0xA + bl CreateTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C4968: .4byte sub_80C4914 + thumb_func_end sub_80C4940 + + thumb_func_start sub_80C496C +sub_80C496C: @ 80C496C + ldr r0, _080C4978 @ =gUnknown_0202E8CC + ldr r1, _080C497C @ =gUnknown_02038695 + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080C4978: .4byte gUnknown_0202E8CC +_080C497C: .4byte gUnknown_02038695 + thumb_func_end sub_80C496C + + thumb_func_start sub_80C4980 +sub_80C4980: @ 80C4980 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl ScriptContext2_Enable + ldr r6, _080C49B8 @ =sub_80C8604 + adds r0, r6, 0 + movs r1, 0 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _080C49BC @ =sub_80C49C4 + adds r0, r4, 0 + adds r1, r6, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080C49C0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1A] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C49B8: .4byte sub_80C8604 +_080C49BC: .4byte sub_80C49C4 +_080C49C0: .4byte gTasks + thumb_func_end sub_80C4980 + + thumb_func_start sub_80C49C4 +sub_80C49C4: @ 80C49C4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C49E4 @ =gUnknown_02038694 + ldrb r0, [r0] + bl sub_80AE098 + ldr r1, _080C49E8 @ =sub_80C8734 + ldr r2, _080C49EC @ =sub_80C49F0 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C49E4: .4byte gUnknown_02038694 +_080C49E8: .4byte sub_80C8734 +_080C49EC: .4byte sub_80C49F0 + thumb_func_end sub_80C49C4 + + thumb_func_start sub_80C49F0 +sub_80C49F0: @ 80C49F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A04 @ =sub_80C88AC + ldr r2, _080C4A08 @ =sub_80C4A0C + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A04: .4byte sub_80C88AC +_080C4A08: .4byte sub_80C4A0C + thumb_func_end sub_80C49F0 + + thumb_func_start sub_80C4A0C +sub_80C4A0C: @ 80C4A0C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A20 @ =sub_80C8E1C + ldr r2, _080C4A24 @ =sub_80C4A28 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A20: .4byte sub_80C8E1C +_080C4A24: .4byte sub_80C4A28 + thumb_func_end sub_80C4A0C + + thumb_func_start sub_80C4A28 +sub_80C4A28: @ 80C4A28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C4A3C @ =sub_80C8938 + ldr r2, _080C4A40 @ =sub_80C4A44 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080C4A3C: .4byte sub_80C8938 +_080C4A40: .4byte sub_80C4A44 + thumb_func_end sub_80C4A28 + + thumb_func_start sub_80C4A44 +sub_80C4A44: @ 80C4A44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r0, _080C4AA0 @ =gUnknown_0202E8CC + mov r8, r0 + add r1, sp, 0x4 + mov r12, r1 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r4, r0, 3 + ldr r6, _080C4AA4 @ =gTasks + 0x8 + adds r7, r1, 0 +_080C4A64: + mov r0, sp + adds r2, r0, r3 + adds r1, r3, 0x1 + lsls r0, r1, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r3, r1, 24 + cmp r3, 0x3 + bls _080C4A64 + movs r3, 0 + mov r2, sp +_080C4A80: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bhi _080C4A96 + mov r0, sp + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080C4A80 +_080C4A96: + cmp r3, 0x4 + bne _080C4AA8 + movs r0, 0 + b _080C4AAA + .align 2, 0 +_080C4AA0: .4byte gUnknown_0202E8CC +_080C4AA4: .4byte gTasks + 0x8 +_080C4AA8: + movs r0, 0x1 +_080C4AAA: + mov r1, r8 + strh r0, [r1] + movs r3, 0 + mov r4, r12 + adds r0, r7, r5 + lsls r2, r0, 3 + ldr r6, _080C4AF8 @ =gTasks + 0x8 +_080C4AB8: + adds r1, r4, r3 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r2 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080C4AB8 + mov r0, r12 + bl sub_80C4B34 + ldr r1, _080C4AFC @ =gUnknown_0203869B + strb r0, [r1] + ldr r0, _080C4B00 @ =gUnknown_0203869C + ldrb r0, [r0] + bl sub_80AE82C + ldr r1, _080C4B04 @ =sub_80C8EBC + ldr r2, _080C4B08 @ =sub_80C4B0C + adds r0, r5, 0 + bl SetTaskFuncWithFollowupFunc + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4AF8: .4byte gTasks + 0x8 +_080C4AFC: .4byte gUnknown_0203869B +_080C4B00: .4byte gUnknown_0203869C +_080C4B04: .4byte sub_80C8EBC +_080C4B08: .4byte sub_80C4B0C + thumb_func_end sub_80C4A44 + + thumb_func_start sub_80C4B0C +sub_80C4B0C: @ 80C4B0C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80B0F28 + ldr r1, _080C4B2C @ =sub_80C8F34 + ldr r2, _080C4B30 @ =sub_80C4B5C + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4B2C: .4byte sub_80C8F34 +_080C4B30: .4byte sub_80C4B5C + thumb_func_end sub_80C4B0C + + thumb_func_start sub_80C4B34 +sub_80C4B34: @ 80C4B34 + push {r4,lr} + adds r3, r0, 0 + movs r4, 0 + movs r2, 0x1 +_080C4B3C: + adds r0, r3, r4 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcs _080C4B4C + lsls r0, r2, 24 + lsrs r4, r0, 24 +_080C4B4C: + adds r2, 0x1 + cmp r2, 0x3 + ble _080C4B3C + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C4B34 + + thumb_func_start sub_80C4B5C +sub_80C4B5C: @ 80C4B5C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C4B84 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0x1 + bne _080C4B90 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C4B9E + ldr r0, _080C4B88 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C4B8C @ =sub_80C4BA4 + str r0, [r1] + b _080C4B9E + .align 2, 0 +_080C4B84: .4byte gUnknown_0202E8CC +_080C4B88: .4byte gTasks +_080C4B8C: .4byte sub_80C4BA4 +_080C4B90: + adds r0, r4, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4B9E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C4B5C + + thumb_func_start sub_80C4BA4 +sub_80C4BA4: @ 80C4BA4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_800832C + ldr r1, _080C4BC4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C4BC8 @ =sub_80C4BCC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4BC4: .4byte gTasks +_080C4BC8: .4byte sub_80C4BCC + thumb_func_end sub_80C4BA4 + + thumb_func_start sub_80C4BCC +sub_80C4BCC: @ 80C4BCC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080C4BE8 + adds r0, r1, 0 + bl DestroyTask + bl ScriptContext2_Disable + bl EnableBothScriptContexts +_080C4BE8: + pop {r0} + bx r0 + .align 2, 0 +_080C4BEC: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80C4BCC + + thumb_func_start sub_80C4BF0 +sub_80C4BF0: @ 80C4BF0 + push {r4,lr} + ldr r2, _080C4C1C @ =gSaveBlock1 + ldr r1, _080C4C20 @ =gUnknown_02038570 + ldrb r3, [r1, 0x15] + movs r4, 0x9B + lsls r4, 5 + adds r0, r2, r4 + strh r3, [r0] + adds r0, r1, 0 + adds r0, 0x55 + ldrb r3, [r0] + adds r4, 0x2 + adds r0, r2, r4 + strh r3, [r0] + adds r1, 0x95 + ldrb r0, [r1] + ldr r1, _080C4C24 @ =0x00001364 + adds r2, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4C1C: .4byte gSaveBlock1 +_080C4C20: .4byte gUnknown_02038570 +_080C4C24: .4byte 0x00001364 + thumb_func_end sub_80C4BF0 + + thumb_func_start sub_80C4C28 +sub_80C4C28: @ 80C4C28 + push {lr} + ldr r0, _080C4C40 @ =gUnknown_0202E8CE + ldrb r0, [r0] + adds r1, r0, 0 + cmp r0, 0x1 + beq _080C4C4E + cmp r0, 0x1 + bgt _080C4C44 + cmp r0, 0 + beq _080C4C4A + b _080C4C56 + .align 2, 0 +_080C4C40: .4byte gUnknown_0202E8CE +_080C4C44: + cmp r1, 0x2 + beq _080C4C52 + b _080C4C56 +_080C4C4A: + movs r1, 0x3 + b _080C4C58 +_080C4C4E: + movs r1, 0x4 + b _080C4C58 +_080C4C52: + movs r1, 0x5 + b _080C4C58 +_080C4C56: + movs r1, 0x64 +_080C4C58: + ldr r0, _080C4C60 @ =gUnknown_0202E8CC + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080C4C60: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C28 + + thumb_func_start sub_80C4C64 +sub_80C4C64: @ 80C4C64 + push {lr} + bl sub_80C46EC + bl sub_80C4740 + bl sub_80C48F4 + pop {r0} + bx r0 + thumb_func_end sub_80C4C64 + + thumb_func_start sub_80C4C78 +sub_80C4C78: @ 80C4C78 + push {lr} + ldr r0, _080C4C8C @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C4CB8 + lsls r0, 2 + ldr r1, _080C4C90 @ =_080C4C94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4C8C: .4byte gUnknown_0203869C +_080C4C90: .4byte _080C4C94 + .align 2, 0 +_080C4C94: + .4byte _080C4CA8 + .4byte _080C4CAC + .4byte _080C4CB0 + .4byte _080C4CB4 + .4byte _080C4CB8 +_080C4CA8: + movs r0, 0x8 + b _080C4CBA +_080C4CAC: + movs r0, 0x9 + b _080C4CBA +_080C4CB0: + movs r0, 0xA + b _080C4CBA +_080C4CB4: + movs r0, 0xB + b _080C4CBA +_080C4CB8: + movs r0, 0xC +_080C4CBA: + ldr r1, _080C4CD0 @ =gSaveBlock1 + lsls r0, 5 + adds r0, r1 + ldr r1, _080C4CD4 @ =0x00002e04 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + bne _080C4CDC + ldr r0, _080C4CD8 @ =gUnknown_0202E8CC + strh r1, [r0] + b _080C4CE2 + .align 2, 0 +_080C4CD0: .4byte gSaveBlock1 +_080C4CD4: .4byte 0x00002e04 +_080C4CD8: .4byte gUnknown_0202E8CC +_080C4CDC: + ldr r1, _080C4CE8 @ =gUnknown_0202E8CC + movs r0, 0x1 + strh r0, [r1] +_080C4CE2: + pop {r0} + bx r0 + .align 2, 0 +_080C4CE8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C78 + + thumb_func_start sub_80C4CEC +sub_80C4CEC: @ 80C4CEC + push {lr} + movs r0, 0xFF + bl sub_80B2A7C + pop {r0} + bx r0 + thumb_func_end sub_80C4CEC + + thumb_func_start sub_80C4CF8 +sub_80C4CF8: @ 80C4CF8 + push {lr} + ldr r0, _080C4D28 @ =gUnknown_02038690 + ldr r1, _080C4D2C @ =gUnknown_02038695 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4D40 + ldr r0, _080C4D30 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C4D40 + ldr r1, _080C4D34 @ =gUnknown_02038678 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C4D38 @ =0x0000031f + cmp r1, r0 + ble _080C4D40 + ldr r1, _080C4D3C @ =gUnknown_0202E8CC + movs r0, 0x1 + b _080C4D44 + .align 2, 0 +_080C4D28: .4byte gUnknown_02038690 +_080C4D2C: .4byte gUnknown_02038695 +_080C4D30: .4byte gUnknown_0203869E +_080C4D34: .4byte gUnknown_02038678 +_080C4D38: .4byte 0x0000031f +_080C4D3C: .4byte gUnknown_0202E8CC +_080C4D40: + ldr r1, _080C4D4C @ =gUnknown_0202E8CC + movs r0, 0 +_080C4D44: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C4D4C: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4CF8 + + thumb_func_start sub_80C4D50 +sub_80C4D50: @ 80C4D50 + push {lr} + movs r3, 0 + ldr r0, _080C4D78 @ =gSaveBlock1 + ldr r1, _080C4D7C @ =0x00002f04 + adds r2, r0, r1 + movs r1, 0x4 +_080C4D5C: + ldrh r0, [r2] + cmp r0, 0 + beq _080C4D68 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C4D68: + adds r2, 0x20 + subs r1, 0x1 + cmp r1, 0 + bge _080C4D5C + adds r0, r3, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C4D78: .4byte gSaveBlock1 +_080C4D7C: .4byte 0x00002f04 + thumb_func_end sub_80C4D50 + + thumb_func_start sub_80C4D80 +sub_80C4D80: @ 80C4D80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _080C4EA0 @ =gUnknown_02038670 + mov r12, r0 + ldr r1, _080C4EA4 @ =gUnknown_0202E8D0 + mov r8, r1 + ldr r2, _080C4EA8 @ =gStringVar1 + mov r9, r2 + mov r2, r12 + mov r1, sp + movs r6, 0x3 +_080C4D9E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080C4D9E + movs r6, 0 +_080C4DAE: + movs r1, 0x3 + cmp r1, r6 + ble _080C4DD8 +_080C4DB4: + subs r4, r1, 0x1 + lsls r0, r4, 1 + mov r5, sp + adds r3, r5, r0 + lsls r0, r1, 1 + adds r2, r5, r0 + ldrh r5, [r3] + movs r7, 0 + ldrsh r1, [r3, r7] + movs r7, 0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080C4DD2 + strh r5, [r2] + strh r0, [r3] +_080C4DD2: + adds r1, r4, 0 + cmp r1, r6 + bgt _080C4DB4 +_080C4DD8: + adds r6, 0x1 + cmp r6, 0x2 + ble _080C4DAE + mov r2, r8 + ldrh r0, [r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + movs r2, 0 + movs r7, 0 + movs r6, 0 + lsls r0, 16 + asrs r4, r0, 16 + adds r3, r0, 0 + mov r1, sp +_080C4DF6: + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, r4 + bne _080C4E12 + lsls r0, r2, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r2, r0, 24 + mov r5, r8 + ldrh r5, [r5] + cmp r6, r5 + bne _080C4E12 + adds r7, r2, 0 +_080C4E12: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080C4DF6 + movs r6, 0 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r1, r3, 16 + lsls r2, 24 + mov r10, r2 + cmp r0, r1 + beq _080C4E40 + adds r2, r1, 0 + mov r1, sp +_080C4E30: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E40 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r2 + bne _080C4E30 +_080C4E40: + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r2, r7, 0 + movs r6, 0 + asrs r5, r3, 16 + mov r8, r5 + mov r1, r12 + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r8, r0 + bne _080C4E60 + cmp r7, 0x1 + beq _080C4E78 +_080C4E5A: + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4E60: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E78 + lsls r0, r6, 1 + add r0, r12 + asrs r1, r3, 16 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080C4E60 + cmp r2, 0x1 + bne _080C4E5A +_080C4E78: + lsls r1, r6, 24 + lsrs r1, 24 + mov r0, r9 + bl sub_80C4698 + ldr r0, _080C4EAC @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4EB8 + ldr r0, _080C4EB0 @ =gStringVar2 + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8 + adds r1, r2 + bl sub_80C4674 + b _080C4EC4 + .align 2, 0 +_080C4EA0: .4byte gUnknown_02038670 +_080C4EA4: .4byte gUnknown_0202E8D0 +_080C4EA8: .4byte gStringVar1 +_080C4EAC: .4byte gUnknown_0203869A +_080C4EB0: .4byte gStringVar2 +_080C4EB4: .4byte gLinkPlayers + 0x8 +_080C4EB8: + ldr r0, _080C4ED8 @ =gStringVar2 + lsls r1, r6, 6 + ldr r2, _080C4EDC @ =gUnknown_0203857D + adds r1, r2 + bl sub_80C4674 +_080C4EC4: + mov r1, r10 + asrs r0, r1, 24 + cmp r0, 0x1 + beq _080C4ED0 + cmp r7, r0 + bne _080C4EE4 +_080C4ED0: + ldr r0, _080C4EE0 @ =gUnknown_0202E8D0 + strh r4, [r0] + b _080C4EEA + .align 2, 0 +_080C4ED8: .4byte gStringVar2 +_080C4EDC: .4byte gUnknown_0203857D +_080C4EE0: .4byte gUnknown_0202E8D0 +_080C4EE4: + ldr r1, _080C4EFC @ =gUnknown_0202E8D0 + adds r0, r4, 0x4 + strh r0, [r1] +_080C4EEA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4EFC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4D80 + + thumb_func_start sub_80C4F00 +sub_80C4F00: @ 80C4F00 + push {lr} + ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C4F00 + + thumb_func_start sub_80C4F10 +sub_80C4F10: @ 80C4F10 + push {r4-r6,lr} + ldr r6, _080C4F54 @ =gUnknown_0203856C + ldrb r0, [r6] + cmp r0, 0 + beq _080C4F40 + bl sub_80AAF30 + ldr r4, _080C4F58 @ =0x02000000 + ldr r0, _080C4F5C @ =0x00015ddf + adds r1, r4, r0 + movs r5, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C4F60 @ =0x00015dde + adds r4, r1 + strb r0, [r4] + movs r0, 0x3 + bl sub_80B2A7C + strb r5, [r6] +_080C4F40: + ldr r0, _080C4F64 @ =sub_8106668 + bl SetMainCallback2 + ldr r1, _080C4F68 @ =gMain + ldr r0, _080C4F6C @ =sub_80C4F00 + str r0, [r1, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4F54: .4byte gUnknown_0203856C +_080C4F58: .4byte 0x02000000 +_080C4F5C: .4byte 0x00015ddf +_080C4F60: .4byte 0x00015dde +_080C4F64: .4byte sub_8106668 +_080C4F68: .4byte gMain +_080C4F6C: .4byte sub_80C4F00 + thumb_func_end sub_80C4F10 + + thumb_func_start sub_80C4F70 +sub_80C4F70: @ 80C4F70 + push {r4,lr} + ldr r0, _080C4FA8 @ =0x00004010 + ldr r4, _080C4FAC @ =gUnknown_02038570 + ldrb r1, [r4, 0x15] + bl VarSet + ldr r0, _080C4FB0 @ =0x00004011 + adds r1, r4, 0 + adds r1, 0x55 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB4 @ =0x00004012 + adds r1, r4, 0 + adds r1, 0x95 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB8 @ =0x00004013 + adds r1, r4, 0 + adds r1, 0xD5 + ldrb r1, [r1] + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4FA8: .4byte 0x00004010 +_080C4FAC: .4byte gUnknown_02038570 +_080C4FB0: .4byte 0x00004011 +_080C4FB4: .4byte 0x00004012 +_080C4FB8: .4byte 0x00004013 + thumb_func_end sub_80C4F70 + + thumb_func_start sub_80C4FBC +sub_80C4FBC: @ 80C4FBC + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080C501C @ =gUnknown_02038694 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C5020 @ =gPlayerParty + adds r0, r4 + movs r1, 0x46 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C5024 @ =gUnknown_02038690 + ldr r1, _080C5028 @ =gUnknown_02038695 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C502C @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C5038 + ldr r1, _080C5030 @ =gUnknown_02038678 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C5034 @ =0x0000031f + cmp r1, r0 + ble _080C5038 + movs r1, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x46 + mov r2, sp + bl SetMonData + movs r0, 0x1 + b _080C503A + .align 2, 0 +_080C501C: .4byte gUnknown_02038694 +_080C5020: .4byte gPlayerParty +_080C5024: .4byte gUnknown_02038690 +_080C5028: .4byte gUnknown_02038695 +_080C502C: .4byte gUnknown_0203869E +_080C5030: .4byte gUnknown_02038678 +_080C5034: .4byte 0x0000031f +_080C5038: + movs r0, 0 +_080C503A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C4FBC + + thumb_func_start sub_80C5044 +sub_80C5044: @ 80C5044 + ldr r0, _080C504C @ =gUnknown_0203856C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080C504C: .4byte gUnknown_0203856C + thumb_func_end sub_80C5044 + + thumb_func_start sub_80C5050 +sub_80C5050: @ 80C5050 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r4, _080C513C @ =sub_80C5190 + adds r0, r4, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080C512A + movs r0, 0xA + mov r10, r0 + movs r7, 0x3 + movs r1, 0x3 + movs r2, 0x13 + movs r3, 0xD + bl MenuDrawTextWindow + ldr r2, _080C5140 @ =gUnknown_02038570 + ldr r0, _080C5144 @ =gUnknown_0202E8D0 + ldrh r1, [r0] + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r0, [r0] + mov r8, r0 + adds r2, 0x3C + adds r1, r2 + ldr r1, [r1] + mov r9, r1 + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C5148 @ =gTasks + lsls r5, r0, 2 + adds r5, r0 + lsls r5, 3 + adds r5, r1 + movs r0, 0 + strh r0, [r5, 0x8] + strh r6, [r5, 0xA] + lsls r0, r6, 3 + ldr r1, _080C514C @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _080C5150 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r4, _080C5154 @ =gUnknown_081FAF4C + ldr r3, [r4] + ldr r4, [r4, 0x4] + str r4, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_800D334 + adds r0, r6, 0 + mov r1, r9 + mov r2, r8 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C5158 @ =gUnknown_02024E8C + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + mov r1, r10 + strh r1, [r5, 0xE] + strh r7, [r5, 0x10] + ldr r3, _080C515C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _080C5160 @ =SpriteCallbackDummy + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_080C512A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C513C: .4byte sub_80C5190 +_080C5140: .4byte gUnknown_02038570 +_080C5144: .4byte gUnknown_0202E8D0 +_080C5148: .4byte gTasks +_080C514C: .4byte gMonFrontPicTable +_080C5150: .4byte gMonFrontPicCoords +_080C5154: .4byte gUnknown_081FAF4C +_080C5158: .4byte gUnknown_02024E8C +_080C515C: .4byte gSprites +_080C5160: .4byte SpriteCallbackDummy + thumb_func_end sub_80C5050 + + thumb_func_start sub_80C5164 +sub_80C5164: @ 80C5164 + push {lr} + ldr r0, _080C5188 @ =sub_80C5190 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080C5184 + ldr r0, _080C518C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5184: + pop {r0} + bx r0 + .align 2, 0 +_080C5188: .4byte sub_80C5190 +_080C518C: .4byte gTasks + thumb_func_end sub_80C5164 + + thumb_func_start sub_80C5190 +sub_80C5190: @ 80C5190 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C51B4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C5222 + cmp r0, 0x1 + bgt _080C51B8 + cmp r0, 0 + beq _080C51F8 + b _080C5222 + .align 2, 0 +_080C51B4: .4byte gTasks +_080C51B8: + cmp r0, 0x2 + beq _080C51C2 + cmp r0, 0x3 + beq _080C5204 + b _080C5222 +_080C51C2: + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C5200 @ =gSprites + adds r5, r0, r1 + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + ldrb r0, [r5, 0x1] + lsls r0, 30 + cmp r0, 0 + beq _080C51F2 + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080C51F2: + adds r0, r5, 0 + bl DestroySprite +_080C51F8: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C5222 + .align 2, 0 +_080C5200: .4byte gSprites +_080C5204: + ldrb r2, [r4, 0xE] + adds r0, r2, 0 + ldrb r3, [r4, 0x10] + adds r1, r3, 0 + adds r2, 0x9 + lsls r2, 24 + lsrs r2, 24 + adds r3, 0xA + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl DestroyTask +_080C5222: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C5190 + + thumb_func_start sub_80C5228 +sub_80C5228: @ 80C5228 + push {r4,lr} + ldr r0, _080C5244 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C524C + ldr r4, _080C5248 @ =gScriptResult + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + b _080C5252 + .align 2, 0 +_080C5244: .4byte gUnknown_0203869A +_080C5248: .4byte gScriptResult +_080C524C: + ldr r1, _080C5258 @ =gScriptResult + movs r0, 0x4 + strh r0, [r1] +_080C5252: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5258: .4byte gScriptResult + thumb_func_end sub_80C5228 + + thumb_func_start sub_80C525C +sub_80C525C: @ 80C525C + push {r4,lr} + ldr r0, _080C5280 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C5294 + ldr r2, _080C5284 @ =gUnknown_03005D28 + ldr r1, [r2] + ldr r0, _080C5288 @ =0x41c64e6d + muls r0, r1 + ldr r1, _080C528C @ =0x00006073 + adds r0, r1 + str r0, [r2] + lsrs r0, 16 + ldr r4, _080C5290 @ =gScriptResult + b _080C529E + .align 2, 0 +_080C5280: .4byte gUnknown_0203869A +_080C5284: .4byte gUnknown_03005D28 +_080C5288: .4byte 0x41c64e6d +_080C528C: .4byte 0x00006073 +_080C5290: .4byte gScriptResult +_080C5294: + ldr r4, _080C52AC @ =gScriptResult + bl Random + lsls r0, 16 + lsrs r0, 16 +_080C529E: + ldrh r1, [r4] + bl __umodsi3 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C52AC: .4byte gScriptResult + thumb_func_end sub_80C525C + + thumb_func_start sp000_heal_pokemon +sp000_heal_pokemon: @ 80C52B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + ldr r0, _080C536C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r8, r0 + bcs _080C535C + ldr r1, _080C5370 @ =gPlayerParty + mov r10, r1 + mov r6, sp +_080C52CE: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + lsls r1, r0, 16 + strb r0, [r6] + lsrs r1, 24 + strb r1, [r6, 0x1] + adds r0, r4, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + movs r1, 0x1 + add r1, r8 + mov r9, r1 +_080C5304: + adds r1, r5, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r7, 0 + adds r2, r5, 0 + bl CalculatePPWithBonus + strb r0, [r6] + adds r1, r5, 0 + adds r1, 0x11 + adds r0, r4, 0 + mov r2, sp + bl SetMonData + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080C5304 + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + strb r0, [r6, 0x2] + strb r0, [r6, 0x3] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + add r0, r10 + movs r1, 0x37 + mov r2, sp + bl SetMonData + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _080C536C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r8, r0 + bcc _080C52CE +_080C535C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C536C: .4byte gPlayerPartyCount +_080C5370: .4byte gPlayerParty + thumb_func_end sp000_heal_pokemon + + thumb_func_start sub_80C5374 +sub_80C5374: @ 80C5374 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x78 + adds r5, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 16 + lsrs r0, r4, 16 + mov r8, r0 + add r6, sp, 0x14 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r3, 0 + movs r3, 0x20 + bl CreateMon + add r0, sp, 0x10 + mov r1, r8 + strb r1, [r0] + lsrs r4, 24 + strb r4, [r0, 0x1] + adds r0, r6, 0 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData + adds r0, r6, 0 + bl GiveMonToPlayer + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0x1 + bgt _080C53E8 + cmp r4, 0 + blt _080C53E8 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8090D90 +_080C53E8: + adds r0, r4, 0 + add sp, 0x78 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C5374 + + thumb_func_start sub_80C53F8 +sub_80C53F8: @ 80C53F8 + push {lr} + sub sp, 0x68 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, sp + movs r2, 0x1 + bl sub_8042044 + add r2, sp, 0x64 + movs r0, 0x1 + strb r0, [r2] + mov r0, sp + movs r1, 0x2D + bl SetMonData + mov r0, sp + bl GiveMonToPlayer + lsls r0, 24 + lsrs r0, 24 + add sp, 0x68 + pop {r1} + bx r1 + thumb_func_end sub_80C53F8 + + thumb_func_start sub_80C5428 +sub_80C5428: @ 80C5428 + push {lr} + bl sub_803DAA0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + beq _080C5444 + cmp r1, 0x1 + bgt _080C5440 + cmp r1, 0 + beq _080C5444 + b _080C5448 +_080C5440: + cmp r1, 0x2 + bne _080C5448 +_080C5444: + ldr r0, _080C544C @ =gScriptResult + strh r1, [r0] +_080C5448: + pop {r0} + bx r0 + .align 2, 0 +_080C544C: .4byte gScriptResult + thumb_func_end sub_80C5428 + + thumb_func_start sub_80C5450 +sub_80C5450: @ 80C5450 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r5, 0 + movs r7, 0xCE + lsls r7, 1 +_080C545C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C548C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080C5490 + cmp r0, r7 + beq _080C5490 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + cmp r0, r6 + bne _080C5490 + movs r0, 0x1 + b _080C5498 + .align 2, 0 +_080C548C: .4byte gPlayerParty +_080C5490: + adds r5, 0x1 + cmp r5, 0x5 + ble _080C545C + movs r0, 0 +_080C5498: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C5450 + + thumb_func_start sub_80C54A0 +sub_80C54A0: @ 80C54A0 + push {r4,lr} + movs r0, 0xAF + bl sub_80C5450 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0x1 + bne _080C54C2 + movs r0, 0xAF + bl ItemIdToBerryType + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C54CC @ =gStringVar1 + bl GetBerryNameByBerryType +_080C54C2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C54CC: .4byte gStringVar1 + thumb_func_end sub_80C54A0 + + thumb_func_start sub_80C54D0 +sub_80C54D0: @ 80C54D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r7, r2, 16 + lsrs r6, r7, 16 + bl ZeroEnemyPartyMons + ldr r0, _080C552C @ =gEnemyParty + mov r8, r0 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x20 + bl CreateMon + cmp r6, 0 + beq _080C551E + add r0, sp, 0x10 + strb r6, [r0] + adds r1, r0, 0 + lsrs r0, r7, 24 + strb r0, [r1, 0x1] + mov r0, r8 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData +_080C551E: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C552C: .4byte gEnemyParty + thumb_func_end sub_80C54D0 + + thumb_func_start sub_80C5530 +sub_80C5530: @ 80C5530 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + cmp r3, 0x6 + bls _080C554C + ldr r0, _080C5560 @ =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C554C: + movs r0, 0x64 + muls r0, r3 + ldr r1, _080C5564 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl SetMonMoveSlot + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5560: .4byte gPlayerPartyCount +_080C5564: .4byte gPlayerParty + thumb_func_end sub_80C5530 + + thumb_func_start sub_80C5568 +sub_80C5568: @ 80C5568 + push {lr} + ldr r1, _080C5578 @ =gMain + ldr r0, _080C557C @ =sub_80C5580 + str r0, [r1, 0x8] + bl sub_8121E10 + pop {r0} + bx r0 + .align 2, 0 +_080C5578: .4byte gMain +_080C557C: .4byte sub_80C5580 + thumb_func_end sub_80C5568 + + thumb_func_start sub_80C5580 +sub_80C5580: @ 80C5580 + push {lr} + ldr r0, _080C5590 @ =gUnknown_02039270 + ldrb r1, [r0] + cmp r1, 0 + bne _080C5598 + ldr r0, _080C5594 @ =gScriptResult + strh r1, [r0] + b _080C559E + .align 2, 0 +_080C5590: .4byte gUnknown_02039270 +_080C5594: .4byte gScriptResult +_080C5598: + ldr r1, _080C55A8 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_080C559E: + ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C55A8: .4byte gScriptResult +_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C5580 + + thumb_func_start sub_80C55B0 +sub_80C55B0: @ 80C55B0 + push {lr} + ldr r1, _080C55C0 @ =gMain + ldr r0, _080C55C4 @ =sub_80C55C8 + str r0, [r1, 0x8] + bl sub_8121E34 + pop {r0} + bx r0 + .align 2, 0 +_080C55C0: .4byte gMain +_080C55C4: .4byte sub_80C55C8 + thumb_func_end sub_80C55B0 + + thumb_func_start sub_80C55C8 +sub_80C55C8: @ 80C55C8 + push {r4,lr} + ldr r0, _080C55DC @ =gUnknown_02039270 + ldrb r4, [r0] + cmp r4, 0 + bne _080C55E4 + bl copy_player_party_from_sav1 + ldr r0, _080C55E0 @ =gScriptResult + strh r4, [r0] + b _080C55EE + .align 2, 0 +_080C55DC: .4byte gUnknown_02039270 +_080C55E0: .4byte gScriptResult +_080C55E4: + bl sub_80C5604 + ldr r1, _080C55FC @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_080C55EE: + ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C55FC: .4byte gScriptResult +_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C55C8 + + thumb_func_start sub_80C5604 +sub_80C5604: @ 80C5604 + push {r4-r7,lr} + sub sp, 0x134 + add r0, sp, 0x12C + movs r1, 0 + str r1, [r0] + ldr r2, _080C5674 @ =0x0500004b + mov r1, sp + bl CpuSet + movs r5, 0 + movs r7, 0x64 + ldr r6, _080C5678 @ =gPlayerParty + mov r4, sp +_080C561E: + ldr r0, _080C567C @ =gUnknown_02039270 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080C5638 + subs r0, 0x1 + adds r1, r0, 0 + muls r1, r7 + adds r1, r6 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy +_080C5638: + adds r4, 0x64 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C561E + add r0, sp, 0x130 + movs r1, 0 + str r1, [r0] + ldr r4, _080C5678 @ =gPlayerParty + ldr r2, _080C5680 @ =0x05000096 + adds r1, r4, 0 + bl CpuSet + mov r5, sp + add r6, sp, 0xC8 +_080C5654: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x64 + adds r4, 0x64 + cmp r5, r6 + ble _080C5654 + bl CalculatePlayerPartyCount + add sp, 0x134 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5674: .4byte 0x0500004b +_080C5678: .4byte gPlayerParty +_080C567C: .4byte gUnknown_02039270 +_080C5680: .4byte 0x05000096 + thumb_func_end sub_80C5604 + + thumb_func_start sub_80C5684 +sub_80C5684: @ 80C5684 + push {lr} + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080C569C + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bne _080C56A0 +_080C569C: + movs r0, 0 + b _080C56A2 +_080C56A0: + movs r0, 0x1 +_080C56A2: + pop {r1} + bx r1 + thumb_func_end sub_80C5684 + + thumb_func_start sub_80C56A8 +sub_80C56A8: @ 80C56A8 + push {r4,r5,lr} + ldr r4, _080C56C8 @ =gPlayerParty + movs r5, 0 +_080C56AE: + adds r0, r4, 0 + bl sub_80C5684 + cmp r0, 0 + beq _080C56CC + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080C56CC + movs r0, 0 + b _080C56D6 + .align 2, 0 +_080C56C8: .4byte gPlayerParty +_080C56CC: + adds r5, 0x1 + adds r4, 0x64 + cmp r5, 0x5 + ble _080C56AE + movs r0, 0x1 +_080C56D6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C56A8 + + thumb_func_start sub_80C56DC +sub_80C56DC: @ 80C56DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, _080C5720 @ =gPlayerParty + adds r4, r0 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x7 + bl AdjustFriendship + adds r0, r4, 0 + movs r1, 0x37 + mov r2, sp + bl SetMonData + ldr r5, _080C5724 @ =gStringVar1 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r5, 0 + bl StringGetEnd10 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5720: .4byte gPlayerParty +_080C5724: .4byte gStringVar1 + thumb_func_end sub_80C56DC + + thumb_func_start sub_80C5728 +sub_80C5728: @ 80C5728 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _080C5764 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80C5684 + cmp r0, 0 + beq _080C5768 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080C5768 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C5768 + movs r0, 0x1 + b _080C576A + .align 2, 0 +_080C5764: .4byte gPlayerParty +_080C5768: + movs r0, 0 +_080C576A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5728 + + thumb_func_start sub_80C5770 +sub_80C5770: @ 80C5770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C5794 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C57CA + cmp r0, 0x1 + bgt _080C5798 + cmp r0, 0 + beq _080C579E + b _080C581A + .align 2, 0 +_080C5794: .4byte gTasks + 0x8 +_080C5798: + cmp r0, 0x2 + beq _080C57DC + b _080C581A +_080C579E: + ldrh r1, [r4, 0x2] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x5 + bgt _080C57C4 +_080C57A8: + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_80C5728 + cmp r0, 0 + bne _080C57F4 + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + adds r1, r0, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080C57A8 +_080C57C4: + movs r0, 0x2 + strh r0, [r4] + b _080C581A +_080C57CA: + bl IsFieldMessageBoxHidden + lsls r0, 24 + cmp r0, 0 + beq _080C581A + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + b _080C581A +_080C57DC: + bl sub_80C56A8 + adds r1, r0, 0 + cmp r1, 0 + beq _080C580C + ldr r1, _080C57F0 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _080C5810 + .align 2, 0 +_080C57F0: .4byte gScriptResult +_080C57F4: + ldrb r0, [r4, 0x2] + bl sub_80C56DC + ldr r0, _080C5808 @ =UnknownString_81A1132 + bl ShowFieldMessage + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080C581A + .align 2, 0 +_080C5808: .4byte UnknownString_81A1132 +_080C580C: + ldr r0, _080C5820 @ =gScriptResult + strh r1, [r0] +_080C5810: + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask +_080C581A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5820: .4byte gScriptResult + thumb_func_end sub_80C5770 + + thumb_func_start sub_80C5824 +sub_80C5824: @ 80C5824 + push {lr} + ldr r0, _080C5838 @ =sub_80C5770 + movs r1, 0x50 + bl CreateTask + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080C5838: .4byte sub_80C5770 + thumb_func_end sub_80C5824 + + thumb_func_start overworld_poison +overworld_poison: @ 80C583C + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _080C58A8 @ =gPlayerParty + movs r7, 0 + movs r6, 0 + movs r5, 0x5 +_080C5848: + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _080C588C + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + bl pokemon_ailments_get_primary + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C588C + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + str r0, [sp] + cmp r0, 0 + beq _080C587E + subs r0, 0x1 + str r0, [sp] + cmp r0, 0 + bne _080C5880 +_080C587E: + adds r6, 0x1 +_080C5880: + adds r0, r4, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r7, 0x1 +_080C588C: + adds r4, 0x64 + subs r5, 0x1 + cmp r5, 0 + bge _080C5848 + cmp r6, 0 + bne _080C589C + cmp r7, 0 + beq _080C58A0 +_080C589C: + bl overworld_posion_effect +_080C58A0: + cmp r6, 0 + beq _080C58AC + movs r0, 0x2 + b _080C58B6 + .align 2, 0 +_080C58A8: .4byte gPlayerParty +_080C58AC: + cmp r7, 0 + bne _080C58B4 + movs r0, 0 + b _080C58B6 +_080C58B4: + movs r0, 0x1 +_080C58B6: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end overworld_poison + + thumb_func_start sub_80C58C0 +sub_80C58C0: @ 80C58C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r1, 0 + bl GetMonData + lsls r0, 16 + str r0, [sp, 0x4] + lsrs r0, 16 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0x27 + bl GetMonData + adds r7, r0, 0 + movs r6, 0xF + ands r7, r6 + adds r0, r5, 0 + movs r1, 0x28 + bl GetMonData + mov r8, r0 + mov r1, r8 + ands r1, r6 + mov r8, r1 + adds r0, r5, 0 + movs r1, 0x29 + bl GetMonData + mov r9, r0 + mov r3, r9 + ands r3, r6 + mov r9, r3 + adds r0, r5, 0 + movs r1, 0x2A + bl GetMonData + mov r10, r0 + ands r0, r6 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0x2B + bl GetMonData + adds r4, r0, 0 + ands r4, r6 + adds r0, r5, 0 + movs r1, 0x2C + bl GetMonData + adds r2, r0, 0 + ands r2, r6 + mov r1, r8 + mov r3, r9 + eors r1, r3 + mov r8, r1 + mov r0, r8 + muls r0, r7 + movs r1, 0xFF + ldr r3, [sp] + ands r3, r1 + eors r0, r3 + eors r4, r2 + mov r1, r10 + muls r1, r4 + ldr r3, [sp, 0x4] + lsrs r2, r3, 24 + eors r1, r2 + lsls r0, 8 + adds r0, r1 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C58C0 + + thumb_func_start sub_80C5964 +sub_80C5964: @ 80C5964 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x1 + ldr r3, _080C5980 @ =gUnknown_083D180C +_080C596E: + lsls r0, r1, 3 + adds r0, r3 + ldrh r0, [r0, 0x4] + cmp r2, r0 + bcs _080C5984 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _080C5990 + .align 2, 0 +_080C5980: .4byte gUnknown_083D180C +_080C5984: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xE + bls _080C596E + adds r0, r1, 0 +_080C5990: + pop {r1} + bx r1 + thumb_func_end sub_80C5964 + + thumb_func_start sub_80C5994 +sub_80C5994: @ 80C5994 + push {r4-r7,lr} + sub sp, 0x8 + adds r6, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r6, 16 + lsrs r6, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D54 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r6, 0 + bl sub_80C5964 + lsls r0, 24 + ldr r1, _080C5A04 @ =gUnknown_083D180C + lsrs r0, 21 + adds r0, r1 + ldrh r1, [r0] + str r1, [sp] + movs r2, 0 + str r2, [sp, 0x4] + ldrb r2, [r0, 0x2] + movs r3, 0 + ldrh r4, [r0, 0x4] + movs r5, 0 + adds r0, r6, 0 + movs r1, 0 + subs r0, r4 + sbcs r1, r5 + bl __udivdi3 + ldr r2, [sp] + ldr r3, [sp, 0x4] + adds r2, r0 + adcs r3, r1 + str r2, [sp] + str r3, [sp, 0x4] + adds r0, r7, 0 + movs r1, 0 + bl __muldi3 + movs r2, 0xA + movs r3, 0 + bl __udivdi3 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C5A04: .4byte gUnknown_083D180C + thumb_func_end sub_80C5994 + + thumb_func_start sub_80C5A08 +sub_80C5A08: @ 80C5A08 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + ldr r1, _080C5A78 @ =gUnknown_083D188C + mov r0, sp + movs r2, 0x2 + bl memcpy + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 1 + adds r0, r4, 0 + bl __floatsidf + cmp r4, 0 + bge _080C5A32 + ldr r2, _080C5A7C @ =0x41f00000 + ldr r3, _080C5A80 @ =0x00000000 + bl __adddf3 +_080C5A32: + ldr r2, _080C5A84 @ =0x40396666 + ldr r3, _080C5A88 @ =0x66666666 + bl __divdf3 + bl __fixunsdfsi + adds r5, r0, 0 + movs r1, 0xA + bl __udivsi3 + adds r1, r0, 0 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x8 + bl ConvertIntToDecimalStringN + adds r6, r0, 0 + mov r1, sp + bl StringAppend + adds r6, r0, 0 + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + adds r1, r0, 0 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C5A78: .4byte gUnknown_083D188C +_080C5A7C: .4byte 0x41f00000 +_080C5A80: .4byte 0x00000000 +_080C5A84: .4byte 0x40396666 +_080C5A88: .4byte 0x66666666 + thumb_func_end sub_80C5A08 + + thumb_func_start sub_80C5A8C +sub_80C5A8C: @ 80C5A8C + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080C5AA4 @ =gScriptResult + ldrh r0, [r1] + cmp r0, 0xFF + bne _080C5AA8 + movs r0, 0 + b _080C5B12 + .align 2, 0 +_080C5AA4: .4byte gScriptResult +_080C5AA8: + ldrh r1, [r1] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080C5AD0 @ =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _080C5ACA + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + cmp r0, r6 + beq _080C5AD4 +_080C5ACA: + movs r0, 0x1 + b _080C5B12 + .align 2, 0 +_080C5AD0: .4byte gPlayerParty +_080C5AD4: + mov r4, sp + adds r0, r5, 0 + bl sub_80C58C0 + strh r0, [r4] + mov r0, sp + ldrh r1, [r0] + adds r0, r6, 0 + bl sub_80C5994 + adds r5, r0, 0 + ldrh r1, [r7] + adds r0, r6, 0 + bl sub_80C5994 + adds r4, r0, 0 + ldr r0, _080C5B0C @ =gStringVar2 + adds r1, r5, 0 + bl sub_80C5A08 + cmp r5, r4 + bls _080C5B10 + mov r0, sp + ldrh r0, [r0] + strh r0, [r7] + movs r0, 0x3 + b _080C5B12 + .align 2, 0 +_080C5B0C: .4byte gStringVar2 +_080C5B10: + movs r0, 0x2 +_080C5B12: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C5A8C + + thumb_func_start sub_80C5B1C +sub_80C5B1C: @ 80C5B1C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r1, [r5] + adds r0, r4, 0 + bl sub_80C5994 + adds r1, r0, 0 + ldr r0, _080C5B58 @ =gStringVar3 + bl sub_80C5A08 + ldr r0, _080C5B5C @ =gStringVar1 + movs r1, 0xB + muls r1, r4 + ldr r2, _080C5B60 @ =gSpeciesNames + adds r1, r2 + bl StringCopy + ldrh r1, [r5] + movs r0, 0x81 + lsls r0, 8 + cmp r1, r0 + bne _080C5B6C + ldr r0, _080C5B64 @ =gStringVar2 + ldr r1, _080C5B68 @ =gOtherText_Marco + bl StringCopy + b _080C5B74 + .align 2, 0 +_080C5B58: .4byte gStringVar3 +_080C5B5C: .4byte gStringVar1 +_080C5B60: .4byte gSpeciesNames +_080C5B64: .4byte gStringVar2 +_080C5B68: .4byte gOtherText_Marco +_080C5B6C: + ldr r0, _080C5B7C @ =gStringVar2 + ldr r1, _080C5B80 @ =gSaveBlock2 + bl StringCopy +_080C5B74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C5B7C: .4byte gStringVar2 +_080C5B80: .4byte gSaveBlock2 + thumb_func_end sub_80C5B1C + + thumb_func_start sub_80C5B84 +sub_80C5B84: @ 80C5B84 + push {lr} + ldr r0, _080C5B94 @ =0x00004047 + movs r1, 0x81 + lsls r1, 8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080C5B94: .4byte 0x00004047 + thumb_func_end sub_80C5B84 + + thumb_func_start sub_80C5B98 +sub_80C5B98: @ 80C5B98 + push {lr} + ldr r0, _080C5BB0 @ =0x00004047 + bl GetVarPointer + adds r1, r0, 0 + movs r0, 0x99 + lsls r0, 1 + bl sub_80C5B1C + pop {r0} + bx r0 + .align 2, 0 +_080C5BB0: .4byte 0x00004047 + thumb_func_end sub_80C5B98 + + thumb_func_start sub_80C5BB4 +sub_80C5BB4: @ 80C5BB4 + push {r4,lr} + ldr r0, _080C5BD4 @ =0x00004047 + bl GetVarPointer + adds r1, r0, 0 + ldr r4, _080C5BD8 @ =gScriptResult + movs r0, 0x99 + lsls r0, 1 + bl sub_80C5A8C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5BD4: .4byte 0x00004047 +_080C5BD8: .4byte gScriptResult + thumb_func_end sub_80C5BB4 + + thumb_func_start sub_80C5BDC +sub_80C5BDC: @ 80C5BDC + push {lr} + ldr r0, _080C5BEC @ =0x0000404f + movs r1, 0x81 + lsls r1, 8 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_080C5BEC: .4byte 0x0000404f + thumb_func_end sub_80C5BDC + + thumb_func_start sub_80C5BF0 +sub_80C5BF0: @ 80C5BF0 + push {lr} + ldr r0, _080C5C04 @ =0x0000404f + bl GetVarPointer + adds r1, r0, 0 + ldr r0, _080C5C08 @ =0x00000143 + bl sub_80C5B1C + pop {r0} + bx r0 + .align 2, 0 +_080C5C04: .4byte 0x0000404f +_080C5C08: .4byte 0x00000143 + thumb_func_end sub_80C5BF0 + + thumb_func_start sub_80C5C0C +sub_80C5C0C: @ 80C5C0C + push {r4,lr} + ldr r0, _080C5C2C @ =0x0000404f + bl GetVarPointer + adds r1, r0, 0 + ldr r4, _080C5C30 @ =gScriptResult + ldr r0, _080C5C34 @ =0x00000143 + bl sub_80C5A8C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5C2C: .4byte 0x0000404f +_080C5C30: .4byte gScriptResult +_080C5C34: .4byte 0x00000143 + thumb_func_end sub_80C5C0C + + thumb_func_start sub_80C5C38 +sub_80C5C38: @ 80C5C38 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r7, 0 + add r4, sp, 0x8 + movs r0, 0x1 + strb r0, [r4] + ldr r1, _080C5CC0 @ =gUnknown_083D188E + mov r0, sp + movs r2, 0x7 + bl memcpy + mov r8, r4 + cmp r6, 0xA + bhi _080C5CB2 + cmp r5, 0x40 + bhi _080C5CB2 + ldr r0, _080C5CC4 @ =gSaveBlock1 + ldr r1, _080C5CC8 @ =0x00003110 + adds r0, r1 + adds r0, r6, r0 + strb r5, [r0] + movs r5, 0 +_080C5C70: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C5CCC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080C5CA2 + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _080C5CA2 + mov r1, sp + adds r0, r1, r6 + ldrb r1, [r0] + adds r0, r4, 0 + mov r2, r8 + bl SetMonData + movs r7, 0x1 +_080C5CA2: + adds r5, 0x1 + cmp r5, 0x5 + ble _080C5C70 + cmp r7, 0 + beq _080C5CB2 + ldr r0, _080C5CD0 @ =0x0000083b + bl FlagSet +_080C5CB2: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5CC0: .4byte gUnknown_083D188E +_080C5CC4: .4byte gSaveBlock1 +_080C5CC8: .4byte 0x00003110 +_080C5CCC: .4byte gPlayerParty +_080C5CD0: .4byte 0x0000083b + thumb_func_end sub_80C5C38 + + thumb_func_start sub_80C5CD4 +sub_80C5CD4: @ 80C5CD4 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5D64 @ =gUnknown_083D1898 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5D68 @ =gUnknown_083D18A0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5D70 @ =0xffff0000 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x1 + strh r0, [r7, 0xC] + strh r6, [r7, 0xA] + strh r6, [r7, 0x8] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5D4E + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5D4E: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5D58 + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5D58: + ldr r0, _080C5D74 @ =gUnknown_020387EC + str r7, [r0] + movs r4, 0 + ldr r5, _080C5D78 @ =gSprites + b _080C5D94 + .align 2, 0 +_080C5D64: .4byte gUnknown_083D1898 +_080C5D68: .4byte gUnknown_083D18A0 +_080C5D6C: .4byte gSpriteTemplate_83D18A8 +_080C5D70: .4byte 0xffff0000 +_080C5D74: .4byte gUnknown_020387EC +_080C5D78: .4byte gSprites +_080C5D7C: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r7, 0x4] + cmp r4, 0x3 + bhi _080C5D8C + negs r1, r1 +_080C5D8C: + strh r1, [r0, 0x2E] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080C5D94: + cmp r4, 0x7 + bhi _080C5DB2 + lsls r1, r4, 5 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080C5D7C +_080C5DB2: + ldr r1, _080C5DC8 @ =REG_BLDCNT + movs r0, 0xBF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5DC8: .4byte REG_BLDCNT + thumb_func_end sub_80C5CD4 + + thumb_func_start sub_80C5DCC +sub_80C5DCC: @ 80C5DCC + push {r4,lr} + ldr r4, _080C5E10 @ =gUnknown_020387EC + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0 + bne _080C5DF0 + ldr r0, [r1, 0x10] + ldr r2, _080C5E14 @ =0x0000ffff + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5E18 @ =sub_80C603C + bl sub_80C61B0 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5DF0: + ldr r1, [r4] + ldrh r0, [r1, 0xA] + cmp r0, 0x7 + bls _080C5E0A + ldrh r0, [r1, 0x6] + ldrh r2, [r1, 0xC] + adds r0, r2 + movs r2, 0 + strh r0, [r1, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + bgt _080C5E1C +_080C5E0A: + movs r0, 0 + b _080C5E2E + .align 2, 0 +_080C5E10: .4byte gUnknown_020387EC +_080C5E14: .4byte 0x0000ffff +_080C5E18: .4byte sub_80C603C +_080C5E1C: + movs r0, 0x50 + strh r0, [r1, 0xC] + ldr r0, _080C5E34 @ =REG_BLDCNT + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + bl ClearGpuRegBits + movs r0, 0x1 +_080C5E2E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C5E34: .4byte REG_BLDCNT + thumb_func_end sub_80C5DCC + + thumb_func_start sub_80C5E38 +sub_80C5E38: @ 80C5E38 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5EC8 @ =gUnknown_083D1898 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5ECC @ =gUnknown_083D18A0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5ED4 @ =0xffff0000 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x50 + strh r0, [r7, 0xC] + strh r6, [r7, 0x8] + strh r6, [r7, 0xA] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5EB2 + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5EB2: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5EBC + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5EBC: + ldr r0, _080C5ED8 @ =gUnknown_020387EC + str r7, [r0] + movs r5, 0 + ldr r6, _080C5EDC @ =gSprites + b _080C5F4A + .align 2, 0 +_080C5EC8: .4byte gUnknown_083D1898 +_080C5ECC: .4byte gUnknown_083D18A0 +_080C5ED0: .4byte gSpriteTemplate_83D18C0 +_080C5ED4: .4byte 0xffff0000 +_080C5ED8: .4byte gUnknown_020387EC +_080C5EDC: .4byte gSprites +_080C5EE0: + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + strh r0, [r1, 0x2E] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, _080C5EF4 @ =gSprites + b _080C5F2A + .align 2, 0 +_080C5EF4: .4byte gSprites +_080C5EF8: + lsls r1, r5, 21 + movs r0, 0x80 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080C5F6E + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + negs r0, r0 + strh r0, [r1, 0x2E] + ldr r0, _080C5F88 @ =0x0000ffff + strh r0, [r1, 0x30] + ldr r1, _080C5F8C @ =gSprites + lsls r4, r5, 5 +_080C5F2A: + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + movs r2, 0 + strh r1, [r0, 0x32] + strh r2, [r0, 0x36] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C5F4A: + cmp r5, 0x7 + bhi _080C5F6E + cmp r5, 0x3 + bhi _080C5EF8 + lsls r4, r5, 5 + adds r1, r4, 0 + subs r1, 0x70 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080C5EE0 +_080C5F6E: + ldr r1, _080C5F90 @ =REG_BLDCNT + movs r0, 0xFF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r0, _080C5F94 @ =sub_80C6078 + bl sub_80C61B0 + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5F88: .4byte 0x0000ffff +_080C5F8C: .4byte gSprites +_080C5F90: .4byte REG_BLDCNT +_080C5F94: .4byte sub_80C6078 + thumb_func_end sub_80C5E38 + + thumb_func_start sub_80C5F98 +sub_80C5F98: @ 80C5F98 + push {r4,lr} + ldr r4, _080C5FB0 @ =gUnknown_020387EC + ldr r2, [r4] + ldrh r0, [r2, 0x8] + cmp r0, 0x1 + beq _080C5FEC + cmp r0, 0x1 + bgt _080C5FB4 + cmp r0, 0 + beq _080C5FBA + b _080C602C + .align 2, 0 +_080C5FB0: .4byte gUnknown_020387EC +_080C5FB4: + cmp r0, 0x2 + beq _080C6008 + b _080C602C +_080C5FBA: + ldrh r0, [r2, 0xC] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _080C6034 + ldr r0, [r2, 0x10] + ldr r2, _080C5FE4 @ =0x0000ffff + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5FE8 @ =sub_80C603C + bl SetHBlankCallback + ldr r1, [r4] + movs r0, 0x1 + strh r0, [r1, 0xC] + b _080C6000 + .align 2, 0 +_080C5FE4: .4byte 0x0000ffff +_080C5FE8: .4byte sub_80C603C +_080C5FEC: + ldrh r0, [r2, 0xA] + cmp r0, 0x8 + bne _080C6034 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r1, [r4] +_080C6000: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C6034 +_080C6008: + ldr r0, _080C6030 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldrh r0, [r2] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + bl ClearGpuRegBits + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C602C: + movs r0, 0x1 + b _080C6036 + .align 2, 0 +_080C6030: .4byte REG_BLDCNT +_080C6034: + movs r0, 0 +_080C6036: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5F98 + + thumb_func_start sub_80C603C +sub_80C603C: @ 80C603C + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C6060 @ =REG_VCOUNT + ldrh r1, [r0] + movs r3, 0xFF + adds r0, r3, 0 + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0x50 + bne _080C6068 + ldr r1, _080C6064 @ =REG_BLDCNT + movs r0, 0x8F + strh r0, [r1] + b _080C606C + .align 2, 0 +_080C6060: .4byte REG_VCOUNT +_080C6064: .4byte REG_BLDCNT +_080C6068: + ldr r0, _080C6074 @ =REG_BLDCNT + strh r3, [r0] +_080C606C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C6074: .4byte REG_BLDCNT + thumb_func_end sub_80C603C + + thumb_func_start sub_80C6078 +sub_80C6078: @ 80C6078 + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C60B0 @ =REG_VCOUNT + ldrh r1, [r0] + movs r0, 0xFF + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r1, [r0] + ldr r0, _080C60B4 @ =gUnknown_020387EC + ldr r0, [r0] + movs r3, 0xC + ldrsh r2, [r0, r3] + movs r0, 0x50 + subs r0, r2 + cmp r1, r0 + ble _080C60BC + mov r0, sp + ldrh r1, [r0] + adds r0, r2, 0 + adds r0, 0x50 + cmp r1, r0 + bge _080C60BC + ldr r1, _080C60B8 @ =REG_BLDY + movs r0, 0 + b _080C60C0 + .align 2, 0 +_080C60B0: .4byte REG_VCOUNT +_080C60B4: .4byte gUnknown_020387EC +_080C60B8: .4byte REG_BLDY +_080C60BC: + ldr r1, _080C60C8 @ =REG_BLDY + movs r0, 0x10 +_080C60C0: + strh r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C60C8: .4byte REG_BLDY + thumb_func_end sub_80C6078 + + thumb_func_start sub_80C60CC +sub_80C60CC: @ 80C60CC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bls _080C611C + adds r0, r2, 0 + bl DestroySprite + ldr r4, _080C6124 @ =gUnknown_020387EC + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bne _080C611C + ldrh r0, [r1] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldr r0, [r0, 0x10] + ldr r2, _080C6128 @ =0x0000ffff + movs r1, 0 + bl BlendPalettes + ldr r0, _080C612C @ =sub_80C6078 + bl SetHBlankCallback +_080C611C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6124: .4byte gUnknown_020387EC +_080C6128: .4byte 0x0000ffff +_080C612C: .4byte sub_80C6078 + thumb_func_end sub_80C60CC + + thumb_func_start sub_80C6130 +sub_80C6130: @ 80C6130 + push {r4,r5,lr} + adds r2, r0, 0 + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080C61AA + ldr r1, _080C6184 @ =gUnknown_020387EC + ldr r0, [r1] + movs r3, 0xC + ldrsh r4, [r0, r3] + adds r5, r1, 0 + cmp r4, 0x1 + bne _080C61AA + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0xF + lsls r0, 16 + movs r1, 0x87 + lsls r1, 17 + cmp r0, r1 + bhi _080C616C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080C616C: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080C6188 + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _080C6196 + b _080C6194 + .align 2, 0 +_080C6184: .4byte gUnknown_020387EC +_080C6188: + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + bgt _080C6196 +_080C6194: + strh r4, [r2, 0x36] +_080C6196: + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080C61AA + ldr r0, [r5] + ldrh r1, [r0, 0xA] + adds r1, 0x1 + strh r1, [r0, 0xA] + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] +_080C61AA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6130 + + thumb_func_start sub_80C61B0 +sub_80C61B0: @ 80C61B0 + push {r4-r6,lr} + ldr r2, _080C61F0 @ =INTR_CHECK + ldrh r1, [r2] + movs r5, 0x2 + orrs r1, r5 + strh r1, [r2] + ldr r3, _080C61F4 @ =REG_DISPSTAT + ldrh r1, [r3] + movs r2, 0x10 + orrs r1, r2 + strh r1, [r3] + ldr r4, _080C61F8 @ =0x04000208 + ldrh r2, [r4] + movs r6, 0 + strh r6, [r4] + ldr r3, _080C61FC @ =0x04000200 + ldrh r1, [r3] + orrs r1, r5 + strh r1, [r3] + strh r2, [r4] + ldr r2, _080C6200 @ =gMain + ldrh r1, [r2, 0x1C] + orrs r1, r5 + ldrh r3, [r2, 0x1C] + orrs r1, r6 + strh r1, [r2, 0x1C] + bl SetHBlankCallback + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C61F0: .4byte INTR_CHECK +_080C61F4: .4byte REG_DISPSTAT +_080C61F8: .4byte 0x04000208 +_080C61FC: .4byte 0x04000200 +_080C6200: .4byte gMain + thumb_func_end sub_80C61B0 + + thumb_func_start ClearGpuRegBits +ClearGpuRegBits: @ 80C6204 + push {r4,r5,lr} + ldr r3, _080C6248 @ =INTR_CHECK + ldrh r1, [r3] + ldr r2, _080C624C @ =0x0000fffd + adds r0, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r3, _080C6250 @ =REG_DISPSTAT + ldrh r1, [r3] + ldr r0, _080C6254 @ =0x0000ffef + ands r0, r1 + strh r0, [r3] + ldr r4, _080C6258 @ =0x04000208 + ldrh r3, [r4] + movs r0, 0 + strh r0, [r4] + ldr r5, _080C625C @ =0x04000200 + ldrh r1, [r5] + adds r0, r2, 0 + ands r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r0, _080C6260 @ =gMain + ldrh r1, [r0, 0x1C] + ands r2, r1 + ldrh r1, [r0, 0x1C] + strh r2, [r0, 0x1C] + movs r0, 0 + bl SetHBlankCallback + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6248: .4byte INTR_CHECK +_080C624C: .4byte 0x0000fffd +_080C6250: .4byte REG_DISPSTAT +_080C6254: .4byte 0x0000ffef +_080C6258: .4byte 0x04000208 +_080C625C: .4byte 0x04000200 +_080C6260: .4byte gMain + thumb_func_end ClearGpuRegBits + + thumb_func_start sub_80C6264 +sub_80C6264: @ 80C6264 + push {lr} + ldr r0, _080C6278 @ =gUnknown_0203923C + ldr r1, _080C627C @ =gMapHeader + ldr r1, [r1, 0x4] + bl sub_80BBFD8 + bl sub_80BB5E4 + pop {r0} + bx r0 + .align 2, 0 +_080C6278: .4byte gUnknown_0203923C +_080C627C: .4byte gMapHeader + thumb_func_end sub_80C6264 + + thumb_func_start sub_80C6280 +sub_80C6280: @ 80C6280 + push {lr} + ldr r1, _080C6294 @ =gUnknown_0202FF84 + ldr r0, [r1, 0x4] + cmp r0, 0x2 + beq _080C62AA + cmp r0, 0x2 + bgt _080C6298 + cmp r0, 0x1 + beq _080C62A2 + b _080C62BE + .align 2, 0 +_080C6294: .4byte gUnknown_0202FF84 +_080C6298: + cmp r0, 0x3 + beq _080C62AE + cmp r0, 0x4 + beq _080C62B8 + b _080C62BE +_080C62A2: + movs r0, 0x8 + str r0, [r1, 0x14] + movs r0, 0x28 + b _080C62BC +_080C62AA: + movs r0, 0x8 + b _080C62BA +_080C62AE: + movs r0, 0x8 + negs r0, r0 + str r0, [r1, 0x14] + movs r0, 0x18 + b _080C62BC +_080C62B8: + movs r0, 0x18 +_080C62BA: + str r0, [r1, 0x14] +_080C62BC: + str r0, [r1, 0x18] +_080C62BE: + pop {r0} + bx r0 + thumb_func_end sub_80C6280 + + thumb_func_start SetUpFieldMove_SecretPower +SetUpFieldMove_SecretPower: @ 80C62C4 + push {r4,lr} + bl sub_80BB63C + ldr r0, _080C6318 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0x1 + beq _080C636E + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080C636E + ldr r4, _080C631C @ =gUnknown_0203923C + adds r1, r4, 0x2 + adds r0, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80571EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6330 + bl sub_80C6264 + ldr r1, _080C6320 @ =gUnknown_0300485C + ldr r0, _080C6324 @ =sub_808AB90 + str r0, [r1] + ldr r1, _080C6328 @ =gUnknown_03005CE4 + ldr r0, _080C632C @ =sub_80C639C + b _080C6380 + .align 2, 0 +_080C6318: .4byte gScriptResult +_080C631C: .4byte gUnknown_0203923C +_080C6320: .4byte gUnknown_0300485C +_080C6324: .4byte sub_808AB90 +_080C6328: .4byte gUnknown_03005CE4 +_080C632C: .4byte sub_80C639C +_080C6330: + adds r0, r4, 0 + bl sub_805720C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6360 + bl sub_80C6264 + ldr r1, _080C6350 @ =gUnknown_0300485C + ldr r0, _080C6354 @ =sub_808AB90 + str r0, [r1] + ldr r1, _080C6358 @ =gUnknown_03005CE4 + ldr r0, _080C635C @ =sub_80C64A8 + b _080C6380 + .align 2, 0 +_080C6350: .4byte gUnknown_0300485C +_080C6354: .4byte sub_808AB90 +_080C6358: .4byte gUnknown_03005CE4 +_080C635C: .4byte sub_80C64A8 +_080C6360: + adds r0, r4, 0 + bl is_tile_x98 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C6372 +_080C636E: + movs r0, 0 + b _080C6384 +_080C6372: + bl sub_80C6264 + ldr r1, _080C638C @ =gUnknown_0300485C + ldr r0, _080C6390 @ =sub_808AB90 + str r0, [r1] + ldr r1, _080C6394 @ =gUnknown_03005CE4 + ldr r0, _080C6398 @ =sub_80C660C +_080C6380: + str r0, [r1] + movs r0, 0x1 +_080C6384: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C638C: .4byte gUnknown_0300485C +_080C6390: .4byte sub_808AB90 +_080C6394: .4byte gUnknown_03005CE4 +_080C6398: .4byte sub_80C660C + thumb_func_end SetUpFieldMove_SecretPower + + thumb_func_start sub_80C639C +sub_80C639C: @ 80C639C + push {lr} + ldr r1, _080C63B0 @ =gUnknown_0202FF84 + ldr r0, _080C63B4 @ =gUnknown_03005CE0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C63B8 @ =gUnknown_081A2CE6 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C63B0: .4byte gUnknown_0202FF84 +_080C63B4: .4byte gUnknown_03005CE0 +_080C63B8: .4byte gUnknown_081A2CE6 + thumb_func_end sub_80C639C + + thumb_func_start FldEff_UseSecretPowerCave +FldEff_UseSecretPowerCave: @ 80C63BC + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C63E0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C63E4 @ =sub_80C63E8 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C63E0: .4byte gTasks +_080C63E4: .4byte sub_80C63E8 + thumb_func_end FldEff_UseSecretPowerCave + + thumb_func_start sub_80C63E8 +sub_80C63E8: @ 80C63E8 + push {lr} + movs r0, 0xB + bl FieldEffectActiveListRemove + movs r0, 0x37 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C63E8 + + thumb_func_start FldEff_SecretPowerCave +FldEff_SecretPowerCave: @ 80C63FC + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C643C @ =gSpriteTemplate_83D2614 + ldr r3, _080C6440 @ =gSprites + ldr r1, _080C6444 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6448 @ =gUnknown_0202FF84 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C643C: .4byte gSpriteTemplate_83D2614 +_080C6440: .4byte gSprites +_080C6444: .4byte gPlayerAvatar +_080C6448: .4byte gUnknown_0202FF84 + thumb_func_end FldEff_SecretPowerCave + + thumb_func_start sub_80C644C +sub_80C644C: @ 80C644C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x83 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C6464 @ =sub_80C6468 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6464: .4byte sub_80C6468 + thumb_func_end sub_80C644C + + thumb_func_start sub_80C6468 +sub_80C6468: @ 80C6468 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C6488 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6490 + bl sub_80BB800 + b _080C6490 +_080C6488: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6494 @ =sub_80C6498 + str r0, [r1, 0x1C] +_080C6490: + pop {r0} + bx r0 + .align 2, 0 +_080C6494: .4byte sub_80C6498 + thumb_func_end sub_80C6468 + + thumb_func_start sub_80C6498 +sub_80C6498: @ 80C6498 + push {lr} + movs r1, 0x37 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6498 + + thumb_func_start sub_80C64A8 +sub_80C64A8: @ 80C64A8 + push {lr} + ldr r1, _080C64BC @ =gUnknown_0202FF84 + ldr r0, _080C64C0 @ =gUnknown_03005CE0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C64C4 @ =gUnknown_081A2D3E + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C64BC: .4byte gUnknown_0202FF84 +_080C64C0: .4byte gUnknown_03005CE0 +_080C64C4: .4byte gUnknown_081A2D3E + thumb_func_end sub_80C64A8 + + thumb_func_start FldEff_UseSecretPowerTree +FldEff_UseSecretPowerTree: @ 80C64C8 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C64EC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C64F0 @ =sub_80C64F4 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C64EC: .4byte gTasks +_080C64F0: .4byte sub_80C64F4 + thumb_func_end FldEff_UseSecretPowerTree + + thumb_func_start sub_80C64F4 +sub_80C64F4: @ 80C64F4 + push {lr} + movs r0, 0x1A + bl FieldEffectActiveListRemove + movs r0, 0x38 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C64F4 + + thumb_func_start FldEff_SecretPowerTree +FldEff_SecretPowerTree: @ 80C6508 + push {r4,lr} + ldr r1, _080C6580 @ =gUnknown_0203923C + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + adds r2, r0, 0 + ldr r1, _080C6584 @ =0x00000fff + adds r0, r1, 0 + ands r2, r0 + cmp r2, 0x96 + bne _080C652A + ldr r1, _080C6588 @ =gUnknown_0202FF84 + movs r0, 0 + str r0, [r1, 0x1C] +_080C652A: + cmp r2, 0x9C + bne _080C6534 + ldr r1, _080C6588 @ =gUnknown_0202FF84 + movs r0, 0x2 + str r0, [r1, 0x1C] +_080C6534: + bl sub_80C6280 + ldr r0, _080C658C @ =gSpriteTemplate_83D262C + ldr r3, _080C6590 @ =gSprites + ldr r1, _080C6594 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6588 @ =gUnknown_0202FF84 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + ldr r0, [r4, 0x1C] + cmp r0, 0x1 + beq _080C6572 + cmp r0, 0x3 + bne _080C6576 +_080C6572: + bl sub_80BB800 +_080C6576: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6580: .4byte gUnknown_0203923C +_080C6584: .4byte 0x00000fff +_080C6588: .4byte gUnknown_0202FF84 +_080C658C: .4byte gSpriteTemplate_83D262C +_080C6590: .4byte gSprites +_080C6594: .4byte gPlayerAvatar + thumb_func_end FldEff_SecretPowerTree + + thumb_func_start sub_80C6598 +sub_80C6598: @ 80C6598 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x9B + bl PlaySE + ldr r0, _080C65BC @ =gUnknown_0202FF84 + ldr r1, [r0, 0x1C] + adds r2, r4, 0 + adds r2, 0x2A + movs r0, 0 + strb r1, [r2] + strh r0, [r4, 0x2E] + ldr r0, _080C65C0 @ =sub_80C65C4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65BC: .4byte gUnknown_0202FF84 +_080C65C0: .4byte sub_80C65C4 + thumb_func_end sub_80C6598 + + thumb_func_start sub_80C65C4 +sub_80C65C4: @ 80C65C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _080C65EE + ldr r0, _080C65F4 @ =gUnknown_0202FF84 + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080C65E2 + cmp r0, 0x2 + bne _080C65E6 +_080C65E2: + bl sub_80BB800 +_080C65E6: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C65F8 @ =sub_80C65FC + str r0, [r4, 0x1C] +_080C65EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65F4: .4byte gUnknown_0202FF84 +_080C65F8: .4byte sub_80C65FC + thumb_func_end sub_80C65C4 + + thumb_func_start sub_80C65FC +sub_80C65FC: @ 80C65FC + push {lr} + movs r1, 0x38 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C65FC + + thumb_func_start sub_80C660C +sub_80C660C: @ 80C660C + push {lr} + ldr r1, _080C6620 @ =gUnknown_0202FF84 + ldr r0, _080C6624 @ =gUnknown_03005CE0 + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C6628 @ =gUnknown_081A2D96 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C6620: .4byte gUnknown_0202FF84 +_080C6624: .4byte gUnknown_03005CE0 +_080C6628: .4byte gUnknown_081A2D96 + thumb_func_end sub_80C660C + + thumb_func_start FldEff_UseSecretPowerShrub +FldEff_UseSecretPowerShrub: @ 80C662C + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6650 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C6654 @ =sub_80C6658 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C6650: .4byte gTasks +_080C6654: .4byte sub_80C6658 + thumb_func_end FldEff_UseSecretPowerShrub + + thumb_func_start sub_80C6658 +sub_80C6658: @ 80C6658 + push {lr} + movs r0, 0x1B + bl FieldEffectActiveListRemove + movs r0, 0x39 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C6658 + + thumb_func_start FldEff_SecretPowerShrub +FldEff_SecretPowerShrub: @ 80C666C + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C66AC @ =gSpriteTemplate_83D2644 + ldr r3, _080C66B0 @ =gSprites + ldr r1, _080C66B4 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C66B8 @ =gUnknown_0202FF84 + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C66AC: .4byte gSpriteTemplate_83D2644 +_080C66B0: .4byte gSprites +_080C66B4: .4byte gPlayerAvatar +_080C66B8: .4byte gUnknown_0202FF84 + thumb_func_end FldEff_SecretPowerShrub + + thumb_func_start sub_80C66BC +sub_80C66BC: @ 80C66BC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA9 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C66D4 @ =sub_80C66D8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C66D4: .4byte sub_80C66D8 + thumb_func_end sub_80C66BC + + thumb_func_start sub_80C66D8 +sub_80C66D8: @ 80C66D8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C66F8 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6700 + bl sub_80BB800 + b _080C6700 +_080C66F8: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6704 @ =sub_80C6708 + str r0, [r1, 0x1C] +_080C6700: + pop {r0} + bx r0 + .align 2, 0 +_080C6704: .4byte sub_80C6708 + thumb_func_end sub_80C66D8 + + thumb_func_start sub_80C6708 +sub_80C6708: @ 80C6708 + push {lr} + movs r1, 0x39 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6708 + + thumb_func_start FldEff_PCTurnOn +FldEff_PCTurnOn: @ 80C6718 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, _080C6758 @ =sub_80C6760 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C675C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, sp + ldrh r0, [r0] + movs r2, 0 + strh r0, [r1, 0x8] + ldrh r0, [r4] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6758: .4byte sub_80C6760 +_080C675C: .4byte gTasks + thumb_func_end FldEff_PCTurnOn + + thumb_func_start sub_80C6760 +sub_80C6760: @ 80C6760 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C6788 @ =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + subs r0, 0x4 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bhi _080C682E + lsls r0, 2 + ldr r1, _080C678C @ =_080C6790 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6788: .4byte gTasks + 0x8 +_080C678C: .4byte _080C6790 + .align 2, 0 +_080C6790: + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C6800 +_080C67D4: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + b _080C67EE +_080C67E2: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x88 + lsls r2, 2 +_080C67EE: + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + b _080C682E +_080C6800: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + movs r0, 0x3D + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080C6834 +_080C682E: + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] +_080C6834: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6760 + + thumb_func_start sub_80C683C +sub_80C683C: @ 80C683C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, 0x3 + bl PlaySE + ldr r0, _080C6874 @ =0x00004054 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080C6878 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + b _080C6888 + .align 2, 0 +_080C6874: .4byte 0x00004054 +_080C6878: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + ldr r2, _080C68A0 @ =0x00000e21 + bl MapGridSetMetatileIdAt +_080C6888: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C68A0: .4byte 0x00000e21 + thumb_func_end sub_80C683C + + thumb_func_start sub_80C68A4 +sub_80C68A4: @ 80C68A4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080C68E4 @ =sub_80C68EC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C68E8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + strh r6, [r1, 0xC] + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x10] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C68E4: .4byte sub_80C68EC +_080C68E8: .4byte gTasks + thumb_func_end sub_80C68A4 + + thumb_func_start sub_80C68EC +sub_80C68EC: @ 80C68EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C690C @ =gTasks + 0x8 + adds r4, r0, r1 + ldrh r1, [r4, 0x6] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0x6 + bne _080C6910 + movs r0, 0 + b _080C6912 + .align 2, 0 +_080C690C: .4byte gTasks + 0x8 +_080C6910: + adds r0, r1, 0x1 +_080C6912: + strh r0, [r4, 0x6] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080C6964 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + bne _080C692C + movs r2, 0 + ldrsh r0, [r4, r2] + bl sub_80C696C +_080C692C: + movs r3, 0x2 + ldrsh r0, [r4, r3] + movs r2, 0x4 + ldrsh r1, [r4, r2] + ldrh r2, [r4, 0x8] + ldrh r3, [r4] + adds r2, r3 + lsls r2, 16 + lsrs r2, 16 + bl MapGridSetMetatileIdAt + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + ldrh r1, [r4, 0x8] + movs r3, 0x8 + ldrsh r0, [r4, r3] + cmp r0, 0x3 + bne _080C6960 + adds r0, r5, 0 + bl DestroyTask + b _080C6964 +_080C6960: + adds r0, r1, 0x1 + strh r0, [r4, 0x8] +_080C6964: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C68EC + + thumb_func_start sub_80C696C +sub_80C696C: @ 80C696C + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 2 + cmp r1, r0 + beq _080C6998 + cmp r1, r0 + bgt _080C6988 + movs r0, 0x8A + lsls r0, 2 + cmp r1, r0 + beq _080C69B0 + b _080C69B6 +_080C6988: + movs r0, 0xCF + lsls r0, 2 + cmp r1, r0 + beq _080C69A0 + adds r0, 0x4 + cmp r1, r0 + beq _080C69A8 + b _080C69B6 +_080C6998: + movs r0, 0x4A + bl PlaySE + b _080C69B6 +_080C69A0: + movs r0, 0x4B + bl PlaySE + b _080C69B6 +_080C69A8: + movs r0, 0x4C + bl PlaySE + b _080C69B6 +_080C69B0: + movs r0, 0x4E + bl PlaySE +_080C69B6: + pop {r0} + bx r0 + thumb_func_end sub_80C696C + + thumb_func_start FldEff_Nop47 +FldEff_Nop47: @ 80C69BC + movs r0, 0 + bx lr + thumb_func_end FldEff_Nop47 + + thumb_func_start FldEff_Nop48 +FldEff_Nop48: @ 80C69C0 + movs r0, 0 + bx lr + thumb_func_end FldEff_Nop48 + + thumb_func_start sub_80C69C4 +sub_80C69C4: @ 80C69C4 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x4D + bl PlaySE + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + ldr r2, _080C6A0C @ =0x00000276 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridSetMetatileIdAt + subs r6, r4, 0x1 + ldr r2, _080C6A10 @ =0x0000026e + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt + adds r0, r5, 0 + adds r1, r4, 0 + bl CurrentMapDrawMetatileAt + adds r0, r5, 0 + adds r1, r6, 0 + bl CurrentMapDrawMetatileAt + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C6A0C: .4byte 0x00000276 +_080C6A10: .4byte 0x0000026e + thumb_func_end sub_80C69C4 + + thumb_func_start sub_80C6A14 +sub_80C6A14: @ 80C6A14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6A44 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0x7 + bne _080C6A48 + movs r2, 0xA + ldrsh r0, [r1, r2] + movs r3, 0xC + ldrsh r1, [r1, r3] + bl sub_80C69C4 + adds r0, r4, 0 + bl DestroyTask + b _080C6A4C + .align 2, 0 +_080C6A44: .4byte gTasks +_080C6A48: + adds r0, r2, 0x1 + strh r0, [r1, 0x8] +_080C6A4C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6A14 + + thumb_func_start sub_80C6A54 +sub_80C6A54: @ 80C6A54 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + adds r7, r5, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r6, r4, 0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6A7C + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r4, 16 + asrs r1, 16 + bl sub_80C69C4 + b _080C6A9E +_080C6A7C: + cmp r0, 0x2 + bne _080C6A9E + ldr r0, _080C6AA4 @ =sub_80C6A14 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6AA8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r7, [r1, 0xA] + strh r6, [r1, 0xC] +_080C6A9E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6AA4: .4byte sub_80C6A14 +_080C6AA8: .4byte gTasks + thumb_func_end sub_80C6A54 + + thumb_func_start sub_80C6AAC +sub_80C6AAC: @ 80C6AAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6AE4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x7 + beq _080C6AC8 + b _080C6C26 +_080C6AC8: + ldr r2, _080C6AE8 @ =0xfffffd88 + adds r0, r2, 0 + ldrh r1, [r1, 0x8] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + bls _080C6ADA + b _080C6C1E +_080C6ADA: + lsls r0, 2 + ldr r1, _080C6AEC @ =_080C6AF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6AE4: .4byte gTasks +_080C6AE8: .4byte 0xfffffd88 +_080C6AEC: .4byte _080C6AF0 + .align 2, 0 +_080C6AF0: + .4byte _080C6BE0 + .4byte _080C6BE8 + .4byte _080C6BF0 + .4byte _080C6BF8 + .4byte _080C6C00 + .4byte _080C6C08 + .4byte _080C6C10 + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C18 +_080C6BE0: + movs r0, 0x3E + bl PlaySE + b _080C6C1E +_080C6BE8: + movs r0, 0x3F + bl PlaySE + b _080C6C1E +_080C6BF0: + movs r0, 0x40 + bl PlaySE + b _080C6C1E +_080C6BF8: + movs r0, 0x41 + bl PlaySE + b _080C6C1E +_080C6C00: + movs r0, 0x42 + bl PlaySE + b _080C6C1E +_080C6C08: + movs r0, 0x43 + bl PlaySE + b _080C6C1E +_080C6C10: + movs r0, 0x44 + bl PlaySE + b _080C6C1E +_080C6C18: + movs r0, 0x45 + bl PlaySE +_080C6C1E: + adds r0, r4, 0 + bl DestroyTask + b _080C6C2A +_080C6C26: + adds r0, r2, 0x1 + strh r0, [r1, 0xA] +_080C6C2A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6AAC + + thumb_func_start sub_80C6C30 +sub_80C6C30: @ 80C6C30 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _080C6C5C @ =sub_80C6AAC + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6C60 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r0, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6C5C: .4byte sub_80C6AAC +_080C6C60: .4byte gTasks + thumb_func_end sub_80C6C30 + + thumb_func_start sub_80C6C64 +sub_80C6C64: @ 80C6C64 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080C6C7C + movs r0, 0xC3 + bl PlaySE +_080C6C7C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1F + ble _080C6C8A + adds r0, r4, 0 + bl DestroySprite +_080C6C8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6C64 + + thumb_func_start sub_80C6C90 +sub_80C6C90: @ 80C6C90 + push {r4,lr} + sub sp, 0x4 + ldr r3, _080C6D28 @ =gMapObjects + ldr r2, _080C6D2C @ =gPlayerAvatar + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x10] + mov r0, sp + strh r1, [r0] + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x12] + mov r4, sp + adds r4, 0x2 + strh r0, [r4] + mov r0, sp + adds r1, r4, 0 + movs r2, 0x8 + movs r3, 0x4 + bl sub_8060470 + ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers + ldr r0, [r0, 0x58] + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + movs r3, 0 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080C6D1E + ldr r3, _080C6D34 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r3 + movs r0, 0x3E + adds r0, r4 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0xF + ands r0, r1 + movs r1, 0x50 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080C6D38 @ =sub_80C6C64 + str r0, [r2] + movs r0, 0 + strh r0, [r4, 0x2E] +_080C6D1E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6D28: .4byte gMapObjects +_080C6D2C: .4byte gPlayerAvatar +_080C6D30: .4byte gFieldEffectObjectTemplatePointers +_080C6D34: .4byte gSprites +_080C6D38: .4byte sub_80C6C64 + thumb_func_end sub_80C6C90 + + thumb_func_start FldEff_SandPillar +FldEff_SandPillar: @ 80C6D3C + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r1, _080C6D78 @ =gUnknown_0202FF84 + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + str r0, [r1, 0x14] + movs r3, 0 + ldrsh r0, [r4, r3] + str r0, [r1, 0x18] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080C6DBC + cmp r0, 0x2 + bgt _080C6D7C + cmp r0, 0x1 + beq _080C6D86 + b _080C6E4C + .align 2, 0 +_080C6D78: .4byte gUnknown_0202FF84 +_080C6D7C: + cmp r0, 0x3 + beq _080C6DEC + cmp r0, 0x4 + beq _080C6E24 + b _080C6E4C +_080C6D86: + ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6DB4 @ =gSprites + ldr r1, _080C6DB8 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x20 + movs r3, 0 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6DB0: .4byte gSpriteTemplate_83D26A0 +_080C6DB4: .4byte gSprites +_080C6DB8: .4byte gPlayerAvatar +_080C6DBC: + ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6DE4 @ =gSprites + ldr r1, _080C6DE8 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + b _080C6E0C + .align 2, 0 +_080C6DE0: .4byte gSpriteTemplate_83D26A0 +_080C6DE4: .4byte gSprites +_080C6DE8: .4byte gPlayerAvatar +_080C6DEC: + ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6E18 @ =gSprites + ldr r1, _080C6E1C @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + ldr r3, _080C6E20 @ =0xfff80000 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 +_080C6E0C: + movs r3, 0x94 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6E14: .4byte gSpriteTemplate_83D26A0 +_080C6E18: .4byte gSprites +_080C6E1C: .4byte gPlayerAvatar +_080C6E20: .4byte 0xfff80000 +_080C6E24: + ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6E5C @ =gSprites + ldr r1, _080C6E60 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0xC0 + lsls r3, 13 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 + movs r3, 0x94 + bl CreateSprite +_080C6E4C: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6E58: .4byte gSpriteTemplate_83D26A0 +_080C6E5C: .4byte gSprites +_080C6E60: .4byte gPlayerAvatar + thumb_func_end FldEff_SandPillar + + thumb_func_start door_restore_tilemap +door_restore_tilemap: @ 80C6E64 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x83 + bl PlaySE + ldr r4, _080C6E90 @ =gUnknown_0202FF84 + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl MapGridGetMetatileIdAt + ldr r1, _080C6E94 @ =0x00000286 + cmp r0, r1 + bne _080C6E9C + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + ldr r2, _080C6E98 @ =0x00000e02 + bl MapGridSetMetatileIdAt + b _080C6EAA + .align 2, 0 +_080C6E90: .4byte gUnknown_0202FF84 +_080C6E94: .4byte 0x00000286 +_080C6E98: .4byte 0x00000e02 +_080C6E9C: + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + movs r2, 0xA1 + lsls r2, 2 + bl MapGridSetMetatileIdAt +_080C6EAA: + ldr r4, _080C6ED8 @ =gUnknown_0202FF84 + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6EDC @ =0x0000020a + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl CurrentMapDrawMetatileAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6EE0 @ =sub_80C6EE4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6ED8: .4byte gUnknown_0202FF84 +_080C6EDC: .4byte 0x0000020a +_080C6EE0: .4byte sub_80C6EE4 + thumb_func_end door_restore_tilemap + + thumb_func_start sub_80C6EE4 +sub_80C6EE4: @ 80C6EE4 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x11 + bgt _080C6EF8 + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080C6F14 +_080C6EF8: + ldr r4, _080C6F1C @ =gUnknown_0202FF84 + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6F20 @ =0x00000e8c + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6F24 @ =sub_80C6F28 + str r0, [r5, 0x1C] +_080C6F14: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6F1C: .4byte gUnknown_0202FF84 +_080C6F20: .4byte 0x00000e8c +_080C6F24: .4byte sub_80C6F28 + thumb_func_end sub_80C6EE4 + + thumb_func_start sub_80C6F28 +sub_80C6F28: @ 80C6F28 + push {lr} + movs r1, 0x34 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6F28 + + thumb_func_start sub_80C6F38 +sub_80C6F38: @ 80C6F38 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + adds r1, r0, 0 + ldr r0, _080C6F70 @ =0x000002f5 + cmp r1, r0 + beq _080C6FE8 + cmp r1, r0 + bgt _080C6F74 + subs r0, 0x17 + cmp r1, r0 + beq _080C6FB0 + adds r0, 0x16 + cmp r1, r0 + beq _080C6FDC + b _080C6FFA + .align 2, 0 +_080C6F70: .4byte 0x000002f5 +_080C6F74: + ldr r0, _080C6F9C @ =0x000002f6 + cmp r1, r0 + beq _080C6FF4 + adds r0, 0x40 + cmp r1, r0 + bne _080C6FFA + ldr r0, _080C6FA0 @ =gStringVar1 + movs r1, 0x64 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FA4 @ =gStringVar2 + ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank + bl StringCopy + ldr r1, _080C6FAC @ =gScriptResult + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6F9C: .4byte 0x000002f6 +_080C6FA0: .4byte gStringVar1 +_080C6FA4: .4byte gStringVar2 +_080C6FA8: .4byte gSecretBaseText_GoldRank +_080C6FAC: .4byte gScriptResult +_080C6FB0: + ldr r0, _080C6FCC @ =gStringVar1 + movs r1, 0x32 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FD0 @ =gStringVar2 + ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank + bl StringCopy + ldr r1, _080C6FD8 @ =gScriptResult + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6FCC: .4byte gStringVar1 +_080C6FD0: .4byte gStringVar2 +_080C6FD4: .4byte gSecretBaseText_SilverRank +_080C6FD8: .4byte gScriptResult +_080C6FDC: + ldr r1, _080C6FE4 @ =gScriptResult + movs r0, 0x1 + b _080C6FF8 + .align 2, 0 +_080C6FE4: .4byte gScriptResult +_080C6FE8: + ldr r1, _080C6FF0 @ =gScriptResult + movs r0, 0x2 + b _080C6FF8 + .align 2, 0 +_080C6FF0: .4byte gScriptResult +_080C6FF4: + ldr r1, _080C7004 @ =gScriptResult + movs r0, 0x3 +_080C6FF8: + strh r0, [r1] +_080C6FFA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7004: .4byte gScriptResult + thumb_func_end sub_80C6F38 + + thumb_func_start task50_overworld_posion_effect +task50_overworld_posion_effect: @ 80C7008 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080C702C @ =gTasks + 0x8 + adds r1, r0, r1 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080C7046 + cmp r0, 0x1 + bgt _080C7030 + cmp r0, 0 + beq _080C7036 + b _080C7062 + .align 2, 0 +_080C702C: .4byte gTasks + 0x8 +_080C7030: + cmp r0, 0x2 + beq _080C705A + b _080C7062 +_080C7036: + ldrh r0, [r1, 0x2] + adds r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080C7062 + b _080C7052 +_080C7046: + ldrh r0, [r1, 0x2] + subs r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _080C7062 +_080C7052: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080C7062 +_080C705A: + adds r0, r2, 0 + bl DestroyTask + b _080C706C +_080C7062: + ldr r2, _080C7070 @ =REG_MOSAIC + ldrh r1, [r1, 0x2] + lsls r0, r1, 4 + orrs r0, r1 + strh r0, [r2] +_080C706C: + pop {r0} + bx r0 + .align 2, 0 +_080C7070: .4byte REG_MOSAIC + thumb_func_end task50_overworld_posion_effect + + thumb_func_start overworld_posion_effect +overworld_posion_effect: @ 80C7074 + push {lr} + movs r0, 0x4F + bl PlaySE + ldr r0, _080C7088 @ =task50_overworld_posion_effect + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C7088: .4byte task50_overworld_posion_effect + thumb_func_end overworld_posion_effect + + thumb_func_start c3_80A0DD8_is_running +c3_80A0DD8_is_running: @ 80C708C + push {lr} + ldr r0, _080C709C @ =task50_overworld_posion_effect + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080C709C: .4byte task50_overworld_posion_effect + thumb_func_end c3_80A0DD8_is_running + + thumb_func_start sub_80C70A0 +sub_80C70A0: @ 80C70A0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C70B4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C70B8 @ =sub_80C70BC + str r0, [r1] + bx lr + .align 2, 0 +_080C70B4: .4byte gTasks +_080C70B8: .4byte sub_80C70BC + thumb_func_end sub_80C70A0 + + thumb_func_start sub_80C70BC +sub_80C70BC: @ 80C70BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C7120 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7124 @ =gMapObjects + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080C70E8 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C711A +_080C70E8: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl sub_8059D08 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldr r1, _080C7128 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C712C @ =sub_80C7130 + str r1, [r0] +_080C711A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7120: .4byte gPlayerAvatar +_080C7124: .4byte gMapObjects +_080C7128: .4byte gTasks +_080C712C: .4byte sub_80C7130 + thumb_func_end sub_80C70BC + + thumb_func_start sub_80C7130 +sub_80C7130: @ 80C7130 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C7184 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7188 @ =gMapObjects + adds r5, r0, r1 + adds r0, r5, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C7194 + ldr r1, _080C718C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080C7190 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetSpecialAnim + b _080C7194 + .align 2, 0 +_080C7184: .4byte gPlayerAvatar +_080C7188: .4byte gMapObjects +_080C718C: .4byte gTasks +_080C7190: + ldr r0, _080C719C @ =sub_80C71A0 + str r0, [r2] +_080C7194: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C719C: .4byte sub_80C71A0 + thumb_func_end sub_80C7130 + + thumb_func_start sub_80C71A0 +sub_80C71A0: @ 80C71A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80597D0 + lsls r0, 24 + lsrs r0, 24 + bl SetPlayerAvatarTransitionFlags + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C71A0 + + thumb_func_start sub_80C71C4 +sub_80C71C4: @ 80C71C4 + push {lr} + ldr r0, _080C71D4 @ =sub_80C70A0 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C71D4: .4byte sub_80C70A0 + thumb_func_end sub_80C71C4 + + thumb_func_start sub_80C71D8 +sub_80C71D8: @ 80C71D8 + push {r4,r5,lr} + ldr r0, _080C722C @ =gUnknown_083D2878 + bl LoadSpritePalette + ldr r0, _080C7230 @ =gSpriteTemplate_83D2894 + movs r1, 0 + movs r2, 0 + movs r3, 0x52 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080C7238 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r1, _080C7234 @ =gSprites + adds r4, r0, r1 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r0, 0x10 + movs r1, 0xD + bl sub_8060388 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, 0x2 + strh r0, [r4, 0x22] + adds r0, r5, 0 + b _080C723A + .align 2, 0 +_080C722C: .4byte gUnknown_083D2878 +_080C7230: .4byte gSpriteTemplate_83D2894 +_080C7234: .4byte gSprites +_080C7238: + movs r0, 0x40 +_080C723A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C71D8 + + thumb_func_start sub_80C7240 +sub_80C7240: @ 80C7240 + push {r4-r7,lr} + ldr r4, _080C7274 @ =gSprites + adds r7, r4, 0 + movs r6, 0 + movs r5, 0x3F +_080C724A: + adds r0, r7, 0 + adds r0, 0x14 + adds r0, r6, r0 + ldr r1, [r0] + ldr r0, _080C7278 @ =gSpriteTemplate_83D2894 + cmp r1, r0 + bne _080C7264 + adds r0, r4, 0 + bl FreeSpritePalette + adds r0, r4, 0 + bl DestroySprite +_080C7264: + adds r4, 0x44 + adds r6, 0x44 + subs r5, 0x1 + cmp r5, 0 + bge _080C724A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7274: .4byte gSprites +_080C7278: .4byte gSpriteTemplate_83D2894 + thumb_func_end sub_80C7240 + + thumb_func_start sub_80C727C +sub_80C727C: @ 80C727C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x78 + bl __modsi3 + cmp r0, 0 + bne _080C7290 + movs r0, 0x1 + negs r0, r0 + b _080C72A2 +_080C7290: + adds r0, r4, 0 + movs r1, 0xA + bl __modsi3 + cmp r0, 0x4 + ble _080C72A0 + movs r0, 0 + b _080C72A2 +_080C72A0: + movs r0, 0x1 +_080C72A2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C727C + + thumb_func_start sub_80C72A8 +sub_80C72A8: @ 80C72A8 + push {lr} + adds r0, 0x78 + movs r1, 0xB4 + bl __modsi3 + cmp r0, 0 + beq _080C72BA + movs r0, 0 + b _080C72BE +_080C72BA: + movs r0, 0x1 + negs r0, r0 +_080C72BE: + pop {r1} + bx r1 + thumb_func_end sub_80C72A8 + + thumb_func_start sub_80C72C4 +sub_80C72C4: @ 80C72C4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080C7364 @ =gTasks + 0x8 + adds r5, r1, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + adds r0, 0x1E + bl sub_80C72A8 + ldr r4, _080C7368 @ =gSaveBlock1 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + lsls r0, 18 + movs r3, 0xC0 + lsls r3, 10 + orrs r0, r3 + asrs r0, 16 + str r0, [sp] + movs r0, 0x1 + movs r3, 0x3 + bl sub_805BD90 + movs r3, 0 + ldrsh r0, [r5, r3] + bl sub_80C72A8 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + lsls r0, 17 + ldr r3, _080C736C @ =0xfffd0000 + adds r0, r3 + asrs r0, 16 + str r0, [sp] + movs r0, 0x2 + movs r3, 0 + bl sub_805BD90 + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_80C72A8 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r4, 0 + movs r3, 0x3 + negs r3, r3 + lsls r0, 18 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + bl sub_805BD90 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + lsls r0, 16 + ldr r1, _080C7370 @ =0x75300000 + cmp r0, r1 + bne _080C7346 + strh r4, [r5] +_080C7346: + movs r3, 0 + ldrsh r0, [r5, r3] + bl sub_80C727C + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl SetCameraPanning + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7364: .4byte gTasks + 0x8 +_080C7368: .4byte gSaveBlock1 +_080C736C: .4byte 0xfffd0000 +_080C7370: .4byte 0x75300000 + thumb_func_end sub_80C72C4 + + thumb_func_start sub_80C7374 +sub_80C7374: @ 80C7374 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r3, r0, 3 + ldr r4, _080C73B4 @ =gTasks + 0x8 + adds r7, r3, r4 + ldrh r1, [r7] + adds r1, 0x1 + strh r1, [r7] + ldrh r0, [r7, 0x4] + adds r0, 0x1 + strh r0, [r7, 0x4] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x5 + ble _080C73A4 + movs r0, 0 + strh r0, [r7] + ldrh r0, [r7, 0x2] + adds r0, 0x1 + strh r0, [r7, 0x2] +_080C73A4: + ldrh r0, [r7, 0x2] + cmp r0, 0x13 + bne _080C73B8 + adds r0, r2, 0 + bl DestroyTask + b _080C746A + .align 2, 0 +_080C73B4: .4byte gTasks + 0x8 +_080C73B8: + ldr r2, _080C7474 @ =gUnknown_083D294C + movs r1, 0x2 + ldrsh r0, [r7, r1] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _080C73D4 + adds r0, r4, 0 + subs r0, 0x8 + adds r0, r3, r0 + ldr r1, _080C7478 @ =sub_80C7484 + str r1, [r0] +_080C73D4: + movs r4, 0x2 + ldrsh r0, [r7, r4] + adds r0, r2 + movs r5, 0 + ldrsb r5, [r0, r5] + lsls r5, 16 + lsrs r5, 16 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C727C + adds r1, r0, 0 + lsls r5, 16 + asrs r5, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl SetCameraPanning + movs r4, 0x4 + ldrsh r0, [r7, r4] + adds r0, 0x1E + bl sub_80C72A8 + ldr r6, _080C747C @ =gSaveBlock1 + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + movs r3, 0x3 + subs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 18 + movs r4, 0xC0 + lsls r4, 10 + orrs r0, r4 + asrs r0, 16 + str r0, [sp] + movs r0, 0x1 + bl sub_805BD90 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C72A8 + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + negs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 17 + ldr r4, _080C7480 @ =0xfffd0000 + adds r0, r4 + asrs r0, 16 + str r0, [sp] + movs r0, 0x2 + bl sub_805BD90 + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl sub_80C72A8 + ldrb r1, [r6, 0x5] + ldrb r2, [r6, 0x4] + movs r4, 0x3 + negs r4, r4 + adds r3, r4, 0 + subs r3, r5 + lsls r3, 16 + asrs r3, 16 + lsls r0, 18 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + bl sub_805BD90 +_080C746A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7474: .4byte gUnknown_083D294C +_080C7478: .4byte sub_80C7484 +_080C747C: .4byte gSaveBlock1 +_080C7480: .4byte 0xfffd0000 + thumb_func_end sub_80C7374 + + thumb_func_start sub_80C7484 +sub_80C7484: @ 80C7484 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080C74C4 @ =gTasks + 0x8 + adds r2, r0, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080C74B4 + movs r0, 0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] +_080C74B4: + ldrh r0, [r2, 0x2] + cmp r0, 0x13 + bne _080C74C8 + adds r0, r3, 0 + bl DestroyTask + b _080C7516 + .align 2, 0 +_080C74C4: .4byte gTasks + 0x8 +_080C74C8: + ldr r1, _080C7524 @ =gUnknown_083D294C + movs r3, 0x2 + ldrsh r0, [r2, r3] + adds r0, r1 + movs r1, 0 + mov r8, r1 + movs r6, 0 + ldrsb r6, [r0, r6] + adds r0, r6, 0 + bl SetCameraPanning + ldr r5, _080C7528 @ =gSaveBlock1 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + movs r3, 0x3 + subs r3, r6 + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + bl sub_805BD90 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + negs r3, r6 + mov r4, r8 + subs r4, 0x3 + str r4, [sp] + movs r0, 0x2 + bl sub_805BD90 + ldrb r1, [r5, 0x5] + ldrb r2, [r5, 0x4] + subs r4, r6 + mov r3, r8 + str r3, [sp] + movs r0, 0x3 + adds r3, r4, 0 + bl sub_805BD90 +_080C7516: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7524: .4byte gUnknown_083D294C +_080C7528: .4byte gSaveBlock1 + thumb_func_end sub_80C7484 + + thumb_func_start sub_80C752C +sub_80C752C: @ 80C752C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C7550 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080C7546 + b _080C7698 +_080C7546: + lsls r0, 2 + ldr r1, _080C7554 @ =_080C7558 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C7550: .4byte gTasks + 0x8 +_080C7554: .4byte _080C7558 + .align 2, 0 +_080C7558: + .4byte _080C7570 + .4byte _080C75A8 + .4byte _080C75C4 + .4byte _080C7610 + .4byte _080C7634 + .4byte _080C7652 +_080C7570: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + beq _080C7580 + b _080C7698 +_080C7580: + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0 + strh r0, [r4, 0x2] + ldr r0, _080C75A4 @ =sub_80C72C4 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x4] + movs r0, 0x1 + strh r0, [r4] + movs r0, 0x31 + bl PlaySE + b _080C7698 + .align 2, 0 +_080C75A4: .4byte sub_80C72C4 +_080C75A8: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x96 + bne _080C7698 + bl pal_fill_black + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x2 + strh r0, [r4] + b _080C7698 +_080C75C4: + ldrh r0, [r4, 0x2] + adds r3, r0, 0x1 + strh r3, [r4, 0x2] + ldr r0, _080C7608 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080C7698 + lsls r1, r3, 16 + movs r0, 0x96 + lsls r0, 17 + cmp r1, r0 + ble _080C7698 + strh r2, [r4, 0x2] + ldrb r0, [r4, 0x4] + bl DestroyTask + ldr r0, _080C760C @ =sub_80C7374 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x6] + movs r0, 0x3 + strh r0, [r4] + movs r0, 0x32 + bl PlaySE + b _080C7698 + .align 2, 0 +_080C7608: .4byte gPaletteFade +_080C760C: .4byte sub_80C7374 +_080C7610: + ldr r2, _080C7630 @ =gTasks + movs r0, 0x6 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r5, [r0, 0x4] + cmp r5, 0 + bne _080C7698 + bl InstallCameraPanAheadCallback + strh r5, [r4, 0x2] + movs r0, 0x4 + strh r0, [r4] + b _080C7698 + .align 2, 0 +_080C7630: .4byte gTasks +_080C7634: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + bne _080C7698 + movs r0, 0x33 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x5 + strh r0, [r4] + b _080C7698 +_080C7652: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + bne _080C7698 + movs r2, 0x82 + lsls r2, 2 + movs r0, 0xB + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0x84 + lsls r2, 2 + movs r0, 0xB + movs r1, 0x9 + bl MapGridSetMetatileIdAt + movs r2, 0x86 + lsls r2, 2 + movs r0, 0xB + movs r1, 0xA + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x34 + bl PlaySE + adds r0, r5, 0 + bl DestroyTask + bl ScriptContext2_Disable +_080C7698: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C752C + + thumb_func_start sub_80C76A0 +sub_80C76A0: @ 80C76A0 + push {lr} + sub sp, 0x4 + ldr r2, _080C76E8 @ =0x0000020d + movs r0, 0xB + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _080C76EC @ =0x00000215 + movs r0, 0xB + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _080C76F0 @ =0x0000021d + movs r0, 0xB + movs r1, 0xA + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + bl ScriptContext2_Enable + movs r0, 0 + str r0, [sp] + ldr r1, _080C76F4 @ =gPlttBufferFaded + ldr r2, _080C76F8 @ =0x01000100 + mov r0, sp + bl CpuFastSet + ldr r0, _080C76FC @ =sub_80C752C + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C76E8: .4byte 0x0000020d +_080C76EC: .4byte 0x00000215 +_080C76F0: .4byte 0x0000021d +_080C76F4: .4byte gPlttBufferFaded +_080C76F8: .4byte 0x01000100 +_080C76FC: .4byte sub_80C752C + thumb_func_end sub_80C76A0 + + thumb_func_start sub_80C7700 +sub_80C7700: @ 80C7700 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _080C774C @ =sub_80C752C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080C7744 + ldr r4, _080C7750 @ =gSaveBlock1 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r0, 0x3 + str r0, [sp] + movs r0, 0x1 + movs r3, 0x3 + bl sub_805BD90 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r5, 0x3 + negs r5, r5 + str r5, [sp] + movs r0, 0x2 + movs r3, 0 + bl sub_805BD90 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + str r6, [sp] + movs r0, 0x3 + adds r3, r5, 0 + bl sub_805BD90 +_080C7744: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C774C: .4byte sub_80C752C +_080C7750: .4byte gSaveBlock1 + thumb_func_end sub_80C7700 + + thumb_func_start sub_80C7754 +sub_80C7754: @ 80C7754 + push {r4-r6,lr} + sub sp, 0xC + mov r4, sp + adds r4, 0x5 + mov r5, sp + adds r5, 0x6 + add r6, sp, 0x8 + add r0, sp, 0x4 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_810D9EC + lsls r0, 24 + cmp r0, 0 + bne _080C7796 + add r0, sp, 0x4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r4, r1] + movs r2, 0x1 + negs r2, r2 + movs r3, 0 + ldrsb r3, [r5, r3] + movs r4, 0 + ldrsb r4, [r6, r4] + str r4, [sp] + bl warp1_set + movs r0, 0x1 + b _080C7798 +_080C7796: + movs r0, 0 +_080C7798: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C7754 + + thumb_func_start sub_80C77A0 +sub_80C77A0: @ 80C77A0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C77CC @ =gTasks + 0x8 + adds r4, r0, r1 + ldr r0, _080C77D0 @ =0x000040b4 + bl GetVarPointer + adds r6, r0, 0 + ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4 + movs r0, 0 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080C77FC + cmp r2, 0x1 + bgt _080C77D8 + cmp r2, 0 + beq _080C77E2 + b _080C7896 + .align 2, 0 +_080C77CC: .4byte gTasks + 0x8 +_080C77D0: .4byte 0x000040b4 +_080C77D4: .4byte gSaveBlock1 + 0x4 +_080C77D8: + cmp r2, 0x2 + beq _080C783E + cmp r2, 0x3 + beq _080C7878 + b _080C7896 +_080C77E2: + ldr r0, _080C77F8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C7896 + strh r2, [r4, 0x2] + movs r0, 0x2 + strh r0, [r4] + b _080C7896 + .align 2, 0 +_080C77F8: .4byte gPaletteFade +_080C77FC: + ldr r0, _080C7830 @ =gMain + ldrh r1, [r0, 0x2E] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C780A + strh r2, [r4, 0x2] +_080C780A: + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + movs r0, 0xFF + bl sub_80A212C + lsls r0, 24 + cmp r0, 0 + beq _080C7896 + movs r0, 0x1 + bl sub_810D9B0 + cmp r0, 0x1 + bne _080C783A + ldrh r0, [r6] + cmp r0, 0x2 + bne _080C7834 + movs r0, 0x9 + b _080C7836 + .align 2, 0 +_080C7830: .4byte gMain +_080C7834: + movs r0, 0xA +_080C7836: + strh r0, [r6] + b _080C7846 +_080C783A: + movs r0, 0x2 + strh r0, [r4] +_080C783E: + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C784C +_080C7846: + movs r0, 0x3 + strh r0, [r4] + b _080C7896 +_080C784C: + ldrh r0, [r6] + cmp r0, 0x2 + bne _080C7860 + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + ldr r3, _080C785C @ =gUnknown_083D295F + b _080C7866 + .align 2, 0 +_080C785C: .4byte gUnknown_083D295F +_080C7860: + ldrb r1, [r7, 0x1] + ldrb r2, [r7] + ldr r3, _080C7874 @ =gUnknown_083D2961 +_080C7866: + movs r0, 0xFF + bl exec_movement + movs r0, 0x1 + strh r0, [r4] + b _080C7896 + .align 2, 0 +_080C7874: .4byte gUnknown_083D2961 +_080C7878: + ldr r0, _080C789C @ =0x00004001 + bl FlagReset + movs r0, 0x80 + lsls r0, 7 + bl FlagReset + movs r0, 0 + bl copy_saved_warp2_bank_and_enter_x_to_warp1 + bl sp13E_warp_to_last_warp + adds r0, r5, 0 + bl DestroyTask +_080C7896: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C789C: .4byte 0x00004001 + thumb_func_end sub_80C77A0 + + thumb_func_start sub_80C78A0 +sub_80C78A0: @ 80C78A0 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080C78F4 @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + movs r0, 0x8C + movs r2, 0x70 + movs r3, 0x50 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C78F8 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r4, r1, r2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080C78FC @ =0x000040b4 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _080C7900 + movs r0, 0x4 + bl FieldObjectDirectionToImageAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + b _080C7912 + .align 2, 0 +_080C78F4: .4byte SpriteCallbackDummy +_080C78F8: .4byte gSprites +_080C78FC: .4byte 0x000040b4 +_080C7900: + movs r0, 0x3 + bl FieldObjectDirectionToImageAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim +_080C7912: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C78A0 + + thumb_func_start sub_80C791C +sub_80C791C: @ 80C791C + push {lr} + bl sub_80C78A0 + ldr r2, _080C794C @ =gMapObjects + ldr r0, _080C7950 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + bl pal_fill_black + ldr r0, _080C7954 @ =sub_80C77A0 + movs r1, 0x50 + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_080C794C: .4byte gMapObjects +_080C7950: .4byte gPlayerAvatar +_080C7954: .4byte sub_80C77A0 + thumb_func_end sub_80C791C + + thumb_func_start sub_80C7958 +sub_80C7958: @ 80C7958 + push {lr} + ldr r0, _080C7990 @ =0x0000082d + bl FlagSet + ldr r0, _080C7994 @ =0x00004001 + bl FlagSet + movs r0, 0x80 + lsls r0, 7 + bl FlagSet + ldr r0, _080C7998 @ =gSaveBlock1 + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + bl sub_80C7754 + bl sub_8080F9C + pop {r0} + bx r0 + .align 2, 0 +_080C7990: .4byte 0x0000082d +_080C7994: .4byte 0x00004001 +_080C7998: .4byte gSaveBlock1 + thumb_func_end sub_80C7958 + + thumb_func_start GetCurrentMapRotatingGatePuzzleType +GetCurrentMapRotatingGatePuzzleType: @ 80C799C + push {lr} + ldr r0, _080C79B0 @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + movs r0, 0x86 + lsls r0, 1 + cmp r1, r0 + bne _080C79B4 + movs r0, 0x1 + b _080C79C6 + .align 2, 0 +_080C79B0: .4byte gSaveBlock1 +_080C79B4: + ldr r0, _080C79C0 @ =0x0000081d + cmp r1, r0 + beq _080C79C4 + movs r0, 0 + b _080C79C6 + .align 2, 0 +_080C79C0: .4byte 0x0000081d +_080C79C4: + movs r0, 0x2 +_080C79C6: + pop {r1} + bx r1 + thumb_func_end GetCurrentMapRotatingGatePuzzleType + + thumb_func_start sub_80C79CC +sub_80C79CC: @ 80C79CC + push {r4-r6,lr} + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r5, r0, 0 + movs r3, 0 + ldr r4, _080C7A00 @ =gUnknown_02038804 + ldrb r0, [r4] + cmp r3, r0 + bge _080C79F8 + ldr r6, _080C7A04 @ =gUnknown_02038800 +_080C79E4: + adds r2, r5, r3 + ldr r1, [r6] + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0, 0x5] + strb r0, [r2] + adds r3, 0x1 + ldrb r0, [r4] + cmp r3, r0 + blt _080C79E4 +_080C79F8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7A00: .4byte gUnknown_02038804 +_080C7A04: .4byte gUnknown_02038800 + thumb_func_end sub_80C79CC + + thumb_func_start sub_80C7A08 +sub_80C7A08: @ 80C7A08 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r0, r4 + ldrb r0, [r0] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C7A08 + + thumb_func_start sub_80C7A24 +sub_80C7A24: @ 80C7A24 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x80 + lsls r0, 7 + bl GetVarPointer + adds r0, r4 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C7A24 + + thumb_func_start sub_80C7A44 +sub_80C7A44: @ 80C7A44 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80C7A08 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r4, 0x1 + bne _080C7A68 + cmp r1, 0 + beq _080C7A64 + subs r0, r1, 0x1 + lsls r0, 24 + b _080C7A72 +_080C7A64: + movs r1, 0x3 + b _080C7A74 +_080C7A68: + adds r1, 0x1 + lsls r1, 24 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r1 +_080C7A72: + lsrs r1, r0, 24 +_080C7A74: + adds r0, r5, 0 + bl sub_80C7A24 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C7A44 + + thumb_func_start sub_80C7A80 +sub_80C7A80: @ 80C7A80 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0x1 + beq _080C7A94 + cmp r0, 0x1 + ble _080C7AC8 + cmp r0, 0x2 + beq _080C7AAC + b _080C7AC8 +_080C7A94: + ldr r1, _080C7AA0 @ =gUnknown_02038800 + ldr r0, _080C7AA4 @ =gUnknown_083D2964 + str r0, [r1] + ldr r1, _080C7AA8 @ =gUnknown_02038804 + movs r0, 0x7 + b _080C7AB6 + .align 2, 0 +_080C7AA0: .4byte gUnknown_02038800 +_080C7AA4: .4byte gUnknown_083D2964 +_080C7AA8: .4byte gUnknown_02038804 +_080C7AAC: + ldr r1, _080C7ACC @ =gUnknown_02038800 + ldr r0, _080C7AD0 @ =gUnknown_083D299C + str r0, [r1] + ldr r1, _080C7AD4 @ =gUnknown_02038804 + movs r0, 0xE +_080C7AB6: + strb r0, [r1] + movs r1, 0 + ldr r3, _080C7AD8 @ =gUnknown_020387F0 + movs r2, 0x40 +_080C7ABE: + adds r0, r1, r3 + strb r2, [r0] + adds r1, 0x1 + cmp r1, 0xD + bls _080C7ABE +_080C7AC8: + pop {r0} + bx r0 + .align 2, 0 +_080C7ACC: .4byte gUnknown_02038800 +_080C7AD0: .4byte gUnknown_083D299C +_080C7AD4: .4byte gUnknown_02038804 +_080C7AD8: .4byte gUnknown_020387F0 + thumb_func_end sub_80C7A80 + + thumb_func_start sub_80C7ADC +sub_80C7ADC: @ 80C7ADC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + ldr r2, _080C7B9C @ =gSaveBlock1 + ldrh r1, [r2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r3, r0, 16 + adds r1, 0x11 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldrh r1, [r2, 0x2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r2, r0, 16 + adds r1, 0xE + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + movs r5, 0 + ldr r0, _080C7BA0 @ =gUnknown_02038804 + ldrb r0, [r0] + cmp r5, r0 + bcs _080C7B8C + lsls r0, r2, 16 + asrs r7, r0, 16 + lsls r0, r3, 16 + asrs r6, r0, 16 +_080C7B28: + ldr r0, _080C7BA4 @ =gUnknown_02038800 + ldr r0, [r0] + lsls r1, r5, 3 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + lsls r0, 16 + asrs r1, r0, 16 + cmp r7, r1 + bgt _080C7B7E + mov r3, r8 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + blt _080C7B7E + lsls r0, r2, 16 + asrs r1, r0, 16 + cmp r6, r1 + bgt _080C7B7E + mov r2, r9 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, r1 + blt _080C7B7E + ldr r0, _080C7BA8 @ =gUnknown_020387F0 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x40 + bne _080C7B7E + ldr r3, [sp] + lsls r1, r3, 16 + mov r0, r10 + lsls r2, r0, 16 + adds r0, r5, 0 + asrs r1, 16 + asrs r2, 16 + bl sub_80C7BAC + strb r0, [r4] +_080C7B7E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C7BA0 @ =gUnknown_02038804 + ldrb r0, [r0] + cmp r5, r0 + bcc _080C7B28 +_080C7B8C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7B9C: .4byte gSaveBlock1 +_080C7BA0: .4byte gUnknown_02038804 +_080C7BA4: .4byte gUnknown_02038800 +_080C7BA8: .4byte gUnknown_020387F0 + thumb_func_end sub_80C7ADC + + thumb_func_start sub_80C7BAC +sub_80C7BAC: @ 80C7BAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + ldr r0, _080C7BDC @ =gUnknown_02038800 + lsls r1, r6, 3 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080C7BD4 + cmp r0, 0x4 + bne _080C7BE4 +_080C7BD4: + mov r1, sp + ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4 + b _080C7BE8 + .align 2, 0 +_080C7BDC: .4byte gUnknown_02038800 +_080C7BE0: .4byte gSpriteTemplate_83D60A4 +_080C7BE4: + mov r1, sp + ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C +_080C7BE8: + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r2, sp + ldrb r0, [r4, 0x4] + movs r3, 0x98 + lsls r3, 5 + adds r1, r3, 0 + adds r0, r1 + strh r0, [r2] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x94 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080C7C84 + ldrh r0, [r4] + adds r0, 0x7 + ldrh r1, [r4, 0x2] + adds r1, 0x7 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r2, _080C7C80 @ =gSprites + adds r4, r2 + strh r6, [r4, 0x2E] + movs r2, 0x3E + adds r2, r4 + mov r12, r2 + ldrb r2, [r2] + movs r3, 0x2 + orrs r2, r3 + mov r3, r12 + strb r2, [r3] + lsls r0, 16 + asrs r0, 16 + lsls r2, r7, 16 + asrs r2, 16 + adds r0, r2 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + mov r3, r8 + lsls r2, r3, 16 + asrs r2, 16 + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + bl sub_8060388 + adds r0, r4, 0 + bl sub_80C7D14 + adds r0, r6, 0 + bl sub_80C7A08 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + b _080C7C86 + .align 2, 0 +_080C7C7C: .4byte gSpriteTemplate_83D608C +_080C7C80: .4byte gSprites +_080C7C84: + movs r0, 0x40 +_080C7C86: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C7BAC + + thumb_func_start sub_80C7C94 +sub_80C7C94: @ 80C7C94 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x30] + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r6, 0x32] + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r6, 0 + bl sub_80C7D14 + cmp r5, 0x1 + bne _080C7CDA + adds r0, r4, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80E6034 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080C7CCA + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_080C7CCA: + movs r0, 0x30 + bl PlaySE + adds r0, r6, 0 + adds r1, r4, 0 + bl StartSpriteAffineAnim + b _080C7D08 +_080C7CDA: + cmp r5, 0x2 + bne _080C7D08 + adds r0, r7, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80E6034 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080C7CFA + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_080C7CFA: + movs r0, 0x30 + bl PlaySE + adds r0, r6, 0 + adds r1, r4, 0 + bl StartSpriteAffineAnim +_080C7D08: + movs r0, 0 + strh r0, [r6, 0x30] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C7C94 + + thumb_func_start sub_80C7D14 +sub_80C7D14: @ 80C7D14 + push {r4-r6,lr} + mov r12, r0 + mov r4, r12 + adds r4, 0x3E + ldrb r0, [r4] + movs r5, 0x5 + negs r5, r5 + ands r5, r0 + strb r5, [r4] + mov r0, r12 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + adds r0, 0x28 + movs r2, 0 + ldrsb r2, [r0, r2] + ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX + adds r2, r1 + ldrh r0, [r0] + adds r2, r0 + lsls r2, 16 + mov r3, r12 + ldrh r1, [r3, 0x26] + ldrh r0, [r3, 0x22] + adds r1, r0 + mov r0, r12 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldr r3, _080C7DAC @ =gSpriteCoordOffsetY + adds r0, r1 + ldrh r3, [r3] + adds r0, r3 + lsls r0, 16 + movs r3, 0x80 + lsls r3, 15 + adds r1, r2, r3 + lsrs r1, 16 + lsrs r6, r0, 16 + adds r0, r3 + lsrs r3, r0, 16 + asrs r2, 16 + cmp r2, 0xFF + bgt _080C7D7A + lsls r0, r1, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _080C7D82 +_080C7D7A: + movs r1, 0x4 + adds r0, r5, 0 + orrs r0, r1 + strb r0, [r4] +_080C7D82: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xAF + bgt _080C7D96 + lsls r0, r3, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _080C7DA2 +_080C7D96: + mov r0, r12 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080C7DA2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C7DA8: .4byte gSpriteCoordOffsetX +_080C7DAC: .4byte gSpriteCoordOffsetY + thumb_func_end sub_80C7D14 + + thumb_func_start LoadRotatingGatePics +LoadRotatingGatePics: @ 80C7DB0 + push {lr} + ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable + bl LoadSpriteSheets + pop {r0} + bx r0 + .align 2, 0 +_080C7DBC: .4byte gRotatingGatesGraphicsTable + thumb_func_end LoadRotatingGatePics + + thumb_func_start sub_80C7DC0 +sub_80C7DC0: @ 80C7DC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _080C7DF4 @ =gSaveBlock1 + ldrh r1, [r2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r1, 0x11 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldrh r1, [r2, 0x2] + subs r0, r1, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r1, 0xE + lsls r1, 16 + lsrs r7, r1, 16 + movs r6, 0 + b _080C7E66 + .align 2, 0 +_080C7DF4: .4byte gSaveBlock1 +_080C7DF8: + ldr r0, _080C7E7C @ =gUnknown_02038800 + ldr r0, [r0] + lsls r1, r6, 3 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _080C7E80 @ =gUnknown_020387F0 + adds r0, r6, r0 + ldrb r0, [r0] + cmp r0, 0x40 + beq _080C7E64 + lsls r0, r2, 16 + mov r2, r10 + lsls r1, r2, 16 + asrs r2, r0, 16 + cmp r0, r1 + blt _080C7E44 + mov r1, r9 + lsls r0, r1, 16 + asrs r0, 16 + cmp r2, r0 + bgt _080C7E44 + lsls r0, r3, 16 + mov r2, r8 + lsls r1, r2, 16 + asrs r2, r0, 16 + cmp r0, r1 + blt _080C7E44 + lsls r0, r7, 16 + asrs r0, 16 + cmp r2, r0 + ble _080C7E64 +_080C7E44: + ldr r0, _080C7E80 @ =gUnknown_020387F0 + adds r5, r6, r0 + ldrb r0, [r5] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C7E84 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + movs r0, 0x40 + strb r0, [r5] +_080C7E64: + adds r6, 0x1 +_080C7E66: + ldr r0, _080C7E88 @ =gUnknown_02038804 + ldrb r0, [r0] + cmp r6, r0 + blt _080C7DF8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7E7C: .4byte gUnknown_02038800 +_080C7E80: .4byte gUnknown_020387F0 +_080C7E84: .4byte gSprites +_080C7E88: .4byte gUnknown_02038804 + thumb_func_end sub_80C7DC0 + + thumb_func_start sub_80C7E8C +sub_80C7E8C: @ 80C7E8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r1, 0x1 + bne _080C7EAC + ldr r0, _080C7EA8 @ =gUnknown_083D611C + mov r10, r0 + b _080C7EB8 + .align 2, 0 +_080C7EA8: .4byte gUnknown_083D611C +_080C7EAC: + cmp r1, 0x2 + beq _080C7EB4 +_080C7EB0: + movs r0, 0 + b _080C7F48 +_080C7EB4: + ldr r1, _080C7F58 @ =gUnknown_083D60FC + mov r10, r1 +_080C7EB8: + adds r0, r4, 0 + bl sub_80C7A08 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r0, _080C7F5C @ =gUnknown_02038800 + ldr r1, [r0] + lsls r0, r4, 3 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldrh r1, [r0] + adds r1, 0x7 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + movs r3, 0 + lsls r2, 3 + str r2, [sp, 0x4] + lsls r1, 16 + asrs r1, 16 + mov r9, r1 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 +_080C7EE8: + movs r6, 0 + ldr r2, [sp] + adds r7, r2, r3 + lsls r0, r3, 1 + adds r5, r7, 0 + ldr r1, [sp, 0x4] + adds r0, r1 + ldr r2, _080C7F60 @ =gUnknown_083D613C + adds r4, r0, r2 +_080C7EFA: + adds r0, r5, 0 + cmp r5, 0 + bge _080C7F02 + adds r0, r7, 0x3 +_080C7F02: + asrs r0, 2 + lsls r0, 2 + subs r0, r5, r0 + lsls r0, 1 + adds r0, r6 + lsls r0, 24 + lsrs r1, r0, 24 + ldrb r0, [r4] + cmp r0, 0 + beq _080C7F38 + lsls r1, 2 + add r1, r10 + movs r0, 0 + ldrsb r0, [r1, r0] + add r0, r9 + ldrb r1, [r1, 0x1] + lsls r1, 24 + asrs r1, 24 + add r1, r8 + str r3, [sp, 0x8] + bl MapGridIsImpassableAt + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x8] + cmp r0, 0x1 + beq _080C7EB0 +_080C7F38: + adds r4, 0x1 + adds r6, 0x1 + cmp r6, 0x1 + ble _080C7EFA + adds r3, 0x1 + cmp r3, 0x3 + ble _080C7EE8 + movs r0, 0x1 +_080C7F48: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C7F58: .4byte gUnknown_083D60FC +_080C7F5C: .4byte gUnknown_02038800 +_080C7F60: .4byte gUnknown_083D613C + thumb_func_end sub_80C7E8C + + thumb_func_start sub_80C7F64 +sub_80C7F64: @ 80C7F64 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r4, 24 + lsrs r5, r4, 24 + lsrs r4, 25 + movs r0, 0x1 + ands r5, r0 + adds r0, r6, 0 + bl sub_80C7A08 + subs r4, r0 + adds r1, r4, 0x4 + adds r0, r1, 0 + cmp r1, 0 + bge _080C7F8A + adds r0, r4, 0x7 +_080C7F8A: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + ldr r1, _080C7FB0 @ =gUnknown_02038800 + ldr r2, [r1] + lsls r1, r6, 3 + adds r1, r2 + ldrb r1, [r1, 0x4] + ldr r2, _080C7FB4 @ =gUnknown_083D613C + lsls r0, 24 + asrs r0, 23 + adds r0, r5 + lsls r1, 3 + adds r0, r1 + adds r0, r2 + ldrb r0, [r0] + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080C7FB0: .4byte gUnknown_02038800 +_080C7FB4: .4byte gUnknown_083D613C + thumb_func_end sub_80C7F64 + + thumb_func_start sub_80C7FB8 +sub_80C7FB8: @ 80C7FB8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080C7FE4 @ =gUnknown_020387F0 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, 0x40 + beq _080C7FDC + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080C7FE8 @ =gSprites + adds r4, r0 + strh r1, [r4, 0x30] + adds r0, r3, 0 + bl sub_80C7A08 + strh r0, [r4, 0x32] +_080C7FDC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7FE4: .4byte gUnknown_020387F0 +_080C7FE8: .4byte gSprites + thumb_func_end sub_80C7FB8 + + thumb_func_start sub_80C7FEC +sub_80C7FEC: @ 80C7FEC + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r0, 0x2 + bne _080C8008 + ldr r3, _080C8004 @ =gUnknown_083D60BC + b _080C802A + .align 2, 0 +_080C8004: .4byte gUnknown_083D60BC +_080C8008: + cmp r0, 0x1 + bne _080C8014 + ldr r3, _080C8010 @ =gUnknown_083D60CC + b _080C802A + .align 2, 0 +_080C8010: .4byte gUnknown_083D60CC +_080C8014: + cmp r0, 0x3 + bne _080C8020 + ldr r3, _080C801C @ =gUnknown_083D60DC + b _080C802A + .align 2, 0 +_080C801C: .4byte gUnknown_083D60DC +_080C8020: + cmp r3, 0x4 + beq _080C8028 + movs r0, 0xFF + b _080C8038 +_080C8028: + ldr r3, _080C803C @ =gUnknown_083D60EC +_080C802A: + lsls r0, r2, 16 + lsls r1, 16 + asrs r1, 16 + asrs r0, 14 + adds r0, r1 + adds r0, r3, r0 + ldrb r0, [r0] +_080C8038: + pop {r1} + bx r1 + .align 2, 0 +_080C803C: .4byte gUnknown_083D60EC + thumb_func_end sub_80C7FEC + + thumb_func_start sub_80C8040 +sub_80C8040: @ 80C8040 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C8052 + bl sub_80C7A80 + bl sub_80C79CC +_080C8052: + pop {r0} + bx r0 + thumb_func_end sub_80C8040 + + thumb_func_start RotatingGatePuzzleCameraUpdate +RotatingGatePuzzleCameraUpdate: @ 80C8058 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C807A + lsls r0, r4, 16 + asrs r0, 16 + lsls r1, r5, 16 + asrs r1, 16 + bl sub_80C7ADC + bl sub_80C7DC0 +_080C807A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end RotatingGatePuzzleCameraUpdate + + thumb_func_start sub_80C8080 +sub_80C8080: @ 80C8080 + push {lr} + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + beq _080C809A + bl LoadRotatingGatePics + bl sub_80C7A80 + movs r0, 0 + movs r1, 0 + bl sub_80C7ADC +_080C809A: + pop {r0} + bx r0 + thumb_func_end sub_80C8080 + + thumb_func_start CheckForRotatingGatePuzzleCollision +CheckForRotatingGatePuzzleCollision: @ 80C80A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl GetCurrentMapRotatingGatePuzzleType + cmp r0, 0 + bne _080C80D4 + b _080C8172 +_080C80C2: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7FB8 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7A44 + b _080C8172 +_080C80D4: + movs r6, 0 + ldr r0, _080C8160 @ =gUnknown_02038804 + ldrb r0, [r0] + cmp r6, r0 + bge _080C8172 + lsls r0, r4, 16 + asrs r7, r0, 16 +_080C80E2: + ldr r0, _080C8164 @ =gUnknown_02038800 + ldr r1, [r0] + lsls r0, r6, 3 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x7 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + asrs r4, r1, 16 + subs r0, r4, 0x2 + cmp r0, r7 + bgt _080C8168 + adds r0, r4, 0x1 + cmp r7, r0 + bgt _080C8168 + lsls r0, r2, 16 + asrs r3, r0, 16 + subs r1, r3, 0x2 + mov r2, r8 + lsls r0, r2, 16 + asrs r2, r0, 16 + cmp r1, r2 + bgt _080C8168 + adds r0, r3, 0x1 + cmp r2, r0 + bgt _080C8168 + subs r1, r7, r4 + adds r1, 0x2 + subs r2, r3 + adds r2, 0x2 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + mov r0, r9 + bl sub_80C7FEC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080C8168 + lsrs r5, r0, 4 + movs r1, 0xF + ands r1, r0 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80C7F64 + cmp r0, 0 + beq _080C8168 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80C7E8C + cmp r0, 0 + bne _080C80C2 + movs r0, 0x1 + b _080C8174 + .align 2, 0 +_080C8160: .4byte gUnknown_02038804 +_080C8164: .4byte gUnknown_02038800 +_080C8168: + adds r6, 0x1 + ldr r0, _080C8180 @ =gUnknown_02038804 + ldrb r0, [r0] + cmp r6, r0 + blt _080C80E2 +_080C8172: + movs r0, 0 +_080C8174: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080C8180: .4byte gUnknown_02038804 + thumb_func_end CheckForRotatingGatePuzzleCollision + + thumb_func_start GetSafariZoneFlag +GetSafariZoneFlag: @ 80C8184 + push {lr} + ldr r0, _080C8194 @ =0x0000082c + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080C8194: .4byte 0x0000082c + thumb_func_end GetSafariZoneFlag + + thumb_func_start SetSafariZoneFlag +SetSafariZoneFlag: @ 80C8198 + push {lr} + ldr r0, _080C81A4 @ =0x0000082c + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080C81A4: .4byte 0x0000082c + thumb_func_end SetSafariZoneFlag + + thumb_func_start ResetSafariZoneFlag +ResetSafariZoneFlag: @ 80C81A8 + push {lr} + ldr r0, _080C81B4 @ =0x0000082c + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_080C81B4: .4byte 0x0000082c + thumb_func_end ResetSafariZoneFlag + + thumb_func_start sub_80C81B8 +sub_80C81B8: @ 80C81B8 + push {lr} + movs r0, 0x11 + bl sav12_xor_increment + bl SetSafariZoneFlag + bl sub_80C82D8 + ldr r1, _080C81DC @ =gUnknown_02038808 + movs r0, 0x1E + strb r0, [r1] + ldr r1, _080C81E0 @ =gUnknown_0203880A + movs r2, 0xFA + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C81DC: .4byte gUnknown_02038808 +_080C81E0: .4byte gUnknown_0203880A + thumb_func_end sub_80C81B8 + + thumb_func_start sub_80C81E4 +sub_80C81E4: @ 80C81E4 + push {lr} + bl ResetSafariZoneFlag + bl sub_80C82D8 + ldr r1, _080C8200 @ =gUnknown_02038808 + movs r0, 0 + strb r0, [r1] + ldr r1, _080C8204 @ =gUnknown_0203880A + movs r0, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C8200: .4byte gUnknown_02038808 +_080C8204: .4byte gUnknown_0203880A + thumb_func_end sub_80C81E4 + + thumb_func_start safari_step +safari_step: @ 80C8208 + push {lr} + bl GetSafariZoneFlag + cmp r0, 0 + beq _080C8224 + bl sub_80C8508 + ldr r1, _080C8228 @ =gUnknown_0203880A + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _080C822C +_080C8224: + movs r0, 0 + b _080C8234 + .align 2, 0 +_080C8228: .4byte gUnknown_0203880A +_080C822C: + ldr r0, _080C8238 @ =gUnknown_081C3448 + bl ScriptContext1_SetupScript + movs r0, 0x1 +_080C8234: + pop {r1} + bx r1 + .align 2, 0 +_080C8238: .4byte gUnknown_081C3448 + thumb_func_end safari_step + + thumb_func_start sub_80C823C +sub_80C823C: @ 80C823C + push {lr} + ldr r0, _080C8248 @ =gUnknown_081C342D + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C8248: .4byte gUnknown_081C342D + thumb_func_end sub_80C823C + + thumb_func_start sub_80C824C +sub_80C824C: @ 80C824C + push {lr} + ldr r0, _080C8260 @ =gUnknown_02038808 + ldrb r0, [r0] + cmp r0, 0 + beq _080C8268 + ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + b _080C82B0 + .align 2, 0 +_080C8260: .4byte gUnknown_02038808 +_080C8264: .4byte c2_exit_to_overworld_2_switch +_080C8268: + ldr r0, _080C8288 @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080C829C + ldr r0, _080C828C @ =gUnknown_081C340A + bl ScriptContext2_RunNewScript + bl warp_in + ldr r1, _080C8290 @ =gUnknown_0300485C + ldr r0, _080C8294 @ =sub_8080E44 + str r0, [r1] + ldr r0, _080C8298 @ =CB2_LoadMap + bl SetMainCallback2 + b _080C82B0 + .align 2, 0 +_080C8288: .4byte gUnknown_02024D26 +_080C828C: .4byte gUnknown_081C340A +_080C8290: .4byte gUnknown_0300485C +_080C8294: .4byte sub_8080E44 +_080C8298: .4byte CB2_LoadMap +_080C829C: + cmp r0, 0x7 + bne _080C82B0 + ldr r0, _080C82B4 @ =gUnknown_081C3459 + bl ScriptContext1_SetupScript + bl ScriptContext1_Stop + ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 +_080C82B0: + pop {r0} + bx r0 + .align 2, 0 +_080C82B4: .4byte gUnknown_081C3459 +_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C824C + + thumb_func_start sub_80C82BC +sub_80C82BC: @ 80C82BC + push {lr} + lsls r0, 24 + lsrs r0, 20 + ldr r1, _080C82D4 @ =gUnknown_0203880C + adds r0, r1 + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080C82D4: .4byte gUnknown_0203880C + thumb_func_end sub_80C82BC + + thumb_func_start sub_80C82D8 +sub_80C82D8: @ 80C82D8 + push {lr} + ldr r0, _080C82E8 @ =gUnknown_0203880C + movs r1, 0 + movs r2, 0xA0 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_080C82E8: .4byte gUnknown_0203880C + thumb_func_end sub_80C82D8 + + thumb_func_start sub_80C82EC +sub_80C82EC: @ 80C82EC + push {r4-r6,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r3, 0 + adds r5, r4, 0 + ldr r4, _080C8344 @ =gSaveBlock1 +_080C8302: + ldr r1, _080C8348 @ =gUnknown_0203880C + lsls r0, r3, 4 + adds r2, r0, r1 + movs r1, 0x5 + ldrsb r1, [r4, r1] + movs r0, 0x4 + ldrsb r0, [r2, r0] + cmp r1, r0 + bne _080C8358 + mov r0, sp + movs r6, 0 + ldrsh r1, [r2, r6] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + bne _080C8358 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r6, 0 + ldrsh r0, [r5, r6] + cmp r1, r0 + bne _080C8358 + ldr r0, _080C834C @ =gScriptResult + strh r3, [r0] + ldr r1, _080C8350 @ =gUnknown_083F7EB8 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, _080C8354 @ =gStringVar1 + bl StringCopy + b _080C836A + .align 2, 0 +_080C8344: .4byte gSaveBlock1 +_080C8348: .4byte gUnknown_0203880C +_080C834C: .4byte gScriptResult +_080C8350: .4byte gUnknown_083F7EB8 +_080C8354: .4byte gStringVar1 +_080C8358: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bls _080C8302 + ldr r1, _080C8374 @ =gScriptResult + ldr r2, _080C8378 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] +_080C836A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C8374: .4byte gScriptResult +_080C8378: .4byte 0x0000ffff + thumb_func_end sub_80C82EC + + thumb_func_start sub_80C837C +sub_80C837C: @ 80C837C + push {r4-r7,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + movs r5, 0 + adds r6, r4, 0 + ldr r0, _080C83E8 @ =gSaveBlock1 + movs r7, 0x5 + ldrsb r7, [r0, r7] + mov r4, sp + ldr r0, _080C83EC @ =gUnknown_0203880C + mov r12, r0 +_080C839C: + lsls r0, r5, 4 + mov r1, r12 + adds r2, r0, r1 + movs r0, 0x4 + ldrsb r0, [r2, r0] + cmp r7, r0 + bne _080C83F4 + ldrh r0, [r4] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4] + adds r3, r6, 0 + ldrh r0, [r3] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r3] + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080C83C8 + negs r0, r0 + strh r0, [r4] +_080C83C8: + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080C83D4 + negs r0, r0 + strh r0, [r3] +_080C83D4: + movs r2, 0 + ldrsh r0, [r4, r2] + movs r2, 0 + ldrsh r1, [r6, r2] + adds r0, r1 + cmp r0, 0x5 + bgt _080C83F4 + ldr r0, _080C83F0 @ =gScriptResult + strh r5, [r0] + b _080C8406 + .align 2, 0 +_080C83E8: .4byte gSaveBlock1 +_080C83EC: .4byte gUnknown_0203880C +_080C83F0: .4byte gScriptResult +_080C83F4: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080C839C + ldr r1, _080C8410 @ =gScriptResult + ldr r2, _080C8414 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] +_080C8406: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8410: .4byte gScriptResult +_080C8414: .4byte 0x0000ffff + thumb_func_end sub_80C837C + + thumb_func_start unref_sub_80C8418 +unref_sub_80C8418: @ 80C8418 + push {lr} + bl sub_80C82EC + ldr r2, _080C8434 @ =gScriptResult + ldrh r1, [r2] + ldr r0, _080C8438 @ =0x0000ffff + cmp r1, r0 + beq _080C8440 + adds r0, r1, 0 + lsls r0, 4 + ldr r1, _080C843C @ =gUnknown_02038814 + adds r0, r1 + b _080C8442 + .align 2, 0 +_080C8434: .4byte gScriptResult +_080C8438: .4byte 0x0000ffff +_080C843C: .4byte gUnknown_02038814 +_080C8440: + movs r0, 0 +_080C8442: + pop {r1} + bx r1 + thumb_func_end unref_sub_80C8418 + + thumb_func_start sub_80C8448 +sub_80C8448: @ 80C8448 + push {lr} + bl sub_80C837C + ldr r2, _080C8464 @ =gScriptResult + ldrh r1, [r2] + ldr r0, _080C8468 @ =0x0000ffff + cmp r1, r0 + beq _080C8470 + adds r0, r1, 0 + lsls r0, 4 + ldr r1, _080C846C @ =gUnknown_02038814 + adds r0, r1 + b _080C8472 + .align 2, 0 +_080C8464: .4byte gScriptResult +_080C8468: .4byte 0x0000ffff +_080C846C: .4byte gUnknown_02038814 +_080C8470: + movs r0, 0 +_080C8472: + pop {r1} + bx r1 + thumb_func_end sub_80C8448 + + thumb_func_start sub_80C8478 +sub_80C8478: @ 80C8478 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + movs r2, 0 + ldr r3, _080C84E8 @ =gUnknown_0203880C + mov r6, sp + adds r6, 0x2 + ldr r7, _080C84EC @ =gSaveBlock1 + movs r1, 0x8 + adds r1, r3 + mov r9, r1 + movs r4, 0xFF + lsls r4, 3 + adds r1, r7, r4 + lsrs r0, 21 + adds r0, r1 + mov r8, r0 +_080C84A0: + lsls r5, r2, 4 + adds r4, r5, r3 + movs r0, 0x4 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _080C84F0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C84F0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C84F0 + mov r0, sp + adds r1, r6, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldrb r0, [r7, 0x5] + strb r0, [r4, 0x4] + mov r3, r9 + adds r2, r5, r3 + mov r3, r8 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x64 + strb r0, [r4, 0x5] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r6] + strh r0, [r4, 0x2] + b _080C84FA + .align 2, 0 +_080C84E8: .4byte gUnknown_0203880C +_080C84EC: .4byte gSaveBlock1 +_080C84F0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x9 + bls _080C84A0 +_080C84FA: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8478 + + thumb_func_start sub_80C8508 +sub_80C8508: @ 80C8508 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080C8538 @ =gUnknown_0203880C +_080C850E: + lsls r0, r4, 4 + adds r1, r0, r5 + ldrb r0, [r1, 0x5] + cmp r0, 0 + beq _080C8528 + subs r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + cmp r0, 0 + bne _080C8528 + adds r0, r4, 0 + bl sub_80C82BC +_080C8528: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _080C850E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C8538: .4byte gUnknown_0203880C + thumb_func_end sub_80C8508 + + thumb_func_start unref_sub_80C853C +unref_sub_80C853C: @ 80C853C + push {lr} + bl sub_80C82EC + ldr r3, _080C8564 @ =gScriptResult + ldrh r1, [r3] + ldr r0, _080C8568 @ =0x0000ffff + cmp r1, r0 + beq _080C8574 + ldr r0, _080C856C @ =gStringVar2 + ldr r2, _080C8570 @ =gUnknown_0203880C + lsls r1, 4 + adds r1, r2 + ldrb r1, [r1, 0x5] + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + b _080C8576 + .align 2, 0 +_080C8564: .4byte gScriptResult +_080C8568: .4byte 0x0000ffff +_080C856C: .4byte gStringVar2 +_080C8570: .4byte gUnknown_0203880C +_080C8574: + movs r0, 0 +_080C8576: + pop {r1} + bx r1 + thumb_func_end unref_sub_80C853C + + thumb_func_start sub_80C857C +sub_80C857C: @ 80C857C + push {r4,r5,lr} + adds r2, r0, 0 + lsls r4, r1, 16 + lsrs r4, 16 + ldr r5, _080C85A8 @ =0x0201e000 + adds r0, r5, 0 + adds r1, r2, 0 + adds r2, r4, 0 + bl memcpy + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl SendBlock + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C85A8: .4byte 0x0201e000 + thumb_func_end sub_80C857C + + thumb_func_start sub_80C85AC +sub_80C85AC: @ 80C85AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 17 + lsls r1, r0 + lsrs r4, r1, 24 + bl GetBlockRecievedStatus + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _080C85D0 + adds r0, r4, 0 + bl ResetBlockReceivedFlag + movs r0, 0x1 + b _080C85D2 +_080C85D0: + movs r0, 0 +_080C85D2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85AC + + thumb_func_start sub_80C85D8 +sub_80C85D8: @ 80C85D8 + push {r4,lr} + movs r4, 0 +_080C85DC: + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + asrs r0, r4 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C85F2 + movs r0, 0 + b _080C85FE +_080C85F2: + adds r4, 0x1 + cmp r4, 0x3 + ble _080C85DC + bl ResetBlockReceivedFlags + movs r0, 0x1 +_080C85FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C85D8 + + thumb_func_start sub_80C8604 +sub_80C8604: @ 80C8604 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r5, _080C8638 @ =gTasks + ldr r6, _080C863C @ =sub_80C8644 + ldr r4, _080C8640 @ =gBlockRecvBuffer + movs r3, 0xFF +_080C8614: + lsls r0, r1, 8 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C8614 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r5 + movs r1, 0 + strh r1, [r0, 0x8] + str r6, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C8638: .4byte gTasks +_080C863C: .4byte sub_80C8644 +_080C8640: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8604 + + thumb_func_start sub_80C8644 +sub_80C8644: @ 80C8644 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C8658 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C865C @ =sub_80C8660 + str r0, [r1] + bx lr + .align 2, 0 +_080C8658: .4byte gTasks +_080C865C: .4byte sub_80C8660 + thumb_func_end sub_80C8644 + + thumb_func_start sub_80C8660 +sub_80C8660: @ 80C8660 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080C868E + bl GetMultiplayerId + ldr r1, _080C8698 @ =gUnknown_02038695 + strb r0, [r1] + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080C868E + ldr r1, _080C869C @ =gUnknown_0203869A + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C868E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8694: .4byte gReceivedRemoteLinkPlayers +_080C8698: .4byte gUnknown_02038695 +_080C869C: .4byte gUnknown_0203869A + thumb_func_end sub_80C8660 + + thumb_func_start sub_80C86A0 +sub_80C86A0: @ 80C86A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x2 + ldrb r0, [r4] + cmp r0, 0xFC + bne _080C86B6 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _080C86B6 + movs r0, 0x2 + b _080C872C +_080C86B6: + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _080C872A + ldrb r0, [r4] + cmp r0, 0xFF + beq _080C872A +_080C86CA: + ldrb r1, [r4] + adds r0, r1, 0 + adds r0, 0x45 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x33 + bls _080C871E + adds r0, r1, 0 + adds r0, 0x5F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080C871E + adds r0, r1, 0 + cmp r0, 0 + beq _080C871E + cmp r0, 0xAD + beq _080C871E + cmp r0, 0xB8 + beq _080C871E + cmp r0, 0xAB + beq _080C871E + cmp r0, 0xAC + beq _080C871E + cmp r0, 0xB5 + beq _080C871E + cmp r0, 0xB6 + beq _080C871E + cmp r0, 0xBA + beq _080C871E + cmp r0, 0xAE + beq _080C871E + cmp r0, 0xB0 + beq _080C871E + cmp r0, 0xB1 + beq _080C871E + cmp r0, 0xB2 + beq _080C871E + cmp r0, 0xB3 + beq _080C871E + cmp r0, 0xB1 + bne _080C8728 +_080C871E: + adds r4, 0x1 + ldrb r0, [r4] + cmp r0, 0xFF + bne _080C86CA + b _080C872A +_080C8728: + movs r5, 0x1 +_080C872A: + adds r0, r5, 0 +_080C872C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C86A0 + + thumb_func_start sub_80C8734 +sub_80C8734: @ 80C8734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080C8768 @ =gTasks + lsls r5, r0, 2 + adds r0, r5, r0 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C876C + cmp r0, 0x1 + beq _080C87D0 + movs r0, 0 + strh r0, [r4, 0x8] + mov r0, r9 + bl SwitchTaskToFollowupFunc + b _080C8896 + .align 2, 0 +_080C8768: .4byte gTasks +_080C876C: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C87A8 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8782 + b _080C8896 +_080C8782: + ldr r0, _080C879C @ =gBlockSendBuffer + ldr r1, _080C87A0 @ =gUnknown_02038695 + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87A4 @ =gUnknown_02038570 + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0x2 + bl sub_8007E9C + b _080C87BA + .align 2, 0 +_080C879C: .4byte gBlockSendBuffer +_080C87A0: .4byte gUnknown_02038695 +_080C87A4: .4byte gUnknown_02038570 +_080C87A8: + ldr r0, _080C87C4 @ =gBlockSendBuffer + ldr r1, _080C87C8 @ =gUnknown_02038695 + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87CC @ =gUnknown_02038570 + adds r1, r2 + movs r2, 0x40 + bl memcpy +_080C87BA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8896 + .align 2, 0 +_080C87C4: .4byte gBlockSendBuffer +_080C87C8: .4byte gUnknown_02038695 +_080C87CC: .4byte gUnknown_02038570 +_080C87D0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8896 + movs r7, 0 + str r5, [sp] + ldr r0, _080C8818 @ =gUnknown_02038570 + ldr r6, _080C881C @ =gLinkPlayers + movs r5, 0 + mov r10, r0 + movs r2, 0xFF + mov r8, r2 +_080C87EA: + lsls r1, r7, 8 + ldr r0, _080C8820 @ =gBlockRecvBuffer + adds r1, r0 + mov r0, r10 + movs r2, 0x40 + bl memcpy + ldr r0, _080C8824 @ =gUnknown_02038572 + adds r4, r5, r0 + ldrh r0, [r6, 0x1A] + cmp r0, 0x1 + bne _080C8828 + adds r0, r4, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + b _080C883E + .align 2, 0 +_080C8818: .4byte gUnknown_02038570 +_080C881C: .4byte gLinkPlayers +_080C8820: .4byte gBlockRecvBuffer +_080C8824: .4byte gUnknown_02038572 +_080C8828: + ldrb r0, [r4, 0xA] + cmp r0, 0xFC + bne _080C8838 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _080C883E +_080C8838: + strb r0, [r4, 0x5] + mov r1, r8 + strb r1, [r4, 0xA] +_080C883E: + ldr r0, _080C886C @ =gUnknown_0203857D + adds r4, r5, r0 + ldrh r0, [r6, 0x1A] + cmp r0, 0x1 + bne _080C8870 + mov r2, r8 + strb r2, [r4, 0x7] + ldrb r0, [r4, 0x4] + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x3] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x2] + strb r0, [r4, 0x4] + ldrb r0, [r4, 0x1] + strb r0, [r4, 0x3] + ldrb r0, [r4] + strb r0, [r4, 0x2] + movs r0, 0x15 + strb r0, [r4, 0x1] + movs r0, 0xFC + strb r0, [r4] + b _080C8878 + .align 2, 0 +_080C886C: .4byte gUnknown_0203857D +_080C8870: + ldrb r0, [r4, 0x7] + strb r0, [r4, 0x5] + mov r0, r8 + strb r0, [r4, 0x7] +_080C8878: + adds r6, 0x1C + adds r5, 0x40 + movs r1, 0x40 + add r10, r1 + adds r7, 0x1 + cmp r7, 0x3 + ble _080C87EA + ldr r0, _080C88A8 @ =gTasks + ldr r1, [sp] + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8896: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C88A8: .4byte gTasks + thumb_func_end sub_80C8734 + + thumb_func_start sub_80C88AC +sub_80C88AC: @ 80C88AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C88D4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080C88D8 + cmp r0, 0x1 + beq _080C88FC + movs r0, 0 + strh r0, [r5, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8924 + .align 2, 0 +_080C88D4: .4byte gTasks +_080C88D8: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C891E + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C88F8 @ =gRngValue + movs r1, 0x4 + bl sub_80C857C + b _080C891E + .align 2, 0 +_080C88F8: .4byte gRngValue +_080C88FC: + movs r0, 0 + bl sub_80C85AC + lsls r0, 24 + cmp r0, 0 + beq _080C8924 + ldr r0, _080C892C @ =gRngValue + ldr r4, _080C8930 @ =gBlockRecvBuffer + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + ldr r0, _080C8934 @ =gUnknown_03005D28 + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy +_080C891E: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080C8924: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C892C: .4byte gRngValue +_080C8930: .4byte gBlockRecvBuffer +_080C8934: .4byte gUnknown_03005D28 + thumb_func_end sub_80C88AC + + thumb_func_start sub_80C8938 +sub_80C8938: @ 80C8938 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C8968 @ =gTasks + mov r8, r0 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + mov r1, r8 + adds r4, r7, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C896C + cmp r0, 0x1 + beq _080C8998 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C89CE + .align 2, 0 +_080C8968: .4byte gTasks +_080C896C: + ldr r1, _080C8994 @ =gBlockSendBuffer + ldrh r0, [r4, 0x1A] + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C898C + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C89CE + movs r0, 0x2 + bl sub_8007E9C +_080C898C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C89CE + .align 2, 0 +_080C8994: .4byte gBlockSendBuffer +_080C8998: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C89CE + movs r3, 0 + mov r12, r8 + adds r1, r6, 0 + ldr r4, _080C89D8 @ =gBlockRecvBuffer + mov r0, r12 + adds r0, 0xA + adds r2, r7, r0 + movs r6, 0x80 + lsls r6, 1 +_080C89B4: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r6 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _080C89B4 + adds r1, r5 + lsls r1, 3 + add r1, r12 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C89CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C89D8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8938 + + thumb_func_start sub_80C89DC +sub_80C89DC: @ 80C89DC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8A04 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A08 + cmp r0, 0x1 + beq _080C8A20 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8A30 + .align 2, 0 +_080C8A04: .4byte gTasks +_080C8A08: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 + ldr r0, _080C8A1C @ =gUnknown_02038695 + movs r1, 0x1 + bl sub_80C857C + b _080C8A2A + .align 2, 0 +_080C8A1C: .4byte gUnknown_02038695 +_080C8A20: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8A30 +_080C8A2A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8A30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C89DC + + thumb_func_start sub_80C8A38 +sub_80C8A38: @ 80C8A38 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r7, _080C8A60 @ =gTasks + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r7 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8A64 + cmp r0, 0x1 + beq _080C8A94 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8AC2 + .align 2, 0 +_080C8A60: .4byte gTasks +_080C8A64: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r0, _080C8A8C @ =gUnknown_02038695 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080C8A90 @ =0x02019266 + adds r0, r1 + movs r1, 0x2 + bl sub_80C857C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8AC2 + .align 2, 0 +_080C8A8C: .4byte gUnknown_02038695 +_080C8A90: .4byte 0x02019266 +_080C8A94: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8AC2 + ldr r1, _080C8AC8 @ =gBlockRecvBuffer + ldr r3, _080C8ACC @ =0x02019266 + movs r4, 0x80 + lsls r4, 1 + movs r2, 0x3 +_080C8AA8: + ldrh r0, [r1] + strh r0, [r3] + adds r1, r4 + adds r3, 0x1C + subs r2, 0x1 + cmp r2, 0 + bge _080C8AA8 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r7 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8AC2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8AC8: .4byte gBlockRecvBuffer +_080C8ACC: .4byte 0x02019266 + thumb_func_end sub_80C8A38 + + thumb_func_start sub_80C8AD0 +sub_80C8AD0: @ 80C8AD0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8AF8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8AEC + b _080C8C70 +_080C8AEC: + lsls r0, 2 + ldr r1, _080C8AFC @ =_080C8B00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8AF8: .4byte gTasks +_080C8AFC: .4byte _080C8B00 + .align 2, 0 +_080C8B00: + .4byte _080C8B30 + .4byte _080C8B4C + .4byte _080C8B74 + .4byte _080C8B98 + .4byte _080C8BB0 + .4byte _080C8B74 + .4byte _080C8BD8 + .4byte _080C8BF0 + .4byte _080C8B74 + .4byte _080C8C18 + .4byte _080C8C30 + .4byte _080C8B74 +_080C8B30: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8B3C + b _080C8C7A +_080C8B3C: + ldr r0, _080C8B48 @ =gUnknown_02038678 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8B48: .4byte gUnknown_02038678 +_080C8B4C: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8B58 + b _080C8C7A +_080C8B58: + ldr r0, _080C8B68 @ =gUnknown_02038678 + ldr r1, _080C8B6C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8B70 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8B68: .4byte gUnknown_02038678 +_080C8B6C: .4byte gUnknown_0203869B +_080C8B70: .4byte gBlockRecvBuffer +_080C8B74: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bgt _080C8B8C + b _080C8C7A +_080C8B8C: + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8C7A +_080C8B98: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BAC @ =gUnknown_02038680 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BAC: .4byte gUnknown_02038680 +_080C8BB0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BCC @ =gUnknown_02038680 + ldr r1, _080C8BD0 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8BD4 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8BCC: .4byte gUnknown_02038680 +_080C8BD0: .4byte gUnknown_0203869B +_080C8BD4: .4byte gBlockRecvBuffer +_080C8BD8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8BEC @ =gUnknown_02038688 + movs r1, 0x8 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8BEC: .4byte gUnknown_02038688 +_080C8BF0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C0C @ =gUnknown_02038688 + ldr r1, _080C8C10 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C14 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + b _080C8C48 + .align 2, 0 +_080C8C0C: .4byte gUnknown_02038688 +_080C8C10: .4byte gUnknown_0203869B +_080C8C14: .4byte gBlockRecvBuffer +_080C8C18: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C2C @ =gUnknown_02038690 + movs r1, 0x4 + bl sub_80C857C + b _080C8C4C + .align 2, 0 +_080C8C2C: .4byte gUnknown_02038690 +_080C8C30: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8C7A + ldr r0, _080C8C60 @ =gUnknown_02038690 + ldr r1, _080C8C64 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8C68 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 +_080C8C48: + bl memcpy +_080C8C4C: + ldr r1, _080C8C6C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8C7A + .align 2, 0 +_080C8C60: .4byte gUnknown_02038690 +_080C8C64: .4byte gUnknown_0203869B +_080C8C68: .4byte gBlockRecvBuffer +_080C8C6C: .4byte gTasks +_080C8C70: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8C7A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8AD0 + + thumb_func_start sub_80C8C80 +sub_80C8C80: @ 80C8C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8CA8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r3, r1, 0 + cmp r0, 0xB + bls _080C8C9C + b _080C8E0C +_080C8C9C: + lsls r0, 2 + ldr r1, _080C8CAC @ =_080C8CB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C8CA8: .4byte gTasks +_080C8CAC: .4byte _080C8CB0 + .align 2, 0 +_080C8CB0: + .4byte _080C8CE0 + .4byte _080C8CFC + .4byte _080C8D24 + .4byte _080C8D46 + .4byte _080C8D60 + .4byte _080C8D24 + .4byte _080C8D88 + .4byte _080C8DA0 + .4byte _080C8D24 + .4byte _080C8DB4 + .4byte _080C8DCC + .4byte _080C8D24 +_080C8CE0: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8CEC + b _080C8E16 +_080C8CEC: + ldr r0, _080C8CF8 @ =0x02019260 + movs r1, 0x70 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8CF8: .4byte 0x02019260 +_080C8CFC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + bne _080C8D08 + b _080C8E16 +_080C8D08: + ldr r0, _080C8D18 @ =0x02019260 + ldr r1, _080C8D1C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D20 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x70 + b _080C8DE4 + .align 2, 0 +_080C8D18: .4byte 0x02019260 +_080C8D1C: .4byte gUnknown_0203869B +_080C8D20: .4byte gBlockRecvBuffer +_080C8D24: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r3 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080C8E16 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080C8E16 +_080C8D46: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D5C @ =0x020192d0 + movs r1, 0x14 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D5C: .4byte 0x020192d0 +_080C8D60: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D7C @ =0x020192d0 + ldr r1, _080C8D80 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8D84 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x14 + b _080C8DE4 + .align 2, 0 +_080C8D7C: .4byte 0x020192d0 +_080C8D80: .4byte gUnknown_0203869B +_080C8D84: .4byte gBlockRecvBuffer +_080C8D88: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8D9C @ =0x02019328 + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8D9C: .4byte 0x02019328 +_080C8DA0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DB0 @ =0x02019328 + b _080C8DD8 + .align 2, 0 +_080C8DB0: .4byte 0x02019328 +_080C8DB4: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DC8 @ =gUnknown_02038696 + movs r1, 0x4 + bl sub_80C857C + b _080C8DE8 + .align 2, 0 +_080C8DC8: .4byte gUnknown_02038696 +_080C8DCC: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8E16 + ldr r0, _080C8DFC @ =gUnknown_02038696 +_080C8DD8: + ldr r1, _080C8E00 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8E04 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 +_080C8DE4: + bl memcpy +_080C8DE8: + ldr r1, _080C8E08 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080C8E16 + .align 2, 0 +_080C8DFC: .4byte gUnknown_02038696 +_080C8E00: .4byte gUnknown_0203869B +_080C8E04: .4byte gBlockRecvBuffer +_080C8E08: .4byte gTasks +_080C8E0C: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc +_080C8E16: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C8C80 + + thumb_func_start sub_80C8E1C +sub_80C8E1C: @ 80C8E1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C8E4C @ =gTasks + mov r8, r0 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + mov r1, r8 + adds r4, r7, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8E50 + cmp r0, 0x1 + beq _080C8E7C + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8EAE + .align 2, 0 +_080C8E4C: .4byte gTasks +_080C8E50: + ldr r1, _080C8E78 @ =gBlockSendBuffer + movs r0, 0x64 + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C8E70 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8EAE + movs r0, 0x2 + bl sub_8007E9C +_080C8E70: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8EAE + .align 2, 0 +_080C8E78: .4byte gBlockSendBuffer +_080C8E7C: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8EAE + ldr r1, _080C8EB8 @ =gBlockRecvBuffer + mov r0, r8 + adds r0, 0x12 + adds r2, r7, r0 + movs r4, 0x80 + lsls r4, 1 + movs r3, 0x3 +_080C8E94: + ldrh r0, [r1] + strh r0, [r2] + adds r1, r4 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C8E94 + adds r1, r6, r5 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C8EAE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C8EB8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8E1C + + thumb_func_start sub_80C8EBC +sub_80C8EBC: @ 80C8EBC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8EE4 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8EE8 + cmp r0, 0x1 + beq _080C8F00 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F22 + .align 2, 0 +_080C8EE4: .4byte gTasks +_080C8EE8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8EFC @ =gUnknown_02038670 + movs r1, 0x8 + bl sub_80C857C + b _080C8F1C + .align 2, 0 +_080C8EFC: .4byte gUnknown_02038670 +_080C8F00: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F22 + ldr r0, _080C8F28 @ =gUnknown_02038670 + ldr r1, _080C8F2C @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8F30 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x8 + bl memcpy +_080C8F1C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8F28: .4byte gUnknown_02038670 +_080C8F2C: .4byte gUnknown_0203869B +_080C8F30: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8EBC + + thumb_func_start sub_80C8F34 +sub_80C8F34: @ 80C8F34 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C8F5C @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080C8F60 + cmp r0, 0x1 + beq _080C8F78 + movs r0, 0 + strh r0, [r4, 0x8] + adds r0, r2, 0 + bl SwitchTaskToFollowupFunc + b _080C8F9A + .align 2, 0 +_080C8F5C: .4byte gTasks +_080C8F60: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8F74 @ =gUnknown_02038696 + movs r1, 0x4 + bl sub_80C857C + b _080C8F94 + .align 2, 0 +_080C8F74: .4byte gUnknown_02038696 +_080C8F78: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F9A + ldr r0, _080C8FA0 @ =gUnknown_02038696 + ldr r1, _080C8FA4 @ =gUnknown_0203869B + ldrb r1, [r1] + lsls r1, 8 + ldr r2, _080C8FA8 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0x4 + bl memcpy +_080C8F94: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C8F9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C8FA0: .4byte gUnknown_02038696 +_080C8FA4: .4byte gUnknown_0203869B +_080C8FA8: .4byte gBlockRecvBuffer + thumb_func_end sub_80C8F34 + + thumb_func_start sub_80C8FAC +sub_80C8FAC: @ 80C8FAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8FD0 @ =word_203855E + ldrh r0, [r1] + cmp r0, 0xAF + bne _080C8FD8 + ldr r1, _080C8FD4 @ =gTasks + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x26] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + b _080C8FE6 + .align 2, 0 +_080C8FD0: .4byte word_203855E +_080C8FD4: .4byte gTasks +_080C8FD8: + ldrh r0, [r1] + bl itemid_get_type + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r2, r4, 2 +_080C8FE6: + ldr r0, _080C9008 @ =gTasks + adds r1, r2, r4 + lsls r1, 3 + adds r1, r0 + ldr r2, _080C900C @ =gUnknown_083D61E4 + lsls r0, r3, 2 + adds r0, r2 + ldr r2, [r0] + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + ldr r0, _080C9010 @ =sub_80A5B00 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9008: .4byte gTasks +_080C900C: .4byte gUnknown_083D61E4 +_080C9010: .4byte sub_80A5B00 + thumb_func_end sub_80C8FAC + + thumb_func_start unknown_ItemMenu_Confirm +unknown_ItemMenu_Confirm: @ 80C9014 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80C8FAC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end unknown_ItemMenu_Confirm + + thumb_func_start sub_80C9038 +sub_80C9038: @ 80C9038 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80C8FAC + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + thumb_func_end sub_80C9038 + + thumb_func_start SetUpItemUseOnFieldCallback +SetUpItemUseOnFieldCallback: @ 80C9050 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080C9078 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080C9084 + ldr r1, _080C907C @ =gUnknown_0300485C + ldr r0, _080C9080 @ =sub_80A5CC4 + str r0, [r1] + adds r0, r2, 0 + bl unknown_ItemMenu_Confirm + b _080C908E + .align 2, 0 +_080C9078: .4byte gTasks +_080C907C: .4byte gUnknown_0300485C +_080C9080: .4byte sub_80A5CC4 +_080C9084: + ldr r0, _080C9094 @ =gUnknown_03005D00 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 +_080C908E: + pop {r0} + bx r0 + .align 2, 0 +_080C9094: .4byte gUnknown_03005D00 + thumb_func_end SetUpItemUseOnFieldCallback + + thumb_func_start sub_80C9098 +sub_80C9098: @ 80C9098 + push {r4-r6,lr} + adds r4, r1, 0 + adds r1, r2, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080C90CC @ =gStringVar4 + adds r0, r5, 0 + bl StringExpandPlaceholders + cmp r4, 0 + bne _080C90D4 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r2, _080C90D0 @ =sub_80A5C48 + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C90E0 + .align 2, 0 +_080C90CC: .4byte gStringVar4 +_080C90D0: .4byte sub_80A5C48 +_080C90D4: + ldr r2, _080C90E8 @ =sub_80A5C9C + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C90E0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C90E8: .4byte sub_80A5C9C + thumb_func_end sub_80C9098 + + thumb_func_start DisplayDadsAdviceCannotUseItemMessage +DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080C9100 @ =gOtherText_DadsAdvice + bl sub_80C9098 + pop {r0} + bx r0 + .align 2, 0 +_080C9100: .4byte gOtherText_DadsAdvice + thumb_func_end DisplayDadsAdviceCannotUseItemMessage + + thumb_func_start sub_80C9104 +sub_80C9104: @ 80C9104 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080C9118 @ =gOtherText_CantGetOffBike + bl sub_80C9098 + pop {r0} + bx r0 + .align 2, 0 +_080C9118: .4byte gOtherText_CantGetOffBike + thumb_func_end sub_80C9104 + + thumb_func_start CheckIfItemIsTMHMOrEvolutionStone +CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl itemid_get_overworld_function + ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM + cmp r0, r1 + bne _080C9138 + movs r0, 0x1 + b _080C914E + .align 2, 0 +_080C9134: .4byte ItemUseOutOfBattle_TMHM +_080C9138: + adds r0, r4, 0 + bl itemid_get_overworld_function + ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone + cmp r0, r1 + beq _080C914C + movs r0, 0 + b _080C914E + .align 2, 0 +_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone +_080C914C: + movs r0, 0x2 +_080C914E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckIfItemIsTMHMOrEvolutionStone + + thumb_func_start sub_80C9154 +sub_80C9154: @ 80C9154 + push {r4,lr} + sub sp, 0x24 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C9188 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080C9180 + mov r1, sp + ldr r0, _080C918C @ =word_203855E + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, _080C9190 @ =sub_80A5D04 + mov r0, sp + movs r2, 0 + bl sub_80F890C + adds r0, r4, 0 + bl DestroyTask +_080C9180: + add sp, 0x24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9188: .4byte gPaletteFade +_080C918C: .4byte word_203855E +_080C9190: .4byte sub_80A5D04 + thumb_func_end sub_80C9154 + + thumb_func_start ItemUseOutOfBattle_Mail +ItemUseOutOfBattle_Mail: @ 80C9194 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080C91C4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C91C8 @ =sub_80C9154 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C91C4: .4byte gTasks +_080C91C8: .4byte sub_80C9154 + thumb_func_end ItemUseOutOfBattle_Mail + + thumb_func_start ItemUseOutOfBattle_Bike +ItemUseOutOfBattle_Bike: @ 80C91CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C924C @ =0x0000082b + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsVerticalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsHorizontalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9238 + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9254 +_080C9238: + ldr r0, _080C9250 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r5, 0 + bl sub_80C9104 + b _080C928E + .align 2, 0 +_080C924C: .4byte 0x0000082b +_080C9250: .4byte gTasks +_080C9254: + bl sub_8053C44 + cmp r0, 0x1 + bne _080C927C + bl sub_80E5EF4 + lsls r0, 24 + cmp r0, 0 + bne _080C927C + ldr r1, _080C9274 @ =gUnknown_03005D00 + ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike + str r0, [r1] + adds r0, r5, 0 + bl SetUpItemUseOnFieldCallback + b _080C928E + .align 2, 0 +_080C9274: .4byte gUnknown_03005D00 +_080C9278: .4byte ItemUseOnFieldCB_Bike +_080C927C: + ldr r0, _080C9298 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r5, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C928E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9298: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_Bike + + thumb_func_start ItemUseOnFieldCB_Bike +ItemUseOnFieldCB_Bike: @ 80C929C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080C92E0 @ =word_203855E + ldrh r0, [r4] + bl itemid_get_x28 + lsls r0, 24 + cmp r0, 0 + bne _080C92B6 + movs r0, 0x2 + bl GetOnOffBike +_080C92B6: + ldrh r0, [r4] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C92CA + movs r0, 0x4 + bl GetOnOffBike +_080C92CA: + bl sub_8064E2C + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C92E0: .4byte word_203855E + thumb_func_end ItemUseOnFieldCB_Bike + + thumb_func_start CanFish +CanFish: @ 80C92E4 + push {r4-r6,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl MetatileBehavior_IsWaterfall + lsls r0, 24 + cmp r0, 0 + bne _080C936C + movs r0, 0x10 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _080C936C + movs r0, 0x8 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _080C933C + bl IsPlayerFacingSurfableFishableWater + lsls r0, 24 + cmp r0, 0 + beq _080C936C +_080C9338: + movs r0, 0x1 + b _080C936E +_080C933C: + adds r0, r5, 0 + bl MetatileBehavior_IsSurfableWaterOrUnderwater + lsls r0, 24 + cmp r0, 0 + beq _080C935C + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridIsImpassableAt + lsls r0, 24 + cmp r0, 0 + beq _080C9338 +_080C935C: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_8057434 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9338 +_080C936C: + movs r0, 0 +_080C936E: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CanFish + + thumb_func_start ItemUseOutOfBattle_Rod +ItemUseOutOfBattle_Rod: @ 80C9378 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl CanFish + cmp r0, 0x1 + bne _080C939C + ldr r1, _080C9394 @ =gUnknown_03005D00 + ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080C93AE + .align 2, 0 +_080C9394: .4byte gUnknown_03005D00 +_080C9398: .4byte ItemUseOnFieldCB_Rod +_080C939C: + ldr r0, _080C93B4 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C93AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C93B4: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_Rod + + thumb_func_start ItemUseOnFieldCB_Rod +ItemUseOnFieldCB_Rod: @ 80C93B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C93DC @ =word_203855E + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 24 + bl StartFishing + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C93DC: .4byte word_203855E + thumb_func_end ItemUseOnFieldCB_Rod + + thumb_func_start ItemUseOutOfBattle_Itemfinder +ItemUseOutOfBattle_Itemfinder: @ 80C93E0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x27 + bl sav12_xor_increment + ldr r1, _080C9400 @ =gUnknown_03005D00 + ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9400: .4byte gUnknown_03005D00 +_080C9404: .4byte ItemUseOnFieldCB_Itemfinder + thumb_func_end ItemUseOutOfBattle_Itemfinder + + thumb_func_start ItemUseOnFieldCB_Itemfinder +ItemUseOnFieldCB_Itemfinder: @ 80C9408 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C9430 @ =gMapHeader + ldr r0, [r0, 0x4] + adds r1, r4, 0 + bl ItemfinderCheckForHiddenItems + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C943C + ldr r0, _080C9434 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080C9438 @ =sub_80C9458 + str r0, [r1] + b _080C9448 + .align 2, 0 +_080C9430: .4byte gMapHeader +_080C9434: .4byte gTasks +_080C9438: .4byte sub_80C9458 +_080C943C: + ldr r1, _080C9450 @ =gOtherText_NoResponse + ldr r2, _080C9454 @ =sub_80C9520 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9448: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9450: .4byte gOtherText_NoResponse +_080C9454: .4byte sub_80C9520 + thumb_func_end ItemUseOnFieldCB_Itemfinder + + thumb_func_start sub_80C9458 +sub_80C9458: @ 80C9458 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r6, r5, 2 + adds r0, r6, r5 + lsls r7, r0, 3 + ldr r0, _080C94AC @ =gTasks + 0x8 + mov r8, r0 + adds r4, r7, r0 + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C950C + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + bne _080C9500 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_80C9908 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080C94B8 + ldr r1, _080C94B0 @ =gUnknown_083D61F0 + subs r0, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80C997C + mov r0, r8 + subs r0, 0x8 + adds r0, r7, r0 + ldr r1, _080C94B4 @ =sub_80C99EC + str r1, [r0] + b _080C9516 + .align 2, 0 +_080C94AC: .4byte gTasks + 0x8 +_080C94B0: .4byte gUnknown_083D61F0 +_080C94B4: .4byte sub_80C99EC +_080C94B8: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + adds r3, r6, 0 + ldr r7, _080C94F4 @ =gUnknown_083D61F0 + movs r6, 0x3 +_080C94C8: + adds r0, r1, r7 + adds r1, 0x1 + ldrb r0, [r0] + cmp r2, r0 + bne _080C94D8 + adds r0, r1, 0 + ands r0, r6 + strh r0, [r4, 0xA] +_080C94D8: + lsls r0, r1, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080C94C8 + ldr r1, _080C94F8 @ =gTasks + adds r0, r3, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C94FC @ =sub_80C9A38 + str r1, [r0] + movs r0, 0 + strh r0, [r4, 0x6] + strh r0, [r4, 0x4] + b _080C9516 + .align 2, 0 +_080C94F4: .4byte gUnknown_083D61F0 +_080C94F8: .4byte gTasks +_080C94FC: .4byte sub_80C9A38 +_080C9500: + movs r0, 0x48 + bl PlaySE + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080C950C: + ldrh r0, [r4, 0x6] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r4, 0x6] +_080C9516: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C9458 + + thumb_func_start sub_80C9520 +sub_80C9520: @ 80C9520 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_8064E2C + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C9520 + + thumb_func_start ItemfinderCheckForHiddenItems +ItemfinderCheckForHiddenItems: @ 80C9548 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + ldr r1, _080C9618 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + movs r3, 0 + mov r9, r4 + ldrb r0, [r5, 0x3] + cmp r3, r0 + bge _080C95FC + subs r1, 0x5 + mov r8, r1 +_080C9580: + lsls r3, 16 + asrs r1, r3, 16 + ldr r2, [r5, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r4, r0, 2 + adds r1, r4, r2 + ldrb r0, [r1, 0x5] + adds r7, r3, 0 + cmp r0, 0x7 + bne _080C95EC + movs r2, 0x96 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1, 0xA] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080C95EC + ldr r1, [r5, 0x10] + adds r1, r4, r1 + ldrh r2, [r1] + adds r2, 0x7 + mov r0, sp + ldrh r0, [r0] + subs r2, r0 + ldrh r0, [r1, 0x2] + adds r0, 0x7 + mov r3, r9 + ldrh r1, [r3] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0xE0 + lsls r3, 11 + adds r2, r3 + lsrs r2, 16 + cmp r2, 0xE + bhi _080C95EC + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, r8 + blt _080C95EC + cmp r2, 0x5 + bgt _080C95EC + adds r0, r6, 0 + bl sub_80C9838 +_080C95EC: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r3, r0, 16 + asrs r0, 16 + ldrb r2, [r5, 0x3] + cmp r0, r2 + blt _080C9580 +_080C95FC: + adds r0, r6, 0 + bl sub_80C9720 + ldr r0, _080C9618 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080C961C + movs r0, 0 + b _080C961E + .align 2, 0 +_080C9618: .4byte gTasks +_080C961C: + movs r0, 0x1 +_080C961E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end ItemfinderCheckForHiddenItems + + thumb_func_start sub_80C962C +sub_80C962C: @ 80C962C + push {r4-r6,lr} + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + ldrb r2, [r0, 0x3] + ldr r5, [r0, 0x10] + movs r1, 0 + cmp r1, r2 + bge _080C9680 + lsls r0, r3, 16 + asrs r6, r0, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + adds r3, r5, 0 +_080C964A: + ldrb r0, [r3, 0x5] + cmp r0, 0x7 + bne _080C9678 + ldrh r0, [r3] + cmp r6, r0 + bne _080C9678 + ldrh r0, [r3, 0x2] + cmp r4, r0 + bne _080C9678 + movs r1, 0x96 + lsls r1, 2 + adds r0, r1, 0 + ldrh r3, [r3, 0xA] + adds r0, r3 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080C9680 + movs r0, 0x1 + b _080C9682 +_080C9678: + adds r3, 0xC + adds r1, 0x1 + cmp r1, r2 + blt _080C964A +_080C9680: + movs r0, 0 +_080C9682: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C962C + + thumb_func_start sub_80C9688 +sub_80C9688: @ 80C9688 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl mapconnection_get_mapheader + adds r3, r0, 0 + ldrb r0, [r4] + cmp r0, 0x2 + beq _080C96B0 + cmp r0, 0x2 + bgt _080C96A6 + cmp r0, 0x1 + beq _080C96C4 + b _080C9704 +_080C96A6: + cmp r0, 0x3 + beq _080C96DC + cmp r0, 0x4 + beq _080C96E6 + b _080C9704 +_080C96B0: + ldr r0, [r4, 0x4] + adds r0, 0x7 + subs r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, [r3] + ldr r0, [r0, 0x4] + subs r0, 0x7 + adds r0, r6 + b _080C96FA +_080C96C4: + ldr r0, [r4, 0x4] + adds r0, 0x7 + subs r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080C96D8 @ =gMapHeader + ldr r0, [r0] + ldr r0, [r0, 0x4] + b _080C96F6 + .align 2, 0 +_080C96D8: .4byte gMapHeader +_080C96DC: + ldr r0, [r3] + ldr r0, [r0] + subs r0, 0x7 + adds r0, r5 + b _080C96F0 +_080C96E6: + ldr r0, _080C9700 @ =gMapHeader + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x7 + subs r0, r5, r0 +_080C96F0: + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, [r4, 0x4] +_080C96F6: + adds r0, 0x7 + subs r0, r6, r0 +_080C96FA: + lsls r0, 16 + lsrs r2, r0, 16 + b _080C9708 + .align 2, 0 +_080C9700: .4byte gMapHeader +_080C9704: + movs r0, 0 + b _080C971A +_080C9708: + ldr r0, [r3, 0x4] + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + bl sub_80C962C + lsls r0, 24 + lsrs r0, 24 +_080C971A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C9688 + + thumb_func_start sub_80C9720 +sub_80C9720: @ 80C9720 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080C9834 @ =gMapHeader + ldr r1, [r0] + ldr r0, [r1] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + ldr r0, [r1, 0x4] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r0, [r0] + subs r0, 0x7 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + adds r1, 0x7 + cmp r0, r1 + bgt _080C9824 +_080C976E: + mov r5, sp + ldrh r0, [r5, 0x2] + subs r0, 0x5 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r2, r4, 16 + asrs r1, r2, 16 + movs r6, 0x2 + ldrsh r0, [r5, r6] + adds r0, 0x5 + lsls r3, 16 + mov r8, r3 + cmp r1, r0 + bgt _080C980E + movs r0, 0x7 + str r0, [sp, 0x10] + mov r1, r8 + asrs r1, 16 + mov r9, r1 + mov r10, r0 +_080C9796: + ldr r3, [sp, 0x10] + cmp r3, r9 + bgt _080C97B8 + ldr r5, [sp, 0x8] + lsls r0, r5, 16 + asrs r0, 16 + cmp r9, r0 + bge _080C97B8 + asrs r1, r2, 16 + cmp r10, r1 + bgt _080C97B8 + ldr r6, [sp, 0xC] + lsls r0, r6, 16 + asrs r0, 16 + lsls r7, r4, 16 + cmp r1, r0 + blt _080C97F6 +_080C97B8: + mov r0, r8 + asrs r5, r0, 16 + lsls r4, 16 + asrs r6, r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8056BA0 + adds r7, r4, 0 + cmp r0, 0 + beq _080C97F6 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_80C9688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C97F6 + mov r0, sp + ldrh r1, [r0] + subs r1, r5, r1 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r0, 0x2] + subs r2, r6, r2 + lsls r2, 16 + asrs r2, 16 + ldr r0, [sp, 0x4] + bl sub_80C9838 +_080C97F6: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r4, r0, 16 + lsls r2, r4, 16 + asrs r1, r2, 16 + mov r3, sp + movs r5, 0x2 + ldrsh r0, [r3, r5] + adds r0, 0x5 + cmp r1, r0 + ble _080C9796 +_080C980E: + movs r1, 0x80 + lsls r1, 9 + add r1, r8 + lsrs r3, r1, 16 + asrs r1, 16 + mov r0, sp + movs r6, 0 + ldrsh r0, [r0, r6] + adds r0, 0x7 + cmp r1, r0 + ble _080C976E +_080C9824: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C9834: .4byte gMapHeader + thumb_func_end sub_80C9720 + + thumb_func_start sub_80C9838 +sub_80C9838: @ 80C9838 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r12, r2 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080C986C @ =gTasks + 0x8 + adds r3, r1, r0 + movs r1, 0x4 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080C9870 + strh r7, [r3] + mov r0, r12 + strh r0, [r3, 0x2] + movs r0, 0x1 + strh r0, [r3, 0x4] + b _080C98FA + .align 2, 0 +_080C986C: .4byte gTasks + 0x8 +_080C9870: + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080C9880 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 + b _080C9882 +_080C9880: + ldrh r4, [r3] +_080C9882: + movs r1, 0x2 + ldrsh r0, [r3, r1] + ldrh r1, [r3, 0x2] + mov r9, r1 + cmp r0, 0 + bge _080C9896 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + b _080C9898 +_080C9896: + ldrh r2, [r3, 0x2] +_080C9898: + lsls r1, r7, 16 + asrs r0, r1, 16 + cmp r0, 0 + bge _080C98A8 + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + b _080C98AA +_080C98A8: + lsrs r6, r1, 16 +_080C98AA: + mov r1, r12 + lsls r0, r1, 16 + asrs r1, r0, 16 + mov r8, r0 + cmp r1, 0 + bge _080C98BC + negs r0, r1 + lsls r0, 16 + b _080C98BE +_080C98BC: + mov r0, r8 +_080C98BE: + lsrs r5, r0, 16 + lsls r0, r4, 16 + asrs r0, 16 + lsls r1, r2, 16 + asrs r2, r1, 16 + adds r4, r0, r2 + lsls r0, r6, 16 + asrs r0, 16 + lsls r1, r5, 16 + asrs r1, 16 + adds r0, r1 + cmp r4, r0 + ble _080C98E0 + strh r7, [r3] + mov r1, r12 + strh r1, [r3, 0x2] + b _080C98FA +_080C98E0: + cmp r4, r0 + bne _080C98FA + cmp r2, r1 + bgt _080C98F4 + cmp r2, r1 + bne _080C98FA + mov r1, r9 + lsls r0, r1, 16 + cmp r0, r8 + bge _080C98FA +_080C98F4: + strh r7, [r3] + mov r0, r12 + strh r0, [r3, 0x2] +_080C98FA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C9838 + + thumb_func_start sub_80C9908 +sub_80C9908: @ 80C9908 + push {r4,r5,lr} + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bne _080C991A + cmp r1, 0 + beq _080C9974 +_080C991A: + lsls r0, r2, 16 + asrs r2, r0, 16 + adds r5, r0, 0 + cmp r2, 0 + bge _080C992C + negs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + b _080C992E +_080C992C: + lsrs r4, r5, 16 +_080C992E: + lsls r0, r1, 16 + asrs r2, r0, 16 + adds r1, r0, 0 + cmp r2, 0 + bge _080C9940 + negs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + b _080C9942 +_080C9940: + lsrs r3, r1, 16 +_080C9942: + lsls r0, r4, 16 + asrs r2, r0, 16 + lsls r0, r3, 16 + asrs r0, 16 + cmp r2, r0 + ble _080C995A + cmp r5, 0 + bge _080C9956 + movs r0, 0x4 + b _080C9976 +_080C9956: + movs r0, 0x2 + b _080C9976 +_080C995A: + cmp r2, r0 + bge _080C9964 + cmp r1, 0 + blt _080C996C + b _080C9970 +_080C9964: + cmp r2, r0 + bne _080C9974 + cmp r1, 0 + bge _080C9970 +_080C996C: + movs r0, 0x1 + b _080C9976 +_080C9970: + movs r0, 0x3 + b _080C9976 +_080C9974: + movs r0, 0 +_080C9976: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80C9908 + + thumb_func_start sub_80C997C +sub_80C997C: @ 80C997C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r4, _080C99E8 @ =gMapObjects + adds r0, r4 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FieldObjectClearAnim + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl npc_sync_anim_pause_bits + adds r0, r5, 0 + bl PlayerTurnInPlace + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C99E8: .4byte gMapObjects + thumb_func_end sub_80C997C + + thumb_func_start sub_80C99EC +sub_80C99EC: @ 80C99EC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C9A2C @ =gMapObjects + adds r0, r1 + bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9A24 + ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding + ldr r2, _080C9A34 @ =sub_80C9520 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9A24: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9A2C: .4byte gMapObjects +_080C9A30: .4byte gOtherText_ItemfinderResponding +_080C9A34: .4byte sub_80C9520 + thumb_func_end sub_80C99EC + + thumb_func_start sub_80C9A38 +sub_80C9A38: @ 80C9A38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C9AB4 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C9AB8 @ =gMapObjects + adds r0, r1 + bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C9A78 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C9AAE +_080C9A78: + ldr r1, _080C9ABC @ =gUnknown_083D61F0 + movs r2, 0xA + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + bl sub_80C997C + movs r0, 0x1 + strh r0, [r4, 0x4] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x6] + adds r0, 0x1 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080C9AAE + ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem + ldr r2, _080C9AC4 @ =sub_80C9520 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9AAE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9AB4: .4byte gTasks + 0x8 +_080C9AB8: .4byte gMapObjects +_080C9ABC: .4byte gUnknown_083D61F0 +_080C9AC0: .4byte gOtherText_ItemfinderFoundItem +_080C9AC4: .4byte sub_80C9520 + thumb_func_end sub_80C9A38 + + thumb_func_start ItemUseOutOfBattle_PokeblockCase +ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9AF4 + ldr r0, _080C9AF0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage + b _080C9B2A + .align 2, 0 +_080C9AF0: .4byte gTasks +_080C9AF4: + ldr r0, _080C9B14 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080C9B18 + movs r0, 0 + bl sub_810BA7C + adds r0, r4, 0 + bl unknown_ItemMenu_Confirm + b _080C9B2A + .align 2, 0 +_080C9B14: .4byte gTasks +_080C9B18: + ldr r1, _080C9B30 @ =gUnknown_0300485C + ldr r0, _080C9B34 @ =sub_8080E28 + str r0, [r1] + movs r0, 0x1 + bl sub_810BA7C + adds r0, r5, 0 + bl sub_80C9038 +_080C9B2A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9B30: .4byte gUnknown_0300485C +_080C9B34: .4byte sub_8080E28 + thumb_func_end ItemUseOutOfBattle_PokeblockCase + + thumb_func_start ItemUseOutOfBattle_CoinCase +ItemUseOutOfBattle_CoinCase: @ 80C9B38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080C9B8C @ =gStringVar1 + bl GetCoins + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r4, _080C9B90 @ =gStringVar4 + ldr r1, _080C9B94 @ =gOtherText_Coins3 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r1, _080C9B98 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080C9BA0 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r2, _080C9B9C @ =sub_80A5C48 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9BAC + .align 2, 0 +_080C9B8C: .4byte gStringVar1 +_080C9B90: .4byte gStringVar4 +_080C9B94: .4byte gOtherText_Coins3 +_080C9B98: .4byte gTasks +_080C9B9C: .4byte sub_80A5C48 +_080C9BA0: + ldr r2, _080C9BB4 @ =sub_80A5C9C + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9BAC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9BB4: .4byte sub_80A5C9C + thumb_func_end ItemUseOutOfBattle_CoinCase + + thumb_func_start sub_80C9BB8 +sub_80C9BB8: @ 80C9BB8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C9BD4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C9BD0 + adds r0, r2, 0 + bl sub_80A5C48 +_080C9BD0: + pop {r0} + bx r0 + .align 2, 0 +_080C9BD4: .4byte gMain + thumb_func_end sub_80C9BB8 + + thumb_func_start sub_80C9BD8 +sub_80C9BD8: @ 80C9BD8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080C9BF4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C9BF0 + adds r0, r2, 0 + bl sub_80A5C9C +_080C9BF0: + pop {r0} + bx r0 + .align 2, 0 +_080C9BF4: .4byte gMain + thumb_func_end sub_80C9BD8 + + thumb_func_start unref_sub_80C9BF8 +unref_sub_80C9BF8: @ 80C9BF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C9C3C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080C9C4C + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r4, _080C9C40 @ =gUnknown_083D61DC + ldr r0, _080C9C44 @ =word_203855E + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + ldr r1, [r0] + ldr r2, _080C9C48 @ =sub_80C9BB8 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9C68 + .align 2, 0 +_080C9C3C: .4byte gTasks +_080C9C40: .4byte gUnknown_083D61DC +_080C9C44: .4byte word_203855E +_080C9C48: .4byte sub_80C9BB8 +_080C9C4C: + ldr r4, _080C9C70 @ =gUnknown_083D61DC + ldr r0, _080C9C74 @ =word_203855E + ldrh r0, [r0] + bl itemid_get_x28 + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + ldr r1, [r0] + ldr r2, _080C9C78 @ =sub_80C9BD8 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080C9C68: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9C70: .4byte gUnknown_083D61DC +_080C9C74: .4byte word_203855E +_080C9C78: .4byte sub_80C9BD8 + thumb_func_end unref_sub_80C9BF8 + + thumb_func_start sub_80C9C7C +sub_80C9C7C: @ 80C9C7C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + bl IsPlayerFacingPlantedBerryTree + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9CE4 + ldr r1, _080C9CC8 @ =gUnknown_03005D00 + ldr r0, _080C9CCC @ =sub_80C9D00 + str r0, [r1] + ldr r1, _080C9CD0 @ =gUnknown_0300485C + ldr r0, _080C9CD4 @ =sub_80A5CC4 + str r0, [r1] + ldr r1, _080C9CD8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch + lsrs r1, r2, 16 + movs r3, 0 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + ldr r1, _080C9CE0 @ =sub_80A5B00 + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + str r3, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080C9CF4 + .align 2, 0 +_080C9CC8: .4byte gUnknown_03005D00 +_080C9CCC: .4byte sub_80C9D00 +_080C9CD0: .4byte gUnknown_0300485C +_080C9CD4: .4byte sub_80A5CC4 +_080C9CD8: .4byte gTasks +_080C9CDC: .4byte c2_exit_to_overworld_2_switch +_080C9CE0: .4byte sub_80A5B00 +_080C9CE4: + ldr r0, _080C9CFC @ =word_203855E + ldrh r0, [r0] + bl itemid_get_overworld_function + adds r1, r0, 0 + adds r0, r4, 0 + bl _call_via_r1 +_080C9CF4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9CFC: .4byte word_203855E + thumb_func_end sub_80C9C7C + + thumb_func_start sub_80C9D00 +sub_80C9D00: @ 80C9D00 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080C9D28 @ =word_203855E + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80A9538 + bl ScriptContext2_Enable + ldr r0, _080C9D2C @ =gUnknown_081A1654 + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D28: .4byte word_203855E +_080C9D2C: .4byte gUnknown_081A1654 + thumb_func_end sub_80C9D00 + + thumb_func_start ItemUseOutOfBattle_WailmerPail +ItemUseOutOfBattle_WailmerPail: @ 80C9D30 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl WaterBerryTree + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C9D58 + ldr r1, _080C9D50 @ =gUnknown_03005D00 + ldr r0, _080C9D54 @ =sub_80C9D74 + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080C9D6A + .align 2, 0 +_080C9D50: .4byte gUnknown_03005D00 +_080C9D54: .4byte sub_80C9D74 +_080C9D58: + ldr r0, _080C9D70 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080C9D6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D70: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_WailmerPail + + thumb_func_start sub_80C9D74 +sub_80C9D74: @ 80C9D74 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ScriptContext2_Enable + ldr r0, _080C9D94 @ =gUnknown_081A168F + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9D94: .4byte gUnknown_081A168F + thumb_func_end sub_80C9D74 + + thumb_func_start sub_80C9D98 +sub_80C9D98: @ 80C9D98 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9DAC @ =gUnknown_02038561 + movs r1, 0 + strb r1, [r2] + bl unknown_ItemMenu_Confirm + pop {r0} + bx r0 + .align 2, 0 +_080C9DAC: .4byte gUnknown_02038561 + thumb_func_end sub_80C9D98 + + thumb_func_start ItemUseOutOfBattle_Medicine +ItemUseOutOfBattle_Medicine: @ 80C9DB0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9DC4 @ =gUnknown_03004AE4 + ldr r1, _080C9DC8 @ =sub_806FE2C + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9DC4: .4byte gUnknown_03004AE4 +_080C9DC8: .4byte sub_806FE2C + thumb_func_end ItemUseOutOfBattle_Medicine + + thumb_func_start ItemUseOutOfBattle_SacredAsh +ItemUseOutOfBattle_SacredAsh: @ 80C9DCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080C9DDC @ =gUnknown_03005CE0 + movs r0, 0 + strb r0, [r1] + movs r5, 0 + b _080C9DE6 + .align 2, 0 +_080C9DDC: .4byte gUnknown_03005CE0 +_080C9DE0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080C9DE6: + cmp r5, 0x5 + bhi _080C9E10 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C9E28 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080C9DE0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080C9DE0 + ldr r0, _080C9E2C @ =gUnknown_03005CE0 + strb r5, [r0] +_080C9E10: + ldr r1, _080C9E30 @ =gUnknown_03004AE4 + ldr r0, _080C9E34 @ =sub_8070048 + str r0, [r1] + ldr r1, _080C9E38 @ =gUnknown_02038561 + movs r0, 0x4 + strb r0, [r1] + adds r0, r6, 0 + bl unknown_ItemMenu_Confirm + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C9E28: .4byte gPlayerParty +_080C9E2C: .4byte gUnknown_03005CE0 +_080C9E30: .4byte gUnknown_03004AE4 +_080C9E34: .4byte sub_8070048 +_080C9E38: .4byte gUnknown_02038561 + thumb_func_end ItemUseOutOfBattle_SacredAsh + + thumb_func_start ItemUseOutOfBattle_PPRecovery +ItemUseOutOfBattle_PPRecovery: @ 80C9E3C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E50 @ =gUnknown_03004AE4 + ldr r1, _080C9E54 @ =dp05_ether + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E50: .4byte gUnknown_03004AE4 +_080C9E54: .4byte dp05_ether + thumb_func_end ItemUseOutOfBattle_PPRecovery + + thumb_func_start ItemUseOutOfBattle_PPUp +ItemUseOutOfBattle_PPUp: @ 80C9E58 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E6C @ =gUnknown_03004AE4 + ldr r1, _080C9E70 @ =dp05_pp_up + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E6C: .4byte gUnknown_03004AE4 +_080C9E70: .4byte dp05_pp_up + thumb_func_end ItemUseOutOfBattle_PPUp + + thumb_func_start ItemUseOutOfBattle_RareCandy +ItemUseOutOfBattle_RareCandy: @ 80C9E74 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9E88 @ =gUnknown_03004AE4 + ldr r1, _080C9E8C @ =sub_8070680 + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9E88: .4byte gUnknown_03004AE4 +_080C9E8C: .4byte sub_8070680 + thumb_func_end ItemUseOutOfBattle_RareCandy + + thumb_func_start ItemUseOutOfBattle_TMHM +ItemUseOutOfBattle_TMHM: @ 80C9E90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r0, _080C9EBC @ =word_203855E + ldrh r1, [r0] + movs r0, 0xA9 + lsls r0, 1 + cmp r1, r0 + bls _080C9EC8 + ldr r1, _080C9EC0 @ =gOtherText_BootedHM + ldr r2, _080C9EC4 @ =sub_80C9EE4 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080C9ED4 + .align 2, 0 +_080C9EBC: .4byte word_203855E +_080C9EC0: .4byte gOtherText_BootedHM +_080C9EC4: .4byte sub_80C9EE4 +_080C9EC8: + ldr r1, _080C9EDC @ =gOtherText_BootedTM + ldr r2, _080C9EE0 @ =sub_80C9EE4 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080C9ED4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9EDC: .4byte gOtherText_BootedTM +_080C9EE0: .4byte sub_80C9EE4 + thumb_func_end ItemUseOutOfBattle_TMHM + + thumb_func_start sub_80C9EE4 +sub_80C9EE4: @ 80C9EE4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + bl PlaySE + ldr r1, _080C9F08 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C9F0C @ =sub_80C9F10 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9F08: .4byte gTasks +_080C9F0C: .4byte sub_80C9F10 + thumb_func_end sub_80C9EE4 + + thumb_func_start sub_80C9F10 +sub_80C9F10: @ 80C9F10 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C9F64 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C9F2A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C9F5C +_080C9F2A: + ldr r4, _080C9F68 @ =gStringVar1 + ldr r0, _080C9F6C @ =word_203855E + ldrh r0, [r0] + bl ItemIdToBattleMoveId + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xD + muls r1, r0 + ldr r0, _080C9F70 @ =gMoveNames + adds r1, r0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _080C9F74 @ =gStringVar4 + ldr r1, _080C9F78 @ =gOtherText_ContainsMove + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080C9F7C @ =sub_80C9F80 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080C9F5C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C9F64: .4byte gMain +_080C9F68: .4byte gStringVar1 +_080C9F6C: .4byte word_203855E +_080C9F70: .4byte gMoveNames +_080C9F74: .4byte gStringVar4 +_080C9F78: .4byte gOtherText_ContainsMove +_080C9F7C: .4byte sub_80C9F80 + thumb_func_end sub_80C9F10 + + thumb_func_start sub_80C9F80 +sub_80C9F80: @ 80C9F80 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x7 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _080C9FB8 @ =gBG1TilemapBuffer + movs r1, 0x4 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r1, 0x8 + movs r2, 0x8 + movs r3, 0x5 + bl sub_80A3FA0 + ldr r1, _080C9FBC @ =gUnknown_083D61F4 + adds r0, r4, 0 + bl sub_80F914C + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C9FB8: .4byte gBG1TilemapBuffer +_080C9FBC: .4byte gUnknown_083D61F4 + thumb_func_end sub_80C9F80 + + thumb_func_start sub_80C9FC0 +sub_80C9FC0: @ 80C9FC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C9FD4 @ =gUnknown_03004AE4 + ldr r1, _080C9FD8 @ =sub_806F06C + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080C9FD4: .4byte gUnknown_03004AE4 +_080C9FD8: .4byte sub_806F06C + thumb_func_end sub_80C9FC0 + + thumb_func_start sub_80C9FDC +sub_80C9FDC: @ 80C9FDC + push {r4,lr} + ldr r4, _080CA004 @ =word_203855E + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + bl sub_80A3E0C + ldrh r0, [r4] + ldr r1, _080CA008 @ =gStringVar2 + bl itemid_copy_name + ldr r0, _080CA00C @ =gStringVar4 + ldr r1, _080CA010 @ =gOtherText_UsedItem + bl StringExpandPlaceholders + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA004: .4byte word_203855E +_080CA008: .4byte gStringVar2 +_080CA00C: .4byte gStringVar4 +_080CA010: .4byte gOtherText_UsedItem + thumb_func_end sub_80C9FDC + + thumb_func_start ItemUseOutOfBattle_Repel +ItemUseOutOfBattle_Repel: @ 80CA014 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _080CA050 @ =0x00004021 + adds r0, r5, 0 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080CA060 + ldr r0, _080CA054 @ =word_203855E + ldrh r0, [r0] + bl itemid_get_quality + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl VarSet + bl sub_80C9FDC + ldr r1, _080CA058 @ =gStringVar4 + ldr r2, _080CA05C @ =sub_80A5C48 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA06C + .align 2, 0 +_080CA050: .4byte 0x00004021 +_080CA054: .4byte word_203855E +_080CA058: .4byte gStringVar4 +_080CA05C: .4byte sub_80A5C48 +_080CA060: + ldr r1, _080CA074 @ =gOtherText_RepelLingers + ldr r2, _080CA078 @ =sub_80A5C48 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA06C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA074: .4byte gOtherText_RepelLingers +_080CA078: .4byte sub_80A5C48 + thumb_func_end ItemUseOutOfBattle_Repel + + thumb_func_start sub_80CA07C +sub_80CA07C: @ 80CA07C + push {lr} + bl sub_80A3E0C + ldr r0, _080CA090 @ =word_203855E + ldrh r0, [r0] + ldr r1, _080CA094 @ =gStringVar2 + bl itemid_copy_name + pop {r0} + bx r0 + .align 2, 0 +_080CA090: .4byte word_203855E +_080CA094: .4byte gStringVar2 + thumb_func_end sub_80CA07C + + thumb_func_start sub_80CA098 +sub_80CA098: @ 80CA098 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA0D0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080CA0C8 + movs r0, 0x75 + bl PlaySE + ldr r1, _080CA0D4 @ =gStringVar4 + ldr r2, _080CA0D8 @ =sub_80A5C48 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA0C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA0D0: .4byte gTasks +_080CA0D4: .4byte gStringVar4 +_080CA0D8: .4byte sub_80A5C48 + thumb_func_end sub_80CA098 + + thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute +ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _080CA10C @ =word_203855E + ldrh r0, [r0] + cmp r0, 0x2B + bne _080CA124 + ldr r0, _080CA110 @ =0x0000084d + bl FlagSet + ldr r0, _080CA114 @ =0x0000084e + bl FlagReset + bl sub_80CA07C + ldr r0, _080CA118 @ =gStringVar4 + ldr r1, _080CA11C @ =gOtherText_UsedFlute + bl StringExpandPlaceholders + ldr r1, _080CA120 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + b _080CA146 + .align 2, 0 +_080CA10C: .4byte word_203855E +_080CA110: .4byte 0x0000084d +_080CA114: .4byte 0x0000084e +_080CA118: .4byte gStringVar4 +_080CA11C: .4byte gOtherText_UsedFlute +_080CA120: .4byte gTasks +_080CA124: + cmp r0, 0x2A + bne _080CA152 + ldr r0, _080CA158 @ =0x0000084e + bl FlagSet + ldr r0, _080CA15C @ =0x0000084d + bl FlagReset + bl sub_80CA07C + ldr r0, _080CA160 @ =gStringVar4 + ldr r1, _080CA164 @ =gOtherText_UsedRepel + bl StringExpandPlaceholders + ldr r1, _080CA168 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 +_080CA146: + lsls r0, 3 + adds r0, r1 + ldr r1, _080CA16C @ =sub_80CA098 + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x26] +_080CA152: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA158: .4byte 0x0000084e +_080CA15C: .4byte 0x0000084d +_080CA160: .4byte gStringVar4 +_080CA164: .4byte gOtherText_UsedRepel +_080CA168: .4byte gTasks +_080CA16C: .4byte sub_80CA098 + thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute + + thumb_func_start task08_080A1C44 +task08_080A1C44: @ 80CA170 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl player_avatar_init_params_reset + bl sub_80878A8 + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end task08_080A1C44 + + thumb_func_start sub_80CA18C +sub_80CA18C: @ 80CA18C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8053014 + bl sub_80C9FDC + ldr r1, _080CA1BC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080CA1C0 @ =gStringVar4 + ldr r2, _080CA1C4 @ =task08_080A1C44 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA1BC: .4byte gTasks +_080CA1C0: .4byte gStringVar4 +_080CA1C4: .4byte task08_080A1C44 + thumb_func_end sub_80CA18C + + thumb_func_start sub_80CA1C8 +sub_80CA1C8: @ 80CA1C8 + push {lr} + ldr r0, _080CA1D8 @ =gMapHeader + ldrb r0, [r0, 0x17] + cmp r0, 0x4 + beq _080CA1DC + movs r0, 0 + b _080CA1DE + .align 2, 0 +_080CA1D8: .4byte gMapHeader +_080CA1DC: + movs r0, 0x1 +_080CA1DE: + pop {r1} + bx r1 + thumb_func_end sub_80CA1C8 + + thumb_func_start ItemUseOutOfBattle_EscapeRope +ItemUseOutOfBattle_EscapeRope: @ 80CA1E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80CA1C8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CA20C + ldr r1, _080CA204 @ =gUnknown_03005D00 + ldr r0, _080CA208 @ =sub_80CA18C + str r0, [r1] + adds r0, r4, 0 + bl SetUpItemUseOnFieldCallback + b _080CA21E + .align 2, 0 +_080CA204: .4byte gUnknown_03005D00 +_080CA208: .4byte sub_80CA18C +_080CA20C: + ldr r0, _080CA224 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080CA21E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA224: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_EscapeRope + + thumb_func_start ItemUseOutOfBattle_EvolutionStone +ItemUseOutOfBattle_EvolutionStone: @ 80CA228 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA23C @ =gUnknown_03004AE4 + ldr r1, _080CA240 @ =sub_8070DBC + str r1, [r2] + bl sub_80C9D98 + pop {r0} + bx r0 + .align 2, 0 +_080CA23C: .4byte gUnknown_03004AE4 +_080CA240: .4byte sub_8070DBC + thumb_func_end ItemUseOutOfBattle_EvolutionStone + + thumb_func_start ItemUseInBattle_PokeBall +ItemUseInBattle_PokeBall: @ 80CA244 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl PlayerPartyAndPokemonStorageFull + lsls r0, 24 + cmp r0, 0 + bne _080CA26C + ldr r0, _080CA268 @ =word_203855E + ldrh r0, [r0] + movs r1, 0x1 + bl sub_80A9538 + adds r0, r4, 0 + bl sub_80A7094 + b _080CA284 + .align 2, 0 +_080CA268: .4byte word_203855E +_080CA26C: + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r1, _080CA28C @ =gOtherText_BoxIsFull + ldr r2, _080CA290 @ =sub_80A5C48 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA284: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA28C: .4byte gOtherText_BoxIsFull +_080CA290: .4byte sub_80A5C48 + thumb_func_end ItemUseInBattle_PokeBall + + thumb_func_start sub_80CA294 +sub_80CA294: @ 80CA294 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CA2B8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CA2AE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080CA2B4 +_080CA2AE: + adds r0, r2, 0 + bl sub_80A7094 +_080CA2B4: + pop {r0} + bx r0 + .align 2, 0 +_080CA2B8: .4byte gMain + thumb_func_end sub_80CA294 + + thumb_func_start sub_80CA2BC +sub_80CA2BC: @ 80CA2BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080CA304 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080CA2FC + movs r0, 0x1 + bl PlaySE + ldr r4, _080CA308 @ =word_203855E + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + ldrh r0, [r4] + bl sub_803F378 + adds r1, r0, 0 + ldr r2, _080CA30C @ =sub_80CA294 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA2FC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA304: .4byte gTasks +_080CA308: .4byte word_203855E +_080CA30C: .4byte sub_80CA294 + thumb_func_end sub_80CA2BC + + thumb_func_start ItemUseInBattle_StatIncrease +ItemUseInBattle_StatIncrease: @ 80CA310 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080CA35C @ =gUnknown_02024A6A + ldr r0, _080CA360 @ =gUnknown_02024E6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r4, [r0] + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + movs r0, 0x64 + muls r0, r4 + ldr r1, _080CA364 @ =gPlayerParty + adds r0, r1 + ldr r1, _080CA368 @ =word_203855E + ldrh r1, [r1] + lsls r4, 24 + lsrs r4, 24 + adds r2, r4, 0 + movs r3, 0 + bl ExecuteTableBasedItemEffect_ + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080CA374 + ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect + ldr r2, _080CA370 @ =sub_80A5C48 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA384 + .align 2, 0 +_080CA35C: .4byte gUnknown_02024A6A +_080CA360: .4byte gUnknown_02024E6C +_080CA364: .4byte gPlayerParty +_080CA368: .4byte word_203855E +_080CA36C: .4byte gOtherText_WontHaveAnyEffect +_080CA370: .4byte sub_80A5C48 +_080CA374: + ldr r0, _080CA38C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080CA390 @ =sub_80CA2BC + str r0, [r1] + strh r2, [r1, 0x26] +_080CA384: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA38C: .4byte gTasks +_080CA390: .4byte sub_80CA2BC + thumb_func_end ItemUseInBattle_StatIncrease + + thumb_func_start sub_80CA394 +sub_80CA394: @ 80CA394 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA3BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CA3B4 + bl sub_8094E4C + bl gpu_pal_allocator_reset__manage_upper_four + adds r0, r4, 0 + bl DestroyTask +_080CA3B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA3BC: .4byte gPaletteFade + thumb_func_end sub_80CA394 + + thumb_func_start sub_80CA3C0 +sub_80CA3C0: @ 80CA3C0 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA3EC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080CA3F0 @ =sub_80CA394 + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080CA3EC: .4byte gTasks +_080CA3F0: .4byte sub_80CA394 + thumb_func_end sub_80CA3C0 + + thumb_func_start ItemUseInBattle_Medicine +ItemUseInBattle_Medicine: @ 80CA3F4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA408 @ =gUnknown_03004AE4 + ldr r1, _080CA40C @ =sub_806FE2C + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA408: .4byte gUnknown_03004AE4 +_080CA40C: .4byte sub_806FE2C + thumb_func_end ItemUseInBattle_Medicine + + thumb_func_start unref_sub_80CA410 +unref_sub_80CA410: @ 80CA410 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA424 @ =gUnknown_03004AE4 + ldr r1, _080CA428 @ =sub_8070048 + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA424: .4byte gUnknown_03004AE4 +_080CA428: .4byte sub_8070048 + thumb_func_end unref_sub_80CA410 + + thumb_func_start ItemUseInBattle_PPRecovery +ItemUseInBattle_PPRecovery: @ 80CA42C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA440 @ =gUnknown_03004AE4 + ldr r1, _080CA444 @ =dp05_ether + str r1, [r2] + bl sub_80CA3C0 + pop {r0} + bx r0 + .align 2, 0 +_080CA440: .4byte gUnknown_03004AE4 +_080CA444: .4byte dp05_ether + thumb_func_end ItemUseInBattle_PPRecovery + + thumb_func_start unref_sub_80CA448 +unref_sub_80CA448: @ 80CA448 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r4, _080CA494 @ =word_203855E + ldrh r1, [r4] + movs r0, 0 + movs r2, 0 + bl ExecuteTableBasedItemEffect__ + lsls r0, 24 + cmp r0, 0 + bne _080CA4AC + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9538 + ldr r0, _080CA498 @ =gPlayerParty + ldr r1, _080CA49C @ =gStringVar1 + bl GetMonNickname + ldr r4, _080CA4A0 @ =gStringVar4 + ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080CA4A8 @ =sub_80A7094 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA4B8 + .align 2, 0 +_080CA494: .4byte word_203855E +_080CA498: .4byte gPlayerParty +_080CA49C: .4byte gStringVar1 +_080CA4A0: .4byte gStringVar4 +_080CA4A4: .4byte gOtherText_SnapConfusion +_080CA4A8: .4byte sub_80A7094 +_080CA4AC: + ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect + ldr r2, _080CA4C4 @ =sub_80A5C48 + adds r0, r5, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField +_080CA4B8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA4C0: .4byte gOtherText_WontHaveAnyEffect +_080CA4C4: .4byte sub_80A5C48 + thumb_func_end unref_sub_80CA448 + + thumb_func_start ItemUseInBattle_Escape +ItemUseInBattle_Escape: @ 80CA4C8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0xD + movs r2, 0xD + movs r3, 0x14 + bl MenuZeroFillWindowRect + ldr r0, _080CA4F8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080CA504 + bl sub_80C9FDC + ldr r1, _080CA4FC @ =gStringVar4 + ldr r2, _080CA500 @ =sub_80A7094 + adds r0, r4, 0 + movs r3, 0x1 + bl DisplayItemMessageOnField + b _080CA516 + .align 2, 0 +_080CA4F8: .4byte gUnknown_020239F8 +_080CA4FC: .4byte gStringVar4 +_080CA500: .4byte sub_80A7094 +_080CA504: + ldr r0, _080CA51C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl DisplayDadsAdviceCannotUseItemMessage +_080CA516: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA51C: .4byte gTasks + thumb_func_end ItemUseInBattle_Escape + + thumb_func_start ItemUseOutOfBattle_EnigmaBerry +ItemUseOutOfBattle_EnigmaBerry: @ 80CA520 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA544 @ =word_203855E + ldrh r0, [r0] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x14 + bls _080CA53A + b _080CA62C +_080CA53A: + lsls r0, 2 + ldr r1, _080CA548 @ =_080CA54C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CA544: .4byte word_203855E +_080CA548: .4byte _080CA54C + .align 2, 0 +_080CA54C: + .4byte _080CA5D8 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA62C + .4byte _080CA62C + .4byte _080CA5BC + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA5A0 + .4byte _080CA62C + .4byte _080CA5F4 + .4byte _080CA5F4 + .4byte _080CA610 +_080CA5A0: + ldr r0, _080CA5B8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_Medicine + b _080CA640 + .align 2, 0 +_080CA5B8: .4byte gTasks +_080CA5BC: + ldr r0, _080CA5D4 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_SacredAsh + b _080CA640 + .align 2, 0 +_080CA5D4: .4byte gTasks +_080CA5D8: + ldr r0, _080CA5F0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_RareCandy + b _080CA640 + .align 2, 0 +_080CA5F0: .4byte gTasks +_080CA5F4: + ldr r0, _080CA60C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_PPUp + b _080CA640 + .align 2, 0 +_080CA60C: .4byte gTasks +_080CA610: + ldr r0, _080CA628 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_PPRecovery + b _080CA640 + .align 2, 0 +_080CA628: .4byte gTasks +_080CA62C: + ldr r0, _080CA648 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x4 + strh r0, [r1, 0x26] + adds r0, r4, 0 + bl ItemUseOutOfBattle_CannotUse +_080CA640: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA648: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_EnigmaBerry + + thumb_func_start ItemUseInBattle_EnigmaBerry +ItemUseInBattle_EnigmaBerry: @ 80CA64C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CA66C @ =word_203855E + ldrh r0, [r0] + bl sub_8070E48 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x15 + bhi _080CA6E4 + lsls r0, 2 + ldr r1, _080CA670 @ =_080CA674 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CA66C: .4byte word_203855E +_080CA670: .4byte _080CA674 + .align 2, 0 +_080CA674: + .4byte _080CA6CC + .4byte _080CA6E4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6D4 + .4byte _080CA6E4 + .4byte _080CA6D4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6E4 + .4byte _080CA6DC +_080CA6CC: + adds r0, r4, 0 + bl ItemUseInBattle_StatIncrease + b _080CA6EA +_080CA6D4: + adds r0, r4, 0 + bl ItemUseInBattle_Medicine + b _080CA6EA +_080CA6DC: + adds r0, r4, 0 + bl ItemUseInBattle_PPRecovery + b _080CA6EA +_080CA6E4: + adds r0, r4, 0 + bl ItemUseOutOfBattle_CannotUse +_080CA6EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end ItemUseInBattle_EnigmaBerry + + thumb_func_start ItemUseOutOfBattle_CannotUse +ItemUseOutOfBattle_CannotUse: @ 80CA6F0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CA70C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r1, [r1, 0xC] + bl DisplayDadsAdviceCannotUseItemMessage + pop {r0} + bx r0 + .align 2, 0 +_080CA70C: .4byte gTasks + thumb_func_end ItemUseOutOfBattle_CannotUse + + thumb_func_start sub_80CA710 +sub_80CA710: @ 80CA710 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CA744 @ =gUnknown_03004B00 + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080CA748 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CA74C + ldrh r0, [r5, 0x8] + negs r0, r0 + b _080CA74E + .align 2, 0 +_080CA744: .4byte gUnknown_03004B00 +_080CA748: .4byte gUnknown_0202F7C8 +_080CA74C: + ldrh r0, [r5, 0x8] +_080CA74E: + strh r0, [r4, 0x34] + ldr r0, _080CA760 @ =gUnknown_03004B00 + ldrh r0, [r0, 0xA] + strh r0, [r4, 0x36] + ldr r0, _080CA764 @ =sub_80CA768 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA760: .4byte gUnknown_03004B00 +_080CA764: .4byte sub_80CA768 + thumb_func_end sub_80CA710 + + thumb_func_start sub_80CA768 +sub_80CA768: @ 80CA768 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CA7A4 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CA7AA +_080CA7A4: + adds r0, r4, 0 + bl move_anim_8072740 +_080CA7AA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CA768 + + thumb_func_start sub_80CA7B0 +sub_80CA7B0: @ 80CA7B0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CA7F0 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080CA7F4 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080CA7F8 @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080CA7FC @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA7F0: .4byte gUnknown_03004B00 +_080CA7F4: .4byte gUnknown_0202F7C8 +_080CA7F8: .4byte sub_8078B34 +_080CA7FC: .4byte move_anim_8074EE0 + thumb_func_end sub_80CA7B0 + + thumb_func_start sub_80CA800 +sub_80CA800: @ 80CA800 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080CA848 @ =gUnknown_03004B00 + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r5, _080CA84C @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080CA850 @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080CA854 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CA848: .4byte gUnknown_03004B00 +_080CA84C: .4byte gUnknown_0202F7C9 +_080CA850: .4byte sub_8078B34 +_080CA854: .4byte move_anim_8072740 + thumb_func_end sub_80CA800 + + thumb_func_start sub_80CA858 +sub_80CA858: @ 80CA858 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080CA8A8 @ =gUnknown_03004B00 + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080CA8AC @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x38] + ldr r1, _080CA8B0 @ =sub_80CA8B4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA8A8: .4byte gUnknown_03004B00 +_080CA8AC: .4byte gUnknown_0202F7C9 +_080CA8B0: .4byte sub_80CA8B4 + thumb_func_end sub_80CA858 + + thumb_func_start sub_80CA8B4 +sub_80CA8B4: @ 80CA8B4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080CA8CA + adds r0, r4, 0 + bl DestroySprite + b _080CA91E +_080CA8CA: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080CA8E4 + ldr r0, _080CA8E0 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x1 + b _080CA8EE + .align 2, 0 +_080CA8E0: .4byte gUnknown_0202F7C9 +_080CA8E4: + ldr r0, _080CA924 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x6 +_080CA8EE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0xF + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080CA91E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CA924: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CA8B4 + + thumb_func_start sub_80CA928 +sub_80CA928: @ 80CA928 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080CA998 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r0, 0x1 + movs r2, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080CA982 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + movs r0, 0x6 + strh r0, [r5, 0x8] + ldr r1, _080CA99C @ =gUnknown_03004B00 + movs r0, 0xF + strh r0, [r1] + strh r2, [r1, 0x2] + movs r0, 0x50 + strh r0, [r1, 0x4] + strh r2, [r1, 0x6] + ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C + ldr r0, _080CA9A4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl CreateSpriteAndAnimate +_080CA982: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0xF + bne _080CA990 + adds r0, r6, 0 + bl move_anim_task_del +_080CA990: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA998: .4byte gTasks +_080CA99C: .4byte gUnknown_03004B00 +_080CA9A0: .4byte gSpriteTemplate_83D631C +_080CA9A4: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CA928 + + thumb_func_start sub_80CA9A8 +sub_80CA9A8: @ 80CA9A8 + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r6, _080CA9EC @ =gUnknown_03004B00 + ldrh r0, [r6, 0x6] + strh r0, [r4, 0x2E] + ldr r5, _080CA9F0 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080CA9F4 @ =sub_80CA9F8 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CA9EC: .4byte gUnknown_03004B00 +_080CA9F0: .4byte gUnknown_0202F7C8 +_080CA9F4: .4byte sub_80CA9F8 + thumb_func_end sub_80CA9A8 + + thumb_func_start sub_80CA9F8 +sub_80CA9F8: @ 80CA9F8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CAA0C + adds r0, r4, 0 + bl move_anim_8072740 +_080CAA0C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CA9F8 + + thumb_func_start sub_80CAA14 +sub_80CAA14: @ 80CAA14 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x7 + ands r1, r0 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r4, _080CAA5C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAA60 + ldrh r0, [r5, 0x20] + subs r0, 0x14 + b _080CAA64 + .align 2, 0 +_080CAA5C: .4byte gUnknown_0202F7C8 +_080CAA60: + ldrh r0, [r5, 0x20] + adds r0, 0x14 +_080CAA64: + strh r0, [r5, 0x20] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + adds r0, 0x40 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080CAAC4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078D60 + bl Random + movs r1, 0xFF + ands r1, r0 + strh r1, [r5, 0x38] + adds r0, r5, 0 + adds r0, 0x43 + ldrb r0, [r0] + strh r0, [r5, 0x3A] + ldr r1, _080CAAC8 @ =sub_80CAACC + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAAC4: .4byte gUnknown_0202F7C9 +_080CAAC8: .4byte sub_80CAACC + thumb_func_end sub_80CAA14 + + thumb_func_start sub_80CAACC +sub_80CAACC: @ 80CAACC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078CE8 + lsls r0, 24 + cmp r0, 0 + beq _080CAAE2 + adds r0, r4, 0 + bl move_anim_8072740 + b _080CAB12 +_080CAAE2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7E + bgt _080CAAFE + ldrh r0, [r4, 0x3A] + b _080CAB02 +_080CAAFE: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 +_080CAB02: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x18 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] +_080CAB12: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAACC + + thumb_func_start sub_80CAB18 +sub_80CAB18: @ 80CAB18 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CAB78 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAB38 + ldr r1, _080CAB7C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080CAB38: + ldr r4, _080CAB7C @ =gUnknown_03004B00 + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080CAB80 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080CAB84 @ =sub_80CAB88 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CAB78: .4byte gUnknown_0202F7C8 +_080CAB7C: .4byte gUnknown_03004B00 +_080CAB80: .4byte gUnknown_0202F7C9 +_080CAB84: .4byte sub_80CAB88 + thumb_func_end sub_80CAB18 + + thumb_func_start sub_80CAB88 +sub_80CAB88: @ 80CAB88 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CABB2 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r4, 0x2E] + ldr r0, _080CABB8 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080CABBC @ =sub_80CABC0 + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080CABB2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CABB8: .4byte sub_80782D8 +_080CABBC: .4byte sub_80CABC0 + thumb_func_end sub_80CAB88 + + thumb_func_start sub_80CABC0 +sub_80CABC0: @ 80CABC0 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080CABF0 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080CABF4 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CABF0: .4byte sub_80782D8 +_080CABF4: .4byte move_anim_8072740 + thumb_func_end sub_80CABC0 + + thumb_func_start sub_80CABF8 +sub_80CABF8: @ 80CABF8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r5, _080CAC3C @ =gUnknown_03004B00 + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080CAC22 + ldrb r0, [r4, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] +_080CAC22: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldr r1, _080CAC40 @ =sub_80CAC44 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAC3C: .4byte gUnknown_03004B00 +_080CAC40: .4byte sub_80CAC44 + thumb_func_end sub_80CABF8 + + thumb_func_start sub_80CAC44 +sub_80CAC44: @ 80CAC44 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x32] + adds r1, 0x18 + strh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080CAC98 + ldr r0, _080CAC94 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + b _080CACBC + .align 2, 0 +_080CAC94: .4byte gUnknown_0202F7C9 +_080CAC98: + ldr r0, _080CACE8 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + adds r0, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080CACAC + movs r2, 0x3 +_080CACAC: + movs r0, 0x3 + ands r2, r0 + lsls r2, 2 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 +_080CACBC: + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080CACE0 + adds r0, r4, 0 + bl move_anim_8072740 +_080CACE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CACE8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CAC44 + + thumb_func_start sub_80CACEC +sub_80CACEC: @ 80CACEC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CAD06 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080CAD0E +_080CAD06: + adds r0, r4, 0 + bl move_anim_task_del + b _080CAD4A +_080CAD0E: + ldr r0, _080CAD2C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CAD34 + ldr r0, _080CAD30 @ =REG_BG2CNT + ldrb r1, [r0] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0] + b _080CAD44 + .align 2, 0 +_080CAD2C: .4byte gUnknown_0202F7C9 +_080CAD30: .4byte REG_BG2CNT +_080CAD34: + ldr r2, _080CAD50 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CAD44: + adds r0, r4, 0 + bl move_anim_task_del +_080CAD4A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CAD50: .4byte REG_BG1CNT + thumb_func_end sub_80CACEC + + thumb_func_start sub_80CAD54 +sub_80CAD54: @ 80CAD54 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r5, _080CAD9C @ =gUnknown_03004B00 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080CADA0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080CADA4 @ =sub_80CADA8 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAD9C: .4byte gUnknown_03004B00 +_080CADA0: .4byte gUnknown_0202F7C8 +_080CADA4: .4byte sub_80CADA8 + thumb_func_end sub_80CAD54 + + thumb_func_start sub_80CADA8 +sub_80CADA8: @ 80CADA8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CAE14 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x5 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080CADF4 + ldr r0, _080CADF0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + b _080CADFE + .align 2, 0 +_080CADF0: .4byte gUnknown_0202F7C8 +_080CADF4: + ldr r0, _080CAE10 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079E90 + adds r0, 0x1 +_080CADFE: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CAE1A + .align 2, 0 +_080CAE10: .4byte gUnknown_0202F7C8 +_080CAE14: + adds r0, r4, 0 + bl move_anim_8072740 +_080CAE1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CADA8 + + thumb_func_start sub_80CAE20 +sub_80CAE20: @ 80CAE20 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080CAE68 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldr r0, _080CAE6C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x4] + adds r0, r5 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r4, 0x38] + ldr r1, _080CAE70 @ =sub_80CAE74 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAE68: .4byte gUnknown_03004B00 +_080CAE6C: .4byte gUnknown_0202F7C8 +_080CAE70: .4byte sub_80CAE74 + thumb_func_end sub_80CAE20 + + thumb_func_start sub_80CAE74 +sub_80CAE74: @ 80CAE74 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CAECC + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x3B + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080CAEAC + adds r0, r1, 0 + subs r0, 0xBB + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _080CAEC0 +_080CAEAC: + ldrb r2, [r4, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + eors r1, r0 + lsls r1, 1 + subs r0, 0x47 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] +_080CAEC0: + ldrh r0, [r4, 0x38] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CAED2 +_080CAECC: + adds r0, r4, 0 + bl move_anim_8072740 +_080CAED2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAE74 + + thumb_func_start sub_80CAED8 +sub_80CAED8: @ 80CAED8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CAF14 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080CAF18 @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldr r0, _080CAF1C @ =sub_80CAF20 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CAF14: .4byte gUnknown_0202F7C8 +_080CAF18: .4byte gUnknown_03004B00 +_080CAF1C: .4byte sub_80CAF20 + thumb_func_end sub_80CAED8 + + thumb_func_start sub_80CAF20 +sub_80CAF20: @ 80CAF20 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x32] + movs r2, 0x32 + ldrsh r3, [r1, r2] + cmp r3, 0 + bne _080CAF54 + ldrh r0, [r1, 0x30] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + beq _080CAF42 + movs r0, 0x80 + strh r0, [r1, 0x2E] + strh r3, [r1, 0x30] + strh r3, [r1, 0x32] + b _080CAF48 +_080CAF42: + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + strh r2, [r1, 0x32] +_080CAF48: + ldr r0, _080CAF50 @ =sub_80CAF6C + str r0, [r1, 0x1C] + b _080CAF68 + .align 2, 0 +_080CAF50: .4byte sub_80CAF6C +_080CAF54: + subs r0, 0x1 + strh r0, [r1, 0x32] + ldrh r0, [r1, 0x2E] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] +_080CAF68: + pop {r0} + bx r0 + thumb_func_end sub_80CAF20 + + thumb_func_start sub_80CAF6C +sub_80CAF6C: @ 80CAF6C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CAF8C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAF90 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin + negs r0, r0 + b _080CAF9A + .align 2, 0 +_080CAF8C: .4byte gUnknown_0202F7C8 +_080CAF90: + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x19 + bl Sin +_080CAF9A: + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CAFBA + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] +_080CAFBA: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080CAFC8 + adds r0, r4, 0 + bl move_anim_8072740 +_080CAFC8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CAF6C + + thumb_func_start sub_80CAFD0 +sub_80CAFD0: @ 80CAFD0 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080CB024 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CAFF0 + ldr r1, _080CB028 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080CAFF0: + ldr r6, _080CB028 @ =gUnknown_03004B00 + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CB030 + ldr r4, _080CB02C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + b _080CB050 + .align 2, 0 +_080CB024: .4byte gUnknown_0202F7C8 +_080CB028: .4byte gUnknown_03004B00 +_080CB02C: .4byte gUnknown_0202F7C9 +_080CB030: + ldr r0, _080CB07C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 +_080CB050: + strh r0, [r5, 0x36] + ldr r0, _080CB080 @ =gUnknown_03004B00 + ldrh r0, [r0, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080CB084 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080CB07C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080CB088 + movs r0, 0x1 + b _080CB08A + .align 2, 0 +_080CB07C: .4byte gUnknown_0202F7C9 +_080CB080: .4byte gUnknown_03004B00 +_080CB084: .4byte gUnknown_0202F7C8 +_080CB088: + movs r0, 0 +_080CB08A: + strh r0, [r5, 0x2E] + ldr r0, _080CB098 @ =sub_80CB09C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB098: .4byte sub_80CB09C + thumb_func_end sub_80CAFD0 + + thumb_func_start sub_80CB09C +sub_80CB09C: @ 80CB09C + push {r4-r7,lr} + adds r6, r0, 0 + movs r7, 0 + ldrh r5, [r6, 0x2E] + ldrh r4, [r6, 0x3C] + movs r0, 0x1 + strh r0, [r6, 0x2E] + adds r0, r6, 0 + bl sub_8078718 + ldrh r0, [r6, 0x3C] + strh r5, [r6, 0x2E] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0xC8 + ble _080CB0CE + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x37 + bgt _080CB0CE + ldrh r0, [r6, 0x6] + cmp r0, 0 + bne _080CB0D4 + adds r0, 0x1 + strh r0, [r6, 0x6] +_080CB0CE: + ldrh r0, [r6, 0x6] + cmp r0, 0 + beq _080CB106 +_080CB0D4: + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080CB106 + adds r3, r6, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r6, 0x6] + adds r0, 0x1 + strh r0, [r6, 0x6] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bne _080CB106 + movs r7, 0x1 +_080CB106: + movs r2, 0x20 + ldrsh r0, [r6, r2] + movs r2, 0x24 + ldrsh r1, [r6, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080CB130 + movs r0, 0x22 + ldrsh r1, [r6, r0] + movs r2, 0x26 + ldrsh r0, [r6, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080CB130 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080CB132 +_080CB130: + movs r7, 0x1 +_080CB132: + cmp r7, 0 + beq _080CB13C + adds r0, r6, 0 + bl move_anim_8072740 +_080CB13C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80CB09C + + thumb_func_start sub_80CB144 +sub_80CB144: @ 80CB144 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CB170 + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CB170 + ldr r0, _080CB198 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC +_080CB170: + ldrh r0, [r4, 0x22] + adds r0, 0x20 + strh r0, [r4, 0x22] + ldr r1, _080CB19C @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x36] + ldr r0, _080CB1A0 @ =sub_80CB1A4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB198: .4byte gUnknown_0202F7C9 +_080CB19C: .4byte gUnknown_03004B00 +_080CB1A0: .4byte sub_80CB1A4 + thumb_func_end sub_80CB144 + + thumb_func_start sub_80CB1A4 +sub_80CB1A4: @ 80CB1A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + bne _080CB1BA + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + b _080CB1C8 +_080CB1BA: + cmp r0, 0 + ble _080CB1C8 + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + subs r0, r1, 0x2 + strh r0, [r4, 0x30] +_080CB1C8: + ldrh r3, [r4, 0x32] + ldrh r5, [r4, 0x38] + adds r2, r3, r5 + strh r2, [r4, 0x38] + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r5, 0x36 + ldrsh r0, [r4, r5] + cmp r1, r0 + bge _080CB1E0 + adds r0, r2, r3 + strh r0, [r4, 0x38] +_080CB1E0: + ldrh r1, [r4, 0x38] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r5, 0x38 + ldrsh r0, [r4, r5] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080CB220 + ldr r0, _080CB21C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + b _080CB22E + .align 2, 0 +_080CB21C: .4byte gUnknown_0202F7C9 +_080CB220: + ldr r0, _080CB258 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 +_080CB22E: + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080CB252 + adds r0, r4, 0 + bl move_anim_8072740 +_080CB252: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB258: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80CB1A4 + + thumb_func_start sub_80CB25C +sub_80CB25C: @ 80CB25C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8078764 + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r4, _080CB290 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080CB294 @ =sub_80CB298 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB290: .4byte gUnknown_03004B00 +_080CB294: .4byte sub_80CB298 + thumb_func_end sub_80CB25C + + thumb_func_start sub_80CB298 +sub_80CB298: @ 80CB298 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CB2C8 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080CB2CC @ =0x0000ffff + cmp r1, r0 + bne _080CB2C2 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x2E] + ldr r0, _080CB2D0 @ =sub_80CB2D4 + str r0, [r4, 0x1C] +_080CB2C2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB2C8: .4byte gUnknown_03004B00 +_080CB2CC: .4byte 0x0000ffff +_080CB2D0: .4byte sub_80CB2D4 + thumb_func_end sub_80CB298 + + thumb_func_start sub_80CB2D4 +sub_80CB2D4: @ 80CB2D4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CB2EC + ldrh r0, [r4, 0x2E] + adds r0, 0xB + b _080CB2F0 +_080CB2EC: + ldrh r0, [r4, 0x2E] + subs r0, 0xB +_080CB2F0: + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080CB30C + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x32] +_080CB30C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CB33A + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + cmp r0, 0 + ble _080CB334 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAffineAnim + b _080CB33A +_080CB334: + adds r0, r4, 0 + bl move_anim_8072740 +_080CB33A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CB2D4 + + thumb_func_start sub_80CB340 +sub_80CB340: @ 80CB340 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CB36C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080CB370 + adds r0, r4, 0 + bl move_anim_task_del + b _080CB396 + .align 2, 0 +_080CB36C: .4byte gSprites +_080CB370: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8078E70 + ldr r1, _080CB39C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080CB3A0 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r0, 0x8] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xA] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x1E] + ldr r1, _080CB3A4 @ =sub_80CB3A8 + str r1, [r0] +_080CB396: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CB39C: .4byte gTasks +_080CB3A0: .4byte gUnknown_03004B00 +_080CB3A4: .4byte sub_80CB3A8 + thumb_func_end sub_80CB340 + + thumb_func_start sub_80CB3A8 +sub_80CB3A8: @ 80CB3A8 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080CB428 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + ldrh r0, [r4, 0x1C] + adds r1, r0 + strh r1, [r4, 0x1C] + ldr r2, _080CB42C @ =gSprites + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r2 + lsls r1, 16 + asrs r1, 24 + strh r1, [r5, 0x24] + ldr r0, _080CB430 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CB3F2 + ldrh r0, [r5, 0x24] + negs r0, r0 + strh r0, [r5, 0x24] +_080CB3F2: + ldrh r0, [r4, 0x1E] + adds r0, 0x10 + strh r0, [r4, 0x1E] + movs r0, 0x1E + ldrsh r2, [r4, r0] + adds r0, r6, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r6, 0 + bl sub_8079A64 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080CB420 + strh r0, [r4, 0x8] + ldr r0, _080CB434 @ =sub_80CB438 + str r0, [r4] +_080CB420: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB428: .4byte gTasks +_080CB42C: .4byte gSprites +_080CB430: .4byte gUnknown_0202F7C9 +_080CB434: .4byte sub_80CB438 + thumb_func_end sub_80CB3A8 + + thumb_func_start sub_80CB438 +sub_80CB438: @ 80CB438 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080CB484 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080CB488 @ =0x0000ffff + cmp r1, r0 + bne _080CB494 + ldr r0, _080CB48C @ =gTasks + lsls r2, r3, 2 + adds r1, r2, r3 + lsls r1, 3 + adds r6, r1, r0 + movs r1, 0x8 + ldrsh r5, [r6, r1] + adds r4, r0, 0 + cmp r5, 0 + bne _080CB4A8 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _080CB490 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x24] + strh r5, [r0, 0x26] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _080CB4C2 + .align 2, 0 +_080CB484: .4byte gUnknown_03004B00 +_080CB488: .4byte 0x0000ffff +_080CB48C: .4byte gTasks +_080CB490: .4byte gSprites +_080CB494: + ldr r1, _080CB4C8 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + movs r4, 0x8 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0 + beq _080CB4C2 +_080CB4A8: + adds r1, r2, r3 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080CB4C2 + adds r0, r3, 0 + bl move_anim_task_del +_080CB4C2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB4C8: .4byte gTasks + thumb_func_end sub_80CB438 + + thumb_func_start sub_80CB4CC +sub_80CB4CC: @ 80CB4CC + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CB4DE + cmp r0, 0x1 + beq _080CB538 + b _080CB58A +_080CB4DE: + ldr r6, _080CB530 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CB4F6 + ldr r1, _080CB534 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080CB4F6: + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CB534 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080CB58A + .align 2, 0 +_080CB530: .4byte gUnknown_0202F7C9 +_080CB534: .4byte gUnknown_03004B00 +_080CB538: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CB58A + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldr r4, _080CB590 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080CB594 @ =sub_8078CC0 + str r0, [r5, 0x1C] + ldr r1, _080CB598 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CB58A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB590: .4byte gUnknown_0202F7C8 +_080CB594: .4byte sub_8078CC0 +_080CB598: .4byte move_anim_8072740 + thumb_func_end sub_80CB4CC + + thumb_func_start sub_80CB59C +sub_80CB59C: @ 80CB59C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CB608 + ldr r4, _080CB614 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080CB618 @ =gUnknown_03004B00 + ldrh r0, [r4] + strh r0, [r5, 0x24] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x26] + ldrb r0, [r4, 0x4] + adds r0, 0x1E + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r4, 0x6] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r2, 0x22 + ldrsh r0, [r5, r2] + movs r2, 0x26 + ldrsh r1, [r5, r2] + adds r0, r1 + cmp r0, 0x78 + ble _080CB608 + ldrh r0, [r5, 0x22] + adds r1, r0, 0 + subs r1, 0x78 + ldrh r2, [r5, 0x26] + adds r0, r2 + adds r1, r0 + strh r1, [r5, 0x22] +_080CB608: + ldr r0, _080CB61C @ =sub_80CB710 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB614: .4byte gUnknown_0202F7C8 +_080CB618: .4byte gUnknown_03004B00 +_080CB61C: .4byte sub_80CB710 + thumb_func_end sub_80CB59C + + thumb_func_start sub_80CB620 +sub_80CB620: @ 80CB620 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + mov r9, r0 + ldr r4, _080CB6FC @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _080CB700 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + subs r4, r5 + lsls r4, 16 + lsrs r2, 24 + mov r1, r8 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + lsrs r3, r4, 16 + mov r10, r3 + asrs r4, 16 + ldr r6, _080CB704 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + muls r0, r4 + movs r1, 0x64 + str r2, [sp] + bl __divsi3 + adds r5, r0 + mov r3, r9 + strh r5, [r3, 0x20] + ldr r2, [sp] + lsls r0, r2, 16 + asrs r0, 16 + movs r3, 0 + ldrsh r1, [r6, r3] + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + add r8, r0 + mov r1, r8 + mov r0, r9 + strh r1, [r0, 0x22] + ldrh r0, [r6, 0x2] + mov r3, r9 + strh r0, [r3, 0x24] + ldrh r0, [r6, 0x4] + strh r0, [r3, 0x26] + ldrb r0, [r6, 0x6] + adds r0, 0x1E + mov r1, r9 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0x8] + mov r0, r9 + bl StartSpriteAnim + ldrh r0, [r6, 0xA] + mov r1, r9 + strh r0, [r1, 0x32] + ldr r0, _080CB708 @ =sub_80CB710 + str r0, [r1, 0x1C] + ldr r1, _080CB70C @ =gUnknown_03000728 + mov r3, r9 + ldrh r0, [r3, 0x20] + strh r0, [r1] + ldrh r0, [r3, 0x22] + strh r0, [r1, 0x2] + mov r0, r10 + strh r0, [r1, 0x4] + ldr r2, [sp] + strh r2, [r1, 0x6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB6FC: .4byte gUnknown_0202F7C8 +_080CB700: .4byte gUnknown_0202F7C9 +_080CB704: .4byte gUnknown_03004B00 +_080CB708: .4byte sub_80CB710 +_080CB70C: .4byte gUnknown_03000728 + thumb_func_end sub_80CB620 + + thumb_func_start sub_80CB710 +sub_80CB710: @ 80CB710 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + adds r1, 0x1 + strh r1, [r3, 0x2E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x32 + ldrsh r0, [r3, r2] + subs r0, 0xA + cmp r1, r0 + ble _080CB750 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + movs r2, 0x3E + adds r2, r3 + mov r12, r2 + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080CB750: + movs r2, 0x2E + ldrsh r1, [r3, r2] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r1, r0 + ble _080CB762 + adds r0, r3, 0 + bl move_anim_8072740 +_080CB762: + pop {r0} + bx r0 + thumb_func_end sub_80CB710 + + thumb_func_start sub_80CB768 +sub_80CB768: @ 80CB768 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CB7A8 + ldr r5, _080CB7E4 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CB7E8 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x30] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x32] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x34] +_080CB7A8: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] + ldrh r1, [r6, 0x30] + muls r0, r1 + strh r0, [r6, 0x24] + movs r2, 0x2E + ldrsh r1, [r6, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0xFF + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x34 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080CB7DE + adds r0, r6, 0 + bl move_anim_8072740 +_080CB7DE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB7E4: .4byte gUnknown_0202F7C8 +_080CB7E8: .4byte gUnknown_03004B00 + thumb_func_end sub_80CB768 + + thumb_func_start sub_80CB7EC +sub_80CB7EC: @ 80CB7EC + push {r4,r5,lr} + movs r2, 0x20 + ldrsh r4, [r0, r2] + lsls r4, 8 + movs r3, 0x22 + ldrsh r2, [r0, r3] + orrs r4, r2 + movs r5, 0x3A + ldrsh r2, [r0, r5] + lsls r2, 8 + movs r5, 0x3C + ldrsh r3, [r0, r5] + orrs r2, r3 + lsls r1, 8 + strh r4, [r0, 0x38] + strh r2, [r0, 0x3A] + strh r1, [r0, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CB7EC + + thumb_func_start sub_80CB814 +sub_80CB814: @ 80CB814 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + ldrh r0, [r0, 0x38] + lsrs r1, r0, 8 + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + mov r1, r8 + ldrh r0, [r1, 0x3A] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r4, r0, 24 + ldrh r1, [r1, 0x3C] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0xFF + ands r3, r1 + cmp r2, 0 + bne _080CB84E + movs r2, 0x20 + negs r2, r2 + b _080CB856 +_080CB84E: + cmp r2, 0xFF + bne _080CB856 + movs r2, 0x88 + lsls r2, 1 +_080CB856: + mov r0, r9 + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + mov r1, r10 + subs r0, r2, r1 + lsls r5, r3, 16 + asrs r5, 16 + muls r0, r5 + lsls r1, r6, 16 + asrs r7, r1, 16 + adds r1, r7, 0 + bl __divsi3 + adds r6, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r5 + adds r1, r7, 0 + bl __divsi3 + add r6, r10 + mov r1, r8 + strh r6, [r1, 0x20] + add r0, r9 + strh r0, [r1, 0x22] + adds r5, 0x1 + lsls r5, 16 + lsrs r3, r5, 16 + asrs r5, 16 + cmp r5, r7 + beq _080CB8A8 + lsls r1, r7, 8 + lsls r0, r3, 16 + asrs r0, 16 + orrs r0, r1 + mov r1, r8 + strh r0, [r1, 0x3C] + movs r0, 0 + b _080CB8AA +_080CB8A8: + movs r0, 0x1 +_080CB8AA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80CB814 + + thumb_func_start sub_80CB8B8 +sub_80CB8B8: @ 80CB8B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080CB8CC + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080CB8CC: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _080CB8E0 + adds r0, r4, 0 + bl move_anim_8072740 +_080CB8E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CB8B8 + + thumb_func_start sub_80CB8E8 +sub_80CB8E8: @ 80CB8E8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CB912 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CB912: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CB942 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080CB948 @ =sub_80CB8B8 + str r0, [r4, 0x1C] +_080CB942: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CB948: .4byte sub_80CB8B8 + thumb_func_end sub_80CB8E8 + + thumb_func_start sub_80CB94C +sub_80CB94C: @ 80CB94C + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r4, _080CB994 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CB998 @ =gUnknown_0202F7C8 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080CB99C + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x1 + b _080CB9AE + .align 2, 0 +_080CB994: .4byte gUnknown_0202F7C9 +_080CB998: .4byte gUnknown_0202F7C8 +_080CB99C: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x3 +_080CB9AE: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CB9C0 @ =sub_80CB8E8 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CB9C0: .4byte sub_80CB8E8 + thumb_func_end sub_80CB94C + + thumb_func_start sub_80CB9C4 +sub_80CB9C4: @ 80CB9C4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CB9EE + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CB9EE: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CBA20 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + bl move_anim_8072740 +_080CBA20: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CB9C4 + + thumb_func_start sub_80CBA28 +sub_80CBA28: @ 80CBA28 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080CBA64 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080CBA6C + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80CB7EC + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBA68 @ =sub_80CB8E8 + b _080CBA96 + .align 2, 0 +_080CBA64: .4byte gUnknown_0202F7C9 +_080CBA68: .4byte sub_80CB8E8 +_080CBA6C: + movs r0, 0xFF + strh r0, [r5, 0x3A] + adds r0, r6, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CBA84 + movs r0, 0 + strh r0, [r5, 0x3A] +_080CBA84: + adds r0, r5, 0 + movs r1, 0x28 + bl sub_80CB7EC + movs r0, 0x3 + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBAA0 @ =sub_80CB9C4 +_080CBA96: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBAA0: .4byte sub_80CB9C4 + thumb_func_end sub_80CBA28 + + thumb_func_start sub_80CBAA4 +sub_80CBAA4: @ 80CBAA4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CBABE + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 + ldr r0, _080CBAE4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x30] +_080CBABE: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + muls r0, r1 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CBADE + adds r0, r4, 0 + bl move_anim_8072740 +_080CBADE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CBAE4: .4byte gUnknown_03004B00 + thumb_func_end sub_80CBAA4 + + thumb_func_start sub_80CBAE8 +sub_80CBAE8: @ 80CBAE8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_8078764 + ldr r4, _080CBB30 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CBB34 @ =gUnknown_0202F7C9 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080CBB38 + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x1 + b _080CBB4A + .align 2, 0 +_080CBB30: .4byte gUnknown_0202F7C8 +_080CBB34: .4byte gUnknown_0202F7C9 +_080CBB38: + strh r6, [r5, 0x3A] + adds r0, r2, 0 + adds r0, 0xA + strh r0, [r5, 0x3C] + adds r0, r5, 0 + movs r1, 0x3C + bl sub_80CB7EC + movs r0, 0x3 +_080CBB4A: + strh r0, [r5, 0x34] + movs r0, 0x3C + strh r0, [r5, 0x36] + ldr r0, _080CBB5C @ =sub_80CBB60 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBB5C: .4byte sub_80CBB60 + thumb_func_end sub_80CBAE8 + + thumb_func_start sub_80CBB60 +sub_80CBB60: @ 80CBB60 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 7 + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __divsi3 + ldrh r1, [r4, 0x2E] + adds r1, r0 + movs r5, 0 + strh r1, [r4, 0x2E] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7F + ble _080CBB8A + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + strh r5, [r4, 0x2E] +_080CBB8A: + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + ldrsh r2, [r4, r1] + lsls r2, 3 + movs r1, 0x1E + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bne _080CBBBE + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x7D + bl PlaySE12WithPanning +_080CBBBE: + adds r0, r4, 0 + bl sub_80CB814 + lsls r0, 24 + cmp r0, 0 + beq _080CBBE6 + strh r5, [r4, 0x26] + strh r5, [r4, 0x2E] + ldr r0, _080CBBEC @ =sub_80CB8B8 + str r0, [r4, 0x1C] + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x7D + bl PlaySE12WithPanning +_080CBBE6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CBBEC: .4byte sub_80CB8B8 + thumb_func_end sub_80CBB60 + + thumb_func_start sub_80CBBF0 +sub_80CBBF0: @ 80CBBF0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CBC84 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CBC18 + ldr r0, _080CBC14 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x2] + strh r1, [r4, 0x30] + movs r1, 0x78 + strh r1, [r4, 0x20] + adds r5, r0, 0 + b _080CBC3A + .align 2, 0 +_080CBC14: .4byte gUnknown_03004B00 +_080CBC18: + ldr r0, _080CBC74 @ =gUnknown_03004B00 + movs r1, 0x2 + ldrsh r3, [r0, r1] + adds r1, r3, 0 + subs r1, 0x20 + adds r2, r1, 0 + adds r5, r0, 0 + cmp r1, 0 + bge _080CBC2E + adds r2, r3, 0 + adds r2, 0xDF +_080CBC2E: + asrs r0, r2, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + movs r0, 0x46 + strh r0, [r4, 0x20] +_080CBC3A: + ldrh r0, [r5] + strh r0, [r4, 0x22] + strh r0, [r4, 0x32] + movs r0, 0x14 + strh r0, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + ldr r0, _080CBC78 @ =sub_80CBC8C + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080CBC7C + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080CBC82 + .align 2, 0 +_080CBC74: .4byte gUnknown_03004B00 +_080CBC78: .4byte sub_80CBC8C +_080CBC7C: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080CBC82: + strb r0, [r1] +_080CBC84: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CBBF0 + + thumb_func_start sub_80CBC8C +sub_80CBC8C: @ 80CBC8C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CBC9E + cmp r0, 0x1 + beq _080CBCCE + b _080CBCEE +_080CBC9E: + ldrh r5, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x4E + ble _080CBCB6 + movs r0, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080CBCEE +_080CBCB6: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + adds r0, r5, r0 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x36] + adds r1, 0x3 + strh r1, [r4, 0x36] + strh r0, [r4, 0x22] + b _080CBCEE +_080CBCCE: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CBCEE + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080CBCEE + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x32] + ldr r0, _080CBCF4 @ =sub_80CBCF8 + str r0, [r4, 0x1C] +_080CBCEE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CBCF4: .4byte sub_80CBCF8 + thumb_func_end sub_80CBC8C + + thumb_func_start sub_80CBCF8 +sub_80CBCF8: @ 80CBCF8 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080CBD3C @ =gUnknown_083D680C + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r3, r0, r1 + adds r0, r5, 0x1 + adds r0, r3, r0 + ldrh r2, [r4, 0x32] + movs r6, 0x32 + ldrsh r1, [r4, r6] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080CBD44 + adds r0, r5, 0x2 + adds r0, r3, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x7F + bne _080CBD30 + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080CBD40 @ =sub_80CBDB0 + str r0, [r4, 0x1C] +_080CBD30: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CBDAA + .align 2, 0 +_080CBD3C: .4byte gUnknown_083D680C +_080CBD40: .4byte sub_80CBDB0 +_080CBD44: + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + adds r1, r0, r5 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r1, r5, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r1, [r4, 0x30] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080CBD92 + ldrh r0, [r4, 0x30] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBE + bhi _080CBD8A + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F + b _080CBD90 +_080CBD8A: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D +_080CBD90: + strb r0, [r1] +_080CBD92: + movs r6, 0x30 + ldrsh r0, [r4, r6] + movs r1, 0x3C + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] +_080CBDAA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CBCF8 + + thumb_func_start sub_80CBDB0 +sub_80CBDB0: @ 80CBDB0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080CBDC2 + adds r0, r4, 0 + bl move_anim_8072740 +_080CBDC2: + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CBDB0 + + thumb_func_start sub_80CBDF4 +sub_80CBDF4: @ 80CBDF4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080CBF48 @ =gTasks + adds r5, r0, r1 + ldr r4, _080CBF4C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + strh r0, [r5, 0x10] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + strh r0, [r5, 0x1C] + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0x1 + bne _080CBE5C + movs r1, 0x1 +_080CBE5C: + strh r1, [r5, 0x12] + movs r3, 0x12 + ldrsh r0, [r5, r3] + lsls r0, 6 + movs r1, 0x38 + subs r1, r0 + strh r1, [r5, 0x1A] + ldrh r0, [r5, 0x16] + subs r0, r1 + ldrh r1, [r5, 0x14] + adds r0, r1 + strh r0, [r5, 0x18] + ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884 + movs r2, 0x18 + ldrsh r1, [r5, r2] + movs r3, 0x1A + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + cmp r0, 0x40 + bne _080CBE94 + adds r0, r6, 0 + bl move_anim_task_del +_080CBE94: + ldr r4, _080CBF54 @ =gSprites + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x2E] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x18] + strh r1, [r0, 0x30] + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r1, 0x1C + ldrsh r0, [r5, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r5, r3] + muls r1, r0 + ldrh r0, [r5, 0x14] + subs r0, r1 + strh r0, [r2, 0x32] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x1A] + strh r1, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x1E + ldrsh r0, [r5, r2] + lsrs r2, r0, 31 + adds r0, r2 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r2, [r5, r3] + muls r0, r2 + ldrh r2, [r5, 0x16] + adds r0, r2 + strh r0, [r1, 0x36] + movs r3, 0xC + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80CC338 + movs r1, 0xC + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x38] + movs r2, 0xC + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_80786EC + ldr r0, _080CBF58 @ =sub_80CBF5C + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CBF48: .4byte gTasks +_080CBF4C: .4byte gUnknown_0202F7C9 +_080CBF50: .4byte gSpriteTemplate_83D6884 +_080CBF54: .4byte gSprites +_080CBF58: .4byte sub_80CBF5C + thumb_func_end sub_80CBDF4 + + thumb_func_start sub_80CBF5C +sub_80CBF5C: @ 80CBF5C + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CBFA0 @ =gTasks + adds r6, r0, r1 + movs r0, 0xC + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080CBFA4 @ =gSprites + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r5, [r6, r1] + cmp r5, 0x7 + bne _080CBF84 + b _080CC1B4 +_080CBF84: + cmp r5, 0x7 + bgt _080CBFD2 + cmp r5, 0x3 + bne _080CBF8E + b _080CC0A6 +_080CBF8E: + cmp r5, 0x3 + bgt _080CBFA8 + cmp r5, 0x1 + beq _080CC038 + cmp r5, 0x1 + bgt _080CC088 + cmp r5, 0 + beq _080CC01A + b _080CC330 + .align 2, 0 +_080CBFA0: .4byte gTasks +_080CBFA4: .4byte gSprites +_080CBFA8: + cmp r5, 0x5 + bne _080CBFAE + b _080CC11C +_080CBFAE: + cmp r5, 0x5 + ble _080CBFB4 + b _080CC196 +_080CBFB4: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CBFCA + b _080CC330 +_080CBFCA: + movs r0, 0x5 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CBFD2: + cmp r5, 0xB + bne _080CBFD8 + b _080CC298 +_080CBFD8: + cmp r5, 0xB + bgt _080CC006 + cmp r5, 0x9 + bne _080CBFE2 + b _080CC206 +_080CBFE2: + cmp r5, 0x9 + ble _080CBFE8 + b _080CC27C +_080CBFE8: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CBFFE + b _080CC330 +_080CBFFE: + movs r0, 0x9 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC006: + cmp r5, 0xD + bne _080CC00C + b _080CC30A +_080CC00C: + cmp r5, 0xD + bge _080CC012 + b _080CC2EA +_080CC012: + cmp r5, 0xFF + bne _080CC018 + b _080CC31A +_080CC018: + b _080CC330 +_080CC01A: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC030 + b _080CC330 +_080CC030: + movs r0, 0x1 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC038: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r0, [r6, 0x10] + adds r0, 0x2 + strh r0, [r6, 0x10] + strh r5, [r6, 0xE] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC088: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC09E + b _080CC330 +_080CC09E: + movs r0, 0x3 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC0A6: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r1, r0 + ldrh r0, [r6, 0x16] + subs r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + movs r0, 0x2 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC11C: + ldrh r1, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r1, r3 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x14] + adds r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r2, 0x1E + ldrsh r0, [r6, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r0, r1 + ldrh r1, [r6, 0x16] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x3 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC196: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080CC1AC + b _080CC330 +_080CC1AC: + movs r0, 0x7 + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC1B4: + ldrh r2, [r4, 0x24] + ldrh r3, [r4, 0x20] + adds r2, r3 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x14] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x16] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + adds r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x4 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC206: + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r1, r0 + movs r0, 0 + strh r1, [r4, 0x20] + ldrh r2, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r2, r3 + strh r2, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r3, 0x12 + ldrsh r1, [r6, r3] + muls r1, r0 + ldrh r0, [r6, 0x14] + subs r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + movs r1, 0x1E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, 0xA + movs r2, 0x12 + ldrsh r1, [r6, r2] + muls r0, r1 + ldrh r3, [r6, 0x16] + adds r0, r3 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + movs r0, 0x5 + strh r0, [r6, 0xE] + ldrh r0, [r6, 0x10] + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC27C: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CC330 + movs r0, 0xB + strh r0, [r6, 0x26] + movs r0, 0xFF + b _080CC32E +_080CC298: + ldrh r2, [r4, 0x24] + ldrh r0, [r4, 0x20] + adds r2, r0 + movs r0, 0 + strh r2, [r4, 0x20] + ldrh r1, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0xA + strh r0, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrh r0, [r6, 0x18] + strh r0, [r4, 0x32] + strh r1, [r4, 0x34] + ldrh r0, [r6, 0x1A] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80CC338 + strh r0, [r4, 0x38] + ldrh r1, [r6, 0x10] + subs r1, 0x2 + strh r1, [r6, 0x10] + movs r0, 0x6 + strh r0, [r6, 0xE] + adds r0, r4, 0 + adds r0, 0x43 + strb r1, [r0] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl sub_80786EC + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC2EA: + adds r0, r6, 0 + adds r1, r2, 0 + bl sub_80CC358 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080CC330 + adds r0, r4, 0 + bl DestroySprite + ldrh r0, [r6, 0x8] + adds r0, 0x1 + b _080CC32E +_080CC30A: + movs r1, 0x20 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CC330 + adds r0, r2, 0 + bl move_anim_task_del + b _080CC330 +_080CC31A: + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080CC330 + movs r0, 0 + strh r0, [r6, 0xA] + ldrh r0, [r6, 0x26] +_080CC32E: + strh r0, [r6, 0x8] +_080CC330: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CBF5C + + thumb_func_start sub_80CC338 +sub_80CC338: @ 80CC338 + push {lr} + movs r2, 0x8 + movs r3, 0x36 + ldrsh r1, [r0, r3] + movs r3, 0x22 + ldrsh r0, [r0, r3] + cmp r1, r0 + bge _080CC34E + negs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 +_080CC34E: + lsls r0, r2, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80CC338 + + thumb_func_start sub_80CC358 +sub_80CC358: @ 80CC358 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + ldrh r0, [r6, 0x24] + adds r0, 0x1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080CC3EE + movs r0, 0 + strh r0, [r6, 0x24] + ldr r0, _080CC3F8 @ =gSprites + mov r8, r0 + movs r2, 0xC + ldrsh r1, [r6, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + ldrh r2, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r2, r0 + ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldrb r3, [r6, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080CC3EE + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r0, r8 + adds r4, r5, r0 + strh r7, [r4, 0x3A] + movs r0, 0xC + strh r0, [r4, 0x3C] + ldr r0, _080CC400 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldrh r2, [r6, 0x22] + movs r0, 0x1 + ands r0, r2 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + ldrb r1, [r6, 0xE] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r6, 0x10] + adds r4, 0x43 + strb r0, [r4] + mov r0, r8 + adds r0, 0x1C + adds r5, r0 + ldr r0, _080CC404 @ =sub_80CC408 + str r0, [r5] +_080CC3EE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC3F8: .4byte gSprites +_080CC3FC: .4byte gSpriteTemplate_83D6884 +_080CC400: .4byte gTasks +_080CC404: .4byte sub_80CC408 + thumb_func_end sub_80CC358 + + thumb_func_start sub_80CC408 +sub_80CC408: @ 80CC408 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CC46A + movs r0, 0 + strh r0, [r4, 0x2E] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CC46A + ldr r3, _080CC470 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080CC46A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC470: .4byte gTasks + thumb_func_end sub_80CC408 + + thumb_func_start sub_80CC474 +sub_80CC474: @ 80CC474 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080CC488 @ =gUnknown_03004B00 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CC490 + ldr r0, _080CC48C @ =gUnknown_0202F7C8 + b _080CC492 + .align 2, 0 +_080CC488: .4byte gUnknown_03004B00 +_080CC48C: .4byte gUnknown_0202F7C8 +_080CC490: + ldr r0, _080CC4B0 @ =gUnknown_0202F7C9 +_080CC492: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CC4BC + movs r0, 0 + strh r0, [r4, 0x36] + ldr r1, _080CC4B4 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080CC4B8 @ =0x0000fff0 + b _080CC4CC + .align 2, 0 +_080CC4B0: .4byte gUnknown_0202F7C9 +_080CC4B4: .4byte gUnknown_03004B00 +_080CC4B8: .4byte 0x0000fff0 +_080CC4BC: + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r1, _080CC4F0 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r4, 0x32] + movs r0, 0x80 + lsls r0, 1 +_080CC4CC: + strh r0, [r4, 0x20] + adds r7, r1, 0 + adds r5, r7, 0 + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x34] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080CC502 + cmp r0, 0x1 + bgt _080CC4F4 + cmp r0, 0 + beq _080CC4FE + b _080CC56C + .align 2, 0 +_080CC4F0: .4byte gUnknown_03004B00 +_080CC4F4: + cmp r0, 0x2 + beq _080CC508 + cmp r0, 0x3 + beq _080CC534 + b _080CC56C +_080CC4FE: + ldrh r0, [r5] + b _080CC518 +_080CC502: + ldrh r0, [r5] + strh r0, [r4, 0x22] + b _080CC54E +_080CC508: + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5] + adds r0, r5 +_080CC518: + strh r0, [r4, 0x22] + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080CC56C +_080CC534: + ldr r0, _080CC578 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7] + adds r0, r7 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move +_080CC54E: + adds r0, r6, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080CC56C: + ldr r0, _080CC57C @ =sub_80CC580 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC578: .4byte gUnknown_0202F7C9 +_080CC57C: .4byte sub_80CC580 + thumb_func_end sub_80CC474 + + thumb_func_start sub_80CC580 +sub_80CC580: @ 80CC580 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x3C + ldrsh r3, [r4, r0] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x30 + ldrsh r2, [r4, r1] + ldr r1, _080CC5D4 @ =gSineTable + movs r5, 0x2E + ldrsh r0, [r4, r5] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r0, 8 + strh r0, [r4, 0x26] + movs r2, 0x32 + ldrsh r0, [r4, r2] + muls r0, r3 + strh r0, [r4, 0x24] + movs r5, 0x34 + ldrsh r0, [r4, r5] + muls r0, r3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CC5D8 + movs r2, 0x24 + ldrsh r0, [r4, r2] + movs r5, 0x20 + ldrsh r1, [r4, r5] + adds r0, r1 + cmp r0, 0xF7 + ble _080CC5F0 + b _080CC5EA + .align 2, 0 +_080CC5D4: .4byte gSineTable +_080CC5D8: + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bgt _080CC5F0 +_080CC5EA: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CC5F0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CC580 + + thumb_func_start sub_80CC5F8 +sub_80CC5F8: @ 80CC5F8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080CC618 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CC61C + cmp r0, 0x1 + beq _080CC650 + b _080CC6AA + .align 2, 0 +_080CC618: .4byte gTasks +_080CC61C: + ldr r0, _080CC648 @ =0x0000274f + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r2, 0x80 + lsls r2, 1 + adds r4, r2, 0 + adds r0, r4 + strh r0, [r5, 0x18] + ldr r0, _080CC64C @ =0x000027b0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + adds r0, r4 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080CC6AA + .align 2, 0 +_080CC648: .4byte 0x0000274f +_080CC64C: .4byte 0x000027b0 +_080CC650: + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x1A] + lsls r0, 16 + cmp r0, 0 + blt _080CC6AA + strh r7, [r5, 0x1A] + ldrh r0, [r5, 0x18] + ldrb r2, [r5, 0x1C] + ldr r4, _080CC6C4 @ =gUnknown_083D6984 + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x20] + ldrb r2, [r5, 0x1C] + movs r3, 0x1E + ldrsh r1, [r5, r3] + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + bne _080CC6AA + strh r7, [r5, 0x1C] + ldrh r0, [r5, 0x1E] + adds r0, 0x1 + strh r0, [r5, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bne _080CC6AA + strh r7, [r5, 0x1E] +_080CC6AA: + ldr r0, _080CC6C8 @ =gUnknown_03004B00 + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080CC6BE + adds r0, r6, 0 + bl move_anim_task_del +_080CC6BE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC6C4: .4byte gUnknown_083D6984 +_080CC6C8: .4byte gUnknown_03004B00 + thumb_func_end sub_80CC5F8 + + thumb_func_start sub_80CC6CC +sub_80CC6CC: @ 80CC6CC + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r1, _080CC6E4 @ =gUnknown_03004B00 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080CC6E8 + adds r0, r6, 0 + bl move_anim_8072740 + b _080CC7C2 + .align 2, 0 +_080CC6E4: .4byte gUnknown_03004B00 +_080CC6E8: + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080CC6F8 + ldr r4, _080CC6F4 @ =gUnknown_0202F7C8 + b _080CC6FA + .align 2, 0 +_080CC6F4: .4byte gUnknown_0202F7C8 +_080CC6F8: + ldr r4, _080CC734 @ =gUnknown_0202F7C9 +_080CC6FA: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080CC738 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x8] + strh r1, [r6, 0x2E] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r7, r0, 0 + cmp r1, 0 + bne _080CC73C + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x20] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x22] + strh r5, [r6, 0x38] + strh r2, [r6, 0x3A] + b _080CC74C + .align 2, 0 +_080CC734: .4byte gUnknown_0202F7C9 +_080CC738: .4byte gUnknown_03004B00 +_080CC73C: + strh r5, [r6, 0x20] + strh r2, [r6, 0x22] + ldrh r0, [r7, 0x4] + adds r0, r5 + strh r0, [r6, 0x38] + ldrh r0, [r7, 0x6] + adds r0, r2 + strh r0, [r6, 0x3A] +_080CC74C: + ldrh r4, [r6, 0x20] + lsls r0, r4, 4 + strh r0, [r6, 0x30] + ldrh r5, [r6, 0x22] + lsls r0, r5, 4 + strh r0, [r6, 0x32] + movs r1, 0x38 + ldrsh r0, [r6, r1] + movs r2, 0x20 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x34] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x22 + ldrsh r1, [r6, r2] + subs r0, r1 + lsls r0, 4 + movs r3, 0x8 + ldrsh r1, [r7, r3] + bl __divsi3 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x38] + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r6, 0x3A] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CC7AE + ldr r1, _080CC7CC @ =0xffff8000 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080CC7AE: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r6, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldr r0, _080CC7D0 @ =sub_80CC7D4 + str r0, [r6, 0x1C] +_080CC7C2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CC7CC: .4byte 0xffff8000 +_080CC7D0: .4byte sub_80CC7D4 + thumb_func_end sub_80CC6CC + + thumb_func_start sub_80CC7D4 +sub_80CC7D4: @ 80CC7D4 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x2E] + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080CC804 + ldrh r0, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r0, r4 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r4, [r2, 0x32] + adds r1, r4 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x2E] + b _080CC80A +_080CC804: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080CC80A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CC7D4 + + thumb_func_start sub_80CC810 +sub_80CC810: @ 80CC810 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CC826 + adds r0, r2, 0 + bl move_anim_8072740 +_080CC826: + pop {r0} + bx r0 + thumb_func_end sub_80CC810 + + thumb_func_start sub_80CC82C +sub_80CC82C: @ 80CC82C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CC84C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CC854 + ldr r2, _080CC850 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + b _080CC860 + .align 2, 0 +_080CC84C: .4byte gUnknown_0202F7C8 +_080CC850: .4byte gUnknown_03004B00 +_080CC854: + ldr r0, _080CC878 @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080CC860: + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080CC87C @ =sub_8078600 + str r0, [r4, 0x1C] + ldr r1, _080CC880 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC878: .4byte gUnknown_03004B00 +_080CC87C: .4byte sub_8078600 +_080CC880: .4byte move_anim_8072740 + thumb_func_end sub_80CC82C + + thumb_func_start sub_80CC884 +sub_80CC884: @ 80CC884 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CC8BC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CC89E + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080CC89E: + ldr r0, _080CC8C0 @ =sub_80CC810 + str r0, [r5, 0x1C] + ldr r4, _080CC8C4 @ =gUnknown_03004B00 + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CC8BC: .4byte gUnknown_0202F7C8 +_080CC8C0: .4byte sub_80CC810 +_080CC8C4: .4byte gUnknown_03004B00 + thumb_func_end sub_80CC884 + + thumb_func_start sub_80CC8C8 +sub_80CC8C8: @ 80CC8C8 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080CC908 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080CC90C @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CC910 @ =sub_8078504 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CC908: .4byte gUnknown_03004B00 +_080CC90C: .4byte move_anim_8074EE0 +_080CC910: .4byte sub_8078504 + thumb_func_end sub_80CC8C8 + + thumb_func_start sub_80CC914 +sub_80CC914: @ 80CC914 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080CC964 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CC948 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080CC948: + ldr r0, _080CC968 @ =sub_80CCB00 + str r0, [r5, 0x1C] + ldr r0, _080CC96C @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080CC970 + ldrh r0, [r3] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + b _080CC984 + .align 2, 0 +_080CC964: .4byte gUnknown_0202F7C9 +_080CC968: .4byte sub_80CCB00 +_080CC96C: .4byte gUnknown_03004B00 +_080CC970: + ldrh r0, [r5, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r5, 0x20] + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CC984: + ldrh r0, [r3, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldr r1, _080CC9B8 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r5, 0x30] + adds r1, r0, r2 + strh r1, [r5, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CC9B2 + negs r0, r1 + strh r0, [r5, 0x30] +_080CC9B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CC9B8: .4byte 0xfffffc00 + thumb_func_end sub_80CC914 + + thumb_func_start sub_80CC9BC +sub_80CC9BC: @ 80CC9BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, _080CC9D8 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080CC9DC + cmp r0, 0x1 + ble _080CCA58 + cmp r0, 0x2 + beq _080CC9FC + b _080CCA58 + .align 2, 0 +_080CC9D8: .4byte gUnknown_03004B00 +_080CC9DC: + ldr r5, _080CC9F8 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + eors r4, r0 + adds r0, r4, 0 + b _080CCA68 + .align 2, 0 +_080CC9F8: .4byte gUnknown_0202F7C9 +_080CC9FC: + ldr r5, _080CCA54 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + movs r2, 0x2 + mov r8, r2 + mov r1, r8 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CCA72 + ldrb r0, [r5] + mov r2, r8 + eors r0, r2 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + lsrs r7, r0, 1 + ldrb r0, [r5] + mov r1, r8 + eors r0, r1 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + lsrs r4, r0, 1 + b _080CCA72 + .align 2, 0 +_080CCA54: .4byte gUnknown_0202F7C9 +_080CCA58: + ldr r4, _080CCAA4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] +_080CCA68: + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 +_080CCA72: + strh r7, [r6, 0x20] + strh r4, [r6, 0x22] + ldr r0, _080CCAA4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CCA8A + ldrh r0, [r6, 0x22] + adds r0, 0x8 + strh r0, [r6, 0x22] +_080CCA8A: + ldr r0, _080CCAA8 @ =sub_80CCB00 + str r0, [r6, 0x1C] + ldr r0, _080CCAAC @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080CCAB0 + ldrh r0, [r3] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + b _080CCAC4 + .align 2, 0 +_080CCAA4: .4byte gUnknown_0202F7C9 +_080CCAA8: .4byte sub_80CCB00 +_080CCAAC: .4byte gUnknown_03004B00 +_080CCAB0: + ldrh r0, [r6, 0x20] + ldrh r1, [r3] + subs r0, r1 + strh r0, [r6, 0x20] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080CCAC4: + ldrh r0, [r3, 0x2] + ldrh r2, [r6, 0x22] + adds r0, r2 + strh r0, [r6, 0x22] + ldr r1, _080CCAFC @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r6, 0x30] + adds r1, r0, r2 + strh r1, [r6, 0x30] + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + ldrh r2, [r6, 0x32] + adds r0, r2 + strh r0, [r6, 0x32] + ldrh r0, [r3, 0x4] + strh r0, [r6, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CCAF2 + negs r0, r1 + strh r0, [r6, 0x30] +_080CCAF2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CCAFC: .4byte 0xfffffc00 + thumb_func_end sub_80CC9BC + + thumb_func_start sub_80CCB00 +sub_80CCB00: @ 80CCB00 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CCB22 + adds r0, r1, 0 + adds r0, 0x18 + b _080CCB26 +_080CCB22: + adds r0, r1, 0 + subs r0, 0x18 +_080CCB26: + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + subs r0, 0x18 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080CCB5C + ldr r1, _080CCB64 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldr r0, _080CCB68 @ =sub_80782D8 + str r0, [r4, 0x1C] +_080CCB5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CCB64: .4byte move_anim_8072740 +_080CCB68: .4byte sub_80782D8 + thumb_func_end sub_80CCB00 + + thumb_func_start unref_sub_80CCB6C +unref_sub_80CCB6C: @ 80CCB6C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x1 + ble _080CCC10 + ldrh r1, [r5, 0x34] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CCBC8 + adds r3, r5, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r3] + ldr r4, _080CCBC4 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r3, [r0] + adds r1, r2, 0 + ands r1, r3 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + b _080CCBFE + .align 2, 0 +_080CCBC4: .4byte gSprites +_080CCBC8: + adds r1, r5, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r3, _080CCC0C @ =gSprites + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] +_080CCBFE: + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + b _080CCC14 + .align 2, 0 +_080CCC0C: .4byte gSprites +_080CCC10: + adds r0, r1, 0x1 + strh r0, [r5, 0x32] +_080CCC14: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xA + bne _080CCC44 + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080CCC4C @ =gSprites + adds r0, r4 + bl DestroySprite + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r5, 0 + bl move_anim_8072740 +_080CCC44: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CCC4C: .4byte gSprites + thumb_func_end unref_sub_80CCB6C + + thumb_func_start sub_80CCC50 +sub_80CCC50: @ 80CCC50 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080CCC70 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080CCC74 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CCC78 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080CCC7E + .align 2, 0 +_080CCC70: .4byte gUnknown_03004B00 +_080CCC74: .4byte gUnknown_0202F7C8 +_080CCC78: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080CCC7E: + strh r0, [r5, 0x20] + ldr r4, _080CCCAC @ =gUnknown_03004B00 + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080CCCB0 @ =sub_80CCCB4 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CCCAC: .4byte gUnknown_03004B00 +_080CCCB0: .4byte sub_80CCCB4 + thumb_func_end sub_80CCC50 + + thumb_func_start sub_80CCCB4 +sub_80CCCB4: @ 80CCCB4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x64 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0x14 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _080CCCE0 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0 + b _080CCCE6 +_080CCCE0: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0xE +_080CCCE6: + strb r0, [r1] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x82 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080CCD1C + adds r0, r4, 0 + bl move_anim_8072740 +_080CCD1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CCCB4 + + thumb_func_start sub_80CCD24 +sub_80CCD24: @ 80CCD24 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CCD3A + ldr r1, _080CCD98 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + adds r0, 0x8 + strh r0, [r1, 0x2] +_080CCD3A: + ldr r6, _080CCD9C @ =gUnknown_0202F7C8 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080CCD98 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CCD78 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CCDA0 +_080CCD78: + ldrb r0, [r6] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + b _080CCDB8 + .align 2, 0 +_080CCD98: .4byte gUnknown_03004B00 +_080CCD9C: .4byte gUnknown_0202F7C8 +_080CCDA0: + ldrb r0, [r6] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] +_080CCDB8: + ldr r0, _080CCDF8 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080CCDFC @ =0x00002828 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r3, 0x80 + lsls r3, 1 + adds r0, r3 + strh r0, [r5, 0x32] + movs r2, 0x10 + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldr r1, _080CCE00 @ =REG_BLDCNT + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + ldr r3, _080CCE04 @ =REG_BLDALPHA + ldrh r1, [r5, 0x3C] + lsls r0, r1, 8 + subs r2, r1 + orrs r0, r2 + strh r0, [r3] + ldr r0, _080CCE08 @ =sub_80CCE0C + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCDF8: .4byte gUnknown_03004B00 +_080CCDFC: .4byte 0x00002828 +_080CCE00: .4byte REG_BLDCNT +_080CCE04: .4byte REG_BLDALPHA +_080CCE08: .4byte sub_80CCE0C + thumb_func_end sub_80CCD24 + + thumb_func_start sub_80CCE0C +sub_80CCE0C: @ 80CCE0C + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x60 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCE6A + movs r0, 0 + strh r0, [r4, 0x30] + ldr r1, _080CCEB0 @ =gPlttBufferFaded + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r5, [r0] + movs r2, 0 + adds r6, r1, 0 + adds r3, r6, 0 +_080CCE44: + movs r1, 0x32 + ldrsh r0, [r4, r1] + adds r2, 0x1 + adds r0, r2 + lsls r1, r0, 1 + adds r1, r3 + adds r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + cmp r2, 0x5 + ble _080CCE44 + movs r2, 0x32 + ldrsh r0, [r4, r2] + adds r0, 0x7 + lsls r0, 1 + adds r0, r6 + strh r5, [r0] +_080CCE6A: + ldrh r2, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x6 + ble _080CCE9E + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _080CCEB8 + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCE9E + movs r0, 0 + strh r0, [r4, 0x3A] + subs r2, 0x1 + strh r2, [r4, 0x3C] + ldr r3, _080CCEB4 @ =REG_BLDALPHA + lsls r1, r2, 8 + movs r0, 0x10 + subs r0, r2 + orrs r1, r0 + strh r1, [r3] +_080CCE9E: + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CCEB8 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080CCEF4 + .align 2, 0 +_080CCEB0: .4byte gPlttBufferFaded +_080CCEB4: .4byte REG_BLDALPHA +_080CCEB8: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CCEF4 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r1, 0x1 + strh r1, [r4, 0x3C] + ldr r3, _080CCEFC @ =REG_BLDALPHA + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CCEF4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080CCF00 @ =sub_807861C + str r0, [r4, 0x1C] +_080CCEF4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCEFC: .4byte REG_BLDALPHA +_080CCF00: .4byte sub_807861C + thumb_func_end sub_80CCE0C + + thumb_func_start sub_80CCF04 +sub_80CCF04: @ 80CCF04 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080CCF5C @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CCF60 @ =0x0000ffe8 + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + strh r5, [r4, 0x3A] + movs r0, 0x10 + strh r0, [r4, 0x3C] + ldr r1, _080CCF64 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080CCF68 @ =REG_BLDALPHA + ldrh r0, [r4, 0x3C] + lsls r0, 8 + ldrh r1, [r4, 0x3A] + orrs r0, r1 + strh r0, [r2] + ldr r0, _080CCF6C @ =sub_80CCF70 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CCF5C: .4byte gUnknown_0202F7C9 +_080CCF60: .4byte 0x0000ffe8 +_080CCF64: .4byte REG_BLDCNT +_080CCF68: .4byte REG_BLDALPHA +_080CCF6C: .4byte sub_80CCF70 + thumb_func_end sub_80CCF04 + + thumb_func_start sub_80CCF70 +sub_80CCF70: @ 80CCF70 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080CCF7E + b _080CD0C0 +_080CCF7E: + lsls r0, 2 + ldr r1, _080CCF88 @ =_080CCF8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CCF88: .4byte _080CCF8C + .align 2, 0 +_080CCF8C: + .4byte _080CCFA0 + .4byte _080CD004 + .4byte _080CD020 + .4byte _080CD09C + .4byte _080CD0B0 +_080CCFA0: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080CCFAE + b _080CD0C0 +_080CCFAE: + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CCFD0 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080CCFDE + adds r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080CCFDE +_080CCFD0: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CCFDE + subs r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080CCFDE: + ldr r2, _080CD000 @ =REG_BLDALPHA + ldrh r0, [r4, 0x3C] + lsls r0, 8 + ldrh r1, [r4, 0x3A] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CD0C0 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CD0C0 + strh r0, [r4, 0x30] + b _080CD0A8 + .align 2, 0 +_080CD000: .4byte REG_BLDALPHA +_080CD004: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CD0C0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080CD0A8 +_080CD020: + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x4 + bl sub_80CD0CC + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080CD042 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080CD042: + ldrh r0, [r4, 0x32] + adds r1, r0, 0x1 + strh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080CD0C0 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080CD068 + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080CD076 + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + b _080CD076 +_080CD068: + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080CD076 + adds r0, r1, 0x1 + strh r0, [r4, 0x3C] +_080CD076: + ldr r0, _080CD098 @ =REG_BLDALPHA + ldrh r1, [r4, 0x3C] + lsls r1, 8 + ldrh r2, [r4, 0x3A] + orrs r1, r2 + strh r1, [r0] + movs r0, 0x3A + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080CD0C0 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080CD0C0 + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + b _080CD0A8 + .align 2, 0 +_080CD098: .4byte REG_BLDALPHA +_080CD09C: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080CD0A8: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CD0C0 +_080CD0B0: + ldr r0, _080CD0C8 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r4, 0 + bl move_anim_8072740 +_080CD0C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD0C8: .4byte REG_BLDCNT + thumb_func_end sub_80CCF70 + + thumb_func_start sub_80CD0CC +sub_80CD0CC: @ 80CD0CC + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0xB + bgt _080CD0DE + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080CD0DE: + ldrh r5, [r4, 0x34] + adds r0, r5, 0 + subs r0, 0x12 + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + cmp r0, 0x17 + bhi _080CD0F4 + ldrh r0, [r4, 0x36] + subs r0, 0x2 + strh r0, [r4, 0x36] +_080CD0F4: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _080CD102 + ldrh r0, [r4, 0x36] + adds r0, 0x2 + strh r0, [r4, 0x36] +_080CD102: + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0x9 + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + bge _080CD128 + movs r1, 0x26 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x26] +_080CD128: + adds r0, r5, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _080CD138 + movs r0, 0 + strh r0, [r4, 0x34] +_080CD138: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CD0CC + + thumb_func_start sub_80CD140 +sub_80CD140: @ 80CD140 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CD184 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CD154 + adds r0, r4, 0 + bl sub_8078650 +_080CD154: + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080CD188 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD18C @ =sub_8078394 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD184: .4byte gUnknown_03004B00 +_080CD188: .4byte move_anim_8072740 +_080CD18C: .4byte sub_8078394 + thumb_func_end sub_80CD140 + + thumb_func_start sub_80CD190 +sub_80CD190: @ 80CD190 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080CD1A4 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CD1AC + ldr r0, _080CD1A8 @ =gUnknown_0202F7C8 + b _080CD1AE + .align 2, 0 +_080CD1A4: .4byte gUnknown_03004B00 +_080CD1A8: .4byte gUnknown_0202F7C8 +_080CD1AC: + ldr r0, _080CD1F0 @ =gUnknown_0202F7C9 +_080CD1AE: + ldrb r6, [r0] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080CD1F8 + movs r1, 0x2 + adds r0, r6, 0 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CD1F8 + ldr r4, _080CD1F4 @ =gUnknown_03004B00 + ldrb r1, [r4, 0xC] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + adds r0, r6, 0 + bl sub_807A3FC + movs r2, 0 + ldrsh r1, [r4, r2] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + b _080CD248 + .align 2, 0 +_080CD1F0: .4byte gUnknown_0202F7C9 +_080CD1F4: .4byte gUnknown_03004B00 +_080CD1F8: + ldr r4, _080CD218 @ =gUnknown_03004B00 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CD21C + adds r0, r6, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + b _080CD22E + .align 2, 0 +_080CD218: .4byte gUnknown_03004B00 +_080CD21C: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 +_080CD22E: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r5, 0x22] + ldr r0, _080CD268 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r0, r5, 0 + bl sub_807867C +_080CD248: + ldr r1, _080CD268 @ =gUnknown_03004B00 + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + ldr r1, _080CD26C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD270 @ =sub_8078394 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD268: .4byte gUnknown_03004B00 +_080CD26C: .4byte move_anim_8072740 +_080CD270: .4byte sub_8078394 + thumb_func_end sub_80CD190 + + thumb_func_start sub_80CD274 +sub_80CD274: @ 80CD274 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080CD2A0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CD2A8 + ldr r0, _080CD2A4 @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _080CD2C2 + .align 2, 0 +_080CD2A0: .4byte gUnknown_0202F7C8 +_080CD2A4: .4byte gUnknown_03004B00 +_080CD2A8: + ldr r2, _080CD2CC @ =gUnknown_03004B00 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080CD2C2: + ldr r0, _080CD2D0 @ =sub_80CD2D4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD2CC: .4byte gUnknown_03004B00 +_080CD2D0: .4byte sub_80CD2D4 + thumb_func_end sub_80CD274 + + thumb_func_start sub_80CD2D4 +sub_80CD2D4: @ 80CD2D4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080CD30C + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x1E + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r4, 0x26] + movs r1, 0x30 + ldrsh r0, [r4, r1] + lsls r0, 18 + asrs r0, 16 + movs r1, 0x3 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080CD30C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CD320 + adds r0, r4, 0 + bl move_anim_8072740 +_080CD320: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD2D4 + + thumb_func_start sub_80CD328 +sub_80CD328: @ 80CD328 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080CD358 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CD360 + ldr r1, _080CD35C @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x1 + strh r0, [r4, 0x34] + b _080CD37E + .align 2, 0 +_080CD358: .4byte gUnknown_0202F7C8 +_080CD35C: .4byte gUnknown_03004B00 +_080CD360: + ldr r2, _080CD388 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldr r0, _080CD38C @ =0x0000ffff + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080CD37E: + ldr r0, _080CD390 @ =sub_80CD394 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD388: .4byte gUnknown_03004B00 +_080CD38C: .4byte 0x0000ffff +_080CD390: .4byte sub_80CD394 + thumb_func_end sub_80CD328 + + thumb_func_start sub_80CD394 +sub_80CD394: @ 80CD394 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x36 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 1 + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080CD3D8 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CD3D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD394 + + thumb_func_start sub_80CD3E0 +sub_80CD3E0: @ 80CD3E0 + push {lr} + ldrh r1, [r0, 0x20] + subs r1, 0x20 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x22] + movs r1, 0x14 + strh r1, [r0, 0x2E] + ldr r1, _080CD400 @ =sub_80782D8 + str r1, [r0, 0x1C] + ldr r1, _080CD404 @ =sub_80CD408 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CD400: .4byte sub_80782D8 +_080CD404: .4byte sub_80CD408 + thumb_func_end sub_80CD3E0 + + thumb_func_start sub_80CD408 +sub_80CD408: @ 80CD408 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r6, [r5, 0x38] + movs r1, 0x1 + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + beq _080CD41E + cmp r0, 0x1 + beq _080CD438 + b _080CD49E +_080CD41E: + strh r1, [r5, 0x2E] + ldr r0, _080CD430 @ =sub_80782D8 + str r0, [r5, 0x1C] + ldr r1, _080CD434 @ =sub_80CD408 + adds r0, r5, 0 + bl oamt_set_x3A_32 + b _080CD49E + .align 2, 0 +_080CD430: .4byte sub_80782D8 +_080CD434: .4byte sub_80CD408 +_080CD438: + ldrh r3, [r5, 0x24] + ldrh r0, [r5, 0x20] + adds r3, r0 + movs r0, 0 + strh r3, [r5, 0x20] + ldrh r4, [r5, 0x26] + ldrh r1, [r5, 0x22] + adds r4, r1 + strh r4, [r5, 0x22] + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r2, _080CD4AC @ =gUnknown_083D6DDC + lsls r0, r6, 16 + asrs r0, 24 + lsls r0, 1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r3, r1 + strh r3, [r5, 0x32] + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r0 + strh r4, [r5, 0x36] + ldr r0, _080CD4B0 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080CD4B4 @ =sub_80CD4B8 + adds r0, r5, 0 + bl oamt_set_x3A_32 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xD2 + bl PlaySE12WithPanning +_080CD49E: + ldrh r0, [r5, 0x38] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x38] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD4AC: .4byte gUnknown_083D6DDC +_080CD4B0: .4byte sub_8078B34 +_080CD4B4: .4byte sub_80CD4B8 + thumb_func_end sub_80CD408 + + thumb_func_start sub_80CD4B8 +sub_80CD4B8: @ 80CD4B8 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _080CD4E0 + movs r0, 0xA + strh r0, [r2, 0x2E] + ldr r0, _080CD4D8 @ =sub_80782D8 + str r0, [r2, 0x1C] + ldr r1, _080CD4DC @ =sub_80CD4EC + adds r0, r2, 0 + bl oamt_set_x3A_32 + b _080CD4E4 + .align 2, 0 +_080CD4D8: .4byte sub_80782D8 +_080CD4DC: .4byte sub_80CD4EC +_080CD4E0: + ldr r0, _080CD4E8 @ =sub_80CD408 + str r0, [r2, 0x1C] +_080CD4E4: + pop {r0} + bx r0 + .align 2, 0 +_080CD4E8: .4byte sub_80CD408 + thumb_func_end sub_80CD4B8 + + thumb_func_start sub_80CD4EC +sub_80CD4EC: @ 80CD4EC + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x6] + cmp r1, 0 + bne _080CD514 + movs r0, 0x3 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] + ldr r0, _080CD50C @ =sub_80782D8 + str r0, [r5, 0x1C] + ldr r1, _080CD510 @ =sub_80CD5A8 + adds r0, r5, 0 + bl oamt_set_x3A_32 + b _080CD594 + .align 2, 0 +_080CD50C: .4byte sub_80782D8 +_080CD510: .4byte sub_80CD5A8 +_080CD514: + ldrh r0, [r5, 0x6] + cmp r0, 0x2 + beq _080CD534 + cmp r0, 0x2 + bgt _080CD524 + cmp r0, 0x1 + beq _080CD52A + b _080CD548 +_080CD524: + cmp r0, 0x3 + beq _080CD53C + b _080CD548 +_080CD52A: + ldr r6, _080CD530 @ =0x0000fff8 + adds r7, r6, 0 + b _080CD54C + .align 2, 0 +_080CD530: .4byte 0x0000fff8 +_080CD534: + ldr r7, _080CD538 @ =0x0000fff8 + b _080CD54A + .align 2, 0 +_080CD538: .4byte 0x0000fff8 +_080CD53C: + movs r7, 0x8 + ldr r6, _080CD544 @ =0x0000fff8 + b _080CD54C + .align 2, 0 +_080CD544: .4byte 0x0000fff8 +_080CD548: + movs r7, 0x8 +_080CD54A: + movs r6, 0x8 +_080CD54C: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080CD59C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080CD5A0 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080CD5A4 @ =sub_80CD654 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CD594: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CD59C: .4byte gUnknown_0202F7C9 +_080CD5A0: .4byte sub_8078B34 +_080CD5A4: .4byte sub_80CD654 + thumb_func_end sub_80CD4EC + + thumb_func_start sub_80CD5A8 +sub_80CD5A8: @ 80CD5A8 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CD5C8 + ldrh r0, [r4, 0x30] + adds r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080CD5D8 + movs r0, 0x10 + b _080CD5D6 +_080CD5C8: + ldrh r0, [r4, 0x30] + subs r0, 0x3 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080CD5D8 + movs r0, 0 +_080CD5D6: + strh r0, [r4, 0x30] +_080CD5D8: + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80791A8 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080CD634 @ =0x00007fff + bl BlendPalettes + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _080CD640 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x5] + lsrs r1, 4 + lsls r0, r1, 5 + ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210 + adds r0, r2 + lsls r1, 4 + ldr r3, _080CD63C @ =0x00000101 + adds r2, r3, 0 + orrs r1, r2 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC0 + bl PlaySE12WithPanning + b _080CD648 + .align 2, 0 +_080CD634: .4byte 0x00007fff +_080CD638: .4byte gPlttBufferUnfaded + 0x210 +_080CD63C: .4byte 0x00000101 +_080CD640: + cmp r0, 0 + bne _080CD648 + ldr r0, _080CD650 @ =sub_80CD654 + str r0, [r4, 0x1C] +_080CD648: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD650: .4byte sub_80CD654 + thumb_func_end sub_80CD5A8 + + thumb_func_start sub_80CD654 +sub_80CD654: @ 80CD654 + push {lr} + adds r2, r0, 0 + ldr r0, _080CD670 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080CD674 @ =0x0000ffff + cmp r1, r0 + bne _080CD66C + movs r0, 0 + strh r0, [r2, 0x30] + strh r0, [r2, 0x2E] + ldr r0, _080CD678 @ =sub_80CD67C + str r0, [r2, 0x1C] +_080CD66C: + pop {r0} + bx r0 + .align 2, 0 +_080CD670: .4byte gUnknown_03004B00 +_080CD674: .4byte 0x0000ffff +_080CD678: .4byte sub_80CD67C + thumb_func_end sub_80CD654 + + thumb_func_start sub_80CD67C +sub_80CD67C: @ 80CD67C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080CD6B0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080CD6B0: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _080CD6C4 + adds r0, r4, 0 + bl move_anim_8072740 +_080CD6C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CD67C + + thumb_func_start sub_80CD6CC +sub_80CD6CC: @ 80CD6CC + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080CD6EC @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r3, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CD6F0 + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + b _080CD742 + .align 2, 0 +_080CD6EC: .4byte gUnknown_03004B00 +_080CD6F0: + cmp r0, 0x2 + bne _080CD70C + ldrh r0, [r3, 0x20] + subs r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x20 + b _080CD73E +_080CD70C: + cmp r0, 0x3 + bne _080CD728 + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + subs r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + b _080CD73E +_080CD728: + ldrh r0, [r3, 0x20] + adds r0, 0x18 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x22] + adds r0, 0x18 + strh r0, [r3, 0x22] + ldrb r1, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 +_080CD73E: + orrs r0, r1 + strb r0, [r3, 0x3] +_080CD742: + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r4, _080CD768 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080CD76C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldr r1, _080CD770 @ =sub_80CD3E0 + str r1, [r3, 0x1C] + adds r0, r3, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CD768: .4byte 0x000003ff +_080CD76C: .4byte 0xfffffc00 +_080CD770: .4byte sub_80CD3E0 + thumb_func_end sub_80CD6CC + + thumb_func_start sub_80CD774 +sub_80CD774: @ 80CD774 + push {lr} + adds r3, r0, 0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + strh r0, [r3, 0x2E] + ldr r0, _080CD79C @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080CD7B0 + cmp r0, 0x1 + bgt _080CD7A0 + cmp r0, 0 + beq _080CD7A6 + b _080CD7C0 + .align 2, 0 +_080CD79C: .4byte gUnknown_03004B00 +_080CD7A0: + cmp r0, 0x2 + beq _080CD7B8 + b _080CD7C0 +_080CD7A6: + ldr r0, _080CD7AC @ =sub_80CD7CC + b _080CD7C2 + .align 2, 0 +_080CD7AC: .4byte sub_80CD7CC +_080CD7B0: + ldr r0, _080CD7B4 @ =sub_80CD8A8 + b _080CD7C2 + .align 2, 0 +_080CD7B4: .4byte sub_80CD8A8 +_080CD7B8: + ldr r0, _080CD7BC @ =sub_80CD8F8 + b _080CD7C2 + .align 2, 0 +_080CD7BC: .4byte sub_80CD8F8 +_080CD7C0: + ldr r0, _080CD7C8 @ =sub_80CD9B8 +_080CD7C2: + str r0, [r3, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080CD7C8: .4byte sub_80CD9B8 + thumb_func_end sub_80CD774 + + thumb_func_start sub_80CD7CC +sub_80CD7CC: @ 80CD7CC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + strh r0, [r4, 0x2E] + ldr r5, _080CD80C @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + beq _080CD7EA + movs r1, 0x2 +_080CD7EA: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CD810 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080CD814 @ =sub_80CD81C + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD818 @ =sub_8078458 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD80C: .4byte gUnknown_0202F7C8 +_080CD810: .4byte gUnknown_02024BE0 +_080CD814: .4byte sub_80CD81C +_080CD818: .4byte sub_8078458 + thumb_func_end sub_80CD7CC + + thumb_func_start sub_80CD81C +sub_80CD81C: @ 80CD81C + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r6, [r5, r0] + cmp r6, 0 + bne _080CD858 + ldr r1, _080CD898 @ =gUnknown_02024BE0 + ldr r4, _080CD89C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + movs r1, 0 + bl sub_8078E70 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldr r2, _080CD8A0 @ =0xfffffd00 + adds r1, r2, 0 + cmp r0, 0 + beq _080CD854 + movs r0, 0xC0 + lsls r0, 2 + adds r1, r0, 0 +_080CD854: + strh r1, [r5, 0x36] + strh r6, [r5, 0x38] +_080CD858: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CD892 + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080CD8A4 @ =sub_80CD9B8 + str r0, [r5, 0x1C] +_080CD892: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CD898: .4byte gUnknown_02024BE0 +_080CD89C: .4byte gUnknown_0202F7C8 +_080CD8A0: .4byte 0xfffffd00 +_080CD8A4: .4byte sub_80CD9B8 + thumb_func_end sub_80CD81C + + thumb_func_start sub_80CD8A8 +sub_80CD8A8: @ 80CD8A8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + strh r0, [r4, 0x2E] + ldr r5, _080CD8E8 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080CD8C6 + movs r0, 0x3 + negs r0, r0 + adds r1, r0, 0 +_080CD8C6: + strh r1, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CD8EC @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x34] + ldr r1, _080CD8F0 @ =sub_80CD9B8 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CD8F4 @ =sub_8078458 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD8E8: .4byte gUnknown_0202F7C8 +_080CD8EC: .4byte gUnknown_02024BE0 +_080CD8F0: .4byte sub_80CD9B8 +_080CD8F4: .4byte sub_8078458 + thumb_func_end sub_80CD8A8 + + thumb_func_start sub_80CD8F8 +sub_80CD8F8: @ 80CD8F8 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CD912 + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080CD918 @ =sub_80CD91C + str r0, [r1, 0x1C] +_080CD912: + pop {r0} + bx r0 + .align 2, 0 +_080CD918: .4byte sub_80CD91C + thumb_func_end sub_80CD8F8 + + thumb_func_start sub_80CD91C +sub_80CD91C: @ 80CD91C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080CD96C + ldr r1, _080CD958 @ =gUnknown_02024BE0 + ldr r4, _080CD95C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5, 0x34] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CD960 + movs r0, 0xFC + lsls r0, 8 + strh r0, [r5, 0x36] + movs r0, 0xC0 + lsls r0, 4 + b _080CD96A + .align 2, 0 +_080CD958: .4byte gUnknown_02024BE0 +_080CD95C: .4byte gUnknown_0202F7C8 +_080CD960: + movs r0, 0x80 + lsls r0, 3 + strh r0, [r5, 0x36] + movs r0, 0xF4 + lsls r0, 8 +_080CD96A: + strh r0, [r5, 0x38] +_080CD96C: + ldrh r0, [r5, 0x36] + ldrh r1, [r5, 0x38] + adds r0, r1 + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r5, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080CD9AC + ldrh r0, [r5, 0x34] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + ldr r0, _080CD9B4 @ =sub_80CD9B8 + str r0, [r5, 0x1C] +_080CD9AC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CD9B4: .4byte sub_80CD9B8 + thumb_func_end sub_80CD91C + + thumb_func_start sub_80CD9B8 +sub_80CD9B8: @ 80CD9B8 + push {lr} + bl move_anim_8072740 + pop {r0} + bx r0 + thumb_func_end sub_80CD9B8 + + thumb_func_start sub_80CD9C4 +sub_80CD9C4: @ 80CD9C4 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r1, _080CD9D0 @ =sub_80CD9D4 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CD9D0: .4byte sub_80CD9D4 + thumb_func_end sub_80CD9C4 + + thumb_func_start sub_80CD9D4 +sub_80CD9D4: @ 80CD9D4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080CDA2E + cmp r5, 0x1 + bgt _080CD9EA + cmp r5, 0 + beq _080CD9F0 + b _080CDAC2 +_080CD9EA: + cmp r5, 0x2 + beq _080CDA80 + b _080CDAC2 +_080CD9F0: + strh r5, [r4, 0x30] + ldr r1, _080CDA74 @ =gUnknown_02024BE0 + ldr r2, _080CDA78 @ =gUnknown_0202F7C8 + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + strh r0, [r4, 0x32] + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldr r2, _080CDA7C @ =0xfffffe00 + adds r1, r2, 0 + cmp r0, 0 + beq _080CDA18 + movs r0, 0x80 + lsls r0, 2 + adds r1, r0, 0 +_080CDA18: + strh r1, [r4, 0x36] + strh r5, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080CDA2E: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CDAC2 + movs r0, 0 + strh r0, [r4, 0x30] + movs r2, 0x36 + ldrsh r0, [r4, r2] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080CDAC2 + .align 2, 0 +_080CDA74: .4byte gUnknown_02024BE0 +_080CDA78: .4byte gUnknown_0202F7C8 +_080CDA7C: .4byte 0xfffffe00 +_080CDA80: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x38] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F9C + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CDAC2 + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + adds r0, r4, 0 + bl move_anim_8072740 +_080CDAC2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CD9D4 + + thumb_func_start sub_80CDAC8 +sub_80CDAC8: @ 80CDAC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080CDB0C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldr r1, _080CDB10 @ =gUnknown_02024BE0 + ldr r2, _080CDB14 @ =gUnknown_0202F7C8 + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r5, 0x8] + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r5, 0xA] + strh r4, [r5, 0xC] + ldr r0, _080CDB18 @ =gUnknown_03004B00 + movs r3, 0 + ldrsh r1, [r0, r3] + cmp r1, 0 + beq _080CDB1C + cmp r1, 0x1 + beq _080CDB38 + adds r0, r6, 0 + bl move_anim_task_del + b _080CDB56 + .align 2, 0 +_080CDB0C: .4byte gTasks +_080CDB10: .4byte gUnknown_02024BE0 +_080CDB14: .4byte gUnknown_0202F7C8 +_080CDB18: .4byte gUnknown_03004B00 +_080CDB1C: + strh r1, [r5, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + movs r0, 0x3 + strh r0, [r5, 0x12] + cmp r2, 0 + bne _080CDB30 + negs r0, r0 + strh r0, [r5, 0x12] +_080CDB30: + ldr r0, _080CDB34 @ =sub_80CDB60 + b _080CDB54 + .align 2, 0 +_080CDB34: .4byte sub_80CDB60 +_080CDB38: + movs r0, 0x8 + strh r0, [r5, 0xE] + movs r0, 0xC0 + lsls r0, 3 + strh r0, [r5, 0x10] + movs r1, 0xC0 + strh r1, [r5, 0x12] + cmp r2, 0 + bne _080CDB52 + negs r0, r0 + strh r0, [r5, 0x10] + negs r0, r1 + strh r0, [r5, 0x12] +_080CDB52: + ldr r0, _080CDB5C @ =sub_80CDD20 +_080CDB54: + str r0, [r5] +_080CDB56: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDB5C: .4byte sub_80CDD20 + thumb_func_end sub_80CDAC8 + + thumb_func_start sub_80CDB60 +sub_80CDB60: @ 80CDB60 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CDB84 @ =gTasks + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080CDB7A + b _080CDD1A +_080CDB7A: + lsls r0, 2 + ldr r1, _080CDB88 @ =_080CDB8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080CDB84: .4byte gTasks +_080CDB88: .4byte _080CDB8C + .align 2, 0 +_080CDB8C: + .4byte _080CDBA0 + .4byte _080CDBD2 + .4byte _080CDC2C + .4byte _080CDCA4 + .4byte _080CDCE8 +_080CDBA0: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _080CDBB0 + ldrh r2, [r4, 0x12] + ldrh r3, [r4, 0x10] + adds r2, r3 + b _080CDCF6 +_080CDBB0: + movs r0, 0x8 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r1, 0xC0 + cmp r0, 0 + bne _080CDBC6 + movs r2, 0xC0 + negs r2, r2 + adds r1, r2, 0 +_080CDBC6: + strh r1, [r4, 0x12] + ldrb r0, [r4, 0x8] + movs r1, 0 + bl sub_8078E70 + b _080CDCDC +_080CDBD2: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDBF8 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8078F9C + b _080CDD08 +_080CDBF8: + movs r0, 0x8 + strh r0, [r4, 0xE] + ldr r2, _080CDC28 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080CDC1E + movs r1, 0x2 +_080CDC1E: + strh r1, [r4, 0x12] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080CDCDC + .align 2, 0 +_080CDC28: .4byte gSprites +_080CDC2C: + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDC88 + ldrh r1, [r4, 0x14] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDC46 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + b _080CDD1A +_080CDC46: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080CDC68 + ldr r2, _080CDC64 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x12] + ldrh r2, [r4, 0x10] + adds r1, r2 + b _080CDC7C + .align 2, 0 +_080CDC64: .4byte gSprites +_080CDC68: + ldr r2, _080CDC84 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r4, 0x12] + subs r1, r2 +_080CDC7C: + strh r1, [r0, 0x24] + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080CDD08 + .align 2, 0 +_080CDC84: .4byte gSprites +_080CDC88: + ldr r2, _080CDCA0 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x24] + movs r0, 0xC + strh r0, [r4, 0xE] + b _080CDCDC + .align 2, 0 +_080CDCA0: .4byte gSprites +_080CDCA4: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080CDCB4 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080CDD1A +_080CDCB4: + movs r0, 0x3 + strh r0, [r4, 0xE] + ldr r2, _080CDCE4 @ =gSprites + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x24] + strh r0, [r4, 0x10] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x8 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080CDCDA + movs r1, 0x8 +_080CDCDA: + strh r1, [r4, 0x12] +_080CDCDC: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _080CDD1A + .align 2, 0 +_080CDCE4: .4byte gSprites +_080CDCE8: + movs r3, 0xE + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080CDD14 + ldrh r2, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r2, r0 +_080CDCF6: + strh r2, [r4, 0x10] + ldr r3, _080CDD10 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] +_080CDD08: + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080CDD1A + .align 2, 0 +_080CDD10: .4byte gSprites +_080CDD14: + adds r0, r2, 0 + bl move_anim_task_del +_080CDD1A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CDB60 + + thumb_func_start sub_80CDD20 +sub_80CDD20: @ 80CDD20 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080CDD5C @ =gTasks + adds r4, r0, r1 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080CDD60 + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r2, 0x80 + lsls r2, 1 + ldrh r3, [r4, 0x10] + adds r1, r2, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8078F9C + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080CDD6C + .align 2, 0 +_080CDD5C: .4byte gTasks +_080CDD60: + ldrb r0, [r4, 0x8] + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del +_080CDD6C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80CDD20 + + thumb_func_start sub_80CDD74 +sub_80CDD74: @ 80CDD74 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CDD88 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CDD90 + ldr r4, _080CDD8C @ =gUnknown_0202F7C8 + b _080CDD92 + .align 2, 0 +_080CDD88: .4byte gUnknown_03004B00 +_080CDD8C: .4byte gUnknown_0202F7C8 +_080CDD90: + ldr r4, _080CDDD0 @ =gUnknown_0202F7C9 +_080CDD92: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldr r1, _080CDDD4 @ =sub_80CDEC0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDDD8 @ =sub_8078600 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDDD0: .4byte gUnknown_0202F7C9 +_080CDDD4: .4byte sub_80CDEC0 +_080CDDD8: .4byte sub_8078600 + thumb_func_end sub_80CDD74 + + thumb_func_start sub_80CDDDC +sub_80CDDDC: @ 80CDDDC + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080CDE14 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CDE18 @ =0x0000ffd0 + adds r0, r1 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r1, _080CDE1C @ =sub_80CDE78 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDE20 @ =sub_8078600 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CDE14: .4byte gUnknown_0202F7C9 +_080CDE18: .4byte 0x0000ffd0 +_080CDE1C: .4byte sub_80CDE78 +_080CDE20: .4byte sub_8078600 + thumb_func_end sub_80CDDDC + + thumb_func_start sub_80CDE24 +sub_80CDE24: @ 80CDE24 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080CDE68 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080CDE6C @ =gUnknown_03004B00 + ldr r2, _080CDE70 @ =0x0000ffd0 + adds r0, r2 + ldrh r1, [r1] + adds r0, r1 + movs r6, 0 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + strh r6, [r4, 0x2E] + strh r6, [r4, 0x30] + ldr r0, _080CDE74 @ =sub_80CDEC0 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDE68: .4byte gUnknown_0202F7C9 +_080CDE6C: .4byte gUnknown_03004B00 +_080CDE70: .4byte 0x0000ffd0 +_080CDE74: .4byte sub_80CDEC0 + thumb_func_end sub_80CDE24 + + thumb_func_start sub_80CDE78 +sub_80CDE78: @ 80CDE78 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CDEA2 + movs r0, 0xC + strh r0, [r4, 0x2E] + movs r0, 0x8 + strh r0, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldr r1, _080CDEA8 @ =sub_80CDEB0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CDEAC @ =sub_8078364 + str r0, [r4, 0x1C] +_080CDEA2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CDEA8: .4byte sub_80CDEB0 +_080CDEAC: .4byte sub_8078364 + thumb_func_end sub_80CDE78 + + thumb_func_start sub_80CDEB0 +sub_80CDEB0: @ 80CDEB0 + movs r1, 0 + strh r1, [r0, 0x2E] + strh r1, [r0, 0x30] + ldr r1, _080CDEBC @ =sub_80CDEC0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CDEBC: .4byte sub_80CDEC0 + thumb_func_end sub_80CDEB0 + + thumb_func_start sub_80CDEC0 +sub_80CDEC0: @ 80CDEC0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CDF08 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080CDF08 + adds r0, r3, 0 + bl move_anim_8072740 +_080CDF08: + pop {r0} + bx r0 + thumb_func_end sub_80CDEC0 + + thumb_func_start sub_80CDF0C +sub_80CDF0C: @ 80CDF0C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CDF20 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CDF28 + ldr r4, _080CDF24 @ =gUnknown_0202F7C8 + b _080CDF2A + .align 2, 0 +_080CDF20: .4byte gUnknown_03004B00 +_080CDF24: .4byte gUnknown_0202F7C8 +_080CDF28: + ldr r4, _080CDF64 @ =gUnknown_0202F7C9 +_080CDF2A: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x4] + adds r0, r6 + strh r0, [r5, 0x22] + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080CDF68 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x30] + ldr r0, _080CDF6C @ =sub_80CDF70 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDF64: .4byte gUnknown_0202F7C9 +_080CDF68: .4byte gUnknown_03004B00 +_080CDF6C: .4byte sub_80CDF70 + thumb_func_end sub_80CDF0C + + thumb_func_start sub_80CDF70 +sub_80CDF70: @ 80CDF70 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + ble _080CDF90 + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x22] + subs r0, 0x1 + strh r0, [r2, 0x22] +_080CDF90: + ldrh r0, [r2, 0x22] + ldrh r1, [r2, 0x2E] + subs r0, r1 + strh r0, [r2, 0x22] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CDFAC + adds r0, r2, 0 + bl move_anim_8072740 +_080CDFAC: + pop {r0} + bx r0 + thumb_func_end sub_80CDF70 + + thumb_func_start sub_80CDFB0 +sub_80CDFB0: @ 80CDFB0 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080CDFF8 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0xC + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + movs r0, 0x2 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r5, [r4, 0x34] + strh r5, [r4, 0x36] + subs r0, 0x42 + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _080CDFFC @ =sub_80CE000 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CDFF8: .4byte gUnknown_0202F7C8 +_080CDFFC: .4byte sub_80CE000 + thumb_func_end sub_80CDFB0 + + thumb_func_start sub_80CE000 +sub_80CE000: @ 80CE000 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080CE06C + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080CE052 + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080CE052 + ldrh r1, [r4, 0x38] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xC2 + bl PlaySE12WithPanning +_080CE052: + movs r1, 0 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE06C + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_080CE06C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080CE096 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + ble _080CE096 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080CE096 + adds r0, r4, 0 + bl move_anim_8072740 +_080CE096: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CE000 + + thumb_func_start sub_80CE09C +sub_80CE09C: @ 80CE09C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080CE0E6 + ldr r4, _080CE0FC @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r5, _080CE100 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x2] + adds r0, r5 + strh r0, [r6, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE0E0 + ldrh r0, [r6, 0x22] + adds r0, 0xA + strh r0, [r6, 0x22] +_080CE0E0: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + strh r0, [r6, 0x2E] +_080CE0E6: + ldr r0, _080CE100 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080CE104 @ =0x0000ffff + cmp r1, r0 + bne _080CE0F6 + adds r0, r6, 0 + bl move_anim_8072740 +_080CE0F6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CE0FC: .4byte gUnknown_0202F7C8 +_080CE100: .4byte gUnknown_03004B00 +_080CE104: .4byte 0x0000ffff + thumb_func_end sub_80CE09C + + thumb_func_start sub_80CE108 +sub_80CE108: @ 80CE108 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CE128 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080CE134 + ldr r1, _080CE12C @ =gUnknown_03004B00 + ldr r0, _080CE130 @ =0x0000ffff + strh r0, [r1, 0xE] + b _080CE16C + .align 2, 0 +_080CE128: .4byte gTasks +_080CE12C: .4byte gUnknown_03004B00 +_080CE130: .4byte 0x0000ffff +_080CE134: + cmp r0, 0x2 + bne _080CE140 + adds r0, r2, 0 + bl move_anim_task_del + b _080CE172 +_080CE140: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080CE172 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + ldr r3, _080CE178 @ =REG_BLDALPHA + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _080CE172 +_080CE16C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080CE172: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE178: .4byte REG_BLDALPHA + thumb_func_end sub_80CE108 + + thumb_func_start sub_80CE17C +sub_80CE17C: @ 80CE17C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080CE1A4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080CE1A8 @ =sub_80CE1AC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE1A4: .4byte gUnknown_03004B00 +_080CE1A8: .4byte sub_80CE1AC + thumb_func_end sub_80CE17C + + thumb_func_start sub_80CE1AC +sub_80CE1AC: @ 80CE1AC + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080CE1C0 + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080CE1FC +_080CE1C0: + adds r2, r5, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldr r4, _080CE204 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080CE208 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080CE20C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080CE1FC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CE204: .4byte gUnknown_0202F7C8 +_080CE208: .4byte sub_8078B34 +_080CE20C: .4byte move_anim_8072740 + thumb_func_end sub_80CE1AC + + thumb_func_start sub_80CE210 +sub_80CE210: @ 80CE210 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080CE258 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080CE252 + movs r0, 0 + strh r0, [r3, 0x8] + ldrh r1, [r3, 0xA] + adds r1, 0x1 + strh r1, [r3, 0xA] + ldr r2, _080CE25C @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x10 + bne _080CE252 + adds r0, r4, 0 + bl move_anim_task_del +_080CE252: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE258: .4byte gTasks +_080CE25C: .4byte REG_BLDALPHA + thumb_func_end sub_80CE210 + + thumb_func_start unref_sub_80CE260 +unref_sub_80CE260: @ 80CE260 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r0, _080CE2C8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bcs _080CE2BC + ldr r6, _080CE2CC @ =gUnknown_03004B00 + ldr r5, _080CE2D0 @ =gUnknown_03004340 +_080CE274: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080CE290 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CE290 + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8043DB0 +_080CE290: + movs r1, 0x2 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _080CE2AE + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE2AE + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8043DB0 +_080CE2AE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080CE2C8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bcc _080CE274 +_080CE2BC: + adds r0, r7, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE2C8: .4byte gUnknown_02024A68 +_080CE2CC: .4byte gUnknown_03004B00 +_080CE2D0: .4byte gUnknown_03004340 + thumb_func_end unref_sub_80CE260 + + thumb_func_start unref_sub_80CE2D4 +unref_sub_80CE2D4: @ 80CE2D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + b _080CE2EE +_080CE2DE: + ldr r0, _080CE304 @ =gUnknown_03004340 + adds r0, r4, r0 + ldrb r0, [r0] + bl sub_8043DFC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080CE2EE: + ldr r0, _080CE308 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bcc _080CE2DE + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CE304: .4byte gUnknown_03004340 +_080CE308: .4byte gUnknown_02024A68 + thumb_func_end unref_sub_80CE2D4 + + thumb_func_start sub_80CE30C +sub_80CE30C: @ 80CE30C + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE322 + movs r0, 0x30 + strh r0, [r4, 0x20] + movs r0, 0x28 + b _080CE32A +_080CE322: + ldr r0, _080CE34C @ =gUnknown_03004B00 + ldrh r1, [r0] + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] +_080CE32A: + strh r0, [r4, 0x22] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080CE350 @ =sub_80CE354 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE34C: .4byte gUnknown_03004B00 +_080CE350: .4byte sub_80CE354 + thumb_func_end sub_80CE30C + + thumb_func_start sub_80CE354 +sub_80CE354: @ 80CE354 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080CE366 + adds r0, r1, 0 + bl move_anim_8072740 +_080CE366: + pop {r0} + bx r0 + thumb_func_end sub_80CE354 + + thumb_func_start sub_80CE36C +sub_80CE36C: @ 80CE36C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CE3A4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r2, _080CE3A8 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + strh r0, [r4, 0x22] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x30] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x36] + ldr r0, _080CE3AC @ =sub_80CE3B0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE3A4: .4byte gUnknown_0202F7C8 +_080CE3A8: .4byte gUnknown_03004B00 +_080CE3AC: .4byte sub_80CE3B0 + thumb_func_end sub_80CE36C + + thumb_func_start sub_80CE3B0 +sub_80CE3B0: @ 80CE3B0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE3DA + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r2, [r1, 0x32] + movs r3, 0x32 + ldrsh r0, [r1, r3] + cmp r0, 0x77 + bgt _080CE3DA + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] + adds r0, r2, 0x1 + strh r0, [r1, 0x32] +_080CE3DA: + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080CE3E8 + adds r0, r1, 0 + bl move_anim_8072740 +_080CE3E8: + pop {r0} + bx r0 + thumb_func_end sub_80CE3B0 + + thumb_func_start sub_80CE3EC +sub_80CE3EC: @ 80CE3EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + mov r8, r0 + ldr r0, _080CE4BC @ =0x0000ffff + mov r1, r8 + ands r1, r0 + mov r8, r1 + ldr r0, _080CE4C0 @ =gTasks + mov r9, r0 + lsls r5, r7, 2 + adds r5, r7 + lsls r5, 3 + adds r6, r5, r0 + strh r4, [r6, 0x8] + strh r4, [r6, 0xA] + strh r4, [r6, 0xC] + strh r1, [r6, 0xE] + strh r4, [r6, 0x10] + strh r4, [r6, 0x12] + strh r4, [r6, 0x14] + movs r0, 0xD + strh r0, [r6, 0x16] + movs r0, 0xE + strh r0, [r6, 0x18] + movs r0, 0xF + strh r0, [r6, 0x1A] + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80792C0 + mov r10, r0 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r0, 0x8 + add r9, r0 + add r5, r9 + adds r0, r5, 0 + adds r0, 0x1C + adds r5, 0x1E + adds r1, r5, 0 + mov r2, r8 + bl sub_8079BF4 + ldr r0, _080CE4C4 @ =0x000027d2 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + mov r0, r10 + orrs r0, r1 + mov r10, r0 + ldr r0, _080CE4C8 @ =0x000027d3 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0 + mov r1, r10 + orrs r4, r1 + ldr r0, _080CE4CC @ =0x00007fbb + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080CE4D0 @ =sub_80CE4D4 + str r1, [r6] + adds r0, r7, 0 + bl _call_via_r1 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE4BC: .4byte 0x0000ffff +_080CE4C0: .4byte gTasks +_080CE4C4: .4byte 0x000027d2 +_080CE4C8: .4byte 0x000027d3 +_080CE4CC: .4byte 0x00007fbb +_080CE4D0: .4byte sub_80CE4D4 + thumb_func_end sub_80CE3EC + + thumb_func_start sub_80CE4D4 +sub_80CE4D4: @ 80CE4D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080CE4FC @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080CE5C0 + cmp r1, 0x1 + bgt _080CE500 + cmp r1, 0 + beq _080CE50E + b _080CE65E + .align 2, 0 +_080CE4FC: .4byte gTasks +_080CE500: + cmp r1, 0x2 + bne _080CE506 + b _080CE618 +_080CE506: + cmp r1, 0x3 + bne _080CE50C + b _080CE64C +_080CE50C: + b _080CE65E +_080CE50E: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080CE51C + b _080CE65E +_080CE51C: + strh r1, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080CE568 + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + ldrh r2, [r4, 0x18] + ldrh r3, [r4, 0x12] + adds r2, r3 + strh r2, [r4, 0x12] + ldrh r1, [r4, 0x1A] + ldrh r5, [r4, 0x14] + adds r1, r5 + strh r1, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + lsls r0, 16 + lsrs r0, 16 + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r2, 11 + orrs r0, r2 + lsrs r1, 6 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + b _080CE572 +_080CE568: + ldr r7, _080CE5B8 @ =0x00007fbb + mov r12, r7 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080CE572: + movs r2, 0x1 + movs r3, 0 + movs r1, 0 +_080CE578: + movs r5, 0xE + ldrsh r0, [r4, r5] + ands r0, r2 + lsls r5, r2, 17 + adds r6, r3, 0 + adds r6, 0x10 + adds r1, 0x1 + mov r8, r1 + cmp r0, 0 + beq _080CE5A4 + movs r1, 0x1 + ldr r2, _080CE5BC @ =gPlttBufferFaded +_080CE590: + adds r0, r3, r1 + lsls r0, 1 + adds r0, r2 + mov r7, r12 + strh r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080CE590 +_080CE5A4: + lsrs r2, r5, 16 + lsls r0, r6, 16 + lsrs r3, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _080CE578 + b _080CE65E + .align 2, 0 +_080CE5B8: .4byte 0x00007fbb +_080CE5BC: .4byte gPlttBufferFaded +_080CE5C0: + ldr r0, _080CE608 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CE65E + movs r2, 0 + ldr r3, _080CE60C @ =gSprites + movs r5, 0x14 + adds r5, r3 + mov r12, r5 + ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8 + mov r8, r7 + ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8 + movs r5, 0x1 +_080CE5DE: + lsls r0, r2, 4 + adds r0, r2 + lsls r1, r0, 2 + mov r7, r12 + adds r0, r1, r7 + ldr r0, [r0] + cmp r0, r8 + beq _080CE5F2 + cmp r0, r6 + bne _080CE5F6 +_080CE5F2: + adds r0, r1, r3 + strh r5, [r0, 0x2E] +_080CE5F6: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _080CE5DE + movs r0, 0 + strh r0, [r4, 0xA] + b _080CE640 + .align 2, 0 +_080CE608: .4byte gPaletteFade +_080CE60C: .4byte gSprites +_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8 +_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8 +_080CE618: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080CE65E + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + bl sub_8079BFC + ldr r1, _080CE648 @ =0x00007fbb + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080CE640: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080CE65E + .align 2, 0 +_080CE648: .4byte 0x00007fbb +_080CE64C: + ldr r0, _080CE66C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080CE65E + adds r0, r2, 0 + bl move_anim_task_del +_080CE65E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE66C: .4byte gPaletteFade + thumb_func_end sub_80CE4D4 + + thumb_func_start sub_80CE670 +sub_80CE670: @ 80CE670 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080CE6F4 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bgt _080CE682 + movs r0, 0x2 + strh r0, [r6, 0x4] +_080CE682: + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0x7F + ble _080CE68E + movs r0, 0x7F + strh r0, [r6, 0x4] +_080CE68E: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x30] + ldr r4, _080CE6F8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x2] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r1, [r5, 0x20] + strh r1, [r5, 0x3A] + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CE700 + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE6FC @ =0xffffec00 + b _080CE726 + .align 2, 0 +_080CE6F4: .4byte gUnknown_03004B00 +_080CE6F8: .4byte gUnknown_0202F7C9 +_080CE6FC: .4byte 0xffffec00 +_080CE700: + ldr r0, _080CE740 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CE748 + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + adds r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 5 +_080CE726: + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE744 @ =0xfffff600 + bl __divsi3 + strh r0, [r5, 0x38] + b _080CE784 + .align 2, 0 +_080CE740: .4byte gUnknown_0202F7C8 +_080CE744: .4byte 0xfffff600 +_080CE748: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r4, [r5, 0x22] + subs r4, 0x14 + strh r4, [r5, 0x22] + lsls r0, 7 + strh r0, [r5, 0x32] + movs r0, 0x30 + ldrsh r1, [r5, r0] + ldr r0, _080CE790 @ =0xffffec00 + bl __divsi3 + strh r0, [r5, 0x34] + lsls r4, 7 + strh r4, [r5, 0x36] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0xA0 + lsls r0, 4 + bl __divsi3 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x30 + orrs r0, r1 + strb r0, [r5, 0x3] +_080CE784: + ldr r0, _080CE794 @ =sub_80CE798 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CE790: .4byte 0xffffec00 +_080CE794: .4byte sub_80CE798 + thumb_func_end sub_80CE670 + + thumb_func_start sub_80CE798 +sub_80CE798: @ 80CE798 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 23 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080CE7CE + ldrh r0, [r2, 0x3A] + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x22] +_080CE7CE: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080CE7DC + adds r0, r2, 0 + bl move_anim_8072740 +_080CE7DC: + pop {r0} + bx r0 + thumb_func_end sub_80CE798 + + thumb_func_start sub_80CE7E0 +sub_80CE7E0: @ 80CE7E0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, 2 + add r0, r8 + lsls r0, 3 + ldr r1, _080CE870 @ =gTasks + adds r6, r0, r1 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x8] + ldr r0, _080CE874 @ =0x00002771 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xA] + movs r1, 0xA + ldrsh r0, [r6, r1] + lsls r0, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + ldr r2, _080CE878 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + movs r5, 0x1 + ldr r2, _080CE87C @ =gPlttBufferUnfaded +_080CE838: + adds r1, r3, r5 + lsls r1, 1 + adds r1, r2 + adds r0, r4, r5 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080CE838 + adds r0, r3, 0 + movs r1, 0x10 + movs r2, 0xB + movs r3, 0 + bl BlendPalette + movs r0, 0 + strh r0, [r6, 0xE] + movs r5, 0 + ldr r7, _080CE878 @ =gSprites + movs r1, 0x1C + adds r1, r7 + mov r9, r1 + b _080CE8B4 + .align 2, 0 +_080CE870: .4byte gTasks +_080CE874: .4byte 0x00002771 +_080CE878: .4byte gSprites +_080CE87C: .4byte gPlttBufferUnfaded +_080CE880: + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r7 + ldrb r1, [r6, 0xA] + lsls r1, 4 + ldrb r3, [r4, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0 + strh r0, [r4, 0x2E] + lsls r0, r5, 7 + strh r0, [r4, 0x30] + mov r0, r8 + strh r0, [r4, 0x32] + add r2, r9 + ldr r0, _080CE8E4 @ =sub_80CE974 + str r0, [r2] + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080CE8B4: + cmp r5, 0x1 + bhi _080CE8C6 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080CE880 +_080CE8C6: + ldr r0, _080CE8E8 @ =sub_80CE910 + str r0, [r6] + ldr r0, _080CE8EC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE8F4 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080CE8F0 @ =0x0000fdff + b _080CE8FC + .align 2, 0 +_080CE8E4: .4byte sub_80CE974 +_080CE8E8: .4byte sub_80CE910 +_080CE8EC: .4byte gUnknown_0202F7C8 +_080CE8F0: .4byte 0x0000fdff +_080CE8F4: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080CE90C @ =0x0000fbff +_080CE8FC: + ands r0, r1 + strh r0, [r2] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CE90C: .4byte 0x0000fbff + thumb_func_end sub_80CE7E0 + + thumb_func_start sub_80CE910 +sub_80CE910: @ 80CE910 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080CE944 @ =gTasks + adds r0, r1 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CE968 + ldr r0, _080CE948 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CE94C + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080CE956 + .align 2, 0 +_080CE944: .4byte gTasks +_080CE948: .4byte gUnknown_0202F7C8 +_080CE94C: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080CE956: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + ldr r0, _080CE970 @ =0x00002771 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl move_anim_task_del +_080CE968: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CE970: .4byte 0x00002771 + thumb_func_end sub_80CE910 + + thumb_func_start sub_80CE974 +sub_80CE974: @ 80CE974 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080CE990 + movs r0, 0 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080CE990: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x40 + ble _080CE9B8 + ldr r2, _080CE9B4 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xE] + subs r1, 0x1 + strh r1, [r0, 0xE] + adds r0, r5, 0 + bl obj_delete_but_dont_free_vram + b _080CE9FA + .align 2, 0 +_080CE9B4: .4byte gTasks +_080CE9B8: + ldr r4, _080CEA00 @ =gSineTable + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x6 + bl __divsi3 + strh r0, [r5, 0x36] + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xD + bl __divsi3 + strh r0, [r5, 0x38] + ldrh r1, [r5, 0x30] + adds r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] +_080CE9FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEA00: .4byte gSineTable + thumb_func_end sub_80CE974 + + thumb_func_start sub_80CEA04 +sub_80CEA04: @ 80CEA04 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080CEA18 @ =move_anim_8072740 + bl oamt_set_x3A_32 + ldr r0, _080CEA1C @ =sub_8078600 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CEA18: .4byte move_anim_8072740 +_080CEA1C: .4byte sub_8078600 + thumb_func_end sub_80CEA04 + + thumb_func_start sub_80CEA20 +sub_80CEA20: @ 80CEA20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _080CEAD0 @ =gUnknown_083D712C + ldrh r0, [r4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + beq _080CEA64 + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r5, _080CEAD4 @ =gPlttBufferFaded +_080CEA4C: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r5 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080CEA4C +_080CEA64: + movs r4, 0x1 + ldr r0, _080CEAD0 @ =gUnknown_083D712C + mov r8, r0 +_080CEA6A: + lsls r0, r4, 1 + adds r0, r4 + lsls r5, r0, 2 + mov r1, r8 + adds r0, r5, r1 + ldrh r0, [r0] + bl AllocSpritePalette + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, 0x1 + mov r12, r4 + cmp r3, 0xFF + beq _080CEAB2 + lsls r0, r3, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r3, r0, 16 + movs r2, 0x1 + ldr r7, _080CEAD4 @ =gPlttBufferFaded + ldr r6, _080CEAD0 @ =gUnknown_083D712C + adds r4, r5, 0 +_080CEA98: + adds r1, r3, r2 + lsls r1, 1 + adds r1, r7 + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080CEA98 +_080CEAB2: + mov r1, r12 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080CEA6A + mov r0, r9 + bl move_anim_task_del + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CEAD0: .4byte gUnknown_083D712C +_080CEAD4: .4byte gPlttBufferFaded + thumb_func_end sub_80CEA20 + + thumb_func_start sub_80CEAD8 +sub_80CEAD8: @ 80CEAD8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0x1 + ldr r6, _080CEB08 @ =gUnknown_083D712C +_080CEAE2: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080CEAE2 + adds r0, r5, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEB08: .4byte gUnknown_083D712C + thumb_func_end sub_80CEAD8 + + thumb_func_start sub_80CEB0C +sub_80CEB0C: @ 80CEB0C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8078650 + ldr r4, _080CEB64 @ =gUnknown_03004B00 + ldrb r1, [r4] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r2, _080CEB68 @ =gUnknown_083D712C + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CEB48 + lsls r2, r0, 4 + ldrb r1, [r5, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] +_080CEB48: + ldrh r0, [r4, 0x2] + movs r1, 0 + strh r0, [r5, 0x30] + strh r1, [r5, 0x32] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x34] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CEB6C + movs r6, 0x30 + movs r3, 0x28 + b _080CEB86 + .align 2, 0 +_080CEB64: .4byte gUnknown_03004B00 +_080CEB68: .4byte gUnknown_083D712C +_080CEB6C: + ldr r4, _080CEBBC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r3, r0, 24 +_080CEB86: + ldrh r0, [r5, 0x20] + lsls r1, r0, 4 + strh r1, [r5, 0x36] + ldrh r1, [r5, 0x22] + lsls r2, r1, 4 + strh r2, [r5, 0x38] + subs r0, r6, r0 + lsls r0, 16 + asrs r0, 16 + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + adds r2, r5, 0 + adds r2, 0x3A + adds r3, r5, 0 + adds r3, 0x3C + movs r4, 0x28 + str r4, [sp] + bl sub_80CEBC4 + ldr r0, _080CEBC0 @ =sub_80CEC1C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEBBC: .4byte gUnknown_0202F7C9 +_080CEBC0: .4byte sub_80CEC1C + thumb_func_end sub_80CEB0C + + thumb_func_start sub_80CEBC4 +sub_80CEBC4: @ 80CEBC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r2, 0 + mov r8, r3 + ldr r2, [sp, 0x18] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r1, r2, 24 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bge _080CEBE6 + lsls r0, r1, 24 + negs r0, r0 + lsrs r1, r0, 24 +_080CEBE6: + lsls r5, r2, 8 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl __divsi3 + adds r4, r0, 0 + cmp r4, 0 + bne _080CEBFA + movs r4, 0x1 +_080CEBFA: + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r7] + lsls r0, r6, 16 + asrs r0, 8 + adds r1, r4, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80CEBC4 + + thumb_func_start sub_80CEC1C +sub_80CEC1C: @ 80CEC1C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x2E] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r1, r0, r1 + adds r0, r1, 0 + cmp r1, 0 + bge _080CEC38 + adds r0, 0xFF +_080CEC38: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + ldrh r1, [r4, 0x3A] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + ldrh r2, [r4, 0x3C] + ldrh r3, [r4, 0x38] + adds r2, r3 + strh r2, [r4, 0x38] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x20] + lsls r2, 16 + asrs r2, 20 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0xF + bl Sin + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bhi _080CEC86 + lsls r0, r2, 16 + asrs r1, r0, 16 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080CEC86 + cmp r1, 0x80 + ble _080CEC8E +_080CEC86: + adds r0, r4, 0 + bl move_anim_8074EE0 + b _080CECDE +_080CEC8E: + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _080CECDE + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, r1 + ble _080CECDE + strh r5, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080CECB6 + strh r5, [r4, 0x30] +_080CECB6: + ldr r2, _080CECE4 @ =gUnknown_083D712C + movs r3, 0x30 + ldrsh r1, [r4, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CECDE + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080CECDE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CECE4: .4byte gUnknown_083D712C + thumb_func_end sub_80CEC1C + + thumb_func_start sub_80CECE8 +sub_80CECE8: @ 80CECE8 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _080CED6C @ =gUnknown_0202F7C8 + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080CED06 + ldr r1, _080CED70 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080CED06: + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CED70 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r7] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r6, 0x22] + ldrb r1, [r4] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x32] + strh r5, [r6, 0x34] + ldrh r0, [r6, 0x20] + lsls r0, 4 + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x22] + lsls r0, 4 + strh r0, [r6, 0x38] + movs r1, 0x2 + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3A] + movs r2, 0x4 + ldrsh r0, [r4, r2] + lsls r0, 7 + movs r1, 0x5 + bl __divsi3 + strh r0, [r6, 0x3C] + ldr r0, _080CED74 @ =sub_80CED78 + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CED6C: .4byte gUnknown_0202F7C8 +_080CED70: .4byte gUnknown_03004B00 +_080CED74: .4byte sub_80CED78 + thumb_func_end sub_80CECE8 + + thumb_func_start sub_80CED78 +sub_80CED78: @ 80CED78 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + ble _080CEDD6 + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080CEDD6 + ldrh r0, [r4, 0x32] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x12 + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x12 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080CEDD6 + movs r0, 0x1 + strh r0, [r4, 0x34] +_080CEDD6: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + bne _080CEDEA + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CEDEA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CED78 + + thumb_func_start sub_80CEDF0 +sub_80CEDF0: @ 80CEDF0 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080CEE10 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080CEE14 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] + movs r6, 0x10 + b _080CEE16 + .align 2, 0 +_080CEE10: .4byte gUnknown_03004B00 +_080CEE14: + ldr r6, _080CEE50 @ =0x0000fff0 +_080CEE16: + ldr r4, _080CEE54 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x8 + strh r0, [r5, 0x22] + movs r0, 0x8 + strh r0, [r5, 0x2E] + ldr r0, _080CEE58 @ =sub_80782D8 + str r0, [r5, 0x1C] + ldr r1, _080CEE5C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CEE50: .4byte 0x0000fff0 +_080CEE54: .4byte gUnknown_0202F7C8 +_080CEE58: .4byte sub_80782D8 +_080CEE5C: .4byte move_anim_8072740 + thumb_func_end sub_80CEDF0 + + thumb_func_start sub_80CEE60 +sub_80CEE60: @ 80CEE60 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] + ldr r5, _080CEED8 @ =gUnknown_03004B00 + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r2, _080CEEDC @ =gUnknown_083D712C + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080CEEA0 + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] +_080CEEA0: + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x20 + cmp r0, 0 + bne _080CEEAC + ldr r2, _080CEEE0 @ =0x0000ffe0 +_080CEEAC: + movs r0, 0x28 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x20] + strh r1, [r4, 0x30] + lsls r0, r2, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + subs r0, 0x28 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x38] + ldr r0, _080CEEE4 @ =sub_80CEEE8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEED8: .4byte gUnknown_03004B00 +_080CEEDC: .4byte gUnknown_083D712C +_080CEEE0: .4byte 0x0000ffe0 +_080CEEE4: .4byte sub_80CEEE8 + thumb_func_end sub_80CEE60 + + thumb_func_start sub_80CEEE8 +sub_80CEEE8: @ 80CEEE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080CEF38 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + lsls r0, 16 + lsrs r1, r0, 16 + ldrh r2, [r4, 0x24] + movs r3, 0x24 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080CEF14 + lsls r0, r1, 16 + negs r0, r0 + lsrs r1, r0, 16 +_080CEF14: + lsls r0, r1, 16 + asrs r0, 16 + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + ldrh r3, [r4, 0x26] + adds r0, r3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080CEF3E +_080CEF38: + adds r0, r4, 0 + bl move_anim_8072740 +_080CEF3E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80CEEE8 + + thumb_func_start sub_80CEF44 +sub_80CEF44: @ 80CEF44 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CEF64 + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + adds r0, 0x8 + b _080CEF6E +_080CEF64: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + subs r0, 0x8 +_080CEF6E: + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + adds r4, r0, 0 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080CEF90 + adds r0, 0x3 +_080CEF90: + asrs r0, 2 + subs r0, r4, r0 + strh r0, [r6, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CEF44 + + thumb_func_start sub_80CEF9C +sub_80CEF9C: @ 80CEF9C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CEFB0 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CEFB8 + ldr r0, _080CEFB4 @ =gUnknown_0202F7C8 + b _080CEFBA + .align 2, 0 +_080CEFB0: .4byte gUnknown_03004B00 +_080CEFB4: .4byte gUnknown_0202F7C8 +_080CEFB8: + ldr r0, _080CEFF8 @ =gUnknown_0202F7C9 +_080CEFBA: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80CEF44 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + ldr r0, _080CEFFC @ =gUnknown_03004B00 + ldrh r0, [r0, 0x2] + strh r0, [r5, 0x2E] + adds r0, r1, 0x2 + strh r0, [r5, 0x30] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _080CF000 @ =sub_80CF008 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF004 @ =sub_8078600 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CEFF8: .4byte gUnknown_0202F7C9 +_080CEFFC: .4byte gUnknown_03004B00 +_080CF000: .4byte sub_80CF008 +_080CF004: .4byte sub_8078600 + thumb_func_end sub_80CEF9C + + thumb_func_start sub_80CF008 +sub_80CF008: @ 80CF008 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080CF030 + ldr r1, _080CF038 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080CF03C @ =sub_8078600 + str r0, [r4, 0x1C] +_080CF030: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF038: .4byte move_anim_8072740 +_080CF03C: .4byte sub_8078600 + thumb_func_end sub_80CF008 + + thumb_func_start sub_80CF040 +sub_80CF040: @ 80CF040 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CF054 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF05C + ldr r0, _080CF058 @ =gUnknown_0202F7C8 + b _080CF05E + .align 2, 0 +_080CF054: .4byte gUnknown_03004B00 +_080CF058: .4byte gUnknown_0202F7C8 +_080CF05C: + ldr r0, _080CF07C @ =gUnknown_0202F7C9 +_080CF05E: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80CEF44 + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r1, _080CF080 @ =sub_80CF088 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF084 @ =sub_80785E4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF07C: .4byte gUnknown_0202F7C9 +_080CF080: .4byte sub_80CF088 +_080CF084: .4byte sub_80785E4 + thumb_func_end sub_80CF040 + + thumb_func_start sub_80CF088 +sub_80CF088: @ 80CF088 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080CF0AE + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080CF0B4 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF0B8 @ =sub_80785E4 + str r0, [r4, 0x1C] +_080CF0AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF0B4: .4byte move_anim_8074EE0 +_080CF0B8: .4byte sub_80785E4 + thumb_func_end sub_80CF088 + + thumb_func_start sub_80CF0BC +sub_80CF0BC: @ 80CF0BC + push {r4-r6,lr} + adds r4, r0, 0 + ldr r0, _080CF0D0 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF0D8 + ldr r0, _080CF0D4 @ =gUnknown_0202F7C8 + b _080CF0DA + .align 2, 0 +_080CF0D0: .4byte gUnknown_03004B00 +_080CF0D4: .4byte gUnknown_0202F7C8 +_080CF0D8: + ldr r0, _080CF12C @ =gUnknown_0202F7C9 +_080CF0DA: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080CF102 + movs r0, 0xA + strh r0, [r4, 0x22] +_080CF102: + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r6, [r4, 0x30] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + strh r0, [r4, 0x32] + ldrb r0, [r1] + adds r0, 0x4 + strh r0, [r4, 0x34] + strh r6, [r4, 0x36] + ldr r1, _080CF130 @ =sub_80CF138 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF134 @ =sub_80785E4 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF12C: .4byte gUnknown_0202F7C9 +_080CF130: .4byte sub_80CF138 +_080CF134: .4byte sub_80785E4 + thumb_func_end sub_80CF0BC + + thumb_func_start sub_80CF138 +sub_80CF138: @ 80CF138 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x36] + adds r0, 0x1 + strh r0, [r1, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080CF14E + ldr r0, _080CF154 @ =sub_80CF158 + str r0, [r1, 0x1C] +_080CF14E: + pop {r0} + bx r0 + .align 2, 0 +_080CF154: .4byte sub_80CF158 + thumb_func_end sub_80CF138 + + thumb_func_start sub_80CF158 +sub_80CF158: @ 80CF158 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x4 + strh r1, [r2, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFE + ble _080CF18A + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080CF184 + strh r0, [r2, 0x24] + ldr r0, _080CF180 @ =sub_80CF088 + str r0, [r2, 0x1C] + b _080CF1C0 + .align 2, 0 +_080CF180: .4byte sub_80CF088 +_080CF184: + movs r0, 0xFF + ands r1, r0 + strh r1, [r2, 0x30] +_080CF18A: + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0x4F + ble _080CF19A + ldrh r0, [r2, 0x34] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080CF19A: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0x9F + ble _080CF1AA + ldrh r0, [r2, 0x32] + adds r1, r2, 0 + adds r1, 0x43 + strb r0, [r1] +_080CF1AA: + ldr r1, _080CF1C4 @ =gSineTable + movs r3, 0x30 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + asrs r1, r0, 1 + adds r0, r1 + strh r0, [r2, 0x24] +_080CF1C0: + pop {r0} + bx r0 + .align 2, 0 +_080CF1C4: .4byte gSineTable + thumb_func_end sub_80CF158 + + thumb_func_start sub_80CF1C8 +sub_80CF1C8: @ 80CF1C8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080CF1DC @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF1E4 + ldr r0, _080CF1E0 @ =gUnknown_0202F7C8 + b _080CF1E6 + .align 2, 0 +_080CF1DC: .4byte gUnknown_03004B00 +_080CF1E0: .4byte gUnknown_0202F7C8 +_080CF1E4: + ldr r0, _080CF208 @ =gUnknown_0202F7C9 +_080CF1E6: + ldrb r4, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80CEF44 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CF20C + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + movs r0, 0x2 + b _080CF216 + .align 2, 0 +_080CF208: .4byte gUnknown_0202F7C9 +_080CF20C: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x3 +_080CF216: + strh r0, [r5, 0x2E] + ldr r0, _080CF224 @ =sub_80CF228 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF224: .4byte sub_80CF228 + thumb_func_end sub_80CF1C8 + + thumb_func_start sub_80CF228 +sub_80CF228: @ 80CF228 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080CF256 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, _080CF25C @ =sub_80CF264 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080CF260 @ =sub_8078600 + str r0, [r4, 0x1C] +_080CF256: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF25C: .4byte sub_80CF264 +_080CF260: .4byte sub_8078600 + thumb_func_end sub_80CF228 + + thumb_func_start sub_80CF264 +sub_80CF264: @ 80CF264 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080CF27C + adds r0, r1, 0 + bl move_anim_8072740 +_080CF27C: + pop {r0} + bx r0 + thumb_func_end sub_80CF264 + + thumb_func_start sub_80CF280 +sub_80CF280: @ 80CF280 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r5, _080CF2C4 @ =gUnknown_03004B00 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x36] + ldr r1, _080CF2C8 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080CF2CC @ =sub_8078278 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF2C4: .4byte gUnknown_03004B00 +_080CF2C8: .4byte move_anim_8074EE0 +_080CF2CC: .4byte sub_8078278 + thumb_func_end sub_80CF280 + + thumb_func_start sub_80CF2D0 +sub_80CF2D0: @ 80CF2D0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080CF2E4 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CF2EC + ldr r0, _080CF2E8 @ =gUnknown_0202F7C8 + b _080CF2EE + .align 2, 0 +_080CF2E4: .4byte gUnknown_03004B00 +_080CF2E8: .4byte gUnknown_0202F7C8 +_080CF2EC: + ldr r0, _080CF308 @ =gUnknown_0202F7C9 +_080CF2EE: + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80CEF44 + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x30] + ldr r0, _080CF30C @ =sub_80CF310 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF308: .4byte gUnknown_0202F7C9 +_080CF30C: .4byte sub_80CF310 + thumb_func_end sub_80CF2D0 + + thumb_func_start sub_80CF310 +sub_80CF310: @ 80CF310 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080CF342 + cmp r0, 0x1 + bgt _080CF326 + cmp r0, 0 + beq _080CF32C + b _080CF370 +_080CF326: + cmp r0, 0x2 + beq _080CF35C + b _080CF370 +_080CF32C: + ldrh r0, [r1, 0x26] + subs r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080CF370 + b _080CF354 +_080CF342: + ldrh r0, [r1, 0x26] + adds r0, 0x3 + strh r0, [r1, 0x26] + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080CF370 +_080CF354: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080CF370 +_080CF35C: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080CF370 + adds r0, r1, 0 + bl move_anim_8072740 +_080CF370: + pop {r0} + bx r0 + thumb_func_end sub_80CF310 + + thumb_func_start sub_80CF374 +sub_80CF374: @ 80CF374 + push {r4,lr} + adds r4, r0, 0 + ldr r3, _080CF3C0 @ =gSprites + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r4, 0x30] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080CF3B2 + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x24] + adds r0, r4, 0 + bl move_anim_8074EE0 +_080CF3B2: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF3C0: .4byte gSprites + thumb_func_end sub_80CF374 + + thumb_func_start sub_80CF3C4 +sub_80CF3C4: @ 80CF3C4 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080CF40C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080CF410 @ =gUnknown_02024BE0 + ldr r0, _080CF414 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF41C + ldr r0, _080CF418 @ =gUnknown_03004B00 + ldrh r1, [r5, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r5, 0x20] + adds r1, r0, 0 + b _080CF426 + .align 2, 0 +_080CF40C: .4byte gUnknown_0202F7C8 +_080CF410: .4byte gUnknown_02024BE0 +_080CF414: .4byte gUnknown_0202F7C9 +_080CF418: .4byte gUnknown_03004B00 +_080CF41C: + ldr r1, _080CF450 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080CF426: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + strh r6, [r5, 0x32] + ldr r0, _080CF454 @ =sub_80CF374 + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080CF450: .4byte gUnknown_03004B00 +_080CF454: .4byte sub_80CF374 + thumb_func_end sub_80CF3C4 + + thumb_func_start sub_80CF458 +sub_80CF458: @ 80CF458 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080CF484 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x38] + ldr r0, _080CF488 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080CF48C @ =sub_80CF490 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF484: .4byte gUnknown_03004B00 +_080CF488: .4byte sub_80782D8 +_080CF48C: .4byte sub_80CF490 + thumb_func_end sub_80CF458 + + thumb_func_start sub_80CF490 +sub_80CF490: @ 80CF490 + push {lr} + ldrh r1, [r0, 0x30] + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0xF + strh r1, [r0, 0x36] + ldr r1, _080CF4B0 @ =sub_8078B34 + str r1, [r0, 0x1C] + ldr r1, _080CF4B4 @ =sub_80CF4B8 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CF4B0: .4byte sub_8078B34 +_080CF4B4: .4byte sub_80CF4B8 + thumb_func_end sub_80CF490 + + thumb_func_start sub_80CF4B8 +sub_80CF4B8: @ 80CF4B8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x38] + movs r3, 0x38 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080CF4CE + adds r0, r1, 0 + bl move_anim_8072740 + b _080CF4D2 +_080CF4CE: + subs r0, r2, 0x1 + strh r0, [r1, 0x38] +_080CF4D2: + pop {r0} + bx r0 + thumb_func_end sub_80CF4B8 + + thumb_func_start sub_80CF4D8 +sub_80CF4D8: @ 80CF4D8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080CF504 @ =gUnknown_02024BE0 + ldr r0, _080CF508 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_8078E70 + ldr r1, _080CF50C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080CF510 @ =sub_80CF514 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF504: .4byte gUnknown_02024BE0 +_080CF508: .4byte gUnknown_0202F7C8 +_080CF50C: .4byte gTasks +_080CF510: .4byte sub_80CF514 + thumb_func_end sub_80CF4D8 + + thumb_func_start sub_80CF514 +sub_80CF514: @ 80CF514 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080CF544 @ =gUnknown_02024BE0 + ldr r0, _080CF548 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r1, r0, r1 + ldrb r4, [r1] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CF550 + ldr r1, _080CF54C @ =gTasks + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + negs r0, r0 + lsls r0, 16 + lsrs r3, r0, 16 + adds r6, r2, 0 + b _080CF55E + .align 2, 0 +_080CF544: .4byte gUnknown_02024BE0 +_080CF548: .4byte gUnknown_0202F7C8 +_080CF54C: .4byte gTasks +_080CF550: + ldr r2, _080CF590 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + ldrh r3, [r0, 0x8] + adds r6, r1, 0 +_080CF55E: + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + bl obj_id_set_rotscale + ldr r1, _080CF590 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080CF598 + ldrh r0, [r1, 0x8] + adds r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080CF594 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + b _080CF5C2 + .align 2, 0 +_080CF590: .4byte gTasks +_080CF594: .4byte gSprites +_080CF598: + cmp r0, 0x1 + bne _080CF5AE + ldrh r0, [r1, 0xE] + adds r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bne _080CF608 + movs r0, 0x2 + b _080CF606 +_080CF5AE: + ldrh r0, [r1, 0x8] + subs r0, 0xB0 + strh r0, [r1, 0x8] + ldr r1, _080CF5FC @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + subs r1, 0x1 +_080CF5C2: + strh r1, [r0, 0x26] + adds r0, r4, 0 + bl sub_8078F9C + ldr r0, _080CF600 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r2, [r1, r3] + movs r0, 0xF2 + lsls r0, 4 + cmp r2, r0 + beq _080CF5E2 + cmp r2, 0 + bne _080CF608 +_080CF5E2: + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bne _080CF604 + adds r0, r4, 0 + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del + b _080CF608 + .align 2, 0 +_080CF5FC: .4byte gSprites +_080CF600: .4byte gTasks +_080CF604: + adds r0, r2, 0x1 +_080CF606: + strh r0, [r1, 0xA] +_080CF608: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80CF514 + + thumb_func_start sub_80CF610 +sub_80CF610: @ 80CF610 + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r5, _080CF658 @ =gUnknown_03004B00 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080CF65C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF660 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r1, r0 + strb r1, [r2] + movs r3, 0x4 + ldrsh r0, [r5, r3] + cmp r0, 0 + beq _080CF674 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] + b _080CF674 + .align 2, 0 +_080CF658: .4byte gUnknown_03004B00 +_080CF65C: .4byte gUnknown_0202F7C8 +_080CF660: + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080CF674 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] +_080CF674: + ldr r0, _080CF688 @ =sub_8078600 + str r0, [r4, 0x1C] + ldr r1, _080CF68C @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080CF688: .4byte sub_8078600 +_080CF68C: .4byte move_anim_8072740 + thumb_func_end sub_80CF610 + + thumb_func_start sub_80CF690 +sub_80CF690: @ 80CF690 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080CF6AC @ =sub_80785E4 + str r0, [r4, 0x1C] + ldr r1, _080CF6B0 @ =sub_80CF6B4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF6AC: .4byte sub_80785E4 +_080CF6B0: .4byte sub_80CF6B4 + thumb_func_end sub_80CF690 + + thumb_func_start sub_80CF6B4 +sub_80CF6B4: @ 80CF6B4 + push {lr} + movs r1, 0x6 + strh r1, [r0, 0x2E] + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + subs r1, 0x20 + strh r1, [r0, 0x36] + ldr r1, _080CF6D4 @ =sub_8078B34 + str r1, [r0, 0x1C] + ldr r1, _080CF6D8 @ =move_anim_8072740 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080CF6D4: .4byte sub_8078B34 +_080CF6D8: .4byte move_anim_8072740 + thumb_func_end sub_80CF6B4 + + thumb_func_start sub_80CF6DC +sub_80CF6DC: @ 80CF6DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CF700 + ldr r1, _080CF6FC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080CF722 + .align 2, 0 +_080CF6FC: .4byte gUnknown_03004B00 +_080CF700: + ldr r0, _080CF7C8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CF722 + ldr r1, _080CF7CC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080CF722: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080CF7D0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r6, _080CF7CC @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldrh r1, [r5, 0x20] + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 24 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080CF794 + ldr r2, _080CF7D4 @ =0xffffa000 + adds r0, r4, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_080CF794: + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + mov r0, r8 + strh r0, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080CF7D8 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080CF7DC @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CF7C8: .4byte gUnknown_0202F7C8 +_080CF7CC: .4byte gUnknown_03004B00 +_080CF7D0: .4byte gUnknown_0202F7C9 +_080CF7D4: .4byte 0xffffa000 +_080CF7D8: .4byte sub_8078B34 +_080CF7DC: .4byte move_anim_8072740 + thumb_func_end sub_80CF6DC + + thumb_func_start sub_80CF7E0 +sub_80CF7E0: @ 80CF7E0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF80A + ldr r2, _080CF810 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + adds r0, r3, 0 + bl DestroySprite +_080CF80A: + pop {r0} + bx r0 + .align 2, 0 +_080CF810: .4byte gTasks + thumb_func_end sub_80CF7E0 + + thumb_func_start sub_80CF814 +sub_80CF814: @ 80CF814 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0x3C + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080CF844 @ =gTasks + adds r4, r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + ble _080CF848 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x38] + adds r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x36] + ldrh r3, [r2, 0x3A] + adds r0, r3 + b _080CF856 + .align 2, 0 +_080CF844: .4byte gTasks +_080CF848: + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x34] + subs r0, r1 + strh r0, [r2, 0x38] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + subs r0, r1 +_080CF856: + strh r0, [r2, 0x3A] + ldrh r0, [r2, 0x38] + ldrh r1, [r2, 0x30] + adds r3, r0, r1 + strh r3, [r2, 0x30] + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r4, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF87A + lsls r0, r3, 16 + lsrs r0, 24 + negs r0, r0 + b _080CF87E +_080CF87A: + lsls r0, r3, 16 + lsrs r0, 24 +_080CF87E: + strh r0, [r2, 0x24] + ldrh r1, [r4, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF892 + ldrh r0, [r2, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080CF896 +_080CF892: + ldrh r0, [r2, 0x32] + lsrs r0, 8 +_080CF896: + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + subs r1, r0, 0x1 + strh r1, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF8AC + movs r0, 0x1E + strh r0, [r2, 0x2E] + ldr r0, _080CF8B4 @ =sub_80CF7E0 + str r0, [r2, 0x1C] +_080CF8AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CF8B4: .4byte sub_80CF7E0 + thumb_func_end sub_80CF814 + + thumb_func_start sub_80CF8B8 +sub_80CF8B8: @ 80CF8B8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _080CF8FC @ =gTasks + adds r6, r0, r1 + ldrh r2, [r6, 0x16] + movs r1, 0x2 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + ldrh r3, [r7, 0x30] + adds r2, r0, r3 + strh r2, [r7, 0x30] + ldrh r0, [r6, 0x18] + ands r1, r0 + ldrh r0, [r7, 0x32] + adds r1, r0 + strh r1, [r7, 0x32] + ldrh r1, [r6, 0x16] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF900 + lsls r0, r2, 16 + lsrs r0, 24 + negs r0, r0 + b _080CF904 + .align 2, 0 +_080CF8FC: .4byte gTasks +_080CF900: + lsls r0, r2, 16 + lsrs r0, 24 +_080CF904: + strh r0, [r7, 0x24] + ldrh r1, [r6, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CF918 + ldrh r0, [r7, 0x32] + lsrs r0, 8 + negs r0, r0 + b _080CF91C +_080CF918: + ldrh r0, [r7, 0x32] + lsrs r0, 8 +_080CF91C: + strh r0, [r7, 0x26] + ldrh r0, [r7, 0x2E] + subs r1, r0, 0x1 + strh r1, [r7, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080CF9E8 + movs r4, 0 + movs r0, 0x8 + strh r0, [r7, 0x2E] + movs r0, 0x4 + strh r0, [r6, 0x12] + movs r0, 0x80 + lsls r0, 5 + bl sub_81174E0 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r7, 0x24] + ldrh r1, [r7, 0x20] + adds r2, r0, r1 + strh r2, [r7, 0x20] + ldrh r0, [r7, 0x26] + ldrh r3, [r7, 0x22] + adds r0, r3 + strh r0, [r7, 0x22] + strh r4, [r7, 0x26] + strh r4, [r7, 0x24] + ldrh r3, [r6, 0x1E] + movs r0, 0x1E + ldrsh r1, [r6, r0] + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + blt _080CF966 + subs r0, r3, r2 + b _080CF968 +_080CF966: + subs r0, r2, r3 +_080CF968: + lsls r0, 24 + lsrs r4, r0, 16 + ldrh r3, [r6, 0x20] + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r7, 0x22] + movs r6, 0x22 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080CF980 + subs r0, r3, r2 + b _080CF982 +_080CF980: + subs r0, r2, r3 +_080CF982: + lsls r0, 24 + lsrs r0, 16 + mov r8, r0 + movs r0, 0 + strh r0, [r7, 0x32] + strh r0, [r7, 0x30] + strh r0, [r7, 0x3A] + strh r0, [r7, 0x38] + lsls r0, r4, 16 + asrs r0, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r5, 0 + bl sub_81174C4 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r6, 0 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + strh r0, [r7, 0x34] + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r1, r5, 0 + bl sub_81174C4 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r6, 0 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + strh r0, [r7, 0x36] + ldr r0, _080CF9F4 @ =sub_80CF814 + str r0, [r7, 0x1C] +_080CF9E8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CF9F4: .4byte sub_80CF814 + thumb_func_end sub_80CF8B8 + + thumb_func_start sub_80CF9F8 +sub_80CF9F8: @ 80CF9F8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080CFA1C @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080CFA16 + adds r0, r2, 0 + bl move_anim_task_del +_080CFA16: + pop {r0} + bx r0 + .align 2, 0 +_080CFA1C: .4byte gTasks + thumb_func_end sub_80CF9F8 + + thumb_func_start sub_80CFA20 +sub_80CFA20: @ 80CFA20 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080CFA74 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + subs r1, r0, 0x1 + strh r1, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bgt _080CFAF4 + ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC + movs r2, 0x1A + ldrsh r1, [r5, r2] + movs r3, 0x1C + ldrsh r2, [r5, r3] + ldrb r3, [r5, 0xC] + ldrb r4, [r5, 0xA] + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r0, 4 + add r0, r12 + lsls r0, 2 + ldr r1, _080CFA7C @ =gSprites + adds r6, r0, r1 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080CFA80 + cmp r0, 0x2 + beq _080CFA96 + b _080CFAA4 + .align 2, 0 +_080CFA74: .4byte gTasks +_080CFA78: .4byte gSpriteTemplate_83D74BC +_080CFA7C: .4byte gSprites +_080CFA80: + ldrb r2, [r6, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x3] + b _080CFAA4 +_080CFA96: + ldrb r0, [r6, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r6, 0x3] +_080CFAA4: + ldr r3, _080CFAFC @ =gTasks + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r4, r2, r3 + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x14] + subs r0, r1 + strh r0, [r6, 0x2E] + strh r7, [r6, 0x3C] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xD + lsls r0, 1 + adds r0, r2 + adds r3, 0x8 + adds r0, r3 + mov r2, r12 + strh r2, [r0] + ldrh r0, [r4, 0xE] + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0x3F + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x9A + bl PlaySE12WithPanning + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0x2 + ble _080CFAF4 + ldr r0, _080CFB00 @ =sub_80CF9F8 + str r0, [r4] +_080CFAF4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFAFC: .4byte gTasks +_080CFB00: .4byte sub_80CF9F8 + thumb_func_end sub_80CFA20 + + thumb_func_start sub_80CFB04 +sub_80CFB04: @ 80CFB04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r9, r0 + movs r5, 0 + mov r0, sp + mov r1, r9 + strh r1, [r0] + mov r4, sp + adds r4, 0x2 + strh r1, [r4] + bl sub_8076BE0 + lsls r0, 24 + mov r10, r4 + cmp r0, 0 + beq _080CFB70 + ldr r1, _080CFB60 @ =gTasks + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x10] + ldr r3, _080CFB64 @ =gUnknown_03004B00 + ldrh r0, [r3] + negs r0, r0 + strh r0, [r3] + ldrh r1, [r3, 0x4] + movs r0, 0x1 + ands r0, r1 + mov r8, r2 + cmp r0, 0 + beq _080CFB68 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strh r0, [r3, 0x4] + b _080CFBCA + .align 2, 0 +_080CFB60: .4byte gTasks +_080CFB64: .4byte gUnknown_03004B00 +_080CFB68: + movs r0, 0x1 + orrs r0, r1 + strh r0, [r3, 0x4] + b _080CFBCA +_080CFB70: + ldr r1, _080CFBB4 @ =gUnknown_02024A72 + ldr r0, _080CFBB8 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + lsls r2, r7, 2 + mov r8, r2 + cmp r0, 0 + bne _080CFBCA + ldr r1, _080CFBBC @ =gTasks + adds r0, r2, r7 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x10] + ldr r2, _080CFBC0 @ =gUnknown_03004B00 + ldrh r0, [r2] + negs r0, r0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + negs r0, r0 + strh r0, [r2, 0x2] + ldrh r1, [r2, 0x4] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080CFBC4 + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + b _080CFBC8 + .align 2, 0 +_080CFBB4: .4byte gUnknown_02024A72 +_080CFBB8: .4byte gUnknown_0202F7C9 +_080CFBBC: .4byte gTasks +_080CFBC0: .4byte gUnknown_03004B00 +_080CFBC4: + movs r0, 0x1 + orrs r0, r1 +_080CFBC8: + strh r0, [r2, 0x4] +_080CFBCA: + ldr r5, _080CFC24 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + ldr r1, _080CFC28 @ =gTasks + mov r3, r8 + adds r4, r3, r7 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + adds r6, r0, 0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + mov r9, r0 + ldr r0, _080CFC2C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080CFC34 + ldr r4, _080CFC30 @ =gUnknown_0202F7C9 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080CFC34 + ldrb r0, [r4] + movs r1, 0 + mov r2, sp + mov r3, r10 + bl sub_807A3FC + b _080CFC56 + .align 2, 0 +_080CFC24: .4byte gUnknown_0202F7C8 +_080CFC28: .4byte gTasks +_080CFC2C: .4byte gUnknown_020239F8 +_080CFC30: .4byte gUnknown_0202F7C9 +_080CFC34: + mov r5, sp + ldr r4, _080CFC90 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r1, r10 + strh r0, [r1] +_080CFC56: + mov r4, sp + ldr r0, _080CFC94 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + mov r2, sp + ldr r3, _080CFC98 @ =gUnknown_03004B00 + ldrh r0, [r3] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r1, 0x1E] + strh r0, [r4] + ldrh r0, [r3, 0x2] + mov r3, r10 + ldrh r3, [r3] + adds r0, r3 + strh r0, [r1, 0x20] + mov r1, r10 + strh r0, [r1] + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r0, [r0, r3] + adds r1, r6, 0 + cmp r0, r1 + blt _080CFC9C + subs r0, r2, r1 + b _080CFC9E + .align 2, 0 +_080CFC90: .4byte gUnknown_0202F7C9 +_080CFC94: .4byte gTasks +_080CFC98: .4byte gUnknown_03004B00 +_080CFC9C: + subs r0, r1, r2 +_080CFC9E: + lsls r0, 16 + lsrs r0, 16 + lsls r4, r0, 16 + asrs r4, 16 + ldr r5, _080CFD14 @ =gUnknown_03004B00 + ldrh r1, [r5, 0x4] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + ldr r2, _080CFD18 @ =gTasks + mov r3, r8 + adds r1, r3, r7 + lsls r1, 3 + adds r6, r1, r2 + strh r0, [r6, 0x12] + movs r1, 0x12 + ldrsh r0, [r6, r1] + movs r1, 0x80 + bl sub_81174C4 + strh r0, [r6, 0x14] + ldrh r0, [r5, 0x4] + strh r0, [r6, 0x16] + mov r2, r10 + ldrh r1, [r2] + movs r3, 0 + ldrsh r0, [r2, r3] + mov r4, r9 + cmp r0, r4 + blt _080CFD1C + subs r4, r1, r4 + lsls r4, 16 + asrs r4, 16 + movs r1, 0x12 + ldrsh r0, [r6, r1] + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + movs r1, 0x2 + negs r1, r1 + ands r1, r0 + strh r1, [r6, 0x18] + b _080CFD3C + .align 2, 0 +_080CFD14: .4byte gUnknown_03004B00 +_080CFD18: .4byte gTasks +_080CFD1C: + subs r4, r1 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + bl sub_81174E0 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_81174C4 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r6, 0x18] +_080CFD3C: + ldr r1, _080CFD7C @ =gTasks + mov r3, r8 + adds r0, r3, r7 + lsls r0, 3 + adds r5, r0, r1 + ldr r4, _080CFD80 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x6] + strh r0, [r5, 0xE] + ldrh r1, [r4, 0x8] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080CFD8C + movs r0, 0x80 + eors r0, r1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080CFDB4 + ldr r0, _080CFD84 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080CFD88 @ =0x0000ffc0 + adds r1, r2, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080CFDC4 + .align 2, 0 +_080CFD7C: .4byte gTasks +_080CFD80: .4byte gUnknown_03004B00 +_080CFD84: .4byte gUnknown_0202F7C9 +_080CFD88: .4byte 0x0000ffc0 +_080CFD8C: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x3F + ble _080CFDB4 + ldr r0, _080CFDAC @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080CFDB0 @ =0x0000ffc0 + adds r1, r3, 0 + ldrh r4, [r4, 0x8] + adds r1, r4 + adds r0, r1 + b _080CFDC4 + .align 2, 0 +_080CFDAC: .4byte gUnknown_0202F7C9 +_080CFDB0: .4byte 0x0000ffc0 +_080CFDB4: + ldr r0, _080CFDF0 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x8] + subs r0, r1 +_080CFDC4: + strh r0, [r5, 0xC] + ldr r0, _080CFDF4 @ =gTasks + mov r2, r8 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x2 + bgt _080CFDDC + movs r0, 0x3 + strh r0, [r1, 0xC] +_080CFDDC: + ldr r0, _080CFDF8 @ =sub_80CFA20 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFDF0: .4byte gUnknown_0202F7C9 +_080CFDF4: .4byte gTasks +_080CFDF8: .4byte sub_80CFA20 + thumb_func_end sub_80CFB04 + + thumb_func_start sub_80CFDFC +sub_80CFDFC: @ 80CFDFC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0x2E] + ldr r0, _080CFE28 @ =sub_80CFE2C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CFE24: .4byte gSpriteTemplate_83D75AC +_080CFE28: .4byte sub_80CFE2C + thumb_func_end sub_80CFDFC + + thumb_func_start sub_80CFE2C +sub_80CFE2C: @ 80CFE2C + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080CFE90 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r5, [r4, 0x2E] + ldr r1, _080CFE98 @ =gPlttBufferFaded + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + adds r6, r1, 0 + adds r1, r5, 0 + adds r1, 0x9 + lsls r0, r5, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + movs r3, 0x7 + lsls r1, 1 + adds r1, r6 +_080CFE64: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080CFE64 + adds r0, r5, 0 + adds r0, 0xF + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + bne _080CFE90 + adds r0, r4, 0 + bl move_anim_8072740 +_080CFE90: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFE98: .4byte gPlttBufferFaded + thumb_func_end sub_80CFE2C + + thumb_func_start sub_80CFE9C +sub_80CFE9C: @ 80CFE9C + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080CFF3C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080CFF40 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080CFF44 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080CFEE0 + ldrh r0, [r4, 0x4] + negs r0, r0 + strh r0, [r4, 0x4] +_080CFEE0: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r1, [r4, 0x4] + adds r0, r1 + lsls r0, 16 + ldrh r1, [r5, 0x20] + lsrs r6, r0, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + strh r6, [r5, 0x32] + strh r7, [r5, 0x36] + ldr r0, _080CFF48 @ =sub_8078C00 + str r0, [r5, 0x1C] + ldr r1, _080CFF4C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080CFF3C: .4byte gUnknown_0202F7C9 +_080CFF40: .4byte gUnknown_03004B00 +_080CFF44: .4byte gUnknown_0202F7C8 +_080CFF48: .4byte sub_8078C00 +_080CFF4C: .4byte move_anim_8072740 + thumb_func_end sub_80CFE9C + + thumb_func_start sub_80CFF50 +sub_80CFF50: @ 80CFF50 + ldr r1, _080CFF60 @ =0x0000fff0 + strh r1, [r0, 0x32] + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + ldr r1, _080CFF64 @ =sub_80CFF68 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080CFF60: .4byte 0x0000fff0 +_080CFF64: .4byte sub_80CFF68 + thumb_func_end sub_80CFF50 + + thumb_func_start sub_80CFF68 +sub_80CFF68: @ 80CFF68 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x80 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldr r0, _080CFFD4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080CFF8C + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080CFF8C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080CFFCC + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080CFFCC + adds r0, r4, 0 + bl move_anim_8072740 +_080CFFCC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080CFFD4: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80CFF68 + + thumb_func_start sub_80CFFD8 +sub_80CFFD8: @ 80CFFD8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080D0024 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080D0028 @ =sub_8078B34 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080D002C @ =sub_80D0030 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0024: .4byte gUnknown_0202F7C9 +_080D0028: .4byte sub_8078B34 +_080D002C: .4byte sub_80D0030 + thumb_func_end sub_80CFFD8 + + thumb_func_start sub_80D0030 +sub_80D0030: @ 80D0030 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x3F + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA6 + bl PlaySE12WithPanning + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + movs r2, 0 + movs r1, 0x7 + adds r0, r4, 0 + adds r0, 0x3C +_080D0064: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080D0064 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + ands r0, r1 + ldr r2, _080D00AC @ =0x0000fff4 + adds r1, r2, 0 + subs r1, r0 + strh r1, [r4, 0x3A] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA0 + bl __umodsi3 + adds r0, 0xA0 + strh r0, [r4, 0x3C] + ldr r0, _080D00B0 @ =sub_80D00B4 + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D00AC: .4byte 0x0000fff4 +_080D00B0: .4byte sub_80D00B4 + thumb_func_end sub_80D0030 + + thumb_func_start sub_80D00B4 +sub_80D00B4: @ 80D00B4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + ldrh r2, [r4, 0x2E] + adds r0, r1, r2 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r2, r0, 24 + strh r2, [r4, 0x24] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D00D2 + negs r0, r2 + strh r0, [r4, 0x24] +_080D00D2: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x8 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7E + ble _080D0112 + movs r0, 0 + strh r0, [r4, 0x30] + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D0112 + adds r0, r4, 0 + bl move_anim_8072740 +_080D0112: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D00B4 + + thumb_func_start sub_80D0118 +sub_80D0118: @ 80D0118 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080D0168 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D0136 + ldrh r0, [r4, 0x22] + adds r0, 0x10 + strh r0, [r4, 0x22] +_080D0136: + ldr r1, _080D016C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080D0170 @ =sub_8078114 + str r0, [r4, 0x1C] + ldr r1, _080D0174 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0168: .4byte gUnknown_0202F7C8 +_080D016C: .4byte gUnknown_03004B00 +_080D0170: .4byte sub_8078114 +_080D0174: .4byte move_anim_8072740 + thumb_func_end sub_80D0118 + + thumb_func_start sub_80D0178 +sub_80D0178: @ 80D0178 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r7, 0x20 + ldr r4, _080D01F4 @ =0x0000ffe0 + movs r0, 0x10 + mov r8, r0 + ldr r6, _080D01F8 @ =0x0000fff0 + ldr r0, _080D01FC @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D01A4 + adds r7, r4, 0 + movs r4, 0x20 + mov r8, r6 + movs r6, 0x10 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080D01A4: + lsls r0, r7, 16 + asrs r0, 16 + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080D0200 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + add r0, r8 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080D0204 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080D0208 @ =sub_80D020C + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D01F4: .4byte 0x0000ffe0 +_080D01F8: .4byte 0x0000fff0 +_080D01FC: .4byte gUnknown_03004B00 +_080D0200: .4byte gUnknown_0202F7C9 +_080D0204: .4byte sub_8078B34 +_080D0208: .4byte sub_80D020C + thumb_func_end sub_80D0178 + + thumb_func_start sub_80D020C +sub_80D020C: @ 80D020C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D0222 + adds r0, r2, 0 + bl move_anim_8072740 +_080D0222: + pop {r0} + bx r0 + thumb_func_end sub_80D020C + + thumb_func_start sub_80D0228 +sub_80D0228: @ 80D0228 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r0, 0x20 + mov r8, r0 + ldr r4, _080D02BC @ =0x0000ffe0 + movs r2, 0x10 + mov r9, r2 + ldr r6, _080D02C0 @ =0x0000fff0 + ldr r7, _080D02C4 @ =gUnknown_03004B00 + ldrh r1, [r7] + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + beq _080D025C + mov r8, r4 + movs r4, 0x20 + mov r9, r6 + movs r6, 0x10 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim +_080D025C: + mov r0, r8 + lsls r1, r0, 16 + asrs r1, 16 + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + movs r0, 0x6 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080D02C8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + add r0, r9 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r7] + strh r0, [r5, 0x38] + ldrh r0, [r5, 0x2E] + strh r0, [r5, 0x3A] + ldr r0, _080D02CC @ =sub_80D02D0 + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D02BC: .4byte 0x0000ffe0 +_080D02C0: .4byte 0x0000fff0 +_080D02C4: .4byte gUnknown_03004B00 +_080D02C8: .4byte gUnknown_0202F7C9 +_080D02CC: .4byte sub_80D02D0 + thumb_func_end sub_80D0228 + + thumb_func_start sub_80D02D0 +sub_80D02D0: @ 80D02D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D0334 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D0334 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + ldr r0, _080D033C @ =0x0000fffe + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + eors r0, r1 + strh r0, [r4, 0x32] + strh r2, [r4, 0x36] + strh r2, [r4, 0x34] + ldr r0, _080D0340 @ =sub_80D0344 + str r0, [r4, 0x1C] +_080D0334: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D033C: .4byte 0x0000fffe +_080D0340: .4byte sub_80D0344 + thumb_func_end sub_80D02D0 + + thumb_func_start sub_80D0344 +sub_80D0344: @ 80D0344 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D035C + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + negs r0, r0 + strh r0, [r4, 0x26] +_080D035C: + ldrh r0, [r4, 0x34] + movs r1, 0x1 + eors r0, r1 + movs r1, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080D039E + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + movs r1, 0x1 + eors r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080D03A4 @ =sub_80D03A8 + str r0, [r4, 0x1C] +_080D039E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D03A4: .4byte sub_80D03A8 + thumb_func_end sub_80D0344 + + thumb_func_start sub_80D03A8 +sub_80D03A8: @ 80D03A8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D03BC + adds r0, r4, 0 + bl move_anim_8072740 +_080D03BC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D03A8 + + thumb_func_start sub_80D03C4 +sub_80D03C4: @ 80D03C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078E70 + adds r0, r4, 0 + movs r1, 0xD0 + movs r2, 0xD0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080D041C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8079108 + ldr r1, _080D0420 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x50 + strh r1, [r0, 0x8] + ldr r1, _080D0424 @ =sub_80D0428 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D041C: .4byte gSprites +_080D0420: .4byte gTasks +_080D0424: .4byte sub_80D0428 + thumb_func_end sub_80D03C4 + + thumb_func_start sub_80D0428 +sub_80D0428: @ 80D0428 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D0480 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D0478 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _080D0484 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0x1 + bl sub_8079108 + adds r0, r5, 0 + bl move_anim_task_del +_080D0478: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0480: .4byte gTasks +_080D0484: .4byte gSprites + thumb_func_end sub_80D0428 + + thumb_func_start sub_80D0488 +sub_80D0488: @ 80D0488 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D04D4 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x8] + movs r1, 0 + bl sub_8078E70 + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0x14] + ldr r0, _080D04D8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + ldr r0, _080D04DC @ =sub_80D04E0 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D04D4: .4byte gTasks +_080D04D8: .4byte gUnknown_0202F7C8 +_080D04DC: .4byte sub_80D04E0 + thumb_func_end sub_80D0488 + + thumb_func_start sub_80D04E0 +sub_80D04E0: @ 80D04E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D0504 @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080D04FA + b _080D060A +_080D04FA: + lsls r0, 2 + ldr r1, _080D0508 @ =_080D050C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D0504: .4byte gTasks +_080D0508: .4byte _080D050C + .align 2, 0 +_080D050C: + .4byte _080D0524 + .4byte _080D056C + .4byte _080D05A2 + .4byte _080D05A8 + .4byte _080D05B8 + .4byte _080D05EC +_080D0524: + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D0534 + cmp r0, 0x3 + beq _080D0534 + cmp r0, 0x6 + bne _080D053C +_080D0534: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80D0614 +_080D053C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x28 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080D060A + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _080D05E4 +_080D056C: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D060A + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r1, 0x3 + bne _080D0582 + strh r0, [r4, 0xC] + strh r1, [r4, 0xA] + b _080D060A +_080D0582: + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r2, 0x80 + lsls r2, 1 + strh r2, [r4, 0x10] + ldrb r0, [r4, 0x8] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r0, 0x2 + strh r0, [r4, 0xA] + b _080D060A +_080D05A2: + movs r0, 0 + strh r0, [r4, 0xA] + b _080D060A +_080D05A8: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _080D060A + b _080D05E0 +_080D05B8: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + subs r0, 0x50 + strh r0, [r4, 0x10] + ldrb r0, [r4, 0x8] + movs r1, 0x10 + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x8] + bl sub_8079A64 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x20 + bne _080D060A +_080D05E0: + movs r0, 0 + strh r0, [r4, 0xC] +_080D05E4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080D060A +_080D05EC: + ldrb r0, [r4, 0x8] + bl sub_8078F40 + ldr r2, _080D0610 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + adds r0, r5, 0 + bl move_anim_task_del +_080D060A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0610: .4byte gSprites + thumb_func_end sub_80D04E0 + + thumb_func_start sub_80D0614 +sub_80D0614: @ 80D0614 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, 16 + asrs r4, r0, 16 + cmp r4, 0 + blt _080D06EE + bl AllocOamMatrix + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xFF + bne _080D0658 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080D0654 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + b _080D06EE + .align 2, 0 +_080D0654: .4byte gSprites +_080D0658: + ldr r5, _080D06FC @ =gSprites + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r4, r3, r5 + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrb r0, [r7, 0x16] + ldrb r1, [r7, 0xE] + subs r0, r1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldrh r0, [r7, 0xE] + adds r0, 0x1 + strh r0, [r7, 0xE] + ldrh r0, [r7, 0x14] + adds r0, 0x1 + strh r0, [r7, 0x14] + movs r0, 0x10 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + movs r0, 0x6 + strh r0, [r4, 0x32] + adds r5, 0x1C + adds r3, r5 + ldr r0, _080D0700 @ =sub_80D0704 + str r0, [r3] + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x10 + ldrsh r2, [r7, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r0, [r4, 0x1] + movs r3, 0x4 + negs r3, r3 + ands r3, r0 + movs r0, 0x1 + orrs r3, r0 + strb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec +_080D06EE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D06FC: .4byte gSprites +_080D0700: .4byte sub_80D0704 + thumb_func_end sub_80D0614 + + thumb_func_start sub_80D0704 +sub_80D0704: @ 80D0704 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080D0742 + ldr r3, _080D0748 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080D0742: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0748: .4byte gTasks + thumb_func_end sub_80D0704 + + thumb_func_start sub_80D074C +sub_80D074C: @ 80D074C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D0770 @ =gTasks + adds r4, r0, r1 + ldr r5, _080D0774 @ =gUnknown_03004B00 + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D0778 + adds r0, r2, 0 + bl move_anim_task_del + b _080D079E + .align 2, 0 +_080D0770: .4byte gTasks +_080D0774: .4byte gUnknown_03004B00 +_080D0778: + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + strh r1, [r4, 0x8] + strh r2, [r4, 0xA] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xC] + strh r2, [r4, 0xE] + strh r2, [r4, 0x10] + ldr r2, _080D07A4 @ =gUnknown_083D76F4 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D07A8 @ =sub_80D07AC + str r0, [r4] +_080D079E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D07A4: .4byte gUnknown_083D76F4 +_080D07A8: .4byte sub_80D07AC + thumb_func_end sub_80D074C + + thumb_func_start sub_80D07AC +sub_80D07AC: @ 80D07AC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D07D0 @ =gTasks + adds r4, r0, r1 + movs r0, 0xA + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080D0814 + cmp r5, 0x1 + bgt _080D07D4 + cmp r5, 0 + beq _080D07DE + b _080D08BC + .align 2, 0 +_080D07D0: .4byte gTasks +_080D07D4: + cmp r5, 0x2 + beq _080D0848 + cmp r5, 0x3 + beq _080D0878 + b _080D08BC +_080D07DE: + adds r0, r4, 0 + bl sub_807992C + ldrh r2, [r4, 0x10] + adds r2, 0x3 + strh r2, [r4, 0x10] + ldr r3, _080D0810 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D08BC + strh r5, [r4, 0xE] + b _080D0870 + .align 2, 0 +_080D0810: .4byte gSprites +_080D0814: + adds r0, r4, 0 + bl sub_807992C + ldr r2, _080D0844 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D08BC + movs r0, 0 + strh r0, [r4, 0xE] + b _080D0870 + .align 2, 0 +_080D0844: .4byte gSprites +_080D0848: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D0870 + ldr r2, _080D086C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x10] + subs r0, 0x2 + strh r0, [r4, 0x10] + b _080D08BC + .align 2, 0 +_080D086C: .4byte gSprites +_080D0870: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080D08BC +_080D0878: + adds r0, r4, 0 + bl sub_807992C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D08BC + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080D08B0 + ldr r2, _080D08AC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x26] + adds r0, r6, 0 + bl move_anim_task_del + b _080D08BC + .align 2, 0 +_080D08AC: .4byte gSprites +_080D08B0: + ldrb r1, [r4, 0x8] + ldr r2, _080D08C4 @ =gUnknown_083D76F4 + adds r0, r4, 0 + bl sub_80798F4 + strh r5, [r4, 0xA] +_080D08BC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D08C4: .4byte gUnknown_083D76F4 + thumb_func_end sub_80D07AC + + thumb_func_start sub_80D08C8 +sub_80D08C8: @ 80D08C8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D08F8 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D08FC @ =gUnknown_083D7714 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D0900 @ =sub_80D0904 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D08F8: .4byte gTasks +_080D08FC: .4byte gUnknown_083D7714 +_080D0900: .4byte sub_80D0904 + thumb_func_end sub_80D08C8 + + thumb_func_start sub_80D0904 +sub_80D0904: @ 80D0904 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D092C @ =gTasks + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D0924 + adds r0, r4, 0 + bl move_anim_task_del +_080D0924: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D092C: .4byte gTasks + thumb_func_end sub_80D0904 + + thumb_func_start sub_80D0930 +sub_80D0930: @ 80D0930 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D0960 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D0964 + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080D097E + .align 2, 0 +_080D0960: .4byte gUnknown_0202F7C8 +_080D0964: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x20 + strh r0, [r4, 0x20] + ldr r0, _080D09B0 @ =0x0000ffc0 +_080D097E: + strh r0, [r4, 0x30] + ldr r0, _080D09B4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x22] + movs r0, 0x34 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x32] + strh r1, [r4, 0x34] + strh r1, [r4, 0x36] + ldr r1, _080D09B8 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D09BC @ =sub_8078394 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D09B0: .4byte 0x0000ffc0 +_080D09B4: .4byte gUnknown_0202F7C8 +_080D09B8: .4byte move_anim_8072740 +_080D09BC: .4byte sub_8078394 + thumb_func_end sub_80D0930 + + thumb_func_start sub_80D09C0 +sub_80D09C0: @ 80D09C0 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D09D4 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D09DC + ldr r0, _080D09D8 @ =gUnknown_0202F7C8 + b _080D09DE + .align 2, 0 +_080D09D4: .4byte gUnknown_03004B00 +_080D09D8: .4byte gUnknown_0202F7C8 +_080D09DC: + ldr r0, _080D0A3C @ =gUnknown_0202F7C9 +_080D09DE: + ldrb r5, [r0] + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D09F8 + ldr r1, _080D0A40 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D09F8: + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D0A40 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x4] + adds r0, r4 + strh r0, [r6, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080D0A2A + movs r0, 0x8 + strh r0, [r6, 0x22] +_080D0A2A: + ldr r1, _080D0A44 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl oamt_set_x3A_32 + ldr r0, _080D0A48 @ =sub_80785E4 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0A3C: .4byte gUnknown_0202F7C9 +_080D0A40: .4byte gUnknown_03004B00 +_080D0A44: .4byte move_anim_8074EE0 +_080D0A48: .4byte sub_80785E4 + thumb_func_end sub_80D09C0 + + thumb_func_start sub_80D0A4C +sub_80D0A4C: @ 80D0A4C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D0A80 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + strh r1, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r2, _080D0A84 @ =gUnknown_083D77B0 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D0A88 @ =sub_80D0A8C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0A80: .4byte gTasks +_080D0A84: .4byte gUnknown_083D77B0 +_080D0A88: .4byte sub_80D0A8C + thumb_func_end sub_80D0A4C + + thumb_func_start sub_80D0A8C +sub_80D0A8C: @ 80D0A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0AB4 @ =gTasks + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D0AAC + adds r0, r4, 0 + bl move_anim_task_del +_080D0AAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0AB4: .4byte gTasks + thumb_func_end sub_80D0A8C + + thumb_func_start sub_80D0AB8 +sub_80D0AB8: @ 80D0AB8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D0B2C @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + movs r0, 0x4 + strh r0, [r4, 0xC] + movs r0, 0x7 + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x10] + ldr r3, _080D0B30 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + strh r0, [r4, 0x12] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x14] + strh r2, [r4, 0x16] + strh r2, [r4, 0x18] + movs r0, 0x2 + strh r0, [r4, 0x1A] + ldr r0, _080D0B34 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D0B22 + movs r1, 0xC + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4, 0xC] +_080D0B22: + ldr r0, _080D0B38 @ =sub_80D0B3C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0B2C: .4byte gTasks +_080D0B30: .4byte gSprites +_080D0B34: .4byte gUnknown_0202F7C8 +_080D0B38: .4byte sub_80D0B3C + thumb_func_end sub_80D0AB8 + + thumb_func_start sub_80D0B3C +sub_80D0B3C: @ 80D0B3C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0B84 @ =gTasks + adds r3, r0, r1 + ldrh r0, [r3, 0x16] + adds r0, 0x1 + strh r0, [r3, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D0BA2 + movs r0, 0 + strh r0, [r3, 0x16] + ldrh r0, [r3, 0x18] + adds r0, 0x1 + strh r0, [r3, 0x18] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D0B8C + ldr r2, _080D0B88 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x1A] + ldrh r2, [r0, 0x22] + adds r1, r2 + b _080D0BA0 + .align 2, 0 +_080D0B84: .4byte gTasks +_080D0B88: .4byte gSprites +_080D0B8C: + ldr r2, _080D0BB4 @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 +_080D0BA0: + strh r1, [r0, 0x22] +_080D0BA2: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080D0BF0 + cmp r0, 0x1 + bgt _080D0BB8 + cmp r0, 0 + beq _080D0BBE + b _080D0C80 + .align 2, 0 +_080D0BB4: .4byte gSprites +_080D0BB8: + cmp r0, 0x2 + beq _080D0C20 + b _080D0C80 +_080D0BBE: + ldr r2, _080D0BEC @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r2, [r0, 0x20] + adds r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D0C80 + movs r0, 0xE + strh r0, [r3, 0xE] + movs r0, 0x1 + strh r0, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0BEC: .4byte gSprites +_080D0BF0: + ldr r2, _080D0C1C @ =gSprites + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x20] + ldrh r2, [r3, 0xC] + subs r1, r2 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D0C80 + movs r0, 0x7 + strh r0, [r3, 0xE] + movs r0, 0x2 + strh r0, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0C1C: .4byte gSprites +_080D0C20: + ldr r2, _080D0C58 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0xC] + ldrh r5, [r0, 0x20] + adds r1, r5 + strh r1, [r0, 0x20] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080D0C80 + ldrh r0, [r3, 0x10] + subs r0, 0x1 + strh r0, [r3, 0x10] + lsls r0, 16 + cmp r0, 0 + beq _080D0C5C + movs r0, 0x7 + strh r0, [r3, 0xE] + strh r1, [r3, 0xA] + b _080D0C80 + .align 2, 0 +_080D0C58: .4byte gSprites +_080D0C5C: + ldrh r1, [r3, 0x18] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D0C7A + movs r0, 0x8 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + ldrh r2, [r3, 0x1A] + subs r1, r2 + strh r1, [r0, 0x22] +_080D0C7A: + adds r0, r4, 0 + bl move_anim_task_del +_080D0C80: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D0B3C + + thumb_func_start sub_80D0C88 +sub_80D0C88: @ 80D0C88 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D0CD8 @ =gTasks + adds r5, r1, r0 + ldr r4, _080D0CDC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + movs r1, 0 + strh r0, [r5, 0x8] + movs r0, 0x4 + strh r0, [r5, 0xA] + strh r1, [r5, 0xC] + strh r1, [r5, 0xE] + strh r1, [r5, 0x10] + strh r1, [r5, 0x12] + ldrb r0, [r4] + bl sub_807A100 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D0CE8 + ldr r0, _080D0CE0 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080D0CE4 @ =REG_BG1HOFS + b _080D0CF0 + .align 2, 0 +_080D0CD8: .4byte gTasks +_080D0CDC: .4byte gUnknown_0202F7C9 +_080D0CE0: .4byte gUnknown_030042C0 +_080D0CE4: .4byte REG_BG1HOFS +_080D0CE8: + ldr r0, _080D0D54 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r5, 0x14] + ldr r0, _080D0D58 @ =REG_BG2HOFS +_080D0CF0: + str r0, [sp] + ldrh r0, [r5, 0x8] + adds r1, r0, 0 + subs r1, 0x40 + lsls r2, r1, 16 + lsls r0, 16 + cmp r2, r0 + bgt _080D0D2E + ldr r4, _080D0D5C @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080D0D08: + asrs r3, r2, 16 + cmp r3, 0 + blt _080D0D20 + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x14] + adds r0, 0xF0 + strh r0, [r1] +_080D0D20: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x8 + ldrsh r0, [r5, r3] + cmp r1, r0 + ble _080D0D08 +_080D0D2E: + ldr r0, _080D0D60 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080D0D64 @ =sub_80D0D68 + str r0, [r5] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0D54: .4byte gUnknown_03004288 +_080D0D58: .4byte REG_BG2HOFS +_080D0D5C: .4byte gUnknown_03004DE0 +_080D0D60: .4byte 0xa2600001 +_080D0D64: .4byte sub_80D0D68 + thumb_func_end sub_80D0C88 + + thumb_func_start sub_80D0D68 +sub_80D0D68: @ 80D0D68 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D0D88 @ =gTasks + adds r3, r0, r1 + movs r1, 0x10 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080D0D8C + cmp r0, 0x1 + beq _080D0DA2 + b _080D0E22 + .align 2, 0 +_080D0D88: .4byte gTasks +_080D0D8C: + ldrh r0, [r3, 0x12] + adds r0, 0x1 + strh r0, [r3, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D0E22 + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] + b _080D0E22 +_080D0DA2: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D0E22 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r1, [r3, 0xE] + movs r0, 0x3 + ands r0, r1 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + subs r0, r1 + strh r0, [r3, 0x12] + movs r2, 0xC + ldrsh r1, [r3, r2] + cmp r1, 0x1 + beq _080D0DD8 + cmp r1, 0x1 + ble _080D0DE0 + cmp r1, 0x2 + beq _080D0DDC + cmp r1, 0x3 + beq _080D0DDC + b _080D0DE0 +_080D0DD8: + subs r0, 0x2 + b _080D0DDE +_080D0DDC: + adds r0, 0x1 +_080D0DDE: + strh r0, [r3, 0x12] +_080D0DE0: + movs r1, 0x12 + ldrsh r0, [r3, r1] + cmp r0, 0 + blt _080D0E04 + ldr r2, _080D0E28 @ =gUnknown_03004DE0 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 1 + movs r1, 0xF0 + lsls r1, 3 + adds r2, r1 + adds r0, r2 + ldrh r1, [r3, 0x14] + strh r1, [r0] +_080D0E04: + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x26 + ldrsh r1, [r3, r2] + cmp r0, r1 + blt _080D0E22 + ldr r1, _080D0E2C @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] + adds r0, r4, 0 + bl move_anim_task_del +_080D0E22: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0E28: .4byte gUnknown_03004DE0 +_080D0E2C: .4byte gUnknown_03004DC0 + thumb_func_end sub_80D0D68 + + thumb_func_start sub_80D0E30 +sub_80D0E30: @ 80D0E30 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080D0E84 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + movs r5, 0 + strh r0, [r4, 0x20] + ldrb r0, [r6] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + strh r0, [r4, 0x22] + strh r5, [r4, 0x2E] + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] + movs r0, 0x10 + strh r0, [r4, 0x34] + strh r5, [r4, 0x36] + ldrb r0, [r6] + movs r1, 0 + bl sub_807A100 + adds r0, 0x2 + strh r0, [r4, 0x38] + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0x3A] + ldr r0, _080D0E88 @ =sub_80D0E8C + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D0E84: .4byte gUnknown_0202F7C9 +_080D0E88: .4byte sub_80D0E8C + thumb_func_end sub_80D0E30 + + thumb_func_start sub_80D0E8C +sub_80D0E8C: @ 80D0E8C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080D0EF0 + cmp r1, 0x1 + bgt _080D0EA2 + cmp r1, 0 + beq _080D0EA8 + b _080D0FD0 +_080D0EA2: + cmp r1, 0x2 + beq _080D0F82 + b _080D0FD0 +_080D0EA8: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D0ED2 + strh r1, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D0ED2: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D0FD0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + b _080D0F7A +_080D0EF0: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D0F36 + ldrh r2, [r4, 0x32] + movs r3, 0x32 + ldrsh r1, [r4, r3] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D0F36 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + adds r0, r2, 0x1 + strh r0, [r4, 0x32] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D0F36 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCD + bl PlaySE12WithPanning +_080D0F36: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + adds r1, r0, r2 + strh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r2, r0, 16 + cmp r2, 0x1F + ble _080D0F4A + movs r0, 0x40 + b _080D0F58 +_080D0F4A: + movs r0, 0x20 + negs r0, r0 + cmp r2, r0 + bgt _080D0F64 + movs r2, 0x40 + negs r2, r2 + adds r0, r2, 0 +_080D0F58: + subs r0, r1 + strh r0, [r4, 0x36] + movs r3, 0x34 + ldrsh r0, [r4, r3] + negs r0, r0 + strh r0, [r4, 0x34] +_080D0F64: + ldrh r0, [r4, 0x36] + movs r2, 0 + strh r0, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r3, 0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080D0FD0 + strh r2, [r4, 0x30] + strh r2, [r4, 0x32] +_080D0F7A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D0FD0 +_080D0F82: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D0FAE + movs r0, 0 + strh r0, [r4, 0x32] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D0FAE: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D0FD0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + bl move_anim_8072740 +_080D0FD0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D0E8C + + thumb_func_start sub_80D0FD8 +sub_80D0FD8: @ 80D0FD8 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r5, 0 + mov r0, sp + strh r5, [r0] + mov r1, sp + adds r1, 0x2 + strh r5, [r1] + ldr r0, _080D0FFC @ =gUnknown_03004B00 + movs r3, 0x4 + ldrsh r2, [r0, r3] + adds r7, r1, 0 + adds r1, r0, 0 + cmp r2, 0 + bne _080D1004 + ldr r0, _080D1000 @ =gUnknown_0202F7C8 + b _080D1006 + .align 2, 0 +_080D0FFC: .4byte gUnknown_03004B00 +_080D1000: .4byte gUnknown_0202F7C8 +_080D1004: + ldr r0, _080D1040 @ =gUnknown_0202F7C9 +_080D1006: + ldrb r5, [r0] + ldrb r1, [r1, 0x6] + movs r0, 0x1 + adds r4, r0, 0 + eors r4, r1 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080D107E + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D107E + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, sp + adds r3, r7, 0 + bl sub_807A3FC + cmp r4, 0 + bne _080D1044 + adds r0, r5, 0 + movs r1, 0 + b _080D1048 + .align 2, 0 +_080D1040: .4byte gUnknown_0202F7C9 +_080D1044: + adds r0, r5, 0 + movs r1, 0x2 +_080D1048: + bl sub_8077ABC + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1074 + ldr r2, _080D1070 @ =gUnknown_03004B00 + mov r0, sp + ldrh r1, [r0] + subs r1, r4 + ldrh r0, [r2] + subs r1, r0 + subs r0, r1 + strh r0, [r2] + b _080D107E + .align 2, 0 +_080D1070: .4byte gUnknown_03004B00 +_080D1074: + ldr r1, _080D1090 @ =gUnknown_03004B00 + mov r0, sp + ldrh r0, [r0] + subs r0, r4 + strh r0, [r1] +_080D107E: + ldr r1, _080D1094 @ =sub_80793C4 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D1090: .4byte gUnknown_03004B00 +_080D1094: .4byte sub_80793C4 + thumb_func_end sub_80D0FD8 + + thumb_func_start sub_80D1098 +sub_80D1098: @ 80D1098 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D10B2 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl move_anim_8072740 +_080D10B2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1098 + + thumb_func_start sub_80D10B8 +sub_80D10B8: @ 80D10B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + movs r6, 0 + mov r0, sp + strh r6, [r0] + mov r1, sp + adds r1, 0x2 + strh r6, [r1] + ldr r0, _080D10E4 @ =gUnknown_03004B00 + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080D10F0 + ldr r0, _080D10E8 @ =gUnknown_0202F7C8 + ldrb r7, [r0] + ldr r0, _080D10EC @ =gUnknown_0202F7C9 + b _080D10F6 + .align 2, 0 +_080D10E4: .4byte gUnknown_03004B00 +_080D10E8: .4byte gUnknown_0202F7C8 +_080D10EC: .4byte gUnknown_0202F7C9 +_080D10F0: + ldr r0, _080D1110 @ =gUnknown_0202F7C9 + ldrb r7, [r0] + ldr r0, _080D1114 @ =gUnknown_0202F7C8 +_080D10F6: + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080D1118 @ =gUnknown_03004B00 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080D111C + movs r0, 0 + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x4] + b _080D1124 + .align 2, 0 +_080D1110: .4byte gUnknown_0202F7C9 +_080D1114: .4byte gUnknown_0202F7C8 +_080D1118: .4byte gUnknown_03004B00 +_080D111C: + movs r2, 0x2 + mov r10, r2 + movs r3, 0x3 + str r3, [sp, 0x4] +_080D1124: + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1180 + adds r0, r7, 0 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + ldr r1, _080D1164 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r0, 0x2 + mov r4, r8 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D1170 + ldr r2, _080D1168 @ =gSprites + ldr r0, _080D116C @ =gUnknown_02024BE0 + adds r0, r4, r0 + b _080D120A + .align 2, 0 +_080D1164: .4byte gUnknown_03004B00 +_080D1168: .4byte gSprites +_080D116C: .4byte gUnknown_02024BE0 +_080D1170: + ldr r2, _080D1178 @ =gSprites + ldr r0, _080D117C @ =gUnknown_02024BE0 + add r0, r8 + b _080D120A + .align 2, 0 +_080D1178: .4byte gSprites +_080D117C: .4byte gUnknown_02024BE0 +_080D1180: + adds r0, r7, 0 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D11EC @ =gUnknown_03004B00 + ldrh r1, [r1] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r0, _080D11F0 @ =gMain + ldr r1, _080D11F4 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D1204 + adds r4, r7, 0 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D1204 + ldr r3, _080D11F8 @ =gSprites + ldr r2, _080D11FC @ =gUnknown_02024BE0 + adds r0, r7, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r3 + adds r2, r4, r2 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + movs r3, 0x20 + ldrsh r1, [r6, r3] + movs r3, 0x20 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D1200 + adds r0, r2, 0 + adds r0, 0x43 + ldrb r0, [r0] + adds r0, 0x1 + b _080D121A + .align 2, 0 +_080D11EC: .4byte gUnknown_03004B00 +_080D11F0: .4byte gMain +_080D11F4: .4byte 0x0000043d +_080D11F8: .4byte gSprites +_080D11FC: .4byte gUnknown_02024BE0 +_080D1200: + adds r0, r6, 0 + b _080D1214 +_080D1204: + ldr r2, _080D1268 @ =gSprites + ldr r0, _080D126C @ =gUnknown_02024BE0 + adds r0, r7, r0 +_080D120A: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 +_080D1214: + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 +_080D121A: + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] + adds r0, r7, 0 + ldr r1, [sp, 0x4] + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D1270 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080D1274 @ =gMain + ldr r2, _080D1278 @ =0x0000043d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D127C + mov r0, r8 + movs r1, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D127C + ldrb r1, [r4, 0xC] + mov r0, r8 + mov r2, sp + mov r3, sp + adds r3, 0x2 + bl sub_807A3FC + b _080D129C + .align 2, 0 +_080D1268: .4byte gSprites +_080D126C: .4byte gUnknown_02024BE0 +_080D1270: .4byte gUnknown_03004B00 +_080D1274: .4byte gMain +_080D1278: .4byte 0x0000043d +_080D127C: + mov r4, sp + mov r0, r8 + mov r1, r10 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + mov r0, r8 + ldr r1, [sp, 0x4] + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r3, sp + strh r0, [r3, 0x2] +_080D129C: + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D12C0 + mov r3, sp + mov r2, sp + ldr r1, _080D12BC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + ldrh r2, [r2] + adds r0, r2 + strh r0, [r3] + adds r2, r1, 0 + b _080D12CE + .align 2, 0 +_080D12BC: .4byte gUnknown_03004B00 +_080D12C0: + mov r3, sp + mov r0, sp + ldr r2, _080D1310 @ =gUnknown_03004B00 + ldrh r0, [r0] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r3] +_080D12CE: + ldrh r1, [r2, 0x8] + mov r0, sp + ldrh r0, [r0, 0x2] + adds r1, r0 + mov r3, sp + strh r1, [r3, 0x2] + mov r0, r9 + strh r0, [r5, 0x30] + strh r0, [r5, 0x20] + strh r6, [r5, 0x34] + strh r6, [r5, 0x22] + mov r0, sp + ldrh r0, [r0] + strh r0, [r5, 0x32] + strh r1, [r5, 0x36] + ldrh r0, [r2] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D1314 @ =sub_80D1098 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D1310: .4byte gUnknown_03004B00 +_080D1314: .4byte sub_80D1098 + thumb_func_end sub_80D10B8 + + thumb_func_start sub_80D1318 +sub_80D1318: @ 80D1318 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D1358 @ =0x000027db + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080D133E + lsls r0, 20 + ldr r1, _080D135C @ =0x01010000 + adds r0, r1 + lsrs r0, 16 + ldr r1, _080D1360 @ =gUnknown_03004B00 + ldrb r2, [r1, 0xA] + ldrh r3, [r1, 0x8] + movs r1, 0xF + bl BlendPalette +_080D133E: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080D1364 @ =sub_80793C4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1358: .4byte 0x000027db +_080D135C: .4byte 0x01010000 +_080D1360: .4byte gUnknown_03004B00 +_080D1364: .4byte sub_80793C4 + thumb_func_end sub_80D1318 + + thumb_func_start sub_80D1368 +sub_80D1368: @ 80D1368 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r0, _080D139C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080D1384 + ldr r1, _080D13A0 @ =0x0000ff60 +_080D1384: + movs r0, 0xE0 + lsls r0, 2 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + ldr r0, _080D13A4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080D13A8 @ =sub_80D13AC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D139C: .4byte gUnknown_0202F7C8 +_080D13A0: .4byte 0x0000ff60 +_080D13A4: .4byte gUnknown_03004B00 +_080D13A8: .4byte sub_80D13AC + thumb_func_end sub_80D1368 + + thumb_func_start sub_80D13AC +sub_80D13AC: @ 80D13AC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + subs r1, r0 + movs r5, 0 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + subs r2, 0x20 + strh r2, [r4, 0x2E] + ldr r0, _080D1418 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0xA0 + cmp r0, 0 + beq _080D13DC + ldr r1, _080D141C @ =0x0000ff60 +_080D13DC: + lsls r0, r1, 16 + asrs r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x26] + movs r2, 0x26 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D1410 + ldrh r2, [r4, 0x22] + adds r0, r1, r2 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + strh r5, [r4, 0x2E] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080D1420 @ =sub_80D1424 + str r0, [r4, 0x1C] +_080D1410: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1418: .4byte gUnknown_0202F7C8 +_080D141C: .4byte 0x0000ff60 +_080D1420: .4byte sub_80D1424 + thumb_func_end sub_80D13AC + + thumb_func_start sub_80D1424 +sub_80D1424: @ 80D1424 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080D1442 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080D1448 @ =sub_80D144C + str r0, [r4, 0x1C] +_080D1442: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1448: .4byte sub_80D144C + thumb_func_end sub_80D1424 + + thumb_func_start sub_80D144C +sub_80D144C: @ 80D144C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D14B2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0 + strh r0, [r4, 0x2E] + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1498 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x10 + ldr r3, _080D148C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D1490 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080D1494 @ =sub_80D14C4 + b _080D14B0 + .align 2, 0 +_080D148C: .4byte 0x000003ff +_080D1490: .4byte 0xfffffc00 +_080D1494: .4byte sub_80D14C4 +_080D1498: + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r3, _080D14B8 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D14BC @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, _080D14C0 @ =sub_80D154C +_080D14B0: + str r0, [r4, 0x1C] +_080D14B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D14B8: .4byte 0x000003ff +_080D14BC: .4byte 0xfffffc00 +_080D14C0: .4byte sub_80D154C + thumb_func_end sub_80D144C + + thumb_func_start sub_80D14C4 +sub_80D14C4: @ 80D14C4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x26] + subs r0, 0x2 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bne _080D14F8 + movs r0, 0x10 + strh r0, [r2, 0x2E] + movs r0, 0 + strh r0, [r2, 0x30] + ldr r1, _080D14FC @ =REG_BLDCNT + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r2, 0x2E] + strh r0, [r1] + ldr r0, _080D1500 @ =sub_80D1504 + str r0, [r2, 0x1C] +_080D14F8: + pop {r0} + bx r0 + .align 2, 0 +_080D14FC: .4byte REG_BLDCNT +_080D1500: .4byte sub_80D1504 + thumb_func_end sub_80D14C4 + + thumb_func_start sub_80D1504 +sub_80D1504: @ 80D1504 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D153C + ldrh r1, [r4, 0x2E] + subs r1, 0x1 + strh r1, [r4, 0x2E] + ldr r2, _080D1544 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D153C + ldr r0, _080D1548 @ =sub_80D154C + str r0, [r4, 0x1C] +_080D153C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1544: .4byte REG_BLDALPHA +_080D1548: .4byte sub_80D154C + thumb_func_end sub_80D1504 + + thumb_func_start sub_80D154C +sub_80D154C: @ 80D154C + push {lr} + adds r3, r0, 0 + ldr r0, _080D1574 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080D1578 @ =0x0000ffff + cmp r1, r0 + bne _080D1584 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r1, 0x3C + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080D1580 + ldr r0, _080D157C @ =sub_80D158C + b _080D1582 + .align 2, 0 +_080D1574: .4byte gUnknown_03004B00 +_080D1578: .4byte 0x0000ffff +_080D157C: .4byte sub_80D158C +_080D1580: + ldr r0, _080D1588 @ =move_anim_8072740 +_080D1582: + str r0, [r3, 0x1C] +_080D1584: + pop {r0} + bx r0 + .align 2, 0 +_080D1588: .4byte move_anim_8072740 + thumb_func_end sub_80D154C + + thumb_func_start sub_80D158C +sub_80D158C: @ 80D158C + push {lr} + ldr r1, _080D15A0 @ =REG_BLDCNT + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080D15A0: .4byte REG_BLDCNT + thumb_func_end sub_80D158C + + thumb_func_start sub_80D15A4 +sub_80D15A4: @ 80D15A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D15D4 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080D15D8 @ =gUnknown_083D79BC + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D15DC @ =sub_80D15E0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D15D4: .4byte gTasks +_080D15D8: .4byte gUnknown_083D79BC +_080D15DC: .4byte sub_80D15E0 + thumb_func_end sub_80D15A4 + + thumb_func_start sub_80D15E0 +sub_80D15E0: @ 80D15E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D1630 @ =gTasks + adds r4, r0, r1 + adds r0, r4, 0 + bl sub_807992C + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080D162A + ldr r2, _080D1634 @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080D162A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1630: .4byte gTasks +_080D1634: .4byte gSprites + thumb_func_end sub_80D15E0 + + thumb_func_start sub_80D1638 +sub_80D1638: @ 80D1638 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D166C @ =gTasks + adds r4, r1, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x3 + strh r0, [r4, 0x20] + ldr r0, _080D1670 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D1678 + ldr r0, _080D1674 @ =0x0000ffff + strh r0, [r4, 0x22] + movs r0, 0x8 + b _080D167E + .align 2, 0 +_080D166C: .4byte gTasks +_080D1670: .4byte gUnknown_0202F7C9 +_080D1674: .4byte 0x0000ffff +_080D1678: + movs r0, 0x1 + strh r0, [r4, 0x22] + ldr r0, _080D1698 @ =0x0000fff8 +_080D167E: + strh r0, [r4, 0x24] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D169C @ =sub_80D16A0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1698: .4byte 0x0000fff8 +_080D169C: .4byte sub_80D16A0 + thumb_func_end sub_80D1638 + + thumb_func_start sub_80D16A0 +sub_80D16A0: @ 80D16A0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D16C4 @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r4, [r3, r0] + cmp r4, 0x1 + beq _080D16F4 + cmp r4, 0x1 + bgt _080D16C8 + cmp r4, 0 + beq _080D16D2 + b _080D17BA + .align 2, 0 +_080D16C4: .4byte gTasks +_080D16C8: + cmp r4, 0x2 + beq _080D1770 + cmp r4, 0x3 + beq _080D178A + b _080D17BA +_080D16D2: + ldr r2, _080D16F0 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x24] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + strh r4, [r3, 0xA] + strh r4, [r3, 0xC] + strh r4, [r3, 0xE] + b _080D1782 + .align 2, 0 +_080D16F0: .4byte gSprites +_080D16F4: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D17BA + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + ands r0, r4 + lsls r0, 16 + cmp r0, 0 + beq _080D172C + ldr r2, _080D1728 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + adds r1, 0x6 + b _080D173E + .align 2, 0 +_080D1728: .4byte gSprites +_080D172C: + ldr r2, _080D176C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + subs r1, 0x6 +_080D173E: + strh r1, [r0, 0x24] + ldrh r0, [r3, 0xE] + adds r0, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D17BA + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D1782 + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x24] + subs r0, 0x6 + strh r0, [r1, 0x24] + b _080D1782 + .align 2, 0 +_080D176C: .4byte gSprites +_080D1770: + ldrh r0, [r3, 0x20] + subs r0, 0x1 + strh r0, [r3, 0x20] + lsls r0, 16 + cmp r0, 0 + beq _080D1782 + movs r0, 0 + strh r0, [r3, 0x8] + b _080D17BA +_080D1782: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080D17BA +_080D178A: + ldr r2, _080D17C0 @ =gSprites + movs r4, 0x26 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x22] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D17BA + adds r0, r5, 0 + bl move_anim_task_del +_080D17BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D17C0: .4byte gSprites + thumb_func_end sub_80D16A0 + + thumb_func_start sub_80D17C4 +sub_80D17C4: @ 80D17C4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D1800 @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + movs r0, 0x1 + strh r0, [r4, 0x10] + movs r0, 0xE + strh r0, [r4, 0x22] + movs r0, 0x2 + strh r0, [r4, 0x24] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D1804 @ =sub_80D1808 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1800: .4byte gTasks +_080D1804: .4byte sub_80D1808 + thumb_func_end sub_80D17C4 + + thumb_func_start sub_80D1808 +sub_80D1808: @ 80D1808 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D185C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + bne _080D18CE + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x10 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080D18CE + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D1864 + ldr r3, _080D1860 @ =gSprites + movs r6, 0x26 + ldrsh r1, [r4, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + b _080D187A + .align 2, 0 +_080D185C: .4byte gTasks +_080D1860: .4byte gSprites +_080D1864: + ldr r3, _080D18AC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080D187A: + strb r1, [r0] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x22 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080D18CE + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r6, 0x24 + ldrsh r1, [r4, r6] + cmp r0, r1 + bge _080D18B0 + strh r2, [r4, 0xA] + strh r2, [r4, 0xC] + strh r2, [r4, 0xE] + b _080D18CE + .align 2, 0 +_080D18AC: .4byte gSprites +_080D18B0: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080D18CE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D1808 + + thumb_func_start sub_80D18D4 +sub_80D18D4: @ 80D18D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D1924 @ =gTasks + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + movs r1, 0x4 + strh r1, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + strh r0, [r4, 0x12] + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + strh r0, [r4, 0x18] + strh r0, [r4, 0x22] + ldr r5, _080D1928 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D192C @ =sub_80D1930 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1924: .4byte gTasks +_080D1928: .4byte gUnknown_0202F7C8 +_080D192C: .4byte sub_80D1930 + thumb_func_end sub_80D18D4 + + thumb_func_start sub_80D1930 +sub_80D1930: @ 80D1930 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D1954 @ =gTasks + adds r4, r0, r1 + movs r0, 0x18 + ldrsh r2, [r4, r0] + cmp r2, 0x1 + beq _080D199C + cmp r2, 0x1 + bgt _080D1958 + cmp r2, 0 + beq _080D195E + b _080D19B8 + .align 2, 0 +_080D1954: .4byte gTasks +_080D1958: + cmp r2, 0x2 + beq _080D19B4 + b _080D19B8 +_080D195E: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D19B8 + strh r2, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D19B8 + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1996 + strh r2, [r4, 0x14] + movs r0, 0x1 + strh r0, [r4, 0x18] + b _080D19B8 +_080D1996: + movs r0, 0x2 + strh r0, [r4, 0x18] + b _080D19B8 +_080D199C: + movs r1, 0 + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D19B8 + strh r2, [r4, 0x16] + strh r1, [r4, 0x18] + b _080D19B8 +_080D19B4: + movs r0, 0x1 + strh r0, [r4, 0x12] +_080D19B8: + movs r2, 0x8 + ldrsh r5, [r4, r2] + cmp r5, 0 + beq _080D19C6 + cmp r5, 0x1 + beq _080D1A5C + b _080D1A6A +_080D19C6: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D1A6A + strh r5, [r4, 0xA] + ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8 + movs r3, 0x24 + ldrsh r1, [r4, r3] + movs r3, 0x26 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D1A6A + ldr r0, _080D1A54 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + strh r6, [r1, 0x2E] + movs r0, 0xD + strh r0, [r1, 0x30] + ldr r2, _080D1A58 @ =gUnknown_083D7A00 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x24] + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r2, 0x1 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080D1A6A + strh r5, [r4, 0xC] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080D1A6A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D1A6A + .align 2, 0 +_080D1A50: .4byte gSpriteTemplate_83D79E8 +_080D1A54: .4byte gSprites +_080D1A58: .4byte gUnknown_083D7A00 +_080D1A5C: + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D1A6A + adds r0, r6, 0 + bl move_anim_task_del +_080D1A6A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D1930 + + thumb_func_start sub_80D1A70 +sub_80D1A70: @ 80D1A70 + push {r4,lr} + adds r3, r0, 0 + ldr r4, _080D1AD8 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r2, 0x1 + ldrb r1, [r0, 0x12] + ands r1, r2 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D1AD2 + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 1 + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r0, r4, 0 + adds r0, 0x8 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r3, 0 + bl DestroySprite +_080D1AD2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1AD8: .4byte gTasks + thumb_func_end sub_80D1A70 + + thumb_func_start sub_80D1ADC +sub_80D1ADC: @ 80D1ADC + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080D1B34 @ =0x000027de + bl IndexOfSpritePaletteTag + mov r1, sp + strb r0, [r1] + movs r5, 0x1 + ldr r0, _080D1B38 @ =0x00002710 + adds r4, r0, 0 +_080D1AF4: + subs r0, r4, r5 + lsls r0, 16 + lsrs r0, 16 + bl AllocSpritePalette + mov r2, sp + adds r1, r2, r5 + strb r0, [r1] + adds r5, 0x1 + cmp r5, 0x4 + ble _080D1AF4 + ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206 + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _080D1B40 @ =0x02018000 + cmp r0, 0 + beq _080D1B1C + ldr r0, _080D1B44 @ =0xffffc800 + adds r1, r0 +_080D1B1C: + adds r0, r4, 0 + bl sub_800D238 + movs r5, 0 +_080D1B24: + lsls r4, r5, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D1B4C + ldr r0, _080D1B48 @ =0x02014800 + b _080D1B4E + .align 2, 0 +_080D1B34: .4byte 0x000027de +_080D1B38: .4byte 0x00002710 +_080D1B3C: .4byte gBattleAnimSpritePalette_206 +_080D1B40: .4byte 0x02018000 +_080D1B44: .4byte 0xffffc800 +_080D1B48: .4byte 0x02014800 +_080D1B4C: + ldr r0, _080D1B7C @ =0x02018000 +_080D1B4E: + adds r2, r4, r0 + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r1, 20 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r2, 0 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x1 + cmp r5, 0x4 + ble _080D1B24 + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1B7C: .4byte 0x02018000 + thumb_func_end sub_80D1ADC + + thumb_func_start sub_80D1B80 +sub_80D1B80: @ 80D1B80 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080D1BA4 @ =gUnknown_083D7A5C + movs r4, 0x4 +_080D1B8A: + ldrh r0, [r5] + bl FreeSpritePaletteByTag + adds r5, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D1B8A + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1BA4: .4byte gUnknown_083D7A5C + thumb_func_end sub_80D1B80 + + thumb_func_start sub_80D1BA8 +sub_80D1BA8: @ 80D1BA8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r3, r2, 24 + movs r0, 0x1 + ands r3, r0 + negs r0, r3 + orrs r0, r3 + asrs r0, 31 + movs r3, 0x20 + ands r0, r3 + ldrh r4, [r5, 0x4] + lsls r3, r4, 22 + lsrs r3, 22 + lsrs r1, 22 + adds r0, r1 + adds r3, r0 + ldr r1, _080D1BFC @ =0x000003ff + adds r0, r1, 0 + ands r3, r0 + ldr r0, _080D1C00 @ =0xfffffc00 + ands r0, r4 + orrs r0, r3 + strh r0, [r5, 0x4] + ldr r0, _080D1C04 @ =gUnknown_083D7A5C + lsrs r2, 25 + lsls r2, 1 + adds r2, r0 + ldrh r0, [r2] + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1BFC: .4byte 0x000003ff +_080D1C00: .4byte 0xfffffc00 +_080D1C04: .4byte gUnknown_083D7A5C + thumb_func_end sub_80D1BA8 + + thumb_func_start sub_80D1C08 +sub_80D1C08: @ 80D1C08 + push {r4-r6,lr} + adds r5, r0, 0 + movs r1, 0 + bl sub_80787B0 + ldr r6, _080D1C70 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D1C28 + ldr r1, _080D1C74 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D1C28: + ldr r4, _080D1C74 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldr r0, _080D1C78 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080D1C7C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldrb r1, [r4, 0xA] + ldrb r2, [r4, 0xC] + adds r0, r5, 0 + bl sub_80D1BA8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1C70: .4byte gUnknown_0202F7C8 +_080D1C74: .4byte gUnknown_03004B00 +_080D1C78: .4byte sub_8078B34 +_080D1C7C: .4byte move_anim_8072740 + thumb_func_end sub_80D1C08 + + thumb_func_start sub_80D1C80 +sub_80D1C80: @ 80D1C80 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1C9A + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 +_080D1C9A: + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x32] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x7 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + subs r2, 0x80 + strh r2, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bne _080D1CCA + adds r0, r4, 0 + bl move_anim_8072740 +_080D1CCA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1C80 + + thumb_func_start sub_80D1CD0 +sub_80D1CD0: @ 80D1CD0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + movs r2, 0xF0 + cmp r0, 0 + beq _080D1CE4 + movs r2, 0x98 +_080D1CE4: + movs r3, 0 + ldr r0, _080D1D2C @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080D1D30 @ =gUnknown_03004240 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080D1D34 @ =REG_WIN0H + strh r2, [r0] + adds r0, 0x4 + strh r1, [r0] + ldr r1, _080D1D38 @ =REG_WININ + ldr r5, _080D1D3C @ =0x00003f1f + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + adds r5, 0x20 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xC8 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r1, _080D1D40 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x8] + strh r2, [r0, 0xA] + ldr r1, _080D1D44 @ =sub_80D1D48 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1D2C: .4byte gUnknown_030042C4 +_080D1D30: .4byte gUnknown_03004240 +_080D1D34: .4byte REG_WIN0H +_080D1D38: .4byte REG_WININ +_080D1D3C: .4byte 0x00003f1f +_080D1D40: .4byte gTasks +_080D1D44: .4byte sub_80D1D48 + thumb_func_end sub_80D1CD0 + + thumb_func_start sub_80D1D48 +sub_80D1D48: @ 80D1D48 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D1D7C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x8] + adds r4, r0, 0 + adds r4, 0xD + strh r4, [r3, 0x8] + ldrh r0, [r3, 0xA] + adds r2, r0, 0 + subs r2, 0xD + strh r2, [r3, 0xA] + lsls r1, r4, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080D1D88 + ldr r0, _080D1D80 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D1D84 @ =sub_80D1D9C + str r0, [r3] + b _080D1D90 + .align 2, 0 +_080D1D7C: .4byte gTasks +_080D1D80: .4byte gUnknown_030042C4 +_080D1D84: .4byte sub_80D1D9C +_080D1D88: + ldr r1, _080D1D98 @ =gUnknown_030042C4 + lsls r0, r4, 8 + orrs r2, r0 + strh r2, [r1] +_080D1D90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1D98: .4byte gUnknown_030042C4 + thumb_func_end sub_80D1D48 + + thumb_func_start sub_80D1D9C +sub_80D1D9C: @ 80D1D9C + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + ldr r5, _080D1DEC @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r3, r0, 3 + adds r1, r3, r5 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080D1DF8 + movs r0, 0x88 + strh r0, [r1, 0x1E] + adds r0, r5, r3 + adds r0, 0x1E + ldr r1, _080D1DF0 @ =REG_BLDCNT + movs r2, 0x2 + bl RequestSpriteCopy + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + ldr r2, _080D1DF4 @ =0x00007fff + movs r1, 0x10 + bl BlendPalettes + b _080D1E1E + .align 2, 0 +_080D1DEC: .4byte gTasks +_080D1DF0: .4byte REG_BLDCNT +_080D1DF4: .4byte 0x00007fff +_080D1DF8: + cmp r0, 0x4 + ble _080D1E1E + ldr r0, _080D1E28 @ =gUnknown_030042C4 + strh r4, [r0] + ldr r0, _080D1E2C @ =gUnknown_03004240 + strh r4, [r0] + ldr r0, _080D1E30 @ =REG_WININ + ldr r3, _080D1E34 @ =0x00003f3f + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080D1E1E: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1E28: .4byte gUnknown_030042C4 +_080D1E2C: .4byte gUnknown_03004240 +_080D1E30: .4byte REG_WININ +_080D1E34: .4byte 0x00003f3f + thumb_func_end sub_80D1D9C + + thumb_func_start sub_80D1E38 +sub_80D1E38: @ 80D1E38 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D1E88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1E94 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D1E8C @ =gUnknown_083D7A98 + adds r0, r5, 0 + bl sub_80798F4 + ldr r1, _080D1E90 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080D1EBC + .align 2, 0 +_080D1E88: .4byte gTasks +_080D1E8C: .4byte gUnknown_083D7A98 +_080D1E90: .4byte gSprites +_080D1E94: + ldr r1, _080D1EC4 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_807992C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D1EBC + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080D1EBC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1EC4: .4byte gSprites + thumb_func_end sub_80D1E38 + + thumb_func_start sub_80D1EC8 +sub_80D1EC8: @ 80D1EC8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D1F18 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D1F24 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D1F1C @ =gUnknown_083D7A98 + adds r0, r5, 0 + bl sub_80798F4 + ldr r1, _080D1F20 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + movs r1, 0x4 + strh r1, [r0, 0x24] + b _080D1F4C + .align 2, 0 +_080D1F18: .4byte gTasks +_080D1F1C: .4byte gUnknown_083D7A98 +_080D1F20: .4byte gSprites +_080D1F24: + ldr r1, _080D1F54 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] + adds r0, r5, 0 + bl sub_807992C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D1F4C + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r6, 0 + bl move_anim_task_del +_080D1F4C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1F54: .4byte gSprites + thumb_func_end sub_80D1EC8 + + thumb_func_start sub_80D1F58 +sub_80D1F58: @ 80D1F58 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x5F + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080D1F9C @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D1FA0 @ =sub_80D1FA4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1F9C: .4byte gUnknown_0202F7C9 +_080D1FA0: .4byte sub_80D1FA4 + thumb_func_end sub_80D1F58 + + thumb_func_start sub_80D1FA4 +sub_80D1FA4: @ 80D1FA4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D1FCE + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xE + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080D1FD4 +_080D1FCE: + adds r0, r4, 0 + bl move_anim_8072740 +_080D1FD4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1FA4 + + thumb_func_start sub_80D1FDC +sub_80D1FDC: @ 80D1FDC + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2000 + ldr r1, _080D1FFC @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080D205C + .align 2, 0 +_080D1FFC: .4byte gUnknown_03004B00 +_080D2000: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080D204E + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D204E: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080D205C + adds r0, r4, 0 + bl move_anim_8072740 +_080D205C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D1FDC + + thumb_func_start sub_80D2064 +sub_80D2064: @ 80D2064 + push {lr} + ldr r2, _080D2088 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r0, 0x20] + movs r1, 0xA0 + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x30] + ldr r1, _080D208C @ =sub_80782D8 + str r1, [r0, 0x1C] + ldr r1, _080D2090 @ =sub_80D2094 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D2088: .4byte gUnknown_03004B00 +_080D208C: .4byte sub_80782D8 +_080D2090: .4byte sub_80D2094 + thumb_func_end sub_80D2064 + + thumb_func_start sub_80D2094 +sub_80D2094: @ 80D2094 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + lsls r0, 16 + lsrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0x48 + bgt _080D20FA + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + cmp r5, 0x40 + bgt _080D20FA + adds r0, r4, 0 + bl move_anim_8072740 +_080D20FA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D2094 + + thumb_func_start sub_80D2100 +sub_80D2100: @ 80D2100 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D21BC @ =REG_BLDCNT + ldr r2, _080D21C0 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D21C4 @ =REG_BG1CNT + ldrb r0, [r4] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D2144 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D2144: + ldr r0, _080D21C8 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D21CC @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080D21D0 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080D21D4 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080D21D8 @ =0x85000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080D21DC @ =gAttractTilemap + bl LZDecompressVram + ldr r0, _080D21E0 @ =gAttractGfx + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D21E4 @ =gAttractPal + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D21A4 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D21A4: + ldr r0, _080D21E8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D21EC @ =sub_80D21F0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D21BC: .4byte REG_BLDCNT +_080D21C0: .4byte 0x00003f42 +_080D21C4: .4byte REG_BG1CNT +_080D21C8: .4byte gUnknown_030042C0 +_080D21CC: .4byte gUnknown_030041B4 +_080D21D0: .4byte REG_BG1HOFS +_080D21D4: .4byte 0x040000d4 +_080D21D8: .4byte 0x85000400 +_080D21DC: .4byte gAttractTilemap +_080D21E0: .4byte gAttractGfx +_080D21E4: .4byte gAttractPal +_080D21E8: .4byte gTasks +_080D21EC: .4byte sub_80D21F0 + thumb_func_end sub_80D2100 + + thumb_func_start sub_80D21F0 +sub_80D21F0: @ 80D21F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2220 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080D2216 + b _080D238C +_080D2216: + lsls r0, 2 + ldr r1, _080D2224 @ =_080D2228 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D2220: .4byte gTasks +_080D2224: .4byte _080D2228 + .align 2, 0 +_080D2228: + .4byte _080D223C + .4byte _080D2284 + .4byte _080D22A6 + .4byte _080D22E8 + .4byte _080D236C +_080D223C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080D2256 + b _080D238C +_080D2256: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D2280 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0x10 + beq _080D2274 + b _080D238C +_080D2274: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D238C + .align 2, 0 +_080D2280: .4byte REG_BLDALPHA +_080D2284: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8D + bne _080D238C + movs r0, 0x10 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D238C +_080D22A6: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D238C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D22E4 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D238C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D238C + .align 2, 0 +_080D22E4: .4byte REG_BLDALPHA +_080D22E8: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r0, r5, 2 + mov r10, r0 + add r6, sp, 0xC + movs r7, 0 + ldr r1, _080D239C @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D23A0 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D230E: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D230E + str r7, [sp, 0xC] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D239C @ =0x040000d4 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D23A4 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D235C + ldr r2, _080D23A8 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D235C: + ldr r0, _080D23AC @ =gTasks + mov r2, r10 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080D236C: + ldr r0, _080D23B0 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D23A8 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl move_anim_task_del +_080D238C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D239C: .4byte 0x040000d4 +_080D23A0: .4byte 0x85000400 +_080D23A4: .4byte 0x85000200 +_080D23A8: .4byte REG_BG1CNT +_080D23AC: .4byte gTasks +_080D23B0: .4byte REG_BLDCNT + thumb_func_end sub_80D21F0 + + thumb_func_start sub_80D23B4 +sub_80D23B4: @ 80D23B4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2438 @ =REG_BLDCNT + ldr r2, _080D243C @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D2440 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D23FE + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D23FE: + ldr r0, _080D2444 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D2448 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080D244C @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r1, _080D2450 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080D2454 @ =0x85000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D245C + ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest + b _080D246E + .align 2, 0 +_080D2438: .4byte REG_BLDCNT +_080D243C: .4byte 0x00003f42 +_080D2440: .4byte REG_BG1CNT +_080D2444: .4byte gUnknown_030042C0 +_080D2448: .4byte gUnknown_030041B4 +_080D244C: .4byte REG_BG1HOFS +_080D2450: .4byte 0x040000d4 +_080D2454: .4byte 0x85000400 +_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest +_080D245C: + ldr r0, _080D2478 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D2480 + ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer +_080D246E: + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080D2488 + .align 2, 0 +_080D2478: .4byte gUnknown_0202F7C9 +_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer +_080D2480: + ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent + ldr r1, [sp, 0x4] + bl LZDecompressVram +_080D2488: + ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D24B6 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D24B6: + ldr r0, _080D24D8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D24DC @ =sub_80D24E0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent +_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace +_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace +_080D24D8: .4byte gTasks +_080D24DC: .4byte sub_80D24E0 + thumb_func_end sub_80D23B4 + + thumb_func_start sub_80D24E0 +sub_80D24E0: @ 80D24E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D2510 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080D2506 + b _080D267C +_080D2506: + lsls r0, 2 + ldr r1, _080D2514 @ =_080D2518 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D2510: .4byte gTasks +_080D2514: .4byte _080D2518 + .align 2, 0 +_080D2518: + .4byte _080D252C + .4byte _080D2574 + .4byte _080D2596 + .4byte _080D25D8 + .4byte _080D265C +_080D252C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + beq _080D2546 + b _080D267C +_080D2546: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D2570 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0xE + beq _080D2564 + b _080D267C +_080D2564: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D267C + .align 2, 0 +_080D2570: .4byte REG_BLDALPHA +_080D2574: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D267C + movs r0, 0xE + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D267C +_080D2596: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080D267C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D25D4 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D267C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D267C + .align 2, 0 +_080D25D4: .4byte REG_BLDALPHA +_080D25D8: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r0, r5, 2 + mov r10, r0 + add r6, sp, 0xC + movs r7, 0 + ldr r1, _080D268C @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D2690 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D25FE: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D25FE + str r7, [sp, 0xC] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D268C @ =0x040000d4 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D2694 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D264C + ldr r2, _080D2698 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D264C: + ldr r0, _080D269C @ =gTasks + mov r2, r10 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] +_080D265C: + ldr r0, _080D26A0 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D2698 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl move_anim_task_del +_080D267C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D268C: .4byte 0x040000d4 +_080D2690: .4byte 0x85000400 +_080D2694: .4byte 0x85000200 +_080D2698: .4byte REG_BG1CNT +_080D269C: .4byte gTasks +_080D26A0: .4byte REG_BLDCNT + thumb_func_end sub_80D24E0 + + thumb_func_start sub_80D26A4 +sub_80D26A4: @ 80D26A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D26F8 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080D26FC @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + ldrb r0, [r5] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x3C] + ldr r1, _080D2700 @ =sub_80D2704 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D26F8: .4byte gUnknown_0202F7C8 +_080D26FC: .4byte gUnknown_03004B00 +_080D2700: .4byte sub_80D2704 + thumb_func_end sub_80D26A4 + + thumb_func_start sub_80D2704 +sub_80D2704: @ 80D2704 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D271A + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + b _080D271E +_080D271A: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 +_080D271E: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r2, 0x30 + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x34] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r3, 0x38 + ldrsh r2, [r4, r3] + cmp r2, 0 + beq _080D2790 + cmp r2, 0x1 + bne _080D27C0 + ldr r1, _080D2788 @ =0xfffffc00 + adds r0, r1, 0 + ldrh r2, [r4, 0x32] + adds r0, r2 + strh r0, [r4, 0x32] + ldr r3, _080D278C @ =0xffffff00 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D27C0 + movs r0, 0x2 + strh r0, [r4, 0x38] + b _080D27D0 + .align 2, 0 +_080D2788: .4byte 0xfffffc00 +_080D278C: .4byte 0xffffff00 +_080D2790: + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x2E + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080D27C0 + strh r2, [r4, 0x36] + movs r0, 0x1 + strh r0, [r4, 0x38] +_080D27C0: + ldr r0, _080D27D8 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080D27DC @ =0x0000ffff + cmp r1, r0 + bne _080D27D0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D27D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D27D8: .4byte gUnknown_03004B00 +_080D27DC: .4byte 0x0000ffff + thumb_func_end sub_80D2704 + + thumb_func_start sub_80D27E0 +sub_80D27E0: @ 80D27E0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D2828 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080D282C @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldr r0, _080D2830 @ =sub_80D2834 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2828: .4byte gUnknown_0202F7C8 +_080D282C: .4byte gUnknown_03004B00 +_080D2830: .4byte sub_80D2834 + thumb_func_end sub_80D27E0 + + thumb_func_start sub_80D2834 +sub_80D2834: @ 80D2834 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D2872 + movs r0, 0x22 + ldrsh r1, [r2, r0] + movs r3, 0x26 + ldrsh r0, [r2, r3] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D2872 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D2878 +_080D2872: + adds r0, r2, 0 + bl move_anim_8072740 +_080D2878: + pop {r0} + bx r0 + thumb_func_end sub_80D2834 + + thumb_func_start sub_80D287C +sub_80D287C: @ 80D287C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x30] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080D28A8 + adds r0, r2, 0 + bl move_anim_8072740 +_080D28A8: + pop {r0} + bx r0 + thumb_func_end sub_80D287C + + thumb_func_start sub_80D28AC +sub_80D28AC: @ 80D28AC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D28F8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080D28FC @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + strh r0, [r5, 0x2E] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x7 + bl Cos + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x32] + ldr r0, _080D2900 @ =sub_80D287C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D28F8: .4byte gUnknown_0202F7C8 +_080D28FC: .4byte gUnknown_03004B00 +_080D2900: .4byte sub_80D287C + thumb_func_end sub_80D28AC + + thumb_func_start sub_80D2904 +sub_80D2904: @ 80D2904 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D291A + adds r0, r2, 0 + bl move_anim_8072740 +_080D291A: + pop {r0} + bx r0 + thumb_func_end sub_80D2904 + + thumb_func_start sub_80D2920 +sub_80D2920: @ 80D2920 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D2934 @ =sub_80D2904 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2934: .4byte sub_80D2904 + thumb_func_end sub_80D2920 + + thumb_func_start sub_80D2938 +sub_80D2938: @ 80D2938 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2956 + ldr r0, _080D29C8 @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D2956: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r5, r0, 1 + movs r0, 0xFF + ands r5, r0 + adds r0, r5, 0 + movs r1, 0x50 + bl Sin + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4F + bgt _080D299A + adds r0, r5, 0 + movs r1, 0x50 + bl Cos + movs r2, 0x2E + ldrsh r1, [r4, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + lsls r0, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x26] +_080D299A: + movs r0, 0x2E + ldrsh r2, [r4, r0] + cmp r2, 0x5A + ble _080D29B8 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] +_080D29B8: + cmp r2, 0x64 + ble _080D29C2 + adds r0, r4, 0 + bl move_anim_8072740 +_080D29C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D29C8: .4byte gUnknown_03004B00 + thumb_func_end sub_80D2938 + + thumb_func_start sub_80D29CC +sub_80D29CC: @ 80D29CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x14 + ble _080D2A22 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D2A22: + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x1E + ble _080D2A30 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2A30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D29CC + + thumb_func_start sub_80D2A38 +sub_80D2A38: @ 80D2A38 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2A5C + ldr r1, _080D2A58 @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x32] + adds r0, r2, 0x1 + strh r0, [r4, 0x2E] + b _080D2AB0 + .align 2, 0 +_080D2A58: .4byte gUnknown_03004B00 +_080D2A5C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + movs r5, 0 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + adds r2, r0, 0 + strh r2, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x46 + ble _080D2AB0 + ldr r0, _080D2AB8 @ =sub_80D29CC + str r0, [r4, 0x1C] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r0, r2, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x24] + strh r5, [r4, 0x26] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xB4 + bl __umodsi3 + strh r0, [r4, 0x34] +_080D2AB0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2AB8: .4byte sub_80D29CC + thumb_func_end sub_80D2A38 + + thumb_func_start sub_80D2ABC +sub_80D2ABC: @ 80D2ABC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2AF6 + ldr r1, _080D2BB8 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim + ldr r0, _080D2BBC @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + movs r0, 0x1 + strh r0, [r4, 0x32] +_080D2AF6: + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r0, r2 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r0, r1, 0 + cmp r1, 0 + bge _080D2B0C + adds r0, 0xFF +_080D2B0C: + asrs r0, 8 + lsls r0, 8 + subs r0, r1, r0 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _080D2B1E + movs r0, 0 + strh r0, [r4, 0x30] +_080D2B1E: + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080D2B2C + adds r0, 0x3 +_080D2B2C: + asrs r0, 2 + movs r1, 0x1E + subs r1, r0 + adds r0, r2, 0 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0x30 + ldrsh r2, [r4, r0] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080D2B48 + adds r0, 0x7 +_080D2B48: + asrs r0, 3 + movs r1, 0xA + subs r1, r0 + adds r0, r2, 0 + bl Sin + strh r0, [r4, 0x26] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x80 + ble _080D2B6C + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D2B6C + ldr r0, _080D2BC0 @ =0x0000ffff + strh r0, [r4, 0x32] +_080D2B6C: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2B80 + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _080D2B80 + movs r0, 0x1 + strh r0, [r4, 0x32] +_080D2B80: + ldrh r0, [r4, 0x34] + adds r1, r0, 0x1 + strh r1, [r4, 0x34] + subs r0, 0x9 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x46 + bls _080D2BC4 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080D2BD2 + .align 2, 0 +_080D2BB8: .4byte gUnknown_03004B00 +_080D2BBC: .4byte gUnknown_0202F7C9 +_080D2BC0: .4byte 0x0000ffff +_080D2BC4: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D2BD2: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x5A + ble _080D2BE0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2BE0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2ABC + + thumb_func_start sub_80D2BE8 +sub_80D2BE8: @ 80D2BE8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2C1C + ldr r1, _080D2C18 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D2C30 + .align 2, 0 +_080D2C18: .4byte gUnknown_03004B00 +_080D2C1C: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D2C30 + adds r0, r4, 0 + bl move_anim_8072740 +_080D2C30: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2BE8 + + thumb_func_start sub_80D2C38 +sub_80D2C38: @ 80D2C38 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _080D2C50 @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D2C54 + adds r0, r5, 0 + bl move_anim_8072740 + b _080D2CB8 + .align 2, 0 +_080D2C50: .4byte gUnknown_03004B00 +_080D2C54: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D2C64 + ldr r4, _080D2C60 @ =gUnknown_0202F7C8 + b _080D2C66 + .align 2, 0 +_080D2C60: .4byte gUnknown_0202F7C8 +_080D2C64: + ldr r4, _080D2C94 @ =gUnknown_0202F7C9 +_080D2C66: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D2C98 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0 + bne _080D2C9C + ldrh r0, [r5, 0x20] + adds r0, 0x20 + b _080D2CA0 + .align 2, 0 +_080D2C94: .4byte gUnknown_0202F7C9 +_080D2C98: .4byte gUnknown_03004B00 +_080D2C9C: + ldrh r0, [r5, 0x20] + subs r0, 0x20 +_080D2CA0: + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x2E] + ldrh r1, [r2, 0x2] + strh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldr r0, _080D2CC0 @ =sub_80D2CC4 + str r0, [r5, 0x1C] +_080D2CB8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2CC0: .4byte sub_80D2CC4 + thumb_func_end sub_80D2C38 + + thumb_func_start sub_80D2CC4 +sub_80D2CC4: @ 80D2CC4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D2CF4 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + cmp r0, 0 + beq _080D2CEE + ldrh r1, [r2, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080D2CF4 +_080D2CEE: + adds r0, r2, 0 + bl move_anim_8072740 +_080D2CF4: + pop {r0} + bx r0 + thumb_func_end sub_80D2CC4 + + thumb_func_start sub_80D2CF8 +sub_80D2CF8: @ 80D2CF8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080D2D2C @ =gUnknown_03004B00 + ldrb r0, [r0] + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080D2D30 @ =gTasks + adds r4, r0 + ldr r2, _080D2D34 @ =gUnknown_083D7CA8 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080D2D38 @ =sub_80D2D3C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2D2C: .4byte gUnknown_03004B00 +_080D2D30: .4byte gTasks +_080D2D34: .4byte gUnknown_083D7CA8 +_080D2D38: .4byte sub_80D2D3C + thumb_func_end sub_80D2CF8 + + thumb_func_start sub_80D2D3C +sub_80D2D3C: @ 80D2D3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D2D64 @ =gTasks + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080D2D5C + adds r0, r4, 0 + bl move_anim_task_del +_080D2D5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2D64: .4byte gTasks + thumb_func_end sub_80D2D3C + + thumb_func_start sub_80D2D68 +sub_80D2D68: @ 80D2D68 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080D2D7C @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D2D84 + ldr r0, _080D2D80 @ =gUnknown_0202F7C8 + b _080D2D86 + .align 2, 0 +_080D2D7C: .4byte gUnknown_03004B00 +_080D2D80: .4byte gUnknown_0202F7C8 +_080D2D84: + ldr r0, _080D2E1C @ =gUnknown_0202F7C9 +_080D2D86: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D2DA0 + ldr r1, _080D2E20 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D2DA0: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r7, _080D2E20 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r3, [r7, 0x2] + adds r0, r3 + movs r4, 0 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r7, 0x4] + adds r0, r1 + strh r0, [r5, 0x22] + strh r4, [r5, 0x2E] + ldrh r1, [r5, 0x20] + lsls r1, 3 + strh r1, [r5, 0x30] + lsls r0, 3 + strh r0, [r5, 0x32] + movs r2, 0x2 + ldrsh r0, [r7, r2] + lsls r0, 3 + cmp r0, 0 + bge _080D2DE0 + adds r0, 0x7 +_080D2DE0: + asrs r0, 3 + strh r0, [r5, 0x34] + movs r3, 0x4 + ldrsh r0, [r7, r3] + lsls r0, 3 + cmp r0, 0 + bge _080D2DF0 + adds r0, 0x7 +_080D2DF0: + asrs r0, 3 + strh r0, [r5, 0x36] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x6 + ldrsh r0, [r7, r3] + lsls r0, 4 + adds r1, r0 + ldr r3, _080D2E24 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D2E28 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080D2E2C @ =sub_80D2E30 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D2E1C: .4byte gUnknown_0202F7C9 +_080D2E20: .4byte gUnknown_03004B00 +_080D2E24: .4byte 0x000003ff +_080D2E28: .4byte 0xfffffc00 +_080D2E2C: .4byte sub_80D2E30 + thumb_func_end sub_80D2D68 + + thumb_func_start sub_80D2E30 +sub_80D2E30: @ 80D2E30 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + ldrh r3, [r2, 0x32] + adds r1, r3 + strh r1, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D2E64 + adds r0, r2, 0 + bl move_anim_8072740 +_080D2E64: + pop {r0} + bx r0 + thumb_func_end sub_80D2E30 + + thumb_func_start sub_80D2E68 +sub_80D2E68: @ 80D2E68 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D2E8A + ldr r0, _080D2EC4 @ =gUnknown_03004B00 + ldrh r1, [r0] + movs r0, 0x78 + subs r0, r1 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080D2E8A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x30 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D2EA8 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + adds r0, 0x10 + movs r1, 0 + bl sub_8079108 +_080D2EA8: + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + adds r0, 0x50 + cmp r1, r0 + bne _080D2EBC + adds r0, r4, 0 + bl move_anim_8072740 +_080D2EBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2EC4: .4byte gUnknown_03004B00 + thumb_func_end sub_80D2E68 + + thumb_func_start sub_80D2EC8 +sub_80D2EC8: @ 80D2EC8 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x2E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D2EF6 + movs r5, 0x78 + strh r5, [r6, 0x20] + ldr r4, _080D2F78 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r0, [r4, r2] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r0, 0xF + strh r0, [r6, 0x22] + ldrb r1, [r4, 0x2] + adds r0, r6, 0 + bl StartSpriteAnim + strh r5, [r6, 0x38] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x34] +_080D2EF6: + ldrh r0, [r6, 0x2E] + adds r0, 0x1 + movs r5, 0 + strh r0, [r6, 0x2E] + movs r1, 0x2E + ldrsh r0, [r6, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r6, 0x30] + movs r2, 0x2E + ldrsh r0, [r6, r2] + lsls r4, r0, 1 + adds r4, r0 + ldrh r0, [r6, 0x34] + adds r4, r0 + movs r2, 0xFF + ldrh r0, [r6, 0x3A] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3A] + ands r4, r2 + adds r0, r4, 0 + movs r1, 0x64 + bl Cos + strh r0, [r6, 0x24] + adds r0, r4, 0 + movs r1, 0xA + bl Sin + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r1, 0x4 + bl Cos + ldrh r2, [r6, 0x30] + adds r4, r2 + adds r0, r4 + strh r0, [r6, 0x26] + movs r0, 0x2E + ldrsh r1, [r6, r0] + movs r2, 0x38 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080D2F72 + ldr r0, _080D2F7C @ =sub_80D2F80 + str r0, [r6, 0x1C] + strh r5, [r6, 0x2E] + adds r0, r6, 0 + bl oamt_add_pos2_onto_pos1 + movs r0, 0x5 + strh r0, [r6, 0x32] + strh r5, [r6, 0x36] + strh r5, [r6, 0x34] + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080D2F72: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D2F78: .4byte gUnknown_03004B00 +_080D2F7C: .4byte sub_80D2F80 + thumb_func_end sub_80D2EC8 + + thumb_func_start sub_80D2F80 +sub_80D2F80: @ 80D2F80 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080D2F9A + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080D2FA0 @ =sub_80D2FA4 + str r0, [r1, 0x1C] +_080D2F9A: + pop {r0} + bx r0 + .align 2, 0 +_080D2FA0: .4byte sub_80D2FA4 + thumb_func_end sub_80D2F80 + + thumb_func_start sub_80D2FA4 +sub_80D2FA4: @ 80D2FA4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x34] + adds r0, r1, r2 + strh r0, [r4, 0x34] + strh r0, [r4, 0x26] + adds r1, 0x1 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _080D2FCE + lsls r0, r1, 16 + cmp r0, 0 + ble _080D2FCE + ldrh r0, [r4, 0x36] + subs r1, r0, 0x5 + strh r1, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x36] +_080D2FCE: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080D3000 + movs r2, 0x32 + ldrsh r1, [r4, r2] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl move_anim_8072740 +_080D3000: + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _080D300E + adds r0, r4, 0 + bl move_anim_8072740 +_080D300E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D2FA4 + + thumb_func_start sub_80D3014 +sub_80D3014: @ 80D3014 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D3058 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D3060 + ldr r4, _080D305C @ =gUnknown_0202F7C8 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D3060 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrh r0, [r5, 0x22] + adds r0, 0x28 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080D3080 + .align 2, 0 +_080D3058: .4byte gUnknown_020239F8 +_080D305C: .4byte gUnknown_0202F7C8 +_080D3060: + ldr r4, _080D30A0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 + strh r0, [r5, 0x22] +_080D3080: + movs r0, 0xD + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + subs r0, 0x48 + strh r0, [r5, 0x36] + ldr r0, _080D30A4 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080D30A8 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D30A0: .4byte gUnknown_0202F7C8 +_080D30A4: .4byte sub_8078B34 +_080D30A8: .4byte move_anim_8072740 + thumb_func_end sub_80D3014 + + thumb_func_start sub_80D30AC +sub_80D30AC: @ 80D30AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080D30C8 @ =gUnknown_03004B00 + ldr r1, _080D30CC @ =gUnknown_0202F7B4 + ldr r1, [r1] + ldrb r2, [r1, 0x10] + movs r1, 0x1 + ands r1, r2 + strh r1, [r3, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D30C8: .4byte gUnknown_03004B00 +_080D30CC: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80D30AC + + thumb_func_start update_fury_cutter_counter_copy +update_fury_cutter_counter_copy: @ 80D30D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D30E8 @ =gUnknown_03004B00 + ldr r1, _080D30EC @ =gUnknown_0202F7B4 + ldr r1, [r1] + ldrb r1, [r1, 0x10] + strh r1, [r2, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D30E8: .4byte gUnknown_03004B00 +_080D30EC: .4byte gUnknown_0202F7B4 + thumb_func_end update_fury_cutter_counter_copy + + thumb_func_start sub_80D30F0 +sub_80D30F0: @ 80D30F0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080D3178 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D3118 + ldr r1, _080D317C @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r5, 0xA] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0xC] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0xE] +_080D3118: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r2, 0x8 + ldrsh r0, [r5, r2] + movs r2, 0xC + ldrsh r1, [r5, r2] + bl __modsi3 + cmp r0, 0x1 + bne _080D3160 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x50 + bl __umodsi3 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _080D3180 @ =gSpriteTemplate_83D9130 + adds r1, r4, 0 + movs r3, 0x4 + bl CreateSprite +_080D3160: + movs r0, 0x8 + ldrsh r1, [r5, r0] + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _080D3172 + adds r0, r6, 0 + bl move_anim_task_del +_080D3172: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D3178: .4byte gTasks +_080D317C: .4byte gUnknown_03004B00 +_080D3180: .4byte gSpriteTemplate_83D9130 + thumb_func_end sub_80D30F0 + + thumb_func_start sub_80D3184 +sub_80D3184: @ 80D3184 + ldr r1, _080D318C @ =sub_80D3190 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D318C: .4byte sub_80D3190 + thumb_func_end sub_80D3184 + + thumb_func_start sub_80D3190 +sub_80D3190: @ 80D3190 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080D31AE + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x26] + adds r0, 0x4 + strh r0, [r2, 0x26] +_080D31AE: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D31C2 + adds r0, r2, 0 + bl DestroySprite +_080D31C2: + pop {r0} + bx r0 + thumb_func_end sub_80D3190 + + thumb_func_start sub_80D31C8 +sub_80D31C8: @ 80D31C8 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080D31F0 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D31F8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080D31F4 @ =gUnknown_03004B00 + ldrh r1, [r4] + subs r0, r1 + b _080D320A + .align 2, 0 +_080D31F0: .4byte gUnknown_0202F7C8 +_080D31F4: .4byte gUnknown_03004B00 +_080D31F8: + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D32D0 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 +_080D320A: + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 + strh r0, [r6, 0x22] + adds r2, r6, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D32D4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D3240 + ldr r1, _080D32D0 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D3240: + ldr r5, _080D32D0 @ =gUnknown_03004B00 + ldrh r0, [r5, 0xC] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r4, _080D32D8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D32DC @ =SpriteCallbackDummy + bl object_new_hidden_with_callback + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + strh r4, [r6, 0x38] + ldrb r0, [r5, 0x8] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + ldrh r1, [r6, 0x20] + subs r1, r0 + strh r1, [r6, 0x20] + ldrb r0, [r5, 0x8] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + ldrh r1, [r6, 0x22] + subs r1, r0 + strh r1, [r6, 0x22] + ldr r0, _080D32E0 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x4] + strh r0, [r1, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r1, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r1, 0x32] + ldrb r0, [r5, 0x8] + lsls r0, 8 + strh r0, [r1, 0x34] + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x36] + ldr r1, _080D32E4 @ =sub_80D32E8 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D32D0: .4byte gUnknown_03004B00 +_080D32D4: .4byte gUnknown_0202F7C8 +_080D32D8: .4byte gUnknown_0202F7C9 +_080D32DC: .4byte SpriteCallbackDummy +_080D32E0: .4byte gSprites +_080D32E4: .4byte sub_80D32E8 + thumb_func_end sub_80D31C8 + + thumb_func_start sub_80D32E8 +sub_80D32E8: @ 80D32E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r1, [r5, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080D3350 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r7, r0, r2 + ldrh r4, [r7, 0x36] + lsls r4, 24 + lsrs r4, 24 + ldrh r0, [r7, 0x34] + mov r8, r0 + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078B5C + mov r1, r8 + lsrs r6, r1, 8 + movs r0, 0x2E + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Sin + ldrh r1, [r5, 0x24] + adds r0, r1 + strh r0, [r5, 0x24] + movs r0, 0x30 + ldrsh r1, [r7, r0] + adds r0, r6, 0 + bl Cos + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r0, [r7, 0x32] + mov r1, r8 + adds r1, r0 + strh r1, [r7, 0x34] + subs r4, 0x1 + lsls r4, 24 + lsrs r4, 24 + cmp r4, 0 + beq _080D3354 + strh r4, [r7, 0x36] + b _080D335E + .align 2, 0 +_080D3350: .4byte gSprites +_080D3354: + ldr r0, _080D336C @ =sub_80D3370 + str r0, [r5, 0x1C] + adds r0, r7, 0 + bl DestroySprite +_080D335E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D336C: .4byte sub_80D3370 + thumb_func_end sub_80D32E8 + + thumb_func_start sub_80D3370 +sub_80D3370: @ 80D3370 + push {lr} + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldr r1, _080D3390 @ =sub_8078600 + str r1, [r0, 0x1C] + ldr r1, _080D3394 @ =sub_80D3398 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D3390: .4byte sub_8078600 +_080D3394: .4byte sub_80D3398 + thumb_func_end sub_80D3370 + + thumb_func_start sub_80D3398 +sub_80D3398: @ 80D3398 + push {lr} + movs r1, 0xA + strh r1, [r0, 0x2E] + ldr r1, _080D33AC @ =sub_80782D8 + str r1, [r0, 0x1C] + ldr r1, _080D33B0 @ =move_anim_8074EE0 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D33AC: .4byte sub_80782D8 +_080D33B0: .4byte move_anim_8074EE0 + thumb_func_end sub_80D3398 + + thumb_func_start sub_80D33B4 +sub_80D33B4: @ 80D33B4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D33DC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D33E4 + ldr r1, _080D33E0 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r1, 0 + b _080D33EA + .align 2, 0 +_080D33DC: .4byte gUnknown_0202F7C8 +_080D33E0: .4byte gUnknown_03004B00 +_080D33E4: + ldr r0, _080D3440 @ =gUnknown_03004B00 + ldrh r6, [r0, 0x4] + adds r7, r0, 0 +_080D33EA: + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D3444 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r7, [r7, 0x6] + adds r0, r7 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D3448 @ =sub_80D344C + str r0, [r5, 0x1C] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3440: .4byte gUnknown_03004B00 +_080D3444: .4byte gUnknown_0202F7C9 +_080D3448: .4byte sub_80D344C + thumb_func_end sub_80D33B4 + + thumb_func_start sub_80D344C +sub_80D344C: @ 80D344C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D3488 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + ldr r0, _080D348C @ =0x0000ffff + cmp r1, r0 + bne _080D346E + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] +_080D346E: + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D3480 + adds r0, r4, 0 + bl move_anim_8072740 +_080D3480: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D3488: .4byte gUnknown_03004B00 +_080D348C: .4byte 0x0000ffff + thumb_func_end sub_80D344C + + thumb_func_start sub_80D3490 +sub_80D3490: @ 80D3490 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D34C4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r0, _080D34C8 @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r4, 0x8] + ldr r0, _080D34CC @ =0x0000279c + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4, 0xC] + ldr r0, _080D34D0 @ =sub_80D34D4 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D34C4: .4byte gTasks +_080D34C8: .4byte gUnknown_03004B00 +_080D34CC: .4byte 0x0000279c +_080D34D0: .4byte sub_80D34D4 + thumb_func_end sub_80D3490 + + thumb_func_start sub_80D34D4 +sub_80D34D4: @ 80D34D4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080D354C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r12, r1 + cmp r0, 0x3 + bne _080D3526 + movs r0, 0 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080D3550 @ =gPlttBufferFaded + lsls r0, r5, 1 + adds r0, r1 + ldrh r6, [r0] + adds r7, r1, 0 + adds r3, r0, 0x2 + movs r1, 0x6 + adds r2, r0, 0 +_080D3510: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080D3510 + adds r0, r5, 0x7 + lsls r0, 1 + adds r0, r7 + strh r6, [r0] +_080D3526: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x1E] + adds r1, 0x1 + strh r1, [r0, 0x1E] + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _080D3546 + adds r0, r4, 0 + bl move_anim_task_del +_080D3546: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D354C: .4byte gTasks +_080D3550: .4byte gPlttBufferFaded + thumb_func_end sub_80D34D4 + + thumb_func_start sub_80D3554 +sub_80D3554: @ 80D3554 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0x1E + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D35BC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r5, r0] + movs r0, 0xD2 + lsls r0, 8 + bl __divsi3 + strh r0, [r5, 0x38] + ldr r0, _080D35C0 @ =gUnknown_03004B00 + ldrh r2, [r0, 0x6] + strh r2, [r5, 0x3C] + ldrh r1, [r0, 0xE] + movs r3, 0xE + ldrsh r0, [r0, r3] + cmp r0, 0x7F + ble _080D35C4 + adds r0, r1, 0 + subs r0, 0x7F + lsls r0, 8 + strh r0, [r5, 0x3A] + negs r0, r2 + strh r0, [r5, 0x3C] + b _080D35C8 + .align 2, 0 +_080D35BC: .4byte gUnknown_0202F7C9 +_080D35C0: .4byte gUnknown_03004B00 +_080D35C4: + lsls r0, r1, 8 + strh r0, [r5, 0x3A] +_080D35C8: + ldr r1, _080D35D8 @ =sub_80D35DC + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D35D8: .4byte sub_80D35DC + thumb_func_end sub_80D3554 + + thumb_func_start sub_80D35DC +sub_80D35DC: @ 80D35DC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D35F0 + adds r0, r4, 0 + bl move_anim_8072740 +_080D35F0: + ldrh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + adds r0, r1 + asrs r0, 8 + cmp r0, 0x7F + ble _080D3620 + movs r0, 0 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + negs r0, r0 + strh r0, [r4, 0x3C] + b _080D3628 +_080D3620: + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x3A] + adds r0, r1 + strh r0, [r4, 0x3A] +_080D3628: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D35DC + + thumb_func_start sub_80D3630 +sub_80D3630: @ 80D3630 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D3650 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, _080D3654 @ =gUnknown_03004B00 + ldrh r0, [r3] + movs r2, 0 + strh r0, [r1, 0x8] + strh r2, [r3, 0xE] + ldr r0, _080D3658 @ =sub_80D365C + str r0, [r1] + bx lr + .align 2, 0 +_080D3650: .4byte gTasks +_080D3654: .4byte gUnknown_03004B00 +_080D3658: .4byte sub_80D365C + thumb_func_end sub_80D3630 + + thumb_func_start sub_80D365C +sub_80D365C: @ 80D365C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080D3690 @ =gUnknown_03004B00 + ldrh r0, [r2, 0xE] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0xE] + ldr r1, _080D3694 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080D368A + adds r0, r3, 0 + bl move_anim_task_del +_080D368A: + pop {r0} + bx r0 + .align 2, 0 +_080D3690: .4byte gUnknown_03004B00 +_080D3694: .4byte gTasks + thumb_func_end sub_80D365C + + thumb_func_start sub_80D3698 +sub_80D3698: @ 80D3698 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r7, _080D36E4 @ =gUnknown_0202F7C8 + ldrb r0, [r7] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r7] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r6, _080D36E8 @ =0x0000fff6 + strh r6, [r4, 0x26] + ldrb r0, [r7] + bl sub_8079E90 + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D36F2 + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D36EC + movs r0, 0xA + strh r0, [r4, 0x24] + b _080D36F4 + .align 2, 0 +_080D36E4: .4byte gUnknown_0202F7C8 +_080D36E8: .4byte 0x0000fff6 +_080D36EC: + strh r6, [r4, 0x24] + subs r0, r5, 0x2 + b _080D36F6 +_080D36F2: + strh r6, [r4, 0x24] +_080D36F4: + adds r0, r5, 0x2 +_080D36F6: + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + ldr r0, _080D3708 @ =sub_80D370C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3708: .4byte sub_80D370C + thumb_func_end sub_80D3698 + + thumb_func_start sub_80D370C +sub_80D370C: @ 80D370C + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D3722 + adds r0, r2, 0 + bl move_anim_8072740 +_080D3722: + pop {r0} + bx r0 + thumb_func_end sub_80D370C + + thumb_func_start sub_80D3728 +sub_80D3728: @ 80D3728 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r5, _080D37E8 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080D37EC @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080D3772 + ldr r4, _080D37F0 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + beq _080D376A + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D3772 +_080D376A: + movs r1, 0 + ldrsh r0, [r4, r1] + negs r0, r0 + strh r0, [r4] +_080D3772: + ldr r5, _080D37F0 @ =gUnknown_03004B00 + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _080D3786 + movs r1, 0x1 +_080D3786: + ldrb r0, [r5, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _080D3790 + movs r7, 0x3 +_080D3790: + adds r0, r6, 0 + bl sub_80787B0 + ldr r0, _080D37E8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D37AA + ldrh r0, [r5, 0x4] + negs r0, r0 + strh r0, [r5, 0x4] +_080D37AA: + ldrh r0, [r5, 0x8] + strh r0, [r6, 0x2E] + ldr r4, _080D37EC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r6, 0x36] + ldr r0, _080D37F4 @ =sub_8078B34 + str r0, [r6, 0x1C] + ldr r1, _080D37F8 @ =move_anim_8072740 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D37E8: .4byte gUnknown_0202F7C8 +_080D37EC: .4byte gUnknown_0202F7C9 +_080D37F0: .4byte gUnknown_03004B00 +_080D37F4: .4byte sub_8078B34 +_080D37F8: .4byte move_anim_8072740 + thumb_func_end sub_80D3728 + + thumb_func_start sub_80D37FC +sub_80D37FC: @ 80D37FC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D382C @ =gUnknown_03004B00 + ldrh r1, [r0, 0x8] + strh r1, [r4, 0x2E] + ldrh r0, [r0, 0x4] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x36] + ldr r0, _080D3830 @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080D3834 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D382C: .4byte gUnknown_03004B00 +_080D3830: .4byte sub_8078B34 +_080D3834: .4byte move_anim_8072740 + thumb_func_end sub_80D37FC + + thumb_func_start sub_80D3838 +sub_80D3838: @ 80D3838 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D3850 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D3854 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D385C + .align 2, 0 +_080D3850: .4byte gUnknown_03004B00 +_080D3854: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 +_080D385C: + ldr r0, _080D386C @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x3C] + ldr r0, _080D3870 @ =sub_80D3874 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D386C: .4byte gUnknown_03004B00 +_080D3870: .4byte sub_80D3874 + thumb_func_end sub_80D3838 + + thumb_func_start sub_80D3874 +sub_80D3874: @ 80D3874 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D38B4 + adds r0, r4, 0 + bl move_anim_8072740 +_080D38B4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D3874 + + thumb_func_start sub_80D38BC +sub_80D38BC: @ 80D38BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080D398C @ =REG_BLDCNT + ldr r2, _080D3990 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r2, _080D3994 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x10 + add r0, sp, 0xC + mov r12, r0 + movs r5, 0 + ldr r1, _080D3998 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r7, _080D399C @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D3920: + str r5, [sp, 0x10] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D3920 + str r5, [sp, 0x10] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 + mov r3, r12 + strb r0, [r3] + strb r0, [r3] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x10] + ldr r0, _080D3998 @ =0x040000d4 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D399C @ =0x85000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D39B8 + ldr r2, _080D3994 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D39A0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D39A8 + ldr r0, _080D39A4 @ =gUnknown_08E70968 + b _080D39AA + .align 2, 0 +_080D398C: .4byte REG_BLDCNT +_080D3990: .4byte 0x00003f42 +_080D3994: .4byte REG_BG1CNT +_080D3998: .4byte 0x040000d4 +_080D399C: .4byte 0x85000400 +_080D39A0: .4byte gUnknown_0202F7C8 +_080D39A4: .4byte gUnknown_08E70968 +_080D39A8: + ldr r0, _080D39B4 @ =gUnknown_08E70C38 +_080D39AA: + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080D39CE + .align 2, 0 +_080D39B4: .4byte gUnknown_08E70C38 +_080D39B8: + ldr r0, _080D39F0 @ =gUnknown_08E70F0C + ldr r1, [sp, 0x4] + bl LZDecompressVram + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0x1 + bl sub_80763FC +_080D39CE: + ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080D39F8 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D3A00 + ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080D3A0E + .align 2, 0 +_080D39F0: .4byte gUnknown_08E70F0C +_080D39F4: .4byte gBattleAnimBackgroundImage_Surf +_080D39F8: .4byte gUnknown_03004B00 +_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf +_080D3A00: + ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080D3A0E: + ldr r0, _080D3A7C @ =sub_80D3D68 + ldr r4, _080D3A80 @ =gTasks + mov r2, r10 + lsls r5, r2, 2 + adds r1, r5, r2 + lsls r1, 3 + adds r6, r1, r4 + ldrb r1, [r6, 0x7] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r3, 0 + mov r9, r3 + mov r0, r8 + strh r0, [r6, 0x26] + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + adds r7, r0, r4 + mov r2, r9 + strh r2, [r7, 0x8] + movs r0, 0x80 + lsls r0, 5 + strh r0, [r7, 0xA] + strh r0, [r7, 0xC] + bl sub_8076BE0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080D3A94 + ldr r3, _080D3A84 @ =0x0000ffb0 + adds r0, r3, 0 + ldr r1, _080D3A88 @ =gUnknown_030042C0 + strh r0, [r1] + ldr r2, _080D3A8C @ =0x0000ffd0 + adds r0, r2, 0 + ldr r3, _080D3A90 @ =gUnknown_030041B4 + strh r0, [r3] + movs r0, 0x2 + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + mov r0, r9 + strh r0, [r7, 0xE] + b _080D3AEE + .align 2, 0 +_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal +_080D3A7C: .4byte sub_80D3D68 +_080D3A80: .4byte gTasks +_080D3A84: .4byte 0x0000ffb0 +_080D3A88: .4byte gUnknown_030042C0 +_080D3A8C: .4byte 0x0000ffd0 +_080D3A90: .4byte gUnknown_030041B4 +_080D3A94: + ldr r0, _080D3AC4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080D3AD8 + ldr r2, _080D3AC8 @ =0x0000ff20 + adds r0, r2, 0 + ldr r3, _080D3ACC @ =gUnknown_030042C0 + strh r0, [r3] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldr r3, _080D3AD0 @ =gUnknown_030041B4 + strh r0, [r3] + movs r0, 0x2 + strh r0, [r6, 0x8] + ldr r0, _080D3AD4 @ =0x0000ffff + strh r0, [r6, 0xA] + strh r1, [r7, 0xE] + b _080D3AEE + .align 2, 0 +_080D3AC4: .4byte gUnknown_0202F7C8 +_080D3AC8: .4byte 0x0000ff20 +_080D3ACC: .4byte gUnknown_030042C0 +_080D3AD0: .4byte gUnknown_030041B4 +_080D3AD4: .4byte 0x0000ffff +_080D3AD8: + ldr r0, _080D3B1C @ =gUnknown_030042C0 + strh r4, [r0] + ldr r1, _080D3B20 @ =0x0000ffd0 + adds r0, r1, 0 + ldr r2, _080D3B24 @ =gUnknown_030041B4 + strh r0, [r2] + ldr r0, _080D3B28 @ =0x0000fffe + strh r0, [r6, 0x8] + movs r0, 0x1 + strh r0, [r6, 0xA] + strh r4, [r7, 0xE] +_080D3AEE: + ldr r1, _080D3B2C @ =REG_BG1HOFS + ldr r3, _080D3B1C @ =gUnknown_030042C0 + ldrh r0, [r3] + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080D3B24 @ =gUnknown_030041B4 + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _080D3B30 @ =gTasks + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080D3B34 + movs r0, 0x30 + strh r0, [r2, 0x10] + movs r0, 0x70 + b _080D3B38 + .align 2, 0 +_080D3B1C: .4byte gUnknown_030042C0 +_080D3B20: .4byte 0x0000ffd0 +_080D3B24: .4byte gUnknown_030041B4 +_080D3B28: .4byte 0x0000fffe +_080D3B2C: .4byte REG_BG1HOFS +_080D3B30: .4byte gTasks +_080D3B34: + movs r0, 0 + strh r0, [r2, 0x10] +_080D3B38: + strh r0, [r2, 0x12] + mov r2, r10 + adds r0, r5, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0, 0x14] + ldr r1, _080D3B5C @ =sub_80D3B60 + str r1, [r0] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3B5C: .4byte sub_80D3B60 + thumb_func_end sub_80D38BC + + thumb_func_start sub_80D3B60 +sub_80D3B60: @ 80D3B60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080D3D44 @ =gTasks + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x8] + ldr r1, _080D3D48 @ =gUnknown_030042C0 + ldrh r1, [r1] + adds r0, r1 + ldr r2, _080D3D48 @ =gUnknown_030042C0 + strh r0, [r2] + ldrh r0, [r4, 0xA] + ldr r3, _080D3D4C @ =gUnknown_030041B4 + ldrh r3, [r3] + adds r0, r3 + ldr r1, _080D3D4C @ =gUnknown_030041B4 + strh r0, [r1] + add r5, sp, 0x4 + adds r0, r5, 0 + bl sub_8078914 + ldrh r0, [r4, 0xA] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + mov r10, r5 + cmp r0, 0x4 + bne _080D3C02 + ldr r1, _080D3D50 @ =gPlttBufferFaded + ldrb r0, [r5, 0x8] + lsls r0, 4 + adds r0, 0x7 + lsls r0, 1 + adds r0, r1 + ldrh r6, [r0] + movs r2, 0x6 + adds r5, r1, 0 + adds r3, r5, 0 + mov r4, r10 +_080D3BC8: + ldrb r0, [r4, 0x8] + lsls r0, 4 + adds r1, r2, 0x1 + adds r0, r1 + lsls r1, r0, 1 + adds r1, r3 + subs r0, 0x1 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080D3BC8 + mov r3, r10 + ldrb r0, [r3, 0x8] + lsls r0, 4 + adds r0, 0x1 + lsls r0, 1 + adds r0, r5 + strh r6, [r0] + ldr r1, _080D3D44 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x12] +_080D3C02: + ldr r1, _080D3D44 @ =gTasks + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0x14] + adds r0, 0x1 + strh r0, [r3, 0x14] + lsls r0, 16 + asrs r0, 16 + adds r4, r1, 0 + str r2, [sp, 0x14] + cmp r0, 0x1 + ble _080D3C70 + movs r0, 0 + strh r0, [r3, 0x14] + ldrh r0, [r3, 0xE] + adds r2, r0, 0x1 + strh r2, [r3, 0xE] + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xD + bgt _080D3C4C + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] + ldrh r0, [r3, 0x10] + adds r0, 0x1 + strh r0, [r3, 0x10] +_080D3C4C: + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r0, 0x36 + ble _080D3C70 + ldrh r2, [r3, 0x10] + subs r2, 0x1 + strh r2, [r3, 0x10] + movs r1, 0x26 + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + orrs r2, r0 + strh r2, [r1, 0xA] +_080D3C70: + ldr r2, [sp, 0x14] + adds r0, r2, r7 + lsls r0, 3 + adds r0, r4 + movs r3, 0x26 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0, 0xA] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080D3D32 + ldr r2, [sp, 0x4] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x10 + movs r5, 0 + ldr r1, _080D3D54 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r6 + ldr r0, _080D3D58 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D3CAA: + str r5, [sp, 0x10] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D3CAA + str r5, [sp, 0x10] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + mov r3, r10 + ldr r1, [r3, 0x4] + movs r4, 0 + str r4, [sp, 0x10] + ldr r0, _080D3D54 @ =0x040000d4 + str r6, [r0] + str r1, [r0, 0x4] + ldr r1, _080D3D58 @ =0x85000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D3D02 + ldr r2, _080D3D5C @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D3D02: + ldr r0, _080D3D48 @ =gUnknown_030042C0 + strh r4, [r0] + ldr r1, _080D3D4C @ =gUnknown_030041B4 + strh r4, [r1] + ldr r0, _080D3D60 @ =REG_BLDCNT + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r2, _080D3D44 @ =gTasks + ldr r3, [sp, 0x14] + adds r0, r3, r7 + lsls r0, 3 + adds r0, r2 + movs r3, 0x26 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080D3D64 @ =0x0000ffff + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl move_anim_task_del +_080D3D32: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3D44: .4byte gTasks +_080D3D48: .4byte gUnknown_030042C0 +_080D3D4C: .4byte gUnknown_030041B4 +_080D3D50: .4byte gPlttBufferFaded +_080D3D54: .4byte 0x040000d4 +_080D3D58: .4byte 0x85000400 +_080D3D5C: .4byte REG_BG1CNT +_080D3D60: .4byte REG_BLDCNT +_080D3D64: .4byte 0x0000ffff + thumb_func_end sub_80D3B60 + + thumb_func_start sub_80D3D68 +sub_80D3D68: @ 80D3D68 + push {r4-r7,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080D3D90 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D3D84 + b _080D3EBC +_080D3D84: + cmp r0, 0x1 + bgt _080D3D94 + cmp r0, 0 + beq _080D3D9C + b _080D4032 + .align 2, 0 +_080D3D90: .4byte gTasks +_080D3D94: + cmp r0, 0x2 + bne _080D3D9A + b _080D3F88 +_080D3D9A: + b _080D4032 +_080D3D9C: + movs r3, 0 + movs r2, 0x10 + ldrsh r0, [r4, r2] + ldr r1, _080D3E6C @ =gUnknown_03004DE0 + mov r12, r1 + cmp r3, r0 + bge _080D3DDA + mov r7, r12 + movs r5, 0xF0 + lsls r5, 3 + add r5, r12 + ldr r6, _080D3E70 @ =0x0000ffff +_080D3DB4: + lsls r2, r3, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r7 + adds r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r6, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080D3DB4 +_080D3DDA: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3E14 + ldr r5, _080D3E6C @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080D3E70 @ =0x0000ffff +_080D3DF2: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldrh r1, [r4, 0xA] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3DF2 +_080D3E14: + ldrh r3, [r4, 0x12] + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + bgt _080D3E4A + ldr r5, _080D3E6C @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 + ldr r7, _080D3E70 @ =0x0000ffff +_080D3E28: + asrs r2, 16 + lsls r1, r2, 1 + adds r3, r1, r5 + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + ldrh r1, [r4, 0xC] + adds r0, r7, 0 + ands r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + lsls r2, r3, 16 + asrs r0, r2, 16 + cmp r0, 0x9F + ble _080D3E28 +_080D3E4A: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D3E74 + lsls r0, r3, 16 + asrs r0, 15 + mov r3, r12 + adds r2, r0, r3 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xA] + strh r1, [r0] + ldrh r0, [r4, 0xA] + b _080D3E8A + .align 2, 0 +_080D3E6C: .4byte gUnknown_03004DE0 +_080D3E70: .4byte 0x0000ffff +_080D3E74: + lsls r0, r3, 16 + asrs r0, 15 + mov r1, r12 + adds r2, r0, r1 + movs r1, 0xF0 + lsls r1, 3 + add r1, r12 + adds r0, r1 + ldrh r1, [r4, 0xC] + strh r1, [r0] + ldrh r0, [r4, 0xC] +_080D3E8A: + strh r0, [r2] + ldr r0, _080D3EB4 @ =REG_BLDALPHA + str r0, [sp] + ldr r0, _080D3EB8 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4032 + .align 2, 0 +_080D3EB4: .4byte REG_BLDALPHA +_080D3EB8: .4byte 0xa2600001 +_080D3EBC: + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _080D3ED4 + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bgt _080D3EE8 + strh r1, [r4, 0x10] + b _080D3EE2 +_080D3ED4: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080D3EE8 +_080D3EE2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D3EE8: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080D3F1C + ldr r6, _080D3F80 @ =gUnknown_03004DE0 + ldr r5, _080D3F84 @ =gUnknown_03004DC0 +_080D3EF6: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D3EF6 +_080D3F1C: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3F50 + ldr r6, _080D3F80 @ =gUnknown_03004DE0 + ldr r5, _080D3F84 @ =gUnknown_03004DC0 +_080D3F2E: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3F2E +_080D3F50: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080D4032 + ldr r6, _080D3F80 @ =gUnknown_03004DE0 + ldr r5, _080D3F84 @ =gUnknown_03004DC0 +_080D3F5E: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080D3F5E + b _080D4032 + .align 2, 0 +_080D3F80: .4byte gUnknown_03004DE0 +_080D3F84: .4byte gUnknown_03004DC0 +_080D3F88: + movs r3, 0 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bge _080D3FBC + ldr r6, _080D403C @ =gUnknown_03004DE0 + ldr r5, _080D4040 @ =gUnknown_03004DC0 +_080D3F96: + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldrb r2, [r5, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + adds r3, r6 + ldrh r0, [r4, 0xC] + strh r0, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D3F96 +_080D3FBC: + ldrh r3, [r4, 0x10] + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D3FF0 + ldr r6, _080D403C @ =gUnknown_03004DE0 + ldr r5, _080D4040 @ =gUnknown_03004DC0 +_080D3FCE: + asrs r3, r2, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xA] + strh r0, [r2] + adds r3, 0x1 + lsls r2, r3, 16 + asrs r1, r2, 16 + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _080D3FCE +_080D3FF0: + ldrh r3, [r4, 0x12] + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080D401C + ldr r6, _080D403C @ =gUnknown_03004DE0 + ldr r5, _080D4040 @ =gUnknown_03004DC0 +_080D3FFE: + asrs r3, r1, 16 + lsls r2, r3, 1 + ldrb r1, [r5, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r6 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + lsls r1, r3, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080D3FFE +_080D401C: + movs r0, 0x26 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D4032 + bl remove_some_task + adds r0, r7, 0 + bl DestroyTask +_080D4032: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D403C: .4byte gUnknown_03004DE0 +_080D4040: .4byte gUnknown_03004DC0 + thumb_func_end sub_80D3D68 + + thumb_func_start sub_80D4044 +sub_80D4044: @ 80D4044 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080D4098 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D409C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080D40A0 @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080D408A + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080D408A: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080D40A4 @ =sub_80D40A8 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4098: .4byte 0x000003ff +_080D409C: .4byte 0xfffffc00 +_080D40A0: .4byte 0x000001ff +_080D40A4: .4byte sub_80D40A8 + thumb_func_end sub_80D4044 + + thumb_func_start sub_80D40A8 +sub_80D40A8: @ 80D40A8 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080D40CC + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080D40D0 +_080D40CC: + lsls r0, r3, 16 + asrs r0, 24 +_080D40D0: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D40EE + adds r0, r2, 0 + bl move_anim_8072740 +_080D40EE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D40A8 + + thumb_func_start sub_80D40F4 +sub_80D40F4: @ 80D40F4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D4144 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r2, _080D4148 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x12] + bl sub_80D4394 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldr r0, _080D414C @ =sub_80D4150 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4144: .4byte gTasks +_080D4148: .4byte gSprites +_080D414C: .4byte sub_80D4150 + thumb_func_end sub_80D40F4 + + thumb_func_start sub_80D4150 +sub_80D4150: @ 80D4150 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D4178 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bls _080D416C + b _080D438A +_080D416C: + lsls r0, 2 + ldr r1, _080D417C @ =_080D4180 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D4178: .4byte gTasks +_080D417C: .4byte _080D4180 + .align 2, 0 +_080D4180: + .4byte _080D41A0 + .4byte _080D41C6 + .4byte _080D4258 + .4byte _080D428E + .4byte _080D42A2 + .4byte _080D42B0 + .4byte _080D4330 + .4byte _080D437C +_080D41A0: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_8079C08 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D41C6: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D4222 + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D4210 + ldr r2, _080D420C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x24] + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] + b _080D4222 + .align 2, 0 +_080D420C: .4byte gSprites +_080D4210: + ldr r2, _080D4250 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080D4254 @ =0x0000fffd + strh r1, [r0, 0x24] +_080D4222: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080D4232 + b _080D438A +_080D4232: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + ldr r2, _080D4250 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xE] + b _080D436C + .align 2, 0 +_080D4250: .4byte gSprites +_080D4254: .4byte 0x0000fffd +_080D4258: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080D4268 + b _080D438A +_080D4268: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xE0 + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 + movs r0, 0 + strh r0, [r4, 0xE] + b _080D436E +_080D428E: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080D438A + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080D436E +_080D42A2: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80D4418 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D42B0: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D438A + movs r0, 0 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D42E8 + ldr r2, _080D42E4 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x2 + b _080D42FA + .align 2, 0 +_080D42E4: .4byte gSprites +_080D42E8: + ldr r2, _080D432C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x2 +_080D42FA: + strh r1, [r0, 0x26] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0xA + bne _080D438A + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xE0 + bl sub_8079C08 + movs r0, 0 + strh r0, [r4, 0xE] + strh r0, [r4, 0x10] + b _080D436E + .align 2, 0 +_080D432C: .4byte gSprites +_080D4330: + ldr r6, _080D4378 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D438A + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0x12] + strh r1, [r0, 0x22] +_080D436C: + strh r5, [r4, 0x10] +_080D436E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D438A + .align 2, 0 +_080D4378: .4byte gSprites +_080D437C: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D438A + adds r0, r2, 0 + bl move_anim_task_del +_080D438A: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D4150 + + thumb_func_start sub_80D4394 +sub_80D4394: @ 80D4394 + push {r4,r5,lr} + ldr r4, _080D43B8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D43C8 + ldr r1, _080D43BC @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080D43C0 @ =gPlayerParty + b _080D43D8 + .align 2, 0 +_080D43B8: .4byte gUnknown_0202F7C8 +_080D43BC: .4byte gUnknown_02024A6A +_080D43C0: .4byte gPlayerParty +_080D43C4: + adds r0, r2, 0 + b _080D440A +_080D43C8: + ldr r1, _080D4410 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080D4414 @ =gEnemyParty +_080D43D8: + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + lsrs r4, 18 + movs r2, 0 +_080D43F6: + adds r1, r2, 0x1 + adds r0, r4, 0 + muls r0, r1 + cmp r3, r0 + blt _080D43C4 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080D43F6 + movs r0, 0x3 +_080D440A: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D4410: .4byte gUnknown_02024A6A +_080D4414: .4byte gEnemyParty + thumb_func_end sub_80D4394 + + thumb_func_start sub_80D4418 +sub_80D4418: @ 80D4418 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + ldr r4, _080D4520 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0xAC + ldrb r0, [r4] + bl sub_8079E90 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldrh r1, [r7, 0xA] + movs r0, 0x4 + subs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bgt _080D4468 + movs r1, 0x1 +_080D4468: + movs r0, 0 + str r0, [sp, 0x4] + lsls r0, r1, 16 + mov r10, r8 + mov r9, r6 + mov r1, r10 + lsls r1, 4 + str r1, [sp, 0xC] + mov r1, r9 + lsls r1, 4 + str r1, [sp, 0x10] + asrs r0, 16 + mov r8, r0 +_080D4482: + ldr r0, _080D4524 @ =gSpriteTemplate_83D9378 + mov r1, r10 + mov r2, r9 + ldr r3, [sp, 0x8] + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r6, r5, 16 + cmp r2, 0x40 + beq _080D44EA + ldr r1, _080D4528 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x30] + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r5, 0x32] + mov r0, sp + ldrh r0, [r0, 0x10] + strh r0, [r5, 0x34] + asrs r4, r6, 16 + adds r0, r4, 0 + movs r1, 0x40 + bl Cos + strh r0, [r5, 0x36] + adds r0, r4, 0 + movs r1, 0x40 + bl Sin + strh r0, [r5, 0x38] + mov r1, sp + ldrh r1, [r1] + strh r1, [r5, 0x3A] + movs r0, 0x2 + strh r0, [r5, 0x3C] + ldrh r1, [r7, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D44E4 + adds r0, r5, 0 + bl sub_80D452C +_080D44E4: + ldrh r0, [r7, 0xC] + adds r0, 0x1 + strh r0, [r7, 0xC] +_080D44EA: + mov r1, r8 + lsls r0, r1, 1 + asrs r1, r6, 16 + adds r1, r0 + lsls r1, 16 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r5, r0, 16 + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + asrs r0, 16 + add r0, r8 + lsls r0, 16 + lsrs r1, r0, 16 + str r1, [sp, 0x4] + asrs r0, 16 + cmp r0, 0x13 + ble _080D4482 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D4520: .4byte gUnknown_0202F7C8 +_080D4524: .4byte gSpriteTemplate_83D9378 +_080D4528: .4byte gSprites + thumb_func_end sub_80D4418 + + thumb_func_start sub_80D452C +sub_80D452C: @ 80D452C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D453E + cmp r0, 0x1 + beq _080D4574 + b _080D45CE +_080D453E: + movs r2, 0x30 + ldrsh r0, [r4, r2] + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r0, [r4, 0x36] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 1 + adds r1, r0 + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080D4574: + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r2, r1, 20 + strh r2, [r4, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D45AA + adds r1, r2, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D45AA + cmp r1, 0x78 + ble _080D45CE +_080D45AA: + ldr r3, _080D45D4 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D45CE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D45D4: .4byte gTasks + thumb_func_end sub_80D452C + + thumb_func_start sub_80D45D8 +sub_80D45D8: @ 80D45D8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D4608 @ =gTasks + adds r4, r1, r0 + bl sub_80D4394 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldr r0, _080D460C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D4610 + movs r0, 0x88 + strh r0, [r4, 0x10] + movs r0, 0x28 + b _080D4616 + .align 2, 0 +_080D4608: .4byte gTasks +_080D460C: .4byte gUnknown_0202F7C8 +_080D4610: + movs r0, 0x10 + strh r0, [r4, 0x10] + movs r0, 0x50 +_080D4616: + strh r0, [r4, 0x14] + movs r0, 0x62 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x10] + adds r0, 0x31 + strh r0, [r4, 0x16] + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x5 + strh r0, [r4, 0x20] + ldr r0, _080D4638 @ =sub_80D463C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4638: .4byte sub_80D463C + thumb_func_end sub_80D45D8 + + thumb_func_start sub_80D463C +sub_80D463C: @ 80D463C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r7, _080D4660 @ =gTasks + adds r4, r0, r7 + movs r0, 0x8 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _080D4664 + cmp r2, 0x1 + beq _080D4714 + b _080D4722 + .align 2, 0 +_080D4660: .4byte gTasks +_080D4664: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D467A + strh r2, [r4, 0xC] + adds r0, r4, 0 + bl sub_80D472C +_080D467A: + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D46F4 + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D46F4 + ldr r5, _080D4708 @ =gUnknown_03004B00 + movs r1, 0x1 + mov r8, r1 + mov r2, r8 + strh r2, [r5] + strh r0, [r5, 0x2] + movs r0, 0xC + strh r0, [r5, 0x4] + ldr r6, _080D470C @ =sub_80E1864 + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080D46C4 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080D4710 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080D46C4: + movs r0, 0x3 + strh r0, [r5] + adds r0, r6, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080D46F0 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r7 + ldr r1, [r0] + adds r0, r2, 0 + bl _call_via_r1 + ldr r1, _080D4710 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080D46F0: + mov r0, r8 + strh r0, [r4, 0x22] +_080D46F4: + movs r2, 0x1E + ldrsh r1, [r4, r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _080D4722 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4722 + .align 2, 0 +_080D4708: .4byte gUnknown_03004B00 +_080D470C: .4byte sub_80E1864 +_080D4710: .4byte gUnknown_0202F7B2 +_080D4714: + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D4722 + adds r0, r1, 0 + bl move_anim_task_del +_080D4722: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D463C + + thumb_func_start sub_80D472C +sub_80D472C: @ 80D472C + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080D47B8 @ =gSineTable + movs r2, 0x18 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x3 + asrs r0, 4 + ldrh r2, [r4, 0x14] + adds r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080D47BC @ =gSpriteTemplate_83D9378 + movs r2, 0x16 + ldrsh r1, [r4, r2] + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080D4786 + ldr r3, _080D47C0 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080D47C4 @ =sub_80D47D0 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x38] + strh r6, [r0, 0x3A] + movs r1, 0x9 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] +_080D4786: + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x18] + adds r0, 0x27 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x18] + movs r0, 0x16 + ldrsh r1, [r4, r0] + ldr r0, _080D47C8 @ =0x41c64e6d + muls r0, r1 + ldr r1, _080D47CC @ =0x00003039 + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + ldrh r1, [r4, 0x10] + adds r1, r0 + strh r1, [r4, 0x16] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D47B8: .4byte gSineTable +_080D47BC: .4byte gSpriteTemplate_83D9378 +_080D47C0: .4byte gSprites +_080D47C4: .4byte sub_80D47D0 +_080D47C8: .4byte 0x41c64e6d +_080D47CC: .4byte 0x00003039 + thumb_func_end sub_80D472C + + thumb_func_start sub_80D47D0 +sub_80D47D0: @ 80D47D0 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D4866 + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080D4866 + ldr r2, _080D486C @ =gTasks + movs r3, 0x3A + ldrsh r1, [r5, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x1C] + ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + cmp r0, 0x40 + beq _080D4860 + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080D4874 @ =gSprites + adds r0, r4 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3A] + strh r1, [r0, 0x3A] + movs r3, 0x30 + ldrsh r1, [r5, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r5, 0x3C] + strh r1, [r0, 0x3C] + movs r0, 0x30 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080D4878 @ =sub_80D487C + str r1, [r0] +_080D4860: + adds r0, r5, 0 + bl DestroySprite +_080D4866: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D486C: .4byte gTasks +_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8 +_080D4874: .4byte gSprites +_080D4878: .4byte sub_80D487C + thumb_func_end sub_80D47D0 + + thumb_func_start sub_80D487C +sub_80D487C: @ 80D487C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D48E8 + movs r0, 0 + strh r0, [r4, 0x30] + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080D48E8 + ldr r3, _080D48F0 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D48E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D48F0: .4byte gTasks + thumb_func_end sub_80D487C + + thumb_func_start sub_80D48F4 +sub_80D48F4: @ 80D48F4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D4978 @ =gTasks + adds r5, r1, r0 + ldr r4, _080D497C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D4938 + movs r1, 0x1 +_080D4938: + strh r1, [r5, 0x16] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D494C + movs r1, 0x16 + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x16] +_080D494C: + movs r2, 0x16 + ldrsh r0, [r5, r2] + lsls r0, 3 + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0x12] + movs r2, 0x16 + ldrsh r1, [r5, r2] + lsls r1, 3 + ldrh r0, [r5, 0x10] + subs r0, r1 + strh r0, [r5, 0x14] + ldr r0, _080D4980 @ =0x0000ffe0 + strh r0, [r5, 0x1A] + strh r6, [r5, 0xA] + strh r6, [r5, 0x8] + ldr r0, _080D4984 @ =sub_80D4988 + str r0, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4978: .4byte gTasks +_080D497C: .4byte gUnknown_0202F7C8 +_080D4980: .4byte 0x0000ffe0 +_080D4984: .4byte sub_80D4988 + thumb_func_end sub_80D48F4 + + thumb_func_start sub_80D4988 +sub_80D4988: @ 80D4988 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D49AC @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080D49A2 + b _080D4AC2 +_080D49A2: + lsls r0, 2 + ldr r1, _080D49B0 @ =_080D49B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D49AC: .4byte gTasks +_080D49B0: .4byte _080D49B4 + .align 2, 0 +_080D49B4: + .4byte _080D49D0 + .4byte _080D49E0 + .4byte _080D49FA + .4byte _080D4A3C + .4byte _080D4A5E + .4byte _080D4A8C + .4byte _080D4AB2 +_080D49D0: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D4AC8 + b _080D4ABA +_080D49E0: + adds r0, r4, 0 + bl sub_80D4AD0 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D4AC8 + movs r0, 0 + strh r0, [r4, 0xA] + b _080D4ABA +_080D49FA: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + adds r1, r0 + movs r2, 0 + strh r1, [r4, 0x12] + adds r1, 0x10 + lsls r1, 16 + movs r0, 0x88 + lsls r0, 17 + cmp r1, r0 + bls _080D4AC8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D4A38 + movs r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x6 + strh r0, [r4, 0x8] + strh r2, [r4, 0xA] + b _080D4AC8 +_080D4A38: + strh r2, [r4, 0xA] + b _080D4ABA +_080D4A3C: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D4AC8 + b _080D4ABA +_080D4A5E: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + ldrh r0, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x12] + adds r0, 0x10 + lsls r0, 16 + movs r1, 0x88 + lsls r1, 17 + cmp r0, r1 + bls _080D4AC8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0xA] + b _080D4ABA +_080D4A8C: + adds r0, r4, 0 + bl sub_80D4AD0 + movs r0, 0x16 + ldrsh r1, [r4, r0] + lsls r1, 1 + ldrh r0, [r4, 0x14] + subs r0, r1 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080D4AC8 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080D4AC8 +_080D4AB2: + movs r1, 0x18 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D4AC8 +_080D4ABA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D4AC8 +_080D4AC2: + adds r0, r2, 0 + bl move_anim_task_del +_080D4AC8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4988 + + thumb_func_start sub_80D4AD0 +sub_80D4AD0: @ 80D4AD0 + push {r4-r6,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0xC] + adds r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D4B2A + movs r0, 0 + strh r0, [r6, 0xC] + ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378 + movs r2, 0xE + ldrsh r1, [r6, r2] + movs r3, 0x10 + ldrsh r2, [r6, r3] + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080D4B2A + ldr r5, _080D4B34 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldrh r1, [r6, 0x12] + strh r1, [r0, 0x32] + ldrh r1, [r6, 0x14] + strh r1, [r0, 0x36] + ldrh r1, [r6, 0x1A] + strh r1, [r0, 0x38] + bl sub_80786EC + adds r5, 0x1C + adds r4, r5 + ldr r0, _080D4B38 @ =sub_80D4B3C + str r0, [r4] + ldrh r0, [r6, 0x18] + adds r0, 0x1 + strh r0, [r6, 0x18] +_080D4B2A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4B30: .4byte gSpriteTemplate_83D9378 +_080D4B34: .4byte gSprites +_080D4B38: .4byte sub_80D4B3C + thumb_func_end sub_80D4AD0 + + thumb_func_start sub_80D4B3C +sub_80D4B3C: @ 80D4B3C + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D4B96 + ldrh r0, [r6, 0x24] + ldrh r1, [r6, 0x20] + adds r0, r1 + strh r0, [r6, 0x20] + ldrh r0, [r6, 0x26] + ldrh r1, [r6, 0x22] + adds r0, r1 + strh r0, [r6, 0x22] + movs r0, 0x6 + strh r0, [r6, 0x2E] + bl Random + movs r4, 0x1F + adds r1, r4, 0 + ands r1, r0 + ldr r5, _080D4B9C @ =0x0000fff0 + adds r1, r5 + ldrh r0, [r6, 0x20] + adds r1, r0 + strh r1, [r6, 0x32] + bl Random + ands r4, r0 + adds r4, r5 + ldrh r1, [r6, 0x22] + adds r4, r1 + strh r4, [r6, 0x36] + bl Random + movs r1, 0x7 + ands r1, r0 + mvns r1, r1 + strh r1, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080D4BA0 @ =sub_80D4BA4 + str r0, [r6, 0x1C] +_080D4B96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4B9C: .4byte 0x0000fff0 +_080D4BA0: .4byte sub_80D4BA4 + thumb_func_end sub_80D4B3C + + thumb_func_start sub_80D4BA4 +sub_80D4BA4: @ 80D4BA4 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D4BE0 + movs r4, 0 + ldr r6, _080D4BE8 @ =gTasks +_080D4BB6: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 + ldr r1, [r2] + ldr r0, _080D4BEC @ =sub_80D4988 + cmp r1, r0 + bne _080D4BD6 + movs r0, 0x1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0x18] + subs r0, 0x1 + strh r0, [r2, 0x18] + adds r0, r5, 0 + bl DestroySprite +_080D4BD6: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080D4BB6 +_080D4BE0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D4BE8: .4byte gTasks +_080D4BEC: .4byte sub_80D4988 + thumb_func_end sub_80D4BA4 + + thumb_func_start sub_80D4BF0 +sub_80D4BF0: @ 80D4BF0 + ldr r2, _080D4C10 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0x2E] + ldrh r1, [r2, 0x6] + strh r1, [r0, 0x30] + ldrh r1, [r2, 0x8] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0xA] + strh r1, [r0, 0x34] + ldr r1, _080D4C14 @ =sub_80D4C18 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D4C10: .4byte gUnknown_03004B00 +_080D4C14: .4byte sub_80D4C18 + thumb_func_end sub_80D4BF0 + + thumb_func_start sub_80D4C18 +sub_80D4C18: @ 80D4C18 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080D4C5C + adds r0, r4, 0 + bl move_anim_8072740 +_080D4C5C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4C18 + + thumb_func_start sub_80D4C64 +sub_80D4C64: @ 80D4C64 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 23 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 23 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080D4C9C + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D4C9C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D4C64 + + thumb_func_start sub_80D4CA4 +sub_80D4CA4: @ 80D4CA4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080D4CE0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r1, _080D4CE4 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldr r0, _080D4CE8 @ =sub_80D4CEC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4CE0: .4byte gUnknown_0202F7C9 +_080D4CE4: .4byte gUnknown_03004B00 +_080D4CE8: .4byte sub_80D4CEC + thumb_func_end sub_80D4CA4 + + thumb_func_start sub_80D4CEC +sub_80D4CEC: @ 80D4CEC + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r6, r1, r0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x22 + ldrsh r0, [r4, r2] + subs r5, r1, r0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r6 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + muls r0, r5 + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080D4D44 + movs r0, 0 + strh r0, [r4, 0x38] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80D4D64 +_080D4D44: + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080D4D56 + adds r0, r4, 0 + bl move_anim_8072740 +_080D4D56: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D4CEC + + thumb_func_start sub_80D4D64 +sub_80D4D64: @ 80D4D64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r4, r1, 0 + adds r5, r2, 0 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + lsls r1, 15 + lsrs r1, 16 + str r1, [sp] + ldrh r1, [r0, 0x24] + ldrh r3, [r0, 0x20] + adds r1, r3 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r0, r5, r0 + subs r0, 0x5 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + bl Random + negs r4, r4 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + adds r4, r0 + subs r4, 0x5 + lsls r4, 16 + lsrs r7, r4, 16 + movs r6, 0 + mov r0, r8 + lsls r0, 16 + mov r8, r0 + mov r1, r10 + lsls r1, 16 + str r1, [sp, 0xC] + ldr r2, [sp] + lsls r2, 16 + str r2, [sp, 0x10] + asrs r1, 16 + lsls r0, r7, 16 + asrs r5, r0, 16 + str r0, [sp, 0x14] + negs r3, r5 + str r3, [sp, 0x4] + asrs r0, r2, 16 + adds r1, r0 + lsls r1, 16 + mov r10, r1 +_080D4DF2: + ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080D4E38 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080D4E3C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + bge _080D4E40 + mov r1, sp + ldrh r1, [r1, 0x4] + strh r1, [r4, 0x32] + b _080D4E42 + .align 2, 0 +_080D4E34: .4byte gSpriteTemplate_83D9420 +_080D4E38: .4byte gSprites +_080D4E3C: .4byte gUnknown_0202F7C8 +_080D4E40: + strh r7, [r4, 0x32] +_080D4E42: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080D4DF2 + movs r6, 0 + ldr r3, [sp, 0xC] + asrs r1, r3, 16 + ldr r0, [sp, 0x14] + asrs r5, r0, 16 + negs r2, r5 + str r2, [sp, 0x8] + ldr r3, [sp, 0x10] + asrs r0, r3, 16 + subs r1, r0 + lsls r1, 16 + mov r10, r1 +_080D4E68: + ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420 + mov r2, r8 + asrs r1, r2, 16 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0x82 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080D4EB0 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + movs r0, 0x14 + strh r0, [r4, 0x2E] + mov r0, r9 + strh r0, [r4, 0x30] + ldr r0, _080D4EB4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079E90 + subs r0, 0x1 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + cmp r5, 0 + ble _080D4EB8 + mov r1, sp + ldrh r1, [r1, 0x8] + strh r1, [r4, 0x32] + b _080D4EBA + .align 2, 0 +_080D4EAC: .4byte gSpriteTemplate_83D9420 +_080D4EB0: .4byte gSprites +_080D4EB4: .4byte gUnknown_0202F7C8 +_080D4EB8: + strh r7, [r4, 0x32] +_080D4EBA: + lsls r0, r6, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r6, r0, 16 + cmp r0, 0 + ble _080D4E68 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D4D64 + + thumb_func_start sub_80D4ED8 +sub_80D4ED8: @ 80D4ED8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D4F0C @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080D4F10 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080D4F14 @ =sub_8078174 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4F0C: .4byte gUnknown_03004B00 +_080D4F10: .4byte move_anim_8072740 +_080D4F14: .4byte sub_8078174 + thumb_func_end sub_80D4ED8 + + thumb_func_start sub_80D4F18 +sub_80D4F18: @ 80D4F18 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D4F50 @ =gUnknown_03004B00 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x32] + ldr r0, _080D4F54 @ =sub_8078394 + str r0, [r4, 0x1C] + ldr r1, _080D4F58 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D4F50: .4byte gUnknown_03004B00 +_080D4F54: .4byte sub_8078394 +_080D4F58: .4byte move_anim_8072740 + thumb_func_end sub_80D4F18 + + thumb_func_start sub_80D4F5C +sub_80D4F5C: @ 80D4F5C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080D4F90 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D4F98 + ldr r2, _080D4F94 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080D4FAE + .align 2, 0 +_080D4F90: .4byte gUnknown_0202F7C8 +_080D4F94: .4byte gUnknown_03004B00 +_080D4F98: + ldr r1, _080D4FC4 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] +_080D4FAE: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080D4FC8 @ =sub_80D5038 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D4FC4: .4byte gUnknown_03004B00 +_080D4FC8: .4byte sub_80D5038 + thumb_func_end sub_80D4F5C + + thumb_func_start sub_80D4FCC +sub_80D4FCC: @ 80D4FCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D4FF8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5000 + ldr r2, _080D4FFC @ =gUnknown_03004B00 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + adds r1, r2, 0 + b _080D5018 + .align 2, 0 +_080D4FF8: .4byte gUnknown_0202F7C8 +_080D4FFC: .4byte gUnknown_03004B00 +_080D5000: + ldr r1, _080D5030 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x8] + negs r0, r0 + strh r0, [r4, 0x32] +_080D5018: + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x36] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080D5034 @ =sub_80D5038 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5030: .4byte gUnknown_03004B00 +_080D5034: .4byte sub_80D5038 + thumb_func_end sub_80D4FCC + + thumb_func_start sub_80D5038 +sub_80D5038: @ 80D5038 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x36 + ldrsh r1, [r2, r3] + cmp r0, r1 + bge _080D505E + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x26] + adds r0, r3 + strh r0, [r2, 0x26] +_080D505E: + movs r0, 0x2E + ldrsh r1, [r2, r0] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080D5070 + adds r0, r2, 0 + bl move_anim_8074EE0 +_080D5070: + pop {r0} + bx r0 + thumb_func_end sub_80D5038 + + thumb_func_start sub_80D5074 +sub_80D5074: @ 80D5074 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _080D5098 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D50A0 + ldr r0, _080D509C @ =gUnknown_03004B00 + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080D50B2 + .align 2, 0 +_080D5098: .4byte gUnknown_0202F7C8 +_080D509C: .4byte gUnknown_03004B00 +_080D50A0: + ldr r0, _080D50E0 @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + adds r2, r4, 0 + adds r2, 0x43 + movs r1, 0x8 + strb r1, [r2] +_080D50B2: + adds r2, r0, 0 + ldrh r0, [r2, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x22] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r2, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r2, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r2, 0xA] + strh r0, [r4, 0x34] + ldrh r0, [r2, 0xC] + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldr r0, _080D50E4 @ =sub_80D50E8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D50E0: .4byte gUnknown_03004B00 +_080D50E4: .4byte sub_80D50E8 + thumb_func_end sub_80D5074 + + thumb_func_start sub_80D50E8 +sub_80D50E8: @ 80D50E8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D5170 + movs r2, 0x38 + ldrsh r1, [r4, r2] + ldr r0, _080D5154 @ =0x00002710 + cmp r1, r0 + ble _080D5106 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] +_080D5106: + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D515C + ldr r2, _080D5158 @ =0xffffff00 + b _080D5164 + .align 2, 0 +_080D5154: .4byte 0x00002710 +_080D5158: .4byte 0xffffff00 +_080D515C: + cmp r0, 0 + bge _080D5168 + movs r2, 0x80 + lsls r2, 1 +_080D5164: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080D5168: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080D5176 +_080D5170: + adds r0, r4, 0 + bl move_anim_8074EE0 +_080D5176: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D50E8 + + thumb_func_start sub_80D517C +sub_80D517C: @ 80D517C + push {lr} + movs r1, 0 + strh r1, [r0, 0x20] + strh r1, [r0, 0x22] + movs r1, 0x3C + strh r1, [r0, 0x2E] + movs r1, 0x8C + strh r1, [r0, 0x32] + movs r1, 0x50 + strh r1, [r0, 0x36] + ldr r1, _080D51A0 @ =sub_8078B34 + str r1, [r0, 0x1C] + ldr r1, _080D51A4 @ =move_anim_8072740 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D51A0: .4byte sub_8078B34 +_080D51A4: .4byte move_anim_8072740 + thumb_func_end sub_80D517C + + thumb_func_start sub_80D51A8 +sub_80D51A8: @ 80D51A8 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080D5200 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080D5204 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080D51EE + movs r0, 0x2 + bl battle_get_side_with_given_state + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _080D51E6 + movs r0, 0x3 + bl battle_get_side_with_given_state + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080D51EE +_080D51E6: + ldr r1, _080D5208 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D51EE: + ldr r1, _080D520C @ =sub_8079534 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D5200: .4byte gUnknown_0202F7C8 +_080D5204: .4byte gUnknown_0202F7C9 +_080D5208: .4byte gUnknown_03004B00 +_080D520C: .4byte sub_8079534 + thumb_func_end sub_80D51A8 + + thumb_func_start sub_80D5210 +sub_80D5210: @ 80D5210 + ldr r2, _080D5224 @ =gUnknown_03004B00 + ldrh r1, [r2] + negs r1, r1 + strh r1, [r2] + ldrh r1, [r2, 0x4] + negs r1, r1 + strh r1, [r2, 0x4] + ldr r1, _080D5228 @ =sub_8079534 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080D5224: .4byte gUnknown_03004B00 +_080D5228: .4byte sub_8079534 + thumb_func_end sub_80D5210 + + thumb_func_start sub_80D522C +sub_80D522C: @ 80D522C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D524C @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x2E] + ldr r0, _080D5250 @ =sub_80D5254 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D524C: .4byte gUnknown_03004B00 +_080D5250: .4byte sub_80D5254 + thumb_func_end sub_80D522C + + thumb_func_start sub_80D5254 +sub_80D5254: @ 80D5254 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D5348 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x12 + bne _080D529E + movs r0, 0x19 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080D52A4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D52A8 @ =sub_80D52AC + str r0, [r5, 0x1C] +_080D529E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D52A4: .4byte gUnknown_0202F7C9 +_080D52A8: .4byte sub_80D52AC + thumb_func_end sub_80D5254 + + thumb_func_start sub_80D52AC +sub_80D52AC: @ 80D52AC + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D52F4 + movs r4, 0 + strh r4, [r6, 0x2E] + ldr r5, _080D52EC @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r4, [r6, 0x26] + strh r4, [r6, 0x24] + ldr r1, _080D52F0 @ =sub_80D5324 + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + b _080D531E + .align 2, 0 +_080D52EC: .4byte gUnknown_0202F7C9 +_080D52F0: .4byte sub_80D5324 +_080D52F4: + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Sin + ldrh r1, [r6, 0x24] + adds r0, r1 + strh r0, [r6, 0x24] + movs r1, 0x3C + ldrsh r0, [r6, r1] + movs r1, 0x1C + bl Cos + ldrh r1, [r6, 0x26] + adds r0, r1 + strh r0, [r6, 0x26] + ldrh r0, [r6, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6, 0x3C] +_080D531E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D52AC + + thumb_func_start sub_80D5324 +sub_80D5324: @ 80D5324 + push {r4,lr} + adds r4, r0, 0 + bl sub_80D5348 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080D5340 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5340: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5324 + + thumb_func_start sub_80D5348 +sub_80D5348: @ 80D5348 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x1C + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x14 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5348 + + thumb_func_start sub_80D5374 +sub_80D5374: @ 80D5374 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080D53A8 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldr r1, _080D53AC @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D53B0 @ =sub_8078364 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D53A8: .4byte gUnknown_03004B00 +_080D53AC: .4byte move_anim_8072740 +_080D53B0: .4byte sub_8078364 + thumb_func_end sub_80D5374 + + thumb_func_start sub_80D53B4 +sub_80D53B4: @ 80D53B4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080D53E8 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080D53EC @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080D53F0 @ =sub_80D53F4 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D53E8: .4byte gUnknown_03004B00 +_080D53EC: .4byte sub_80782D8 +_080D53F0: .4byte sub_80D53F4 + thumb_func_end sub_80D53B4 + + thumb_func_start sub_80D53F4 +sub_80D53F4: @ 80D53F4 + push {lr} + adds r3, r0, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3] + ldrh r1, [r0, 0x30] + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + ldr r1, _080D5418 @ =sub_80D541C + str r1, [r0, 0x1C] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080D5418: .4byte sub_80D541C + thumb_func_end sub_80D53F4 + + thumb_func_start sub_80D541C +sub_80D541C: @ 80D541C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + adds r0, 0xD0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D5468 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5468: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D541C + + thumb_func_start sub_80D5470 +sub_80D5470: @ 80D5470 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080D54D0 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + ldr r2, _080D54D4 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x10] + ldr r0, _080D54D8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + strh r5, [r4, 0x14] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8078E70 + ldr r0, _080D54DC @ =sub_80D54E0 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D54D0: .4byte gTasks +_080D54D4: .4byte gSprites +_080D54D8: .4byte gUnknown_0202F7C8 +_080D54DC: .4byte sub_80D54E0 + thumb_func_end sub_80D5470 + + thumb_func_start sub_80D54E0 +sub_80D54E0: @ 80D54E0 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080D5508 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bls _080D54FC + b _080D57BA +_080D54FC: + lsls r0, 2 + ldr r1, _080D550C @ =_080D5510 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D5508: .4byte gTasks +_080D550C: .4byte _080D5510 + .align 2, 0 +_080D5510: + .4byte _080D552C + .4byte _080D5552 + .4byte _080D5604 + .4byte _080D5664 + .4byte _080D5682 + .4byte _080D5758 + .4byte _080D57AC +_080D552C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0xE0 + str r0, [sp] + movs r0, 0x80 + lsls r0, 2 + str r0, [sp, 0x4] + movs r0, 0x20 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r2, r3, 0 + bl sub_8079C08 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D5552: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D559A + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5588 + ldr r2, _080D5584 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + b _080D5598 + .align 2, 0 +_080D5584: .4byte gSprites +_080D5588: + ldr r2, _080D55FC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _080D5600 @ =0x0000fffd +_080D5598: + strh r1, [r0, 0x24] +_080D559A: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D55C8 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D55C8 + movs r0, 0 + strh r0, [r4, 0xE] + ldr r2, _080D55FC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x1 + strh r1, [r0, 0x22] +_080D55C8: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080D55D8 + b _080D57BA +_080D55D8: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + ldr r2, _080D55FC @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r5, [r0, 0x24] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + b _080D57A0 + .align 2, 0 +_080D55FC: .4byte gSprites +_080D5600: .4byte 0x0000fffd +_080D5604: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080D5614 + b _080D57BA +_080D5614: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D563E + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xF0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 + b _080D565E +_080D563E: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r3, 0x80 + lsls r3, 2 + movs r0, 0xC0 + lsls r0, 1 + str r0, [sp] + movs r0, 0xC0 + str r0, [sp, 0x4] + movs r0, 0x6 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r2, 0xE0 + bl sub_8079C08 +_080D565E: + movs r0, 0 + strh r0, [r4, 0xA] + b _080D57A0 +_080D5664: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + cmp r0, 0 + beq _080D5672 + b _080D57BA +_080D5672: + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_80D57C4 + b _080D57A0 +_080D5682: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D56D0 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D56BC + ldr r2, _080D56B8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + adds r1, 0x3 + b _080D56CE + .align 2, 0 +_080D56B8: .4byte gSprites +_080D56BC: + ldr r2, _080D5708 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 +_080D56CE: + strh r1, [r0, 0x26] +_080D56D0: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _080D57BA + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D570C + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xF0 + bl sub_8079C08 + b _080D572A + .align 2, 0 +_080D5708: .4byte gSprites +_080D570C: + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xC0 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x8 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r3, 0xC0 + bl sub_8079C08 +_080D572A: + ldrh r1, [r4, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5748 + ldr r2, _080D5754 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x3 + strh r1, [r0, 0x26] +_080D5748: + movs r0, 0 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + strh r0, [r4, 0xE] + b _080D57A0 + .align 2, 0 +_080D5754: .4byte gSprites +_080D5758: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D5774 + ldr r2, _080D57A8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_080D5774: + adds r0, r4, 0 + bl sub_8079C74 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080D57BA + ldr r2, _080D57A8 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x10] + strh r1, [r0, 0x22] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + strh r5, [r4, 0xC] +_080D57A0: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D57BA + .align 2, 0 +_080D57A8: .4byte gSprites +_080D57AC: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D57BA + adds r0, r5, 0 + bl move_anim_task_del +_080D57BA: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D54E0 + + thumb_func_start sub_80D57C4 +sub_80D57C4: @ 80D57C4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + adds r0, r4, 0 + bl sub_80D5940 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r1, _080D5814 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x20] + ldr r0, _080D5818 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D581C + adds r0, r4, 0 + subs r0, 0xC + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + b _080D5826 + .align 2, 0 +_080D5814: .4byte gSprites +_080D5818: .4byte gUnknown_0202F7C8 +_080D581C: + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0xFF +_080D5826: + movs r6, 0 + movs r5, 0 + lsls r4, 16 + str r4, [sp, 0x8] + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x4] + ldr r2, _080D58E0 @ =gUnknown_083D96DC + mov r9, r2 + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + mov r3, r8 + lsls r3, 1 + mov r10, r3 +_080D5844: + ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4 + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + ldr r3, [sp, 0x4] + asrs r2, r3, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D58C6 + ldr r1, _080D58E8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0, r1 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + lsls r0, r5, 2 + adds r0, 0x40 + adds r1, r0 + ldr r3, _080D58EC @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r3, _080D58F0 @ =0xfffffc00 + adds r0, r3, 0 + ands r2, r0 + orrs r2, r1 + strh r2, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080D588E + movs r5, 0 +_080D588E: + lsls r2, r6, 2 + mov r1, r9 + adds r0, r2, r1 + ldrh r0, [r0] + ldr r3, [sp] + adds r1, r0, 0 + muls r1, r3 + lsls r1, 16 + asrs r1, 16 + ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2 + adds r2, r0 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r0, r4, 0 + bl sub_80D5994 + strh r7, [r4, 0x3A] + mov r0, r8 + strh r0, [r4, 0x3C] + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + add r0, r10 + ldr r1, _080D58F8 @ =gTasks + 0x8 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] +_080D58C6: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x6 + bls _080D5844 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D58E0: .4byte gUnknown_083D96DC +_080D58E4: .4byte gSpriteTemplate_83D96C4 +_080D58E8: .4byte gSprites +_080D58EC: .4byte 0x000003ff +_080D58F0: .4byte 0xfffffc00 +_080D58F4: .4byte gUnknown_083D96DC + 0x2 +_080D58F8: .4byte gTasks + 0x8 + thumb_func_end sub_80D57C4 + + thumb_func_start sub_80D58FC +sub_80D58FC: @ 80D58FC + push {r4,lr} + adds r4, r0, 0 + bl sub_80D59B0 + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080D5936 + ldr r3, _080D593C @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D5936: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D593C: .4byte gTasks + thumb_func_end sub_80D58FC + + thumb_func_start sub_80D5940 +sub_80D5940: @ 80D5940 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D5978 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x26] + ldrh r0, [r1, 0x22] + adds r2, r0 + adds r1, 0x29 + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080D597C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D5980 + lsls r0, r4, 16 + movs r1, 0x94 + lsls r1, 15 + b _080D5986 + .align 2, 0 +_080D5978: .4byte gSprites +_080D597C: .4byte gUnknown_0202F7C8 +_080D5980: + lsls r0, r4, 16 + movs r1, 0xB0 + lsls r1, 14 +_080D5986: + adds r0, r1 + lsrs r4, r0, 16 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D5940 + + thumb_func_start sub_80D5994 +sub_80D5994: @ 80D5994 + movs r3, 0 + strh r3, [r0, 0x2E] + strh r3, [r0, 0x30] + ldrh r3, [r0, 0x20] + lsls r3, 3 + strh r3, [r0, 0x32] + ldrh r3, [r0, 0x22] + lsls r3, 3 + strh r3, [r0, 0x34] + lsls r1, 3 + strh r1, [r0, 0x36] + lsls r2, 3 + strh r2, [r0, 0x38] + bx lr + thumb_func_end sub_80D5994 + + thumb_func_start sub_80D59B0 +sub_80D59B0: @ 80D59B0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D59DA + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r3, [r2, 0x34] + adds r0, r3 + strh r0, [r2, 0x34] +_080D59DA: + ldrh r0, [r2, 0x36] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 19 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r1, 16 + asrs r3, r1, 19 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D5A10 + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D5A10 + cmp r1, 0x78 + ble _080D5A1C +_080D5A10: + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080D5A1C: + pop {r0} + bx r0 + thumb_func_end sub_80D59B0 + + thumb_func_start sub_80D5A20 +sub_80D5A20: @ 80D5A20 + push {r4,r5,lr} + ldr r3, _080D5A64 @ =gUnknown_03004B00 + ldrh r1, [r3] + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r3, 0x2] + strh r1, [r0, 0x22] + strh r2, [r0, 0x2E] + strh r2, [r0, 0x30] + strh r2, [r0, 0x32] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0x3A] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x3C] + ldrh r4, [r0, 0x4] + lsls r2, r4, 22 + lsrs r2, 22 + movs r5, 0x8 + ldrsh r1, [r3, r5] + lsls r1, 4 + adds r2, r1 + ldr r3, _080D5A68 @ =0x000003ff + adds r1, r3, 0 + ands r2, r1 + ldr r1, _080D5A6C @ =0xfffffc00 + ands r1, r4 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r1, _080D5A70 @ =sub_80D5A74 + str r1, [r0, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5A64: .4byte gUnknown_03004B00 +_080D5A68: .4byte 0x000003ff +_080D5A6C: .4byte 0xfffffc00 +_080D5A70: .4byte sub_80D5A74 + thumb_func_end sub_80D5A20 + + thumb_func_start sub_80D5A74 +sub_80D5A74: @ 80D5A74 + push {r4,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080D5AA6 + cmp r0, 0x1 + bgt _080D5A8A + cmp r0, 0 + beq _080D5A90 + b _080D5B04 +_080D5A8A: + cmp r0, 0x2 + beq _080D5AC4 + b _080D5B04 +_080D5A90: + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080D5AA0 + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] + b _080D5B04 +_080D5AA0: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080D5AA6: + ldrh r0, [r2, 0x22] + adds r0, 0x8 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x3C] + movs r4, 0x3C + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080D5B04 + strh r3, [r2, 0x22] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _080D5B04 +_080D5AC4: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5AF0 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5AEC + ldr r0, _080D5AE8 @ =0x0000fffd + b _080D5AEE + .align 2, 0 +_080D5AE8: .4byte 0x0000fffd +_080D5AEC: + movs r0, 0x3 +_080D5AEE: + strh r0, [r2, 0x26] +_080D5AF0: + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D5B04 + adds r0, r2, 0 + bl move_anim_8072740 +_080D5B04: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5A74 + + thumb_func_start sub_80D5B0C +sub_80D5B0C: @ 80D5B0C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D5B80 + cmp r0, 0x1 + bgt _080D5B22 + cmp r0, 0 + beq _080D5B28 + b _080D5C4E +_080D5B22: + cmp r0, 0x2 + beq _080D5BDE + b _080D5C4E +_080D5B28: + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + ldr r4, _080D5B50 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x3C] + ldr r0, _080D5B54 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5B58 + movs r0, 0x4 + b _080D5B5A + .align 2, 0 +_080D5B50: .4byte gUnknown_03004B00 +_080D5B54: .4byte gUnknown_0202F7C8 +_080D5B58: + ldr r0, _080D5B78 @ =0x0000fffc +_080D5B5A: + strh r0, [r5, 0x36] + ldr r0, _080D5B7C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080D5BD6 + .align 2, 0 +_080D5B78: .4byte 0x0000fffc +_080D5B7C: .4byte gUnknown_0202F7C9 +_080D5B80: + ldrh r0, [r5, 0x30] + adds r0, 0xC0 + strh r0, [r5, 0x30] + ldr r0, _080D5BA0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D5BA4 + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + b _080D5BAA + .align 2, 0 +_080D5BA0: .4byte gUnknown_0202F7C8 +_080D5BA4: + ldrh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 24 +_080D5BAA: + strh r0, [r5, 0x26] + movs r2, 0x32 + ldrsh r0, [r5, r2] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080D5C4E + movs r0, 0 + strh r0, [r5, 0x34] +_080D5BD6: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080D5C4E +_080D5BDE: + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x36 + ldrsh r1, [r5, r2] + bl Sin + adds r2, r0, 0 + movs r3, 0 + strh r2, [r5, 0x24] + ldrh r0, [r5, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080D5C4E + ldrh r0, [r5, 0x20] + adds r1, r2, r0 + strh r1, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r3, [r5, 0x26] + strh r3, [r5, 0x24] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x2E] + strh r1, [r5, 0x30] + ldr r4, _080D5C54 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078BD4 + ldr r0, _080D5C58 @ =sub_80D5C5C + str r0, [r5, 0x1C] +_080D5C4E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D5C54: .4byte gUnknown_0202F7C9 +_080D5C58: .4byte sub_80D5C5C + thumb_func_end sub_80D5B0C + + thumb_func_start sub_80D5C5C +sub_80D5C5C: @ 80D5C5C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D5CB4 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0x10 + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080D5C92 + cmp r2, 0xC4 + ble _080D5CBA +_080D5C92: + lsls r0, 16 + cmp r0, 0 + ble _080D5CBA + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D5CBA + ldr r0, _080D5CB0 @ =gUnknown_0202F7D2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x90 + bl PlaySE12WithPanning + b _080D5CBA + .align 2, 0 +_080D5CB0: .4byte gUnknown_0202F7D2 +_080D5CB4: + adds r0, r4, 0 + bl move_anim_8072740 +_080D5CBA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5C5C + + thumb_func_start sub_80D5CC0 +sub_80D5CC0: @ 80D5CC0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D5CD8 + ldr r0, _080D5D4C @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r4, 0x30] + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] +_080D5CD8: + movs r0, 0xC0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r4, 0x34] + adds r1, r2 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r0, 0xA0 + strh r0, [r4, 0x36] + movs r2, 0x30 + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 24 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x36] + lsls r1, 16 + asrs r1, 24 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r2, r0, 0x7 + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x30] + ldr r0, _080D5D50 @ =gMain + ldr r1, _080D5D54 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D5D84 + adds r0, r2, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080D5D5C + ldr r0, _080D5D58 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080D5DA0 + .align 2, 0 +_080D5D4C: .4byte gUnknown_03004B00 +_080D5D50: .4byte gMain +_080D5D54: .4byte 0x0000043d +_080D5D58: .4byte gUnknown_0202F7C9 +_080D5D5C: + ldr r0, _080D5D80 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080D5DA0 + .align 2, 0 +_080D5D80: .4byte gUnknown_0202F7C9 +_080D5D84: + adds r0, r2, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x83 + bls _080D5D98 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080D5D9E +_080D5D98: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080D5D9E: + strb r0, [r1] +_080D5DA0: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080D5DC8 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D5DC8: + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x1E + bne _080D5DD6 + adds r0, r4, 0 + bl move_anim_8072740 +_080D5DD6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D5CC0 + + thumb_func_start sub_80D5DDC +sub_80D5DDC: @ 80D5DDC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D5E3C @ =gTasks + adds r4, r1, r0 + ldr r0, _080D5E40 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D5E02 + movs r1, 0x1 +_080D5E02: + strh r1, [r4, 0x20] + ldr r0, _080D5E44 @ =gUnknown_0202F7C9 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r0, 0x3 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldr r0, _080D5E48 @ =sub_80D5E4C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D5E3C: .4byte gTasks +_080D5E40: .4byte gUnknown_0202F7C8 +_080D5E44: .4byte gUnknown_0202F7C9 +_080D5E48: .4byte sub_80D5E4C + thumb_func_end sub_80D5DDC + + thumb_func_start sub_80D5E4C +sub_80D5E4C: @ 80D5E4C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D5E70 @ =gTasks + adds r2, r0, r1 + movs r0, 0x8 + ldrsh r3, [r2, r0] + cmp r3, 0x1 + beq _080D5F14 + cmp r3, 0x1 + bgt _080D5E74 + cmp r3, 0 + beq _080D5E82 + b _080D6074 + .align 2, 0 +_080D5E70: .4byte gTasks +_080D5E74: + cmp r3, 0x2 + bne _080D5E7A + b _080D5F9C +_080D5E7A: + cmp r3, 0x3 + bne _080D5E80 + b _080D6030 +_080D5E80: + b _080D6074 +_080D5E82: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 1 + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5EB4 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5EB0 + movs r0, 0x2 + b _080D5EB2 +_080D5EB0: + ldr r0, _080D5F0C @ =0x0000fffe +_080D5EB2: + strh r0, [r2, 0x1E] +_080D5EB4: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080D5EF6 + ldr r4, _080D5F10 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080D5EC6: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080D5EC6 +_080D5EF6: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + beq _080D5F06 + b _080D6074 +_080D5F06: + movs r0, 0 + strh r0, [r2, 0x1A] + b _080D6020 + .align 2, 0 +_080D5F0C: .4byte 0x0000fffe +_080D5F10: .4byte gSprites +_080D5F14: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D5F3C + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ands r0, r3 + lsls r0, 16 + cmp r0, 0 + beq _080D5F38 + movs r0, 0x2 + b _080D5F3A +_080D5F38: + ldr r0, _080D5F94 @ =0x0000fffe +_080D5F3A: + strh r0, [r2, 0x1E] +_080D5F3C: + movs r1, 0 + strh r1, [r2, 0xE] + movs r7, 0x22 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080D5F7E + ldr r4, _080D5F98 @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080D5F4E: + movs r1, 0xE + ldrsh r0, [r2, r1] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r7, [r2, 0x1C] + adds r0, r7 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r5, 0x22 + ldrsh r1, [r2, r5] + cmp r0, r1 + blt _080D5F4E +_080D5F7E: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x60 + bne _080D6074 + movs r0, 0 + strh r0, [r2, 0x1A] + b _080D6020 + .align 2, 0 +_080D5F94: .4byte 0x0000fffe +_080D5F98: .4byte gSprites +_080D5F9C: + movs r7, 0x20 + ldrsh r1, [r2, r7] + lsls r1, 1 + ldrh r0, [r2, 0x1C] + subs r0, r1 + strh r0, [r2, 0x1C] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D5FD0 + movs r0, 0 + strh r0, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D5FCC + strh r3, [r2, 0x1E] + b _080D5FD0 +_080D5FCC: + ldr r0, _080D6028 @ =0x0000fffe + strh r0, [r2, 0x1E] +_080D5FD0: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D6012 + ldr r4, _080D602C @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 +_080D5FE2: + movs r5, 0xE + ldrsh r0, [r2, r5] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r2, 0x1E] + ldrh r5, [r2, 0x1C] + adds r0, r5 + strh r0, [r1, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080D5FE2 +_080D6012: + ldrh r0, [r2, 0x1A] + adds r0, 0x1 + strh r0, [r2, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080D6074 +_080D6020: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080D6074 + .align 2, 0 +_080D6028: .4byte 0x0000fffe +_080D602C: .4byte gSprites +_080D6030: + movs r1, 0 + strh r1, [r2, 0xE] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _080D606E + ldr r6, _080D607C @ =gSprites + adds r3, r2, 0 + adds r3, 0x8 + movs r5, 0 +_080D6044: + movs r7, 0xE + ldrsh r0, [r2, r7] + adds r0, 0xE + lsls r0, 1 + adds r0, r3, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x24] + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + lsls r0, 16 + asrs r0, 16 + movs r7, 0x22 + ldrsh r1, [r2, r7] + cmp r0, r1 + blt _080D6044 +_080D606E: + adds r0, r4, 0 + bl move_anim_task_del +_080D6074: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D607C: .4byte gSprites + thumb_func_end sub_80D5E4C + + thumb_func_start sub_80D6080 +sub_80D6080: @ 80D6080 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, sp + bl sub_8078914 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 4 + ldr r1, _080D60B0 @ =gUnknown_03004B00 + ldrb r2, [r1] + ldrh r3, [r1, 0x2] + movs r1, 0x10 + bl BlendPalette + adds r0, r4, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D60B0: .4byte gUnknown_03004B00 + thumb_func_end sub_80D6080 + + thumb_func_start sub_80D60B4 +sub_80D60B4: @ 80D60B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080D610C @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r9, r1 + ldr r4, _080D6110 @ =gUnknown_03004B00 + mov r8, r4 + cmp r0, 0 + bne _080D60EA + ldrh r0, [r4] + strh r0, [r2, 0xA] + ldrh r0, [r4, 0x2] + strh r0, [r2, 0xC] + ldrh r0, [r4, 0x4] + strh r0, [r2, 0xE] + ldrh r0, [r4, 0x6] + strh r0, [r2, 0x10] +_080D60EA: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _080D6114 @ =gUnknown_02024BE0 + ldr r0, _080D6118 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + movs r5, 0x10 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080D6120 + ldr r4, _080D611C @ =gUnknown_083D9794 + movs r1, 0x8 + ldrsh r0, [r2, r1] + b _080D6126 + .align 2, 0 +_080D610C: .4byte gTasks +_080D6110: .4byte gUnknown_03004B00 +_080D6114: .4byte gUnknown_02024BE0 +_080D6118: .4byte gUnknown_0202F7C9 +_080D611C: .4byte gUnknown_083D9794 +_080D6120: + ldr r4, _080D616C @ =gUnknown_083D97A4 + movs r3, 0x8 + ldrsh r0, [r2, r3] +_080D6126: + movs r1, 0xA + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r0, r4 + ldrb r5, [r0] + lsls r0, r7, 2 + adds r1, r0, r7 + lsls r1, 3 + add r1, r9 + movs r4, 0xE + ldrsh r1, [r1, r4] + mov r12, r0 + cmp r1, 0x1 + bne _080D6174 + ldr r2, _080D6170 @ =gSprites + lsls r3, r6, 4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + mov r10, r0 + mov r0, r8 + movs r4, 0x2 + ldrsh r1, [r0, r4] + lsls r0, r5, 24 + asrs r0, 24 + muls r0, r1 + cmp r0, 0 + bge _080D6164 + negs r0, r0 +_080D6164: + mov r5, r10 + strh r0, [r5, 0x26] + b _080D618E + .align 2, 0 +_080D616C: .4byte gUnknown_083D97A4 +_080D6170: .4byte gSprites +_080D6174: + ldr r3, _080D61C4 @ =gSprites + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + lsls r0, r5, 24 + asrs r0, 24 + mov r5, r8 + ldrh r1, [r5, 0x2] + muls r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 + adds r3, r4, 0 +_080D618E: + mov r1, r12 + adds r0, r1, r7 + lsls r0, 3 + add r0, r9 + movs r4, 0x8 + ldrsh r1, [r0, r4] + movs r5, 0xA + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080D61B4 + adds r0, r3, r6 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x24] + strh r1, [r0, 0x26] + adds r0, r7, 0 + bl move_anim_task_del +_080D61B4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D61C4: .4byte gSprites + thumb_func_end sub_80D60B4 + + thumb_func_start sub_80D61C8 +sub_80D61C8: @ 80D61C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D61E8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D61F0 + ldr r0, _080D61EC @ =gUnknown_03004B00 + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080D61FC + .align 2, 0 +_080D61E8: .4byte gUnknown_0202F7C8 +_080D61EC: .4byte gUnknown_03004B00 +_080D61F0: + ldr r1, _080D6210 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080D61FC: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080D6214 @ =sub_80D6218 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6210: .4byte gUnknown_03004B00 +_080D6214: .4byte sub_80D6218 + thumb_func_end sub_80D61C8 + + thumb_func_start sub_80D6218 +sub_80D6218: @ 80D6218 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D622E + adds r0, r2, 0 + bl move_anim_8072740 +_080D622E: + pop {r0} + bx r0 + thumb_func_end sub_80D6218 + + thumb_func_start sub_80D6234 +sub_80D6234: @ 80D6234 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D6254 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D625C + ldr r0, _080D6258 @ =gUnknown_03004B00 + ldrh r1, [r4, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r4, 0x20] + b _080D6266 + .align 2, 0 +_080D6254: .4byte gUnknown_0202F7C8 +_080D6258: .4byte gUnknown_03004B00 +_080D625C: + ldr r0, _080D6270 @ =gUnknown_03004B00 + ldrh r0, [r0] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080D6266: + ldr r0, _080D6274 @ =sub_80D6278 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6270: .4byte gUnknown_03004B00 +_080D6274: .4byte sub_80D6278 + thumb_func_end sub_80D6234 + + thumb_func_start sub_80D6278 +sub_80D6278: @ 80D6278 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D628E + adds r0, r2, 0 + bl move_anim_8074EE0 +_080D628E: + pop {r0} + bx r0 + thumb_func_end sub_80D6278 + + thumb_func_start sub_80D6294 +sub_80D6294: @ 80D6294 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D62D8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D62DC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D62E4 + ldr r2, _080D62E0 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x22] + b _080D62F8 + .align 2, 0 +_080D62D8: .4byte gUnknown_0202F7C9 +_080D62DC: .4byte gUnknown_0202F7C8 +_080D62E0: .4byte gUnknown_03004B00 +_080D62E4: + ldr r0, _080D631C @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x20] + ldrh r1, [r0, 0x2] + ldrh r2, [r5, 0x22] + adds r1, r2 + strh r1, [r5, 0x22] + adds r2, r0, 0 +_080D62F8: + movs r0, 0 + strh r0, [r5, 0x2E] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x30] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x34] + ldr r1, _080D6320 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6324 @ =sub_8078114 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D631C: .4byte gUnknown_03004B00 +_080D6320: .4byte move_anim_8074EE0 +_080D6324: .4byte sub_8078114 + thumb_func_end sub_80D6294 + + thumb_func_start sub_80D6328 +sub_80D6328: @ 80D6328 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080D6340 @ =gUnknown_03004B00 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + beq _080D63A0 + cmp r0, 0x1 + bgt _080D6344 + cmp r0, 0 + beq _080D634E + b _080D63A0 + .align 2, 0 +_080D6340: .4byte gUnknown_03004B00 +_080D6344: + cmp r0, 0x2 + beq _080D6358 + cmp r0, 0x3 + beq _080D637C + b _080D63A0 +_080D634E: + ldr r0, _080D6354 @ =gUnknown_0202F7C8 + b _080D63A2 + .align 2, 0 +_080D6354: .4byte gUnknown_0202F7C8 +_080D6358: + ldr r4, _080D6370 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080D6374 + ldrb r4, [r4] + b _080D63A4 + .align 2, 0 +_080D6370: .4byte gUnknown_0202F7C8 +_080D6374: + ldrb r0, [r4] + adds r4, r6, 0 + eors r4, r0 + b _080D63A4 +_080D637C: + ldr r0, _080D6398 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r4, 0x2 + eors r0, r4 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D63A0 + ldr r0, _080D639C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + eors r4, r0 + b _080D63A4 + .align 2, 0 +_080D6398: .4byte gUnknown_0202F7C8 +_080D639C: .4byte gUnknown_0202F7C9 +_080D63A0: + ldr r0, _080D63C4 @ =gUnknown_0202F7C9 +_080D63A2: + ldrb r4, [r0] +_080D63A4: + ldr r0, _080D63C8 @ =gUnknown_03004B00 + movs r2, 0xA + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080D63CC + adds r0, r4, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x1 + b _080D63DE + .align 2, 0 +_080D63C4: .4byte gUnknown_0202F7C9 +_080D63C8: .4byte gUnknown_03004B00 +_080D63CC: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + adds r0, r4, 0 + movs r1, 0x3 +_080D63DE: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r7, _080D647C @ =gSineTable + ldr r6, _080D6480 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, 0x40 + lsls r0, 1 + adds r0, r7 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x2 + ldrsh r0, [r6, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x26] + ldrh r1, [r6, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D6442 + adds r0, r4, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] +_080D6442: + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r0, 0x4 + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + ldr r3, _080D6484 @ =gOamMatrices + lsls r2, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r7 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x2E] + ldr r0, _080D6488 @ =sub_80DA48C + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D647C: .4byte gSineTable +_080D6480: .4byte gUnknown_03004B00 +_080D6484: .4byte gOamMatrices +_080D6488: .4byte sub_80DA48C + thumb_func_end sub_80D6328 + + thumb_func_start sub_80D648C +sub_80D648C: @ 80D648C + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080D6500 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r6, _080D6504 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x38] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x3A] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x3C] + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r5, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D6508 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D650C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r1, _080D6510 @ =sub_80D6514 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6500: .4byte gUnknown_03004B00 +_080D6504: .4byte gUnknown_0202F7C9 +_080D6508: .4byte 0x000003ff +_080D650C: .4byte 0xfffffc00 +_080D6510: .4byte sub_80D6514 + thumb_func_end sub_80D648C + + thumb_func_start sub_80D6514 +sub_80D6514: @ 80D6514 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D657E + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r1, 0x3 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _080D6584 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080D6584 +_080D657E: + adds r0, r4, 0 + bl move_anim_8072740 +_080D6584: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D6514 + + thumb_func_start sub_80D658C +sub_80D658C: @ 80D658C + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x38] + subs r0, 0x1 + strh r0, [r3, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D65C4 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x36] + strh r0, [r3, 0x38] +_080D65C4: + ldrh r0, [r3, 0x34] + subs r1, r0, 0x1 + strh r1, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080D65D6 + adds r0, r3, 0 + bl move_anim_8072740 +_080D65D6: + pop {r0} + bx r0 + thumb_func_end sub_80D658C + + thumb_func_start sub_80D65DC +sub_80D65DC: @ 80D65DC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D6644 @ =gMain + ldr r1, _080D6648 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D65FE + ldr r0, _080D664C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D6606 +_080D65FE: + ldr r1, _080D6650 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080D6606: + ldr r5, _080D664C @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D6650 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4] + strh r0, [r6, 0x34] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x36] + strh r0, [r6, 0x38] + ldr r0, _080D6654 @ =sub_80D658C + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6644: .4byte gMain +_080D6648: .4byte 0x0000043d +_080D664C: .4byte gUnknown_0202F7C9 +_080D6650: .4byte gUnknown_03004B00 +_080D6654: .4byte sub_80D658C + thumb_func_end sub_80D65DC + + thumb_func_start sub_80D6658 +sub_80D6658: @ 80D6658 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r1, _080D6674 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + movs r2, 0xE + ldrsh r0, [r1, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080D667C + ldr r0, _080D6678 @ =gUnknown_0202F7C9 + b _080D667E + .align 2, 0 +_080D6674: .4byte gUnknown_03004B00 +_080D6678: .4byte gUnknown_0202F7C9 +_080D667C: + ldr r0, _080D670C @ =gUnknown_0202F7C8 +_080D667E: + ldrb r6, [r0] + ldr r0, _080D6710 @ =gMain + ldr r3, _080D6714 @ =0x0000043d + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D669C + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D66A4 +_080D669C: + ldr r1, _080D6718 @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080D66A4: + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080D6718 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r5, 0x20] + adds r0, r6, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x2] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + ldr r0, _080D671C @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x3A] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x3C] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D6720 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D6724 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r1, _080D6728 @ =sub_80D672C + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D670C: .4byte gUnknown_0202F7C8 +_080D6710: .4byte gMain +_080D6714: .4byte 0x0000043d +_080D6718: .4byte gUnknown_03004B00 +_080D671C: .4byte 0x00007fff +_080D6720: .4byte 0x000003ff +_080D6724: .4byte 0xfffffc00 +_080D6728: .4byte sub_80D672C + thumb_func_end sub_80D6658 + + thumb_func_start sub_80D672C +sub_80D672C: @ 80D672C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080D6782 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D6782: + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080D6794 + adds r0, r4, 0 + bl move_anim_8072740 +_080D6794: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D672C + + thumb_func_start sub_80D679C +sub_80D679C: @ 80D679C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080D67D8 @ =gUnknown_03004B00 + movs r5, 0x6 + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r1, r0 + ldr r5, _080D67DC @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _080D67E0 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080D67E4 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + b _080D67F2 + .align 2, 0 +_080D67D8: .4byte gUnknown_03004B00 +_080D67DC: .4byte 0x000003ff +_080D67E0: .4byte 0xfffffc00 +_080D67E4: + cmp r0, 0x2 + bne _080D67F6 + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x20 +_080D67F2: + orrs r1, r0 + strb r1, [r4, 0x3] +_080D67F6: + ldr r0, _080D6810 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080D6814 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080D6818 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6810: .4byte gUnknown_03004B00 +_080D6814: .4byte sub_80782D8 +_080D6818: .4byte move_anim_8072740 + thumb_func_end sub_80D679C + + thumb_func_start sub_80D681C +sub_80D681C: @ 80D681C + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080D6864 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + ldr r1, _080D6868 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r1 + lsls r0, 24 + ldr r5, _080D686C @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x8] + ldrb r0, [r6] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldr r0, _080D6870 @ =sub_80D6874 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D6864: .4byte gUnknown_0202F7C9 +_080D6868: .4byte gTasks +_080D686C: .4byte gUnknown_03004B00 +_080D6870: .4byte sub_80D6874 + thumb_func_end sub_80D681C + + thumb_func_start sub_80D6874 +sub_80D6874: @ 80D6874 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + movs r7, 0 + ldr r1, _080D68B4 @ =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0xC] + str r2, [sp] + ldrh r4, [r0, 0x8] + ldrh r6, [r0, 0xA] + movs r3, 0xC + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0 + bne _080D68B8 + movs r0, 0 + mov r8, r0 + movs r2, 0x1 + movs r1, 0x10 + mov r12, r1 + b _080D68C2 + .align 2, 0 +_080D68B4: .4byte gTasks +_080D68B8: + movs r2, 0x10 + mov r12, r2 + movs r3, 0x8 + mov r8, r3 + movs r2, 0x4 +_080D68C2: + mov r0, r9 + lsls r1, r0, 2 + adds r0, r1, r0 + lsls r0, 3 + add r0, r10 + movs r3, 0x1C + ldrsh r0, [r0, r3] + mov r10, r1 + cmp r0, 0xA + bhi _080D69B8 + lsls r0, 2 + ldr r1, _080D68E0 @ =_080D68E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D68E0: .4byte _080D68E4 + .align 2, 0 +_080D68E4: + .4byte _080D6910 + .4byte _080D69B8 + .4byte _080D6924 + .4byte _080D69B8 + .4byte _080D6944 + .4byte _080D69B8 + .4byte _080D695A + .4byte _080D69B8 + .4byte _080D697C + .4byte _080D69B8 + .4byte _080D69B0 +_080D6910: + ldr r0, _080D6920 @ =gSpriteTemplate_83D9938 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + mov r4, r12 + lsls r3, r4, 16 + b _080D6992 + .align 2, 0 +_080D6920: .4byte gSpriteTemplate_83D9938 +_080D6924: + mov r0, r12 + lsls r3, r0, 17 + mov r1, r8 + adds r0, r1, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080D6940 @ =gSpriteTemplate_83D9938 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080D6992 + .align 2, 0 +_080D6940: .4byte gSpriteTemplate_83D9938 +_080D6944: + mov r3, r12 + lsls r0, r3, 16 + asrs r0, 16 + lsls r3, r0, 1 + adds r3, r0 + lsls r0, r2, 1 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + b _080D6986 +_080D695A: + mov r0, r12 + lsls r3, r0, 18 + lsls r0, r2, 1 + adds r0, r2 + add r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _080D6978 @ =gSpriteTemplate_83D9938 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + b _080D6992 + .align 2, 0 +_080D6978: .4byte gSpriteTemplate_83D9938 +_080D697C: + mov r1, r12 + lsls r0, r1, 16 + asrs r0, 16 + lsls r3, r0, 2 + adds r3, r0 +_080D6986: + ldr r0, _080D69AC @ =gSpriteTemplate_83D9938 + lsls r1, r4, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r2, 16 + lsls r3, 16 +_080D6992: + asrs r3, 16 + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + b _080D69B8 + .align 2, 0 +_080D69AC: .4byte gSpriteTemplate_83D9938 +_080D69B0: + mov r0, r9 + bl move_anim_task_del + b _080D69FC +_080D69B8: + cmp r7, 0 + beq _080D69EC + ldr r4, _080D6A0C @ =gSprites + lsls r3, r5, 4 + adds r3, r5 + lsls r3, 2 + adds r0, r3, r4 + ldrh r5, [r0, 0x4] + lsls r2, r5, 22 + lsrs r2, 22 + add r2, r8 + ldr r6, _080D6A10 @ =0x000003ff + adds r1, r6, 0 + ands r2, r1 + ldr r1, _080D6A14 @ =0xfffffc00 + ands r1, r5 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r1, sp + ldrh r1, [r1] + strh r1, [r0, 0x2E] + adds r4, 0x1C + adds r3, r4 + ldr r1, [r3] + bl _call_via_r1 +_080D69EC: + ldr r0, _080D6A18 @ =gTasks + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] +_080D69FC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D6A0C: .4byte gSprites +_080D6A10: .4byte 0x000003ff +_080D6A14: .4byte 0xfffffc00 +_080D6A18: .4byte gTasks + thumb_func_end sub_80D6874 + + thumb_func_start sub_80D6A1C +sub_80D6A1C: @ 80D6A1C + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080D6A3E + ldrb r1, [r3, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r2, r0 + strb r2, [r3, 0x3] + b _080D6A52 +_080D6A3E: + ldrb r2, [r3, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3, 0x1] + ldrb r0, [r3, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r3, 0x3] +_080D6A52: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _080D6A66 + adds r0, r3, 0 + bl DestroySprite +_080D6A66: + pop {r0} + bx r0 + thumb_func_end sub_80D6A1C + + thumb_func_start sub_80D6A6C +sub_80D6A6C: @ 80D6A6C + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080D6AD4 @ =gUnknown_03004B00 + ldrh r1, [r0] + ldrh r2, [r4, 0x20] + adds r1, r2 + strh r1, [r4, 0x20] + ldrh r0, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950 + adds r1, 0x20 + lsls r1, 16 + asrs r1, 16 + movs r7, 0x22 + ldrsh r2, [r4, r7] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080D6ADC @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r6, r2, r3 + ldrh r5, [r6, 0x4] + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r7, _080D6AE0 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080D6AE4 @ =0xfffffc00 + ands r0, r5 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080D6AE8 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080D6AEC @ =sub_80D6AF0 + str r0, [r2] + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D6AD4: .4byte gUnknown_03004B00 +_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950 +_080D6ADC: .4byte gSprites +_080D6AE0: .4byte 0x000003ff +_080D6AE4: .4byte 0xfffffc00 +_080D6AE8: .4byte gUnknown_0202F7B2 +_080D6AEC: .4byte sub_80D6AF0 + thumb_func_end sub_80D6A6C + + thumb_func_start sub_80D6AF0 +sub_80D6AF0: @ 80D6AF0 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080D6B24 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080D6B24: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080D6B38 + adds r0, r3, 0 + bl move_anim_8072740 +_080D6B38: + pop {r0} + bx r0 + thumb_func_end sub_80D6AF0 + + thumb_func_start sub_80D6B3C +sub_80D6B3C: @ 80D6B3C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D6B5C @ =gTasks + adds r5, r1, r0 + ldr r0, _080D6B60 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6B68 + ldr r4, _080D6B64 @ =gUnknown_0202F7C8 + b _080D6B6A + .align 2, 0 +_080D6B5C: .4byte gTasks +_080D6B60: .4byte gUnknown_03004B00 +_080D6B64: .4byte gUnknown_0202F7C8 +_080D6B68: + ldr r4, _080D6BAC @ =gUnknown_0202F7C9 +_080D6B6A: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x26] + ldr r2, _080D6BB0 @ =gUnknown_03004B00 + ldrh r0, [r2, 0x2] + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x16] + strh r1, [r5, 0x18] + strh r1, [r5, 0x1A] + strh r1, [r5, 0x1C] + ldrh r0, [r2, 0x6] + strh r0, [r5, 0x1E] + strh r1, [r5, 0x20] + ldrh r0, [r2, 0x4] + strh r0, [r5, 0x22] + ldr r0, _080D6BB4 @ =sub_80D6BB8 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6BAC: .4byte gUnknown_0202F7C9 +_080D6BB0: .4byte gUnknown_03004B00 +_080D6BB4: .4byte sub_80D6BB8 + thumb_func_end sub_80D6B3C + + thumb_func_start sub_80D6BB8 +sub_80D6BB8: @ 80D6BB8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, r6, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D6CA0 @ =gTasks + adds r5, r0, r1 + movs r1, 0x14 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D6CB8 + ldrh r0, [r5, 0x20] + adds r0, 0x1 + movs r7, 0 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x22 + ldrsh r1, [r5, r2] + cmp r0, r1 + ble _080D6CC6 + strh r7, [r5, 0x20] + ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8 + movs r3, 0x24 + ldrsh r1, [r5, r3] + movs r3, 0x26 + ldrsh r2, [r5, r3] + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080D6CC6 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080D6CA8 @ =gSprites + adds r4, r0 + ldr r1, _080D6CAC @ =gUnknown_083D9968 + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, 0x20] + adds r3, r0 + strh r3, [r4, 0x20] + movs r2, 0x1A + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + ldrh r0, [r4, 0x22] + adds r2, r0 + strh r2, [r4, 0x22] + movs r1, 0x18 + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + movs r0, 0x28 + subs r0, r1 + strh r0, [r4, 0x2E] + strh r3, [r4, 0x30] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x32] + strh r2, [r4, 0x34] + ldrh r0, [r5, 0x26] + strh r0, [r4, 0x36] + strh r6, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D6CB0 @ =sub_80D6D00 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6CB4 @ =sub_8078600 + str r0, [r4, 0x1C] + ldrh r0, [r5, 0x1A] + adds r0, 0x1 + strh r0, [r5, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080D6C70 + strh r7, [r5, 0x1A] +_080D6C70: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r5, r2] + cmp r0, r1 + blt _080D6C92 + strh r7, [r5, 0x1C] + ldrh r1, [r5, 0x18] + movs r3, 0x18 + ldrsh r0, [r5, r3] + cmp r0, 0x5 + bgt _080D6C92 + adds r0, r1, 0x1 + strh r0, [r5, 0x18] +_080D6C92: + ldrh r0, [r5, 0x16] + adds r0, 0x1 + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x14] + subs r0, 0x1 + strh r0, [r5, 0x14] + b _080D6CC6 + .align 2, 0 +_080D6CA0: .4byte gTasks +_080D6CA4: .4byte gSpriteTemplate_83D99B8 +_080D6CA8: .4byte gSprites +_080D6CAC: .4byte gUnknown_083D9968 +_080D6CB0: .4byte sub_80D6D00 +_080D6CB4: .4byte sub_8078600 +_080D6CB8: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D6CC6 + adds r0, r2, 0 + bl move_anim_task_del +_080D6CC6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D6BB8 + + thumb_func_start sub_80D6CCC +sub_80D6CCC: @ 80D6CCC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D6CF4 + ldr r2, _080D6CFC @ =gTasks + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x16] + subs r1, 0x1 + strh r1, [r0, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080D6CF4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6CFC: .4byte gTasks + thumb_func_end sub_80D6CCC + + thumb_func_start sub_80D6D00 +sub_80D6D00: @ 80D6D00 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080D6D14 @ =sub_80D6CCC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6D14: .4byte sub_80D6CCC + thumb_func_end sub_80D6D00 + + thumb_func_start sub_80D6D18 +sub_80D6D18: @ 80D6D18 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D6D2C @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6D34 + ldr r4, _080D6D30 @ =gUnknown_0202F7C8 + b _080D6D36 + .align 2, 0 +_080D6D2C: .4byte gUnknown_03004B00 +_080D6D30: .4byte gUnknown_0202F7C8 +_080D6D34: + ldr r4, _080D6D64 @ =gUnknown_0202F7C9 +_080D6D36: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D6D68 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6D6C @ =sub_80785E4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6D64: .4byte gUnknown_0202F7C9 +_080D6D68: .4byte move_anim_8074EE0 +_080D6D6C: .4byte sub_80785E4 + thumb_func_end sub_80D6D18 + + thumb_func_start sub_80D6D70 +sub_80D6D70: @ 80D6D70 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D6D84 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D6D8C + ldr r4, _080D6D88 @ =gUnknown_0202F7C8 + b _080D6D8E + .align 2, 0 +_080D6D84: .4byte gUnknown_03004B00 +_080D6D88: .4byte gUnknown_0202F7C8 +_080D6D8C: + ldr r4, _080D6DC8 @ =gUnknown_0202F7C9 +_080D6D8E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D6DCC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x24] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x26] + ldr r1, _080D6DD0 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D6DD4 @ =sub_8078600 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6DC8: .4byte gUnknown_0202F7C9 +_080D6DCC: .4byte gUnknown_03004B00 +_080D6DD0: .4byte move_anim_8072740 +_080D6DD4: .4byte sub_8078600 + thumb_func_end sub_80D6D70 + + thumb_func_start sub_80D6DD8 +sub_80D6DD8: @ 80D6DD8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r4, _080D6E30 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3A] + movs r0, 0x10 + strh r0, [r5, 0x3C] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080D6E26 + movs r1, 0x3C + ldrsh r0, [r5, r1] + negs r0, r0 + strh r0, [r5, 0x3C] +_080D6E26: + ldr r0, _080D6E34 @ =sub_80D6E38 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D6E30: .4byte gUnknown_0202F7C8 +_080D6E34: .4byte sub_80D6E38 + thumb_func_end sub_80D6DD8 + + thumb_func_start sub_80D6E38 +sub_80D6E38: @ 80D6E38 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D6E4A + cmp r0, 0x1 + beq _080D6E60 + b _080D6E90 +_080D6E4A: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D6E90 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D6E90 +_080D6E60: + ldrh r2, [r4, 0x3C] + ldrh r1, [r4, 0x20] + adds r0, r2, r1 + strh r0, [r4, 0x20] + ldr r3, _080D6E98 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + adds r2, r1 + strh r2, [r0, 0x24] + ldrh r0, [r4, 0x20] + adds r0, 0x50 + lsls r0, 16 + movs r1, 0xC8 + lsls r1, 17 + cmp r0, r1 + bls _080D6E90 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080D6E90: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D6E98: .4byte gSprites + thumb_func_end sub_80D6E38 + + thumb_func_start sub_80D6E9C +sub_80D6E9C: @ 80D6E9C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080D6EC0 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D6F30 + cmp r0, 0x1 + bgt _080D6EC4 + cmp r0, 0 + beq _080D6ED0 + b _080D7000 + .align 2, 0 +_080D6EC0: .4byte gTasks +_080D6EC4: + cmp r0, 0x2 + beq _080D6F8C + cmp r0, 0x3 + bne _080D6ECE + b _080D6FE0 +_080D6ECE: + b _080D7000 +_080D6ED0: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x26] + ldr r4, _080D6F04 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D6F0C + ldr r0, _080D6F08 @ =0x0000ffe0 + strh r0, [r5, 0x24] + movs r0, 0x2 + b _080D6F12 + .align 2, 0 +_080D6F04: .4byte gUnknown_0202F7C8 +_080D6F08: .4byte 0x0000ffe0 +_080D6F0C: + movs r0, 0x20 + strh r0, [r5, 0x24] + ldr r0, _080D6F28 @ =0x0000fffe +_080D6F12: + strh r0, [r5, 0x22] + ldr r2, _080D6F2C @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r5, 0x24] + strh r1, [r0, 0x24] + b _080D6FD2 + .align 2, 0 +_080D6F28: .4byte 0x0000fffe +_080D6F2C: .4byte gSprites +_080D6F30: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D7000 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r4, _080D6F88 @ =gSprites + movs r1, 0x26 + ldrsh r0, [r5, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r5, 0x24] + movs r2, 0x24 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D6FD2 + ldrh r2, [r5, 0x22] + adds r2, r1, r2 + strh r2, [r5, 0x24] + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x24] + b _080D7000 + .align 2, 0 +_080D6F88: .4byte gSprites +_080D6F8C: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D7000 + movs r0, 0 + strh r0, [r5, 0xA] + ldr r1, _080D6FDC @ =gSprites + movs r2, 0x26 + ldrsh r0, [r5, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080D7000 +_080D6FD2: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D7000 + .align 2, 0 +_080D6FDC: .4byte gSprites +_080D6FE0: + ldr r2, _080D7008 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r3, 0 + bl move_anim_task_del +_080D7000: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D7008: .4byte gSprites + thumb_func_end sub_80D6E9C + + thumb_func_start sub_80D700C +sub_80D700C: @ 80D700C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080D7030 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080D7026 + b _080D714C +_080D7026: + cmp r0, 0x1 + bgt _080D7034 + cmp r0, 0 + beq _080D703C + b _080D718E + .align 2, 0 +_080D7030: .4byte gTasks +_080D7034: + cmp r0, 0x2 + bne _080D703A + b _080D7180 +_080D703A: + b _080D718E +_080D703C: + ldr r4, _080D707C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + bne _080D7052 + movs r1, 0x1 +_080D7052: + movs r6, 0 + strh r1, [r5, 0xA] + ldr r0, _080D7080 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r3, r0, 0 + cmp r2, 0 + beq _080D7088 + cmp r2, 0x4 + beq _080D70B0 + ldrh r1, [r3] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D70E8 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0xE] + ldr r0, _080D7084 @ =0x0000fff0 + b _080D70F0 + .align 2, 0 +_080D707C: .4byte gUnknown_0202F7C8 +_080D7080: .4byte gUnknown_03004B00 +_080D7084: .4byte 0x0000fff0 +_080D7088: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 7 + adds r0, 0x78 + strh r0, [r5, 0x10] + b _080D7126 +_080D70B0: + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r1, 7 + movs r0, 0x78 + subs r0, r1 + strh r0, [r5, 0xE] + ldr r4, _080D70E4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r2, 0xA + ldrsh r1, [r5, r2] + lsls r1, 5 + subs r0, r1 + strh r0, [r5, 0x10] + b _080D7126 + .align 2, 0 +_080D70E4: .4byte gUnknown_0202F7C9 +_080D70E8: + ldr r0, _080D710C @ =0x0000fff0 + strh r0, [r5, 0xE] + movs r0, 0x80 + lsls r0, 1 +_080D70F0: + strh r0, [r5, 0x10] + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080D7110 + movs r2, 0 + ldrsh r0, [r3, r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + movs r0, 0x50 + subs r0, r1 + strh r0, [r5, 0x12] + b _080D7126 + .align 2, 0 +_080D710C: .4byte 0x0000fff0 +_080D7110: + movs r0, 0 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, 0x28 + strh r0, [r5, 0x12] + ldrh r1, [r5, 0xE] + ldrh r0, [r5, 0x10] + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] +_080D7126: + movs r2, 0xE + ldrsh r1, [r5, r2] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _080D713C + movs r1, 0 + movs r0, 0x1 + strh r0, [r5, 0xA] + strh r1, [r5, 0x14] + b _080D7178 +_080D713C: + ldr r0, _080D7148 @ =0x0000ffff + strh r0, [r5, 0xA] + movs r0, 0x3 + strh r0, [r5, 0x14] + b _080D7178 + .align 2, 0 +_080D7148: .4byte 0x0000ffff +_080D714C: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + ble _080D718E + movs r0, 0 + strh r0, [r5, 0xC] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D7194 + lsls r0, 24 + cmp r0, 0 + bne _080D7178 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80D7194 + lsls r0, 24 + cmp r0, 0 + beq _080D718E +_080D7178: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D718E +_080D7180: + movs r1, 0x16 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D718E + adds r0, r4, 0 + bl move_anim_task_del +_080D718E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D700C + + thumb_func_start sub_80D7194 +sub_80D7194: @ 80D7194 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r3, 0x12 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D71CA + ldr r1, _080D7224 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + strh r5, [r0, 0x3A] + movs r1, 0x7 + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080D71CA: + ldrh r1, [r4, 0xA] + ldrh r5, [r4, 0x14] + adds r0, r1, r5 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bge _080D71DC + movs r0, 0x3 + strh r0, [r4, 0x14] +_080D71DC: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + ble _080D71E8 + movs r0, 0 + strh r0, [r4, 0x14] +_080D71E8: + movs r3, 0xA + ldrsh r0, [r4, r3] + lsls r0, 4 + ldrh r5, [r4, 0xE] + adds r2, r0, r5 + strh r2, [r4, 0xE] + lsls r0, r1, 16 + asrs r3, r0, 16 + cmp r3, 0x1 + bne _080D7208 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x10 + ldrsh r1, [r4, r5] + cmp r0, r1 + bge _080D721C +_080D7208: + movs r0, 0x1 + negs r0, r0 + cmp r3, r0 + bne _080D7228 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x10 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _080D7228 +_080D721C: + movs r0, 0x1 + b _080D722A + .align 2, 0 +_080D7220: .4byte gSpriteTemplate_83D9B10 +_080D7224: .4byte gSprites +_080D7228: + movs r0, 0 +_080D722A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80D7194 + + thumb_func_start sub_80D7230 +sub_80D7230: @ 80D7230 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080D7270 + ldr r3, _080D7278 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D7270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7278: .4byte gTasks + thumb_func_end sub_80D7230 + + thumb_func_start sub_80D727C +sub_80D727C: @ 80D727C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D728E + cmp r0, 0x1 + beq _080D72C0 + b _080D72D4 +_080D728E: + ldr r4, _080D72BC @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080D72D4 + .align 2, 0 +_080D72BC: .4byte gUnknown_0202F7C8 +_080D72C0: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D72D4 + adds r0, r5, 0 + bl move_anim_8074EE0 +_080D72D4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D727C + + thumb_func_start sub_80D72DC +sub_80D72DC: @ 80D72DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D7300 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080D72F6 + b _080D7468 +_080D72F6: + lsls r0, 2 + ldr r1, _080D7304 @ =_080D7308 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D7300: .4byte gTasks +_080D7304: .4byte _080D7308 + .align 2, 0 +_080D7308: + .4byte _080D731C + .4byte _080D73AC + .4byte _080D73E8 + .4byte _080D7444 + .4byte _080D7454 +_080D731C: + ldr r4, _080D73A0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + ldr r0, _080D73A4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + movs r2, 0x1C + ldrsh r0, [r5, r2] + movs r2, 0x14 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x5 + bl __divsi3 + strh r0, [r5, 0x1A] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080D73A8 @ =0x0000ffff + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + subs r0, 0x4C + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x20] + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0x22] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x24] + movs r1, 0x22 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r1, 0x3 + bl __divsi3 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + b _080D7466 + .align 2, 0 +_080D73A0: .4byte gUnknown_0202F7C8 +_080D73A4: .4byte gUnknown_0202F7C9 +_080D73A8: .4byte 0x0000ffff +_080D73AC: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _080D73DC + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80D7470 + lsls r0, 24 + cmp r0, 0 + beq _080D73DC + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bne _080D73D6 + movs r0, 0x3 + b _080D73DA +_080D73D6: + ldrh r0, [r5, 0x8] + adds r0, 0x1 +_080D73DA: + strh r0, [r5, 0x8] +_080D73DC: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D7468 + b _080D745E +_080D73E8: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D73F6 + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] +_080D73F6: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080D7468 + strh r3, [r5, 0xA] + ldrh r1, [r5, 0xC] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080D7422 + movs r0, 0x4 + strh r0, [r5, 0x16] + movs r0, 0x44 + strh r0, [r5, 0x18] + strh r3, [r5, 0x10] + strh r2, [r5, 0x12] + b _080D7432 +_080D7422: + movs r0, 0x44 + strh r0, [r5, 0x16] + movs r0, 0x4 + strh r0, [r5, 0x18] + movs r0, 0x7 + strh r0, [r5, 0x10] + ldr r0, _080D7440 @ =0x0000ffff + strh r0, [r5, 0x12] +_080D7432: + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080D7464 + movs r0, 0x4 + b _080D7466 + .align 2, 0 +_080D7440: .4byte 0x0000ffff +_080D7444: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D7468 + adds r0, r2, 0 + bl move_anim_task_del + b _080D7468 +_080D7454: + ldrh r1, [r5, 0x1E] + movs r2, 0x1E + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080D7464 +_080D745E: + subs r0, r1, 0x1 + strh r0, [r5, 0x1E] + b _080D7468 +_080D7464: + movs r0, 0x1 +_080D7466: + strh r0, [r5, 0x8] +_080D7468: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D72DC + + thumb_func_start sub_80D7470 +sub_80D7470: @ 80D7470 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40 + movs r2, 0x14 + ldrsh r1, [r4, r2] + movs r3, 0x16 + ldrsh r2, [r4, r3] + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080D74DC + ldr r1, _080D753C @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r1 + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldrh r6, [r4, 0x10] + adds r1, r6 + ldr r6, _080D7540 @ =0x000003ff + adds r0, r6, 0 + ands r1, r0 + ldr r0, _080D7544 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _080D74C4 + movs r0, 0x7 + strh r0, [r4, 0x10] +_080D74C4: + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x7 + ble _080D74D0 + movs r0, 0 + strh r0, [r4, 0x10] +_080D74D0: + strh r5, [r3, 0x3A] + movs r0, 0x3 + strh r0, [r3, 0x3C] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080D74DC: + movs r3, 0x10 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080D74FE + movs r5, 0x12 + ldrsh r0, [r4, r5] + cmp r0, 0 + ble _080D74FE + ldrh r1, [r4, 0x26] + ldrh r6, [r4, 0x24] + adds r1, r6 + strh r1, [r4, 0x24] + lsls r1, 24 + asrs r1, 24 + movs r0, 0x76 + bl PlaySE12WithPanning +_080D74FE: + movs r0, 0x12 + ldrsh r3, [r4, r0] + ldrh r2, [r4, 0x16] + cmp r3, 0 + bge _080D7514 + lsls r0, r2, 16 + asrs r0, 16 + movs r5, 0x18 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080D7524 +_080D7514: + cmp r3, 0 + ble _080D7548 + lsls r0, r2, 16 + asrs r0, 16 + movs r6, 0x18 + ldrsh r1, [r4, r6] + cmp r0, r1 + blt _080D7548 +_080D7524: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x1A] + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r0, 0x1 + b _080D7554 + .align 2, 0 +_080D7538: .4byte gSpriteTemplate_83D9B40 +_080D753C: .4byte gSprites +_080D7540: .4byte 0x000003ff +_080D7544: .4byte 0xfffffc00 +_080D7548: + movs r3, 0x12 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r0, r2, r0 + strh r0, [r4, 0x16] + movs r0, 0 +_080D7554: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80D7470 + + thumb_func_start sub_80D755C +sub_80D755C: @ 80D755C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080D7592 + ldr r3, _080D7598 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D7592: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7598: .4byte gTasks + thumb_func_end sub_80D755C + + thumb_func_start sub_80D759C +sub_80D759C: @ 80D759C + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D75C0 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080D7618 + cmp r0, 0x1 + bgt _080D75C4 + cmp r0, 0 + beq _080D75CA + b _080D764E + .align 2, 0 +_080D75C0: .4byte gTasks +_080D75C4: + cmp r0, 0x2 + beq _080D7640 + b _080D764E +_080D75CA: + ldr r0, _080D7614 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x26] + strh r0, [r5, 0x24] + cmp r0, 0x10 + ble _080D75F4 + adds r2, r0, 0 +_080D75E4: + adds r1, r2, 0 + subs r1, 0x20 + adds r2, r1, 0 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x10 + bgt _080D75E4 + strh r1, [r5, 0x24] +_080D75F4: + ldr r4, _080D7614 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r5, 0x20] + b _080D7638 + .align 2, 0 +_080D7614: .4byte gUnknown_0202F7C9 +_080D7618: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D764E + movs r0, 0 + strh r0, [r5, 0xA] + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_80D7654 + lsls r0, 24 + cmp r0, 0 + beq _080D764E +_080D7638: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080D764E +_080D7640: + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D764E + adds r0, r2, 0 + bl move_anim_task_del +_080D764E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D759C + + thumb_func_start sub_80D7654 +sub_80D7654: @ 80D7654 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0 + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080D7698 + ldr r3, _080D76B4 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _080D76B8 @ =sub_80D76C4 + str r2, [r1] + adds r0, r3 + strh r5, [r0, 0x3A] + movs r1, 0xA + strh r1, [r0, 0x3C] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] +_080D7698: + ldrh r2, [r4, 0x24] + movs r0, 0x24 + ldrsh r1, [r4, r0] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _080D76BC + adds r0, r2, 0 + adds r0, 0x20 + strh r0, [r4, 0x24] + movs r0, 0 + b _080D76BE + .align 2, 0 +_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0 +_080D76B4: .4byte gSprites +_080D76B8: .4byte sub_80D76C4 +_080D76BC: + movs r0, 0x1 +_080D76BE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80D7654 + + thumb_func_start sub_80D76C4 +sub_80D76C4: @ 80D76C4 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D76F8 + ldr r3, _080D7700 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl DestroySprite +_080D76F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7700: .4byte gTasks + thumb_func_end sub_80D76C4 + + thumb_func_start sub_80D7704 +sub_80D7704: @ 80D7704 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x7 + ldr r3, _080D780C @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D7810 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r4, _080D7814 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080D7818 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r4] + movs r1, 0x3 + str r3, [sp] + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080D781C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r1] + ldr r3, [sp] + adds r0, r3 + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x4] + mov r4, r9 + adds r0, r4, r0 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + adds r0, r6 + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x6] + mov r7, r8 + adds r0, r7, r0 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078314 + adds r4, 0x20 + movs r0, 0x98 + lsls r0, 1 + mov r12, r0 + ldr r3, [sp] + cmp r4, r12 + bhi _080D77DE + adds r0, r7, 0 + adds r0, 0x20 + ldrh r1, [r5, 0x30] + ldrh r2, [r5, 0x32] + cmp r0, 0xE0 + bhi _080D77DE + adds r4, r1, 0 + mov r10, r12 +_080D77AA: + mov r7, r9 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r4 + lsls r1, 16 + mov r7, r8 + lsls r0, r7, 16 + asrs r0, 16 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r0, r1, 16 + mov r9, r0 + movs r7, 0x80 + lsls r7, 14 + adds r1, r7 + lsrs r1, 16 + cmp r1, r10 + bhi _080D77DE + mov r1, r8 + lsls r0, r1, 16 + adds r0, r7 + lsrs r0, 16 + cmp r0, 0xE0 + bls _080D77AA +_080D77DE: + ldrh r0, [r5, 0x30] + negs r7, r0 + strh r7, [r5, 0x30] + ldrh r0, [r5, 0x32] + negs r4, r0 + strh r4, [r5, 0x32] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r0, 16 + movs r2, 0x98 + lsls r2, 1 + mov r12, r2 + ldr r1, _080D781C @ =gUnknown_03004B00 + mov r10, r1 + cmp r0, r12 + bhi _080D784A + lsls r1, r6, 16 + movs r2, 0x80 + lsls r2, 14 + adds r0, r1, r2 + b _080D7842 + .align 2, 0 +_080D780C: .4byte 0x000003ff +_080D7810: .4byte 0xfffffc00 +_080D7814: .4byte gUnknown_0202F7C9 +_080D7818: .4byte gUnknown_0202F7C8 +_080D781C: .4byte gUnknown_03004B00 +_080D7820: + lsls r1, r3, 16 + asrs r1, 16 + adds r1, r7 + lsls r1, 16 + asrs r0, r2, 16 + adds r0, r4 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r3, r1, 16 + movs r0, 0x80 + lsls r0, 14 + adds r1, r0 + lsrs r1, 16 + cmp r1, r12 + bhi _080D784A + lsls r1, r6, 16 + adds r0, r1, r0 +_080D7842: + lsrs r0, 16 + adds r2, r1, 0 + cmp r0, 0xE0 + bls _080D7820 +_080D784A: + strh r3, [r5, 0x20] + strh r6, [r5, 0x22] + mov r1, r10 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + strh r3, [r5, 0x30] + mov r2, r9 + strh r2, [r5, 0x32] + strh r6, [r5, 0x34] + mov r3, r8 + strh r3, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078314 + mov r7, r10 + ldrh r0, [r7, 0xA] + strh r0, [r5, 0x34] + ldrh r0, [r7, 0xC] + strh r0, [r5, 0x36] + ldr r0, _080D7884 @ =sub_80D7888 + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7884: .4byte sub_80D7888 + thumb_func_end sub_80D7704 + + thumb_func_start sub_80D7888 +sub_80D7888: @ 80D7888 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D78E0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x38] + adds r1, r2 + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + strh r1, [r4, 0x24] + strh r0, [r4, 0x26] + movs r1, 0x3C + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + b _080D78E6 +_080D78E0: + adds r0, r4, 0 + bl move_anim_8072740 +_080D78E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7888 + + thumb_func_start sub_80D78EC +sub_80D78EC: @ 80D78EC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D7920 @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r4, 0x2E] + movs r0, 0x3C + strh r0, [r4, 0x30] + movs r0, 0x9 + strh r0, [r4, 0x32] + movs r0, 0x1E + strh r0, [r4, 0x34] + movs r0, 0xFE + lsls r0, 8 + strh r0, [r4, 0x36] + ldr r1, _080D7924 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080D7928 @ =sub_8078174 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7920: .4byte gUnknown_03004B00 +_080D7924: .4byte move_anim_8072740 +_080D7928: .4byte sub_8078174 + thumb_func_end sub_80D78EC + + thumb_func_start sub_80D792C +sub_80D792C: @ 80D792C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D7960 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldr r0, _080D7964 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D796C + ldr r0, _080D7968 @ =gUnknown_03004B00 + ldrh r1, [r4, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r4, 0x32] + b _080D7976 + .align 2, 0 +_080D7960: .4byte gUnknown_0202F7C9 +_080D7964: .4byte gUnknown_0202F7C8 +_080D7968: .4byte gUnknown_03004B00 +_080D796C: + ldr r0, _080D79A4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] +_080D7976: + ldr r0, _080D79A8 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r1, _080D79A4 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r2, [r1, 0x6] + adds r0, r2 + strh r0, [r4, 0x36] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x2E] + ldr r1, _080D79AC @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D79B0 @ =sub_8078B34 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D79A4: .4byte gUnknown_03004B00 +_080D79A8: .4byte gUnknown_0202F7C9 +_080D79AC: .4byte move_anim_8072740 +_080D79B0: .4byte sub_8078B34 + thumb_func_end sub_80D792C + + thumb_func_start sub_80D79B4 +sub_80D79B4: @ 80D79B4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D79CC @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D79D0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D7A06 + .align 2, 0 +_080D79CC: .4byte gUnknown_03004B00 +_080D79D0: + ldr r0, _080D7A18 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D7A1C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D79F6 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D79F6: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D7A06: + ldr r1, _080D7A20 @ =sub_80D7A28 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D7A24 @ =sub_80785E4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7A18: .4byte gUnknown_0202F7C9 +_080D7A1C: .4byte gUnknown_0202F7C8 +_080D7A20: .4byte sub_80D7A28 +_080D7A24: .4byte sub_80785E4 + thumb_func_end sub_80D79B4 + + thumb_func_start sub_80D7A28 +sub_80D7A28: @ 80D7A28 + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080D7A5E + adds r0, r3, 0 + bl move_anim_8074EE0 +_080D7A5E: + pop {r0} + bx r0 + thumb_func_end sub_80D7A28 + + thumb_func_start sub_80D7A64 +sub_80D7A64: @ 80D7A64 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080D7AAC @ =gUnknown_03004B00 + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7AB4 + ldr r4, _080D7AB0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + b _080D7AC6 + .align 2, 0 +_080D7AAC: .4byte gUnknown_03004B00 +_080D7AB0: .4byte gUnknown_0202F7C9 +_080D7AB4: + ldr r0, _080D7AE0 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080D7AC6: + ldr r0, _080D7AE4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7AEC + ldr r0, _080D7AE8 @ =gUnknown_03004B00 + ldrh r1, [r5, 0x32] + ldrh r0, [r0, 0x4] + subs r1, r0 + strh r1, [r5, 0x32] + b _080D7AF6 + .align 2, 0 +_080D7AE0: .4byte gUnknown_0202F7C9 +_080D7AE4: .4byte gUnknown_0202F7C8 +_080D7AE8: .4byte gUnknown_03004B00 +_080D7AEC: + ldr r0, _080D7B94 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080D7AF6: + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080D7B00: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7B00 + adds r0, r5, 0 + bl sub_8078D60 + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080D7B22: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078CE8 + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080D7B56 + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7B56 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7B22 +_080D7B56: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r6, _080D7B98 @ =sub_8078D8C + ldr r1, _080D7B9C @ =sub_80D7BA0 + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080D7B76: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7B76 + str r6, [r5, 0x1C] + adds r0, r5, 0 + bl oamt_set_x3A_32 + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7B94: .4byte gUnknown_03004B00 +_080D7B98: .4byte sub_8078D8C +_080D7B9C: .4byte sub_80D7BA0 + thumb_func_end sub_80D7A64 + + thumb_func_start sub_80D7BA0 +sub_80D7BA0: @ 80D7BA0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r5, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + strh r5, [r4, 0x24] + movs r0, 0x80 + strh r0, [r4, 0x2E] + ldr r0, _080D7BFC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080D7C00 @ =0x0000ffec + cmp r0, 0 + beq _080D7BD0 + movs r1, 0x14 +_080D7BD0: + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + strh r0, [r4, 0x34] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] + ldr r1, _080D7C04 @ =sub_80D7C08 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D7BFC: .4byte gUnknown_0202F7C8 +_080D7C00: .4byte 0x0000ffec +_080D7C04: .4byte sub_80D7C08 + thumb_func_end sub_80D7BA0 + + thumb_func_start sub_80D7C08 +sub_80D7C08: @ 80D7C08 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D7C5C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080D7C60 @ =0x0000ffec + cmp r0, 0 + beq _080D7C1E + movs r1, 0x14 +_080D7C1E: + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0x1F + bgt _080D7C64 + movs r2, 0x2E + ldrsh r0, [r4, r2] + lsls r1, 16 + asrs r1, 16 + bl Sin + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x36] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x10 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + b _080D7C82 + .align 2, 0 +_080D7C5C: .4byte gUnknown_0202F7C8 +_080D7C60: .4byte 0x0000ffec +_080D7C64: + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + strh r1, [r4, 0x36] + strh r1, [r4, 0x34] + ldr r0, _080D7C88 @ =sub_80D7C8C + str r0, [r4, 0x1C] +_080D7C82: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D7C88: .4byte sub_80D7C8C + thumb_func_end sub_80D7C08 + + thumb_func_start sub_80D7C8C +sub_80D7C8C: @ 80D7C8C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078CE8 + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D7CC8 + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r1, r0, r1 + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bgt _080D7CC8 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7CCE +_080D7CC8: + adds r0, r4, 0 + bl move_anim_8072740 +_080D7CCE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7C8C + + thumb_func_start sub_80D7CD4 +sub_80D7CD4: @ 80D7CD4 + push {r4-r7,lr} + sub sp, 0x10 + adds r5, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080D7D18 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0xE + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D7D20 + ldr r4, _080D7D1C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080D7D32 + .align 2, 0 +_080D7D18: .4byte gUnknown_03004B00 +_080D7D1C: .4byte gUnknown_0202F7C9 +_080D7D20: + ldr r0, _080D7D50 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080D7D32: + ldr r0, _080D7D54 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7D5C + ldr r0, _080D7D58 @ =gUnknown_03004B00 + ldrh r1, [r5, 0x32] + ldrh r2, [r0, 0x4] + subs r1, r2 + strh r1, [r5, 0x32] + adds r1, r0, 0 + b _080D7D66 + .align 2, 0 +_080D7D50: .4byte gUnknown_0202F7C9 +_080D7D54: .4byte gUnknown_0202F7C8 +_080D7D58: .4byte gUnknown_03004B00 +_080D7D5C: + ldr r1, _080D7E10 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] +_080D7D66: + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078D60 + adds r7, r5, 0 + adds r7, 0x2E + adds r2, r7, 0 + mov r1, sp + movs r4, 0x7 +_080D7D7E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7D7E + ldrh r0, [r5, 0x30] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + eors r0, r1 + strh r0, [r5, 0x32] +_080D7D9A: + movs r0, 0x1 + strh r0, [r5, 0x2E] + adds r0, r5, 0 + bl sub_8078CE8 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r2, 0x24 + ldrsh r0, [r5, r2] + adds r1, r0 + adds r1, 0x10 + movs r0, 0x88 + lsls r0, 1 + cmp r1, r0 + bhi _080D7DCE + movs r0, 0x22 + ldrsh r1, [r5, r0] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7DCE + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7D9A +_080D7DCE: + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + ldr r1, _080D7E10 @ =gUnknown_03004B00 + ldr r6, _080D7E14 @ =sub_80D7E18 + mov r3, sp + adds r2, r7, 0 + movs r4, 0x7 +_080D7DEE: + ldrh r0, [r3] + strh r0, [r2] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080D7DEE + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r1, 0xC] + strh r0, [r5, 0x3A] + str r6, [r5, 0x1C] + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D7E10: .4byte gUnknown_03004B00 +_080D7E14: .4byte sub_80D7E18 + thumb_func_end sub_80D7CD4 + + thumb_func_start sub_80D7E18 +sub_80D7E18: @ 80D7E18 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078CE8 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D7E2C + movs r0, 0x1 + strh r0, [r4, 0x2E] +_080D7E2C: + movs r2, 0x3C + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D7E82 + movs r2, 0x20 + ldrsh r0, [r4, r2] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x10 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + bhi _080D7E7C + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r2, 0x26 + ldrsh r0, [r4, r2] + adds r1, r0 + cmp r1, 0xA0 + bgt _080D7E7C + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080D7E82 +_080D7E7C: + adds r0, r4, 0 + bl move_anim_8072740 +_080D7E82: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D7E18 + + thumb_func_start sub_80D7E88 +sub_80D7E88: @ 80D7E88 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D7EF4 + ldr r5, _080D7EA8 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D7EAC + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 + b _080D7EE2 + .align 2, 0 +_080D7EA8: .4byte gUnknown_03004B00 +_080D7EAC: + ldr r0, _080D7EEC @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldr r0, _080D7EF0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7ED2 + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D7ED2: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D7EE2: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D7F08 + .align 2, 0 +_080D7EEC: .4byte gUnknown_0202F7C9 +_080D7EF0: .4byte gUnknown_0202F7C8 +_080D7EF4: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080D7F08 + adds r0, r4, 0 + bl move_anim_8072740 +_080D7F08: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D7E88 + + thumb_func_start sub_80D7F10 +sub_80D7F10: @ 80D7F10 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080D7F30 @ =gUnknown_03004B00 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F80 + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F34 + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + b _080D7F72 + .align 2, 0 +_080D7F30: .4byte gUnknown_03004B00 +_080D7F34: + ldr r4, _080D7F5C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7F60 + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080D7F66 + .align 2, 0 +_080D7F5C: .4byte gUnknown_0202F7C8 +_080D7F60: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080D7F66: + strh r0, [r5, 0x20] + ldr r0, _080D7F78 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080D7F72: + ldr r0, _080D7F7C @ =gUnknown_0202F7C8 + b _080D7FD0 + .align 2, 0 +_080D7F78: .4byte gUnknown_03004B00 +_080D7F7C: .4byte gUnknown_0202F7C8 +_080D7F80: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D7F92 + adds r0, r5, 0 + movs r1, 0 + bl sub_8078764 + b _080D7FCE +_080D7F92: + ldr r4, _080D7FB8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D7FBC + ldrh r0, [r5, 0x20] + ldrh r1, [r6] + subs r0, r1 + b _080D7FC2 + .align 2, 0 +_080D7FB8: .4byte gUnknown_0202F7C9 +_080D7FBC: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080D7FC2: + strh r0, [r5, 0x20] + ldr r0, _080D7FEC @ =gUnknown_03004B00 + ldrh r0, [r0, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] +_080D7FCE: + ldr r0, _080D7FF0 @ =gUnknown_0202F7C9 +_080D7FD0: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + ldr r0, _080D7FEC @ =gUnknown_03004B00 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080D7FE8 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _080D7FF4 +_080D7FE8: + movs r0, 0x20 + b _080D7FF6 + .align 2, 0 +_080D7FEC: .4byte gUnknown_03004B00 +_080D7FF0: .4byte gUnknown_0202F7C9 +_080D7FF4: + movs r0, 0x40 +_080D7FF6: + strh r0, [r5, 0x3A] + ldr r0, _080D803C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D800C + ldrh r0, [r5, 0x22] + adds r0, 0x8 + strh r0, [r5, 0x22] +_080D800C: + ldr r1, _080D8040 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrh r1, [r1, 0x4] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x40 + strh r0, [r5, 0x38] + ldr r1, _080D8044 @ =sub_80D8048 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D803C: .4byte gUnknown_0202F7C9 +_080D8040: .4byte gUnknown_03004B00 +_080D8044: .4byte sub_80D8048 + thumb_func_end sub_80D7F10 + + thumb_func_start sub_80D8048 +sub_80D8048: @ 80D8048 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D80D2 + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0x6 + negs r1, r1 + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D80A4 + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080D80C6 +_080D80A4: + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_080D80C6: + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + b _080D80D8 +_080D80D2: + adds r0, r4, 0 + bl move_anim_8072740 +_080D80D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D8048 + + thumb_func_start sub_80D80E0 +sub_80D80E0: @ 80D80E0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D81A8 @ =REG_BLDCNT + ldr r2, _080D81AC @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D81B0 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D812A + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D812A: + ldr r0, _080D81B4 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D81B8 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080D81BC @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D81C0 @ =0x040000d4 + add r2, sp, 0xC + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080D81C4 @ =0x85000400 + str r2, [r0, 0x8] + ldr r2, [r0, 0x8] + ldr r2, _080D81C8 @ =gWeatherFog1Tiles + ldr r3, [sp] + str r2, [r0] + str r3, [r0, 0x4] + ldr r2, _080D81CC @ =0x80000400 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080D81D0 @ =gWeatherFog1Tilemap + bl LZDecompressVram + ldr r0, _080D81D4 @ =gUnknown_083970E8 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D8190 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D8190: + ldr r0, _080D81D8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080D81DC @ =sub_80D81E0 + str r0, [r1] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D81A8: .4byte REG_BLDCNT +_080D81AC: .4byte 0x00003f42 +_080D81B0: .4byte REG_BG1CNT +_080D81B4: .4byte gUnknown_030042C0 +_080D81B8: .4byte gUnknown_030041B4 +_080D81BC: .4byte REG_BG1HOFS +_080D81C0: .4byte 0x040000d4 +_080D81C4: .4byte 0x85000400 +_080D81C8: .4byte gWeatherFog1Tiles +_080D81CC: .4byte 0x80000400 +_080D81D0: .4byte gWeatherFog1Tilemap +_080D81D4: .4byte gUnknown_083970E8 +_080D81D8: .4byte gTasks +_080D81DC: .4byte sub_80D81E0 + thumb_func_end sub_80D80E0 + + thumb_func_start sub_80D81E0 +sub_80D81E0: @ 80D81E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080D8220 @ =gUnknown_030042C0 + ldr r1, _080D8224 @ =0x0000ffff + adds r0, r1, 0 + ldrh r4, [r2] + adds r0, r4 + strh r0, [r2] + ldr r1, _080D8228 @ =gUnknown_030041B4 + ldr r3, _080D822C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + movs r4, 0x20 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x4 + bls _080D8214 + b _080D83B0 +_080D8214: + lsls r0, 2 + ldr r1, _080D8230 @ =_080D8234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D8220: .4byte gUnknown_030042C0 +_080D8224: .4byte 0x0000ffff +_080D8228: .4byte gUnknown_030041B4 +_080D822C: .4byte gTasks +_080D8230: .4byte _080D8234 + .align 2, 0 +_080D8234: + .4byte _080D8248 + .4byte _080D82A0 + .4byte _080D82C2 + .4byte _080D8304 + .4byte _080D838C +_080D8248: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080D8262 + b _080D83B0 +_080D8262: + strh r4, [r3, 0x1C] + ldrh r0, [r3, 0x1A] + adds r0, 0x1 + strh r0, [r3, 0x1A] + ldr r1, _080D8298 @ =gUnknown_083D9D6C + movs r2, 0x1A + ldrsh r0, [r3, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r3, 0x1E] + ldr r2, _080D829C @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0x9 + beq _080D828C + b _080D83B0 +_080D828C: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080D83B0 + .align 2, 0 +_080D8298: .4byte gUnknown_083D9D6C +_080D829C: .4byte REG_BLDALPHA +_080D82A0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1E] + adds r0, 0x1 + strh r0, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080D83B0 + movs r0, 0x9 + strh r0, [r3, 0x1E] + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + b _080D83B0 +_080D82C2: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D83B0 + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080D8300 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080D83B0 + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080D83B0 + .align 2, 0 +_080D8300: .4byte REG_BLDALPHA +_080D8304: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r4, r6, 2 + mov r10, r4 + add r5, sp, 0xC + movs r7, 0 + ldr r1, _080D83C0 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r0, _080D83C4 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D832A: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D832A + str r7, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D83C0 @ =0x040000d4 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080D83C8 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D8378 + ldr r2, _080D83CC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D8378: + ldr r0, _080D83D0 @ =gTasks + mov r4, r10 + adds r1, r4, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r2, _080D83D4 @ =gUnknown_030042C0 + ldr r4, _080D83D8 @ =gUnknown_030041B4 +_080D838C: + movs r1, 0 + strh r1, [r2] + strh r1, [r4] + ldr r0, _080D83DC @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D83CC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r6, 0 + bl move_anim_task_del +_080D83B0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D83C0: .4byte 0x040000d4 +_080D83C4: .4byte 0x85000400 +_080D83C8: .4byte 0x85000200 +_080D83CC: .4byte REG_BG1CNT +_080D83D0: .4byte gTasks +_080D83D4: .4byte gUnknown_030042C0 +_080D83D8: .4byte gUnknown_030041B4 +_080D83DC: .4byte REG_BLDCNT + thumb_func_end sub_80D81E0 + + thumb_func_start sub_80D83E0 +sub_80D83E0: @ 80D83E0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D840C @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080D8410 @ =sub_807941C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D840C: .4byte gUnknown_0202F7C8 +_080D8410: .4byte sub_807941C + thumb_func_end sub_80D83E0 + + thumb_func_start sub_80D8414 +sub_80D8414: @ 80D8414 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D84E0 @ =REG_BLDCNT + ldr r2, _080D84E4 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080D84E8 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D845E + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080D845E: + ldr r0, _080D84EC @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080D84F0 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080D84F4 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D84F8 @ =0x040000d4 + add r2, sp, 0xC + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080D84FC @ =0x85000400 + str r2, [r0, 0x8] + ldr r2, [r0, 0x8] + ldr r2, _080D8500 @ =gWeatherFog1Tiles + ldr r3, [sp] + str r2, [r0] + str r3, [r0, 0x4] + ldr r2, _080D8504 @ =0x80000400 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080D8508 @ =gWeatherFog1Tilemap + bl LZDecompressVram + ldr r0, _080D850C @ =gUnknown_083970E8 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D84C4 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080D84C4: + ldr r1, _080D8510 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080D8514 @ =0x0000ffff + strh r1, [r0, 0x26] + ldr r1, _080D8518 @ =sub_80D851C + str r1, [r0] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D84E0: .4byte REG_BLDCNT +_080D84E4: .4byte 0x00003f42 +_080D84E8: .4byte REG_BG1CNT +_080D84EC: .4byte gUnknown_030042C0 +_080D84F0: .4byte gUnknown_030041B4 +_080D84F4: .4byte REG_BG1HOFS +_080D84F8: .4byte 0x040000d4 +_080D84FC: .4byte 0x85000400 +_080D8500: .4byte gWeatherFog1Tiles +_080D8504: .4byte 0x80000400 +_080D8508: .4byte gWeatherFog1Tilemap +_080D850C: .4byte gUnknown_083970E8 +_080D8510: .4byte gTasks +_080D8514: .4byte 0x0000ffff +_080D8518: .4byte sub_80D851C + thumb_func_end sub_80D8414 + + thumb_func_start sub_80D851C +sub_80D851C: @ 80D851C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, _080D8558 @ =gUnknown_030042C0 + ldr r4, _080D855C @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r4 + ldrh r0, [r1, 0x26] + ldrh r2, [r3] + adds r0, r2 + strh r0, [r3] + ldr r2, _080D8560 @ =gUnknown_030041B4 + movs r5, 0x20 + ldrsh r0, [r1, r5] + cmp r0, 0x4 + bls _080D854C + b _080D86D0 +_080D854C: + lsls r0, 2 + ldr r1, _080D8564 @ =_080D8568 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080D8558: .4byte gUnknown_030042C0 +_080D855C: .4byte gTasks +_080D8560: .4byte gUnknown_030041B4 +_080D8564: .4byte _080D8568 + .align 2, 0 +_080D8568: + .4byte _080D857C + .4byte _080D85C0 + .4byte _080D85E2 + .4byte _080D8624 + .4byte _080D86AC +_080D857C: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + ldr r1, _080D85B8 @ =gUnknown_083D9D98 + movs r2, 0x1A + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r1, [r0] + strh r1, [r4, 0x1E] + ldr r2, _080D85BC @ =REG_BLDALPHA + movs r0, 0x11 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r5, 0x1E + ldrsh r0, [r4, r5] + cmp r0, 0x5 + beq _080D85AC + b _080D86D0 +_080D85AC: + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x1E] + b _080D86D0 + .align 2, 0 +_080D85B8: .4byte gUnknown_083D9D98 +_080D85BC: .4byte REG_BLDALPHA +_080D85C0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r4 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x51 + bne _080D86D0 + movs r0, 0x5 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080D86D0 +_080D85E2: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r4 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080D86D0 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + ldr r2, _080D8620 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x1E + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080D86D0 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _080D86D0 + .align 2, 0 +_080D8620: .4byte REG_BLDALPHA +_080D8624: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + lsls r1, r6, 2 + mov r10, r1 + add r5, sp, 0xC + movs r7, 0 + ldr r1, _080D86E0 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r0, _080D86E4 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080D864A: + str r7, [sp, 0xC] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080D864A + str r7, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080D86E0 @ =0x040000d4 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080D86E8 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080D8698 + ldr r2, _080D86EC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080D8698: + ldr r0, _080D86F0 @ =gTasks + mov r5, r10 + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r3, _080D86F4 @ =gUnknown_030042C0 + ldr r2, _080D86F8 @ =gUnknown_030041B4 +_080D86AC: + movs r1, 0 + strh r1, [r3] + strh r1, [r2] + ldr r0, _080D86FC @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080D86EC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r6, 0 + bl move_anim_task_del +_080D86D0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D86E0: .4byte 0x040000d4 +_080D86E4: .4byte 0x85000400 +_080D86E8: .4byte 0x85000200 +_080D86EC: .4byte REG_BG1CNT +_080D86F0: .4byte gTasks +_080D86F4: .4byte gUnknown_030042C0 +_080D86F8: .4byte gUnknown_030041B4 +_080D86FC: .4byte REG_BLDCNT + thumb_func_end sub_80D851C + + thumb_func_start sub_80D8700 +sub_80D8700: @ 80D8700 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldr r6, _080D87E8 @ =gUnknown_03004B00 + ldrh r0, [r6] + strh r0, [r5, 0x2E] + ldr r0, _080D87EC @ =gUnknown_0202F7C8 + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + ldr r7, _080D87F0 @ =gUnknown_0202F7C9 + ldrb r0, [r7] + movs r1, 0x2 + bl sub_8077ABC + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bcs _080D8734 + movs r0, 0x80 + lsls r0, 8 + strh r0, [r5, 0x3C] +_080D8734: + ldr r3, _080D87F4 @ =gUnknown_02024A72 + ldrb r0, [r7] + adds r0, r3 + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080D8794 + ldrh r0, [r6, 0x2] + negs r0, r0 + strh r0, [r6, 0x2] + ldrh r0, [r6, 0x6] + negs r0, r0 + strh r0, [r6, 0x6] + movs r1, 0x3C + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080D8790 + mov r1, r8 + ldrb r0, [r1] + adds r0, r3 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080D8790 + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + ldr r2, _080D87F8 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + adds r1, r5, 0 + adds r1, 0x43 + strb r0, [r1] +_080D8790: + movs r0, 0x1 + strh r0, [r5, 0x3A] +_080D8794: + ldr r4, _080D87EC @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r6, _080D87E8 @ =gUnknown_03004B00 + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080D87FC + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080D87F0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + b _080D8824 + .align 2, 0 +_080D87E8: .4byte gUnknown_03004B00 +_080D87EC: .4byte gUnknown_0202F7C8 +_080D87F0: .4byte gUnknown_0202F7C9 +_080D87F4: .4byte gUnknown_02024A72 +_080D87F8: .4byte gSprites +_080D87FC: + ldrh r0, [r6, 0x2] + ldrh r1, [r5, 0x20] + adds r0, r1 + strh r0, [r5, 0x30] + ldr r4, _080D886C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r6, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x1 +_080D8824: + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x8] + adds r0, r6 + strh r0, [r5, 0x36] + ldrb r0, [r4] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 16 + ldrh r1, [r5, 0x3C] + orrs r0, r1 + strh r0, [r5, 0x3C] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D8858 + movs r0, 0x1 + strh r0, [r5, 0x3A] + adds r1, r5, 0 + adds r1, 0x43 + movs r0, 0x80 + strb r0, [r1] +_080D8858: + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080D8870 @ =sub_80D8874 + str r0, [r5, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D886C: .4byte gUnknown_0202F7C9 +_080D8870: .4byte sub_80D8874 + thumb_func_end sub_80D8700 + + thumb_func_start sub_80D8874 +sub_80D8874: @ 80D8874 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + movs r5, 0xFF + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x1 + beq _080D8968 + cmp r1, 0x1 + bgt _080D888E + cmp r1, 0 + beq _080D8896 + b _080D8AD0 +_080D888E: + cmp r1, 0x2 + bne _080D8894 + b _080D8A94 +_080D8894: + b _080D8AD0 +_080D8896: + adds r0, r4, 0 + bl sub_8078B5C + ldr r1, _080D88C0 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 4 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080D88C4 + ldrh r0, [r4, 0x38] + subs r0, 0x8 + b _080D88C8 + .align 2, 0 +_080D88C0: .4byte gSineTable +_080D88C4: + ldrh r0, [r4, 0x38] + adds r0, 0x8 +_080D88C8: + ands r0, r5 + strh r0, [r4, 0x38] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080D88D6 + b _080D8AD0 +_080D88D6: + movs r5, 0x50 + strh r5, [r4, 0x2E] + ldr r6, _080D8928 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x1D + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + ldr r0, _080D892C @ =gMain + ldr r2, _080D8930 @ =0x0000043d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D8938 + ldr r1, _080D8934 @ =gUnknown_02024A72 + ldrb r0, [r6] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8938 + movs r0, 0xCC + strh r0, [r4, 0x38] + b _080D893A + .align 2, 0 +_080D8928: .4byte gUnknown_0202F7C9 +_080D892C: .4byte gMain +_080D8930: .4byte 0x0000043d +_080D8934: .4byte gUnknown_02024A72 +_080D8938: + strh r5, [r4, 0x38] +_080D893A: + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080D8964 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r0, 3 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + b _080D8AD0 + .align 2, 0 +_080D8964: .4byte gSineTable +_080D8968: + adds r0, r4, 0 + bl sub_8078B5C + ldr r1, _080D89C8 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + asrs r0, 3 + ldrh r2, [r4, 0x24] + adds r0, r2 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + adds r0, 0x40 + lsls r0, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + negs r0, r0 + asrs r0, 8 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r0, _080D89CC @ =gMain + ldr r2, _080D89D0 @ =0x0000043d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D89F2 + ldrh r1, [r4, 0x38] + adds r0, r1, 0 + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + adds r3, r1, 0 + cmp r0, 0x7F + bhi _080D89D4 + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + b _080D89DC + .align 2, 0 +_080D89C8: .4byte gSineTable +_080D89CC: .4byte gMain +_080D89D0: .4byte 0x0000043d +_080D89D4: + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 24 + adds r1, 0x1 +_080D89DC: + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r0, r3, 0x4 + b _080D8A12 +_080D89F2: + ldrh r0, [r4, 0x38] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7F + bhi _080D8A06 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x80 + b _080D8A0C +_080D8A06: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x8C +_080D8A0C: + strb r0, [r1] + ldrh r0, [r4, 0x38] + subs r0, 0x4 +_080D8A12: + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bgt _080D8AD0 + movs r2, 0 + movs r0, 0xC0 + lsls r0, 2 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, 0x4 + strh r0, [r4, 0x36] + ldr r0, _080D8A68 @ =gMain + ldr r1, _080D8A6C @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080D8A78 + ldr r1, _080D8A70 @ =gUnknown_02024A72 + ldr r0, _080D8A74 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8A78 + movs r0, 0x80 + lsls r0, 1 + b _080D8A7A + .align 2, 0 +_080D8A68: .4byte gMain +_080D8A6C: .4byte 0x0000043d +_080D8A70: .4byte gUnknown_02024A72 +_080D8A74: .4byte gUnknown_0202F7C9 +_080D8A78: + ldr r0, _080D8A90 @ =0x0000fff0 +_080D8A7A: + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x3C] + strh r1, [r4, 0x26] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl sub_8078BD4 + b _080D8AD0 + .align 2, 0 +_080D8A90: .4byte 0x0000fff0 +_080D8A94: + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080D8AD0 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D8AC2 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080D8AC2: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080D8AD8 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080D8AD0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8AD8: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80D8874 + + thumb_func_start sub_80D8ADC +sub_80D8ADC: @ 80D8ADC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080D8AF0 @ =gTasks + adds r1, r0 + ldr r0, _080D8AF4 @ =sub_80D8AF8 + str r0, [r1] + bx lr + .align 2, 0 +_080D8AF0: .4byte gTasks +_080D8AF4: .4byte sub_80D8AF8 + thumb_func_end sub_80D8ADC + + thumb_func_start sub_80D8AF8 +sub_80D8AF8: @ 80D8AF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080D8B1C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080D8B3C + cmp r5, 0x1 + bgt _080D8B20 + cmp r5, 0 + beq _080D8B26 + b _080D8BA0 + .align 2, 0 +_080D8B1C: .4byte gTasks +_080D8B20: + cmp r5, 0x2 + beq _080D8B92 + b _080D8BA0 +_080D8B26: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080D8BA0 + strh r5, [r4, 0x10] + strh r5, [r4, 0x12] + strh r5, [r4, 0xC] + b _080D8B78 +_080D8B3C: + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080D8B8C + ldrb r0, [r4, 0xE] + ldrb r1, [r4, 0xC] + movs r3, 0x1 + bl sub_80D8BA8 + lsls r0, 24 + cmp r0, 0 + beq _080D8B5C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_080D8B5C: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080D8B88 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080D8B80 +_080D8B78: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D8BA0 +_080D8B80: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + b _080D8BA0 +_080D8B88: + strh r5, [r4, 0x12] + b _080D8BA0 +_080D8B8C: + subs r0, r1, 0x1 + strh r0, [r4, 0x12] + b _080D8BA0 +_080D8B92: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D8BA0 + adds r0, r2, 0 + bl move_anim_task_del +_080D8BA0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D8AF8 + + thumb_func_start sub_80D8BA8 +sub_80D8BA8: @ 80D8BA8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + movs r1, 0 + str r1, [sp, 0x4] + ldr r1, _080D8C20 @ =gUnknown_083D9DC4 + lsrs r0, 22 + adds r4, r0, r1 + ldrb r0, [r4, 0x3] + lsls r0, 24 + asrs r0, 28 + mov r8, r0 + cmp r0, 0x2 + beq _080D8C94 + ldrh r0, [r4, 0x2] + lsls r0, 20 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080D8C94 + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r8 + cmp r1, 0 + beq _080D8C24 + cmp r1, 0x1 + beq _080D8C5A + b _080D8CA6 + .align 2, 0 +_080D8C20: .4byte gUnknown_083D9DC4 +_080D8C24: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r0 + b _080D8C8E +_080D8C5A: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r7, 16 + asrs r1, 16 + adds r1, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r5, 0 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x6 + bl __divsi3 + lsls r1, r6, 16 + asrs r1, 16 + adds r1, r0 +_080D8C8E: + lsls r1, 16 + lsrs r6, r1, 16 + b _080D8CA6 +_080D8C94: + ldrh r0, [r4] + lsls r0, 22 + asrs r0, 6 + lsrs r7, r0, 16 + ldr r0, [r4] + lsls r0, 12 + asrs r0, 22 + lsls r0, 16 + lsrs r6, r0, 16 +_080D8CA6: + lsls r0, r6, 16 + asrs r0, 16 + adds r0, 0x8 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r1, r7, 16 + asrs r1, 16 + subs r1, r0 + ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C + lsls r1, 16 + asrs r1, 16 + movs r2, 0x8 + negs r2, r2 + movs r3, 0x12 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080D8D08 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r0, _080D8D04 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + mov r1, r9 + bl StartSpriteAffineAnim + mov r0, sp + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + strh r7, [r4, 0x34] + strh r6, [r4, 0x36] + mov r1, r9 + strh r1, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + mov r1, r10 + strh r1, [r4, 0x3C] + movs r0, 0x1 + b _080D8D0A + .align 2, 0 +_080D8D00: .4byte gSpriteTemplate_83D9E3C +_080D8D04: .4byte gSprites +_080D8D08: + movs r0, 0 +_080D8D0A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80D8BA8 + + thumb_func_start sub_80D8D1C +sub_80D8D1C: @ 80D8D1C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + adds r2, r1, 0 + adds r2, 0x8 + strh r2, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _080D8D46 + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080D8DF6 +_080D8D46: + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080D8DC8 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D8DC8 + ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78 + movs r2, 0x34 + ldrsh r1, [r4, r2] + movs r3, 0x36 + ldrsh r2, [r4, r3] + adds r3, r4, 0 + adds r3, 0x43 + ldrb r3, [r3] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + cmp r0, 0x40 + beq _080D8DAA + ldr r2, _080D8DC0 @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080D8DC4 @ =sub_80D8E00 + str r1, [r0] + movs r3, 0x2E + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3A] + strh r1, [r0, 0x3A] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0x3C] + strh r1, [r0, 0x3C] +_080D8DAA: + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _080D8DF6 + .align 2, 0 +_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 +_080D8DC0: .4byte gSprites +_080D8DC4: .4byte sub_80D8E00 +_080D8DC8: + ldr r3, _080D8DFC @ =gTasks + movs r2, 0x3C + ldrsh r1, [r4, r2] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D8DF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8DFC: .4byte gTasks + thumb_func_end sub_80D8D1C + + thumb_func_start sub_80D8E00 +sub_80D8E00: @ 80D8E00 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080D8E40 + ldr r3, _080D8E48 @ =gTasks + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x3A + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080D8E40: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8E48: .4byte gTasks + thumb_func_end sub_80D8E00 + + thumb_func_start unc_080B06FC +unc_080B06FC: @ 80D8E4C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080D8ECC @ =gUnknown_0202F7B4 + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + subs r0, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080D8E6A + movs r1, 0x4 +_080D8E6A: + adds r0, r5, 0 + bl StartSpriteAffineAnim + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r6, _080D8ED0 @ =gUnknown_03004B00 + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080D8ED4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D8E92 + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_080D8E92: + ldr r4, _080D8ED8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r6, 0xA] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080D8EDC @ =sub_80D8EE0 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8ECC: .4byte gUnknown_0202F7B4 +_080D8ED0: .4byte gUnknown_03004B00 +_080D8ED4: .4byte gUnknown_0202F7C8 +_080D8ED8: .4byte gUnknown_0202F7C9 +_080D8EDC: .4byte sub_80D8EE0 + thumb_func_end unc_080B06FC + + thumb_func_start sub_80D8EE0 +sub_80D8EE0: @ 80D8EE0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D8F02 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _080D8F08 @ =sub_8078600 + str r0, [r4, 0x1C] + ldr r1, _080D8F0C @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080D8F02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D8F08: .4byte sub_8078600 +_080D8F0C: .4byte move_anim_8072740 + thumb_func_end sub_80D8EE0 + + thumb_func_start sub_80D8F10 +sub_80D8F10: @ 80D8F10 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r3, _080D8F64 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D8F68 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + bl Random + movs r5, 0xFF + ands r5, r0 + movs r0, 0x80 + lsls r0, 1 + adds r6, r0, 0 + orrs r5, r6 + bl Random + ldr r1, _080D8F6C @ =0x000001ff + ands r1, r0 + adds r0, r1, 0 + cmp r0, 0xFF + ble _080D8F56 + subs r0, r6, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080D8F56: + strh r5, [r4, 0x30] + strh r1, [r4, 0x32] + ldr r0, _080D8F70 @ =sub_80D8F74 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D8F64: .4byte 0x000003ff +_080D8F68: .4byte 0xfffffc00 +_080D8F6C: .4byte 0x000001ff +_080D8F70: .4byte sub_80D8F74 + thumb_func_end sub_80D8F10 + + thumb_func_start sub_80D8F74 +sub_80D8F74: @ 80D8F74 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r3, r0, r1 + strh r3, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r4, [r2, 0x36] + adds r1, r4 + strh r1, [r2, 0x36] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080D8F98 + lsls r0, r3, 16 + asrs r0, 24 + negs r0, r0 + b _080D8F9C +_080D8F98: + lsls r0, r3, 16 + asrs r0, 24 +_080D8F9C: + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _080D8FBA + adds r0, r2, 0 + bl move_anim_8072740 +_080D8FBA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D8F74 + + thumb_func_start sub_80D8FC0 +sub_80D8FC0: @ 80D8FC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D8FE8 @ =gUnknown_03004B00 + ldrb r3, [r1] + lsls r3, 1 + adds r3, r1 + ldr r1, _080D8FEC @ =gUnknown_0202F7B4 + ldr r1, [r1] + ldrb r1, [r1, 0x11] + lsrs r2, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r2, r1 + subs r2, 0x1 + strh r2, [r3] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080D8FE8: .4byte gUnknown_03004B00 +_080D8FEC: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80D8FC0 + + thumb_func_start unc_080B08A0 +unc_080B08A0: @ 80D8FF0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9020 @ =gUnknown_03004B00 + movs r0, 0 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_807867C + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0xF + strh r0, [r4, 0x2E] + ldr r0, _080D9024 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080D9028 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9020: .4byte gUnknown_03004B00 +_080D9024: .4byte sub_80782D8 +_080D9028: .4byte move_anim_8072740 + thumb_func_end unc_080B08A0 + + thumb_func_start sub_80D902C +sub_80D902C: @ 80D902C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9070 @ =gUnknown_03004B00 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080D9054 + ldr r0, _080D9074 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9054 + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x6] + negs r0, r0 + strh r0, [r4, 0x6] +_080D9054: + ldr r4, _080D9070 @ =gUnknown_03004B00 + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r4, 0xC] + adds r0, r5, 0 + bl sub_8079534 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9070: .4byte gUnknown_03004B00 +_080D9074: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80D902C + + thumb_func_start sub_80D9078 +sub_80D9078: @ 80D9078 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9094 + ldr r0, _080D90A0 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080D9094: + adds r0, r4, 0 + bl sub_80D902C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D90A0: .4byte gUnknown_03004B00 + thumb_func_end sub_80D9078 + + thumb_func_start sub_80D90A4 +sub_80D90A4: @ 80D90A4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D90C4 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x8] + bl StartSpriteAnim + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D90C8 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080D90D0 + .align 2, 0 +_080D90C4: .4byte gUnknown_03004B00 +_080D90C8: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080D90D0: + ldr r0, _080D90E8 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0x2E] + ldr r0, _080D90EC @ =sub_80782D8 + str r0, [r5, 0x1C] + ldr r1, _080D90F0 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D90E8: .4byte gUnknown_03004B00 +_080D90EC: .4byte sub_80782D8 +_080D90F0: .4byte move_anim_8072740 + thumb_func_end sub_80D90A4 + + thumb_func_start sub_80D90F4 +sub_80D90F4: @ 80D90F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, _080D9110 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + mov r9, r0 + cmp r1, 0 + bne _080D9118 + ldr r0, _080D9114 @ =gUnknown_0202F7C8 + b _080D911A + .align 2, 0 +_080D9110: .4byte gUnknown_03004B00 +_080D9114: .4byte gUnknown_0202F7C8 +_080D9118: + ldr r0, _080D9260 @ =gUnknown_0202F7C9 +_080D911A: + ldrb r0, [r0] + mov r8, r0 + mov r4, r9 + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080D9138 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x4] +_080D9138: + ldrb r1, [r4, 0x4] + adds r0, r5, 0 + bl StartSpriteAnim + mov r0, r8 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + mov r0, r8 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + mov r0, r8 + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r6, r1, 16 + mov r0, r8 + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080D9182 + adds r0, 0x3 +_080D9182: + lsls r4, r0, 14 + lsrs r4, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + movs r7, 0x1 + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080D91C4 + lsls r0, r6, 16 + negs r0, r0 + lsrs r6, r0, 16 +_080D91C4: + bl Random + adds r1, r7, 0 + ands r1, r0 + cmp r1, 0 + beq _080D91D6 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080D91D6: + ldr r0, _080D9264 @ =gUnknown_02024A72 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _080D91EC + lsls r0, r4, 16 + ldr r1, _080D9268 @ =0xfff00000 + adds r0, r1 + lsrs r4, r0, 16 +_080D91EC: + lsls r0, r6, 16 + asrs r0, 16 + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + mov r1, r9 + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8 + movs r2, 0x20 + ldrsh r1, [r5, r2] + movs r3, 0x22 + ldrsh r2, [r5, r3] + adds r3, r5, 0 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x3C] + cmp r0, 0x40 + beq _080D9250 + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080D9270 @ =gSprites + adds r0, r4 + movs r1, 0 + bl StartSpriteAffineAnim + movs r2, 0x3C + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080D9274 @ =SpriteCallbackDummy + str r1, [r0] +_080D9250: + ldr r0, _080D9278 @ =sub_80D927C + str r0, [r5, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D9260: .4byte gUnknown_0202F7C9 +_080D9264: .4byte gUnknown_02024A72 +_080D9268: .4byte 0xfff00000 +_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 +_080D9270: .4byte gSprites +_080D9274: .4byte SpriteCallbackDummy +_080D9278: .4byte sub_80D927C + thumb_func_end sub_80D90F4 + + thumb_func_start sub_80D927C +sub_80D927C: @ 80D927C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080D92C4 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x40 + beq _080D92B8 + ldr r4, _080D92C0 @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + movs r0, 0x3C + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite +_080D92B8: + adds r0, r5, 0 + bl move_anim_8072740 + b _080D92C8 + .align 2, 0 +_080D92C0: .4byte gSprites +_080D92C4: + subs r0, r1, 0x1 + strh r0, [r5, 0x2E] +_080D92C8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80D927C + + thumb_func_start sub_80D92D0 +sub_80D92D0: @ 80D92D0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + movs r0, 0x1E + strh r0, [r4, 0x2E] + ldr r0, _080D92F0 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D92F4 + ldrh r0, [r4, 0x20] + subs r0, 0x14 + strh r0, [r4, 0x32] + b _080D9306 + .align 2, 0 +_080D92F0: .4byte gUnknown_03004B00 +_080D92F4: + ldrh r0, [r4, 0x20] + adds r0, 0x14 + strh r0, [r4, 0x32] + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_080D9306: + ldrh r0, [r4, 0x22] + subs r0, 0x14 + strh r0, [r4, 0x36] + ldr r0, _080D9320 @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080D9324 @ =sub_80D9328 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9320: .4byte sub_8078B34 +_080D9324: .4byte sub_80D9328 + thumb_func_end sub_80D92D0 + + thumb_func_start sub_80D9328 +sub_80D9328: @ 80D9328 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x38] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _080D9368 + ldrh r2, [r5, 0x20] + ldrh r4, [r5, 0x24] + subs r0, r2, r4 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x22] + ldrh r3, [r5, 0x26] + subs r0, r1, r3 + strh r0, [r5, 0x36] + movs r0, 0x8 + strh r0, [r5, 0x2E] + adds r2, r4 + strh r2, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x22] + strh r6, [r5, 0x26] + strh r6, [r5, 0x24] + ldr r0, _080D9370 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080D9374 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080D9368: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9370: .4byte sub_8078B34 +_080D9374: .4byte move_anim_8072740 + thumb_func_end sub_80D9328 + + thumb_func_start sub_80D9378 +sub_80D9378: @ 80D9378 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080D93F4 @ =gUnknown_0202F7C8 + ldrb r1, [r0] + movs r0, 0x2 + ldr r2, _080D93F8 @ =gUnknown_0202F7C9 + eors r0, r1 + ldrb r1, [r2] + cmp r0, r1 + bne _080D93A4 + ldrb r0, [r2] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080D93A4 + ldr r1, _080D93FC @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] +_080D93A4: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D93F4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D93C2 + ldr r1, _080D93FC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080D93C2: + ldr r4, _080D93FC @ =gUnknown_03004B00 + ldrh r0, [r4, 0x6] + movs r5, 0 + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x3A] + strh r5, [r6, 0x3C] + ldr r0, _080D9400 @ =sub_80D9404 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D93F4: .4byte gUnknown_0202F7C8 +_080D93F8: .4byte gUnknown_0202F7C9 +_080D93FC: .4byte gUnknown_03004B00 +_080D9400: .4byte sub_80D9404 + thumb_func_end sub_80D9378 + + thumb_func_start sub_80D9404 +sub_80D9404: @ 80D9404 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _080D9430 + ldrh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + ldrh r2, [r4, 0x3C] + adds r0, r2 + strh r0, [r4, 0x3C] + b _080D9436 +_080D9430: + adds r0, r4, 0 + bl move_anim_8072740 +_080D9436: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9404 + + thumb_func_start sub_80D943C +sub_80D943C: @ 80D943C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r5, _080D9468 @ =gUnknown_03004B00 + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldr r0, _080D946C @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080D9470 @ =sub_80D9474 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9468: .4byte gUnknown_03004B00 +_080D946C: .4byte sub_80782D8 +_080D9470: .4byte sub_80D9474 + thumb_func_end sub_80D943C + + thumb_func_start sub_80D9474 +sub_80D9474: @ 80D9474 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl StartSpriteAffineAnim + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r0, _080D94A0 @ =sub_80782D8 + str r0, [r4, 0x1C] + ldr r1, _080D94A4 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D94A0: .4byte sub_80782D8 +_080D94A4: .4byte move_anim_8072740 + thumb_func_end sub_80D9474 + + thumb_func_start sub_80D94A8 +sub_80D94A8: @ 80D94A8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080D94C4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080D94C8 @ =sub_80D94CC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D94C4: .4byte gUnknown_03004B00 +_080D94C8: .4byte sub_80D94CC + thumb_func_end sub_80D94A8 + + thumb_func_start sub_80D94CC +sub_80D94CC: @ 80D94CC + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D9510 + movs r0, 0x6 + strh r0, [r5, 0x2E] + ldr r4, _080D9518 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080D951C @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080D9520 @ =sub_80D9524 + adds r0, r5, 0 + bl oamt_set_x3A_32 +_080D9510: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9518: .4byte gUnknown_0202F7C9 +_080D951C: .4byte sub_8078B34 +_080D9520: .4byte sub_80D9524 + thumb_func_end sub_80D94CC + + thumb_func_start sub_80D9524 +sub_80D9524: @ 80D9524 + push {lr} + movs r1, 0xF + strh r1, [r0, 0x2E] + ldr r1, _080D9538 @ =sub_80782D8 + str r1, [r0, 0x1C] + ldr r1, _080D953C @ =move_anim_8072740 + bl oamt_set_x3A_32 + pop {r0} + bx r0 + .align 2, 0 +_080D9538: .4byte sub_80782D8 +_080D953C: .4byte move_anim_8072740 + thumb_func_end sub_80D9524 + + thumb_func_start sub_80D9540 +sub_80D9540: @ 80D9540 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D956C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r1, _080D9568 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080D95C8 + .align 2, 0 +_080D9568: .4byte gUnknown_03004B00 +_080D956C: + ldrh r0, [r4, 0x30] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + cmp r0, 0x64 + ble _080D95BA + movs r0, 0x34 + ldrsh r1, [r4, r0] + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r0, 1 + lsls r0, 1 + subs r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + movs r0, 0x1 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080D95BA: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _080D95C8 + adds r0, r4, 0 + bl move_anim_8072740 +_080D95C8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9540 + + thumb_func_start sub_80D95D0 +sub_80D95D0: @ 80D95D0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D95E4 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D95EC + ldr r4, _080D95E8 @ =gUnknown_0202F7C8 + b _080D95EE + .align 2, 0 +_080D95E4: .4byte gUnknown_03004B00 +_080D95E8: .4byte gUnknown_0202F7C8 +_080D95EC: + ldr r4, _080D9634 @ =gUnknown_0202F7C9 +_080D95EE: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D9638 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x4] + ldrh r3, [r5, 0x22] + adds r0, r3 + strh r0, [r5, 0x22] + strh r2, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldr r0, _080D963C @ =sub_80D9640 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9634: .4byte gUnknown_0202F7C9 +_080D9638: .4byte gUnknown_03004B00 +_080D963C: .4byte sub_80D9640 + thumb_func_end sub_80D95D0 + + thumb_func_start sub_80D9640 +sub_80D9640: @ 80D9640 + push {lr} + adds r1, r0, 0 + movs r0, 0x2E + ldrsh r2, [r1, r0] + cmp r2, 0 + beq _080D9652 + cmp r2, 0x1 + beq _080D9676 + b _080D96B0 +_080D9652: + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080D96B0 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080D966E + adds r0, r1, 0 + bl move_anim_8072740 + b _080D96B0 +_080D966E: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _080D96B0 +_080D9676: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D969E + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x34] + adds r0, 0x1 + strh r0, [r1, 0x34] + ands r0, r2 + lsls r0, 16 + cmp r0, 0 + beq _080D969A + movs r0, 0x2 + b _080D969C +_080D969A: + ldr r0, _080D96B4 @ =0x0000fffe +_080D969C: + strh r0, [r1, 0x24] +_080D969E: + ldrh r0, [r1, 0x32] + subs r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + cmp r0, 0 + bne _080D96B0 + adds r0, r1, 0 + bl move_anim_8072740 +_080D96B0: + pop {r0} + bx r0 + .align 2, 0 +_080D96B4: .4byte 0x0000fffe + thumb_func_end sub_80D9640 + + thumb_func_start sub_80D96B8 +sub_80D96B8: @ 80D96B8 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080D96DC @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080D96E4 + ldr r4, _080D96E0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x4] + adds r0, r2 + b _080D96F6 + .align 2, 0 +_080D96DC: .4byte gUnknown_03004B00 +_080D96E0: .4byte gUnknown_0202F7C8 +_080D96E4: + ldr r4, _080D9740 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 +_080D96F6: + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x22] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + ldr r3, _080D9744 @ =gUnknown_03004B00 + movs r4, 0x2 + ldrsh r0, [r3, r4] + lsls r0, 4 + adds r1, r0 + ldr r4, _080D9748 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080D974C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r1, 0 + movs r0, 0 + strh r0, [r5, 0x2E] + movs r2, 0x2 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _080D9764 + cmp r0, 0x1 + bgt _080D9750 + cmp r0, 0 + beq _080D975A + b _080D978A + .align 2, 0 +_080D9740: .4byte gUnknown_0202F7C9 +_080D9744: .4byte gUnknown_03004B00 +_080D9748: .4byte 0x000003ff +_080D974C: .4byte 0xfffffc00 +_080D9750: + cmp r0, 0x2 + beq _080D9774 + cmp r0, 0x3 + beq _080D9784 + b _080D978A +_080D975A: + ldr r0, _080D9760 @ =0x0000fffd + b _080D9784 + .align 2, 0 +_080D9760: .4byte 0x0000fffd +_080D9764: + movs r0, 0x3 + strh r0, [r5, 0x3A] + ldr r0, _080D9770 @ =0x0000fffd + strh r0, [r5, 0x3C] + b _080D9792 + .align 2, 0 +_080D9770: .4byte 0x0000fffd +_080D9774: + ldr r0, _080D9780 @ =0x0000fffd + strh r0, [r5, 0x3A] + movs r0, 0x3 + strh r0, [r5, 0x3C] + b _080D9792 + .align 2, 0 +_080D9780: .4byte 0x0000fffd +_080D9784: + strh r0, [r5, 0x3A] + strh r0, [r5, 0x3C] + b _080D9792 +_080D978A: + adds r0, r5, 0 + bl move_anim_8072740 + b _080D9796 +_080D9792: + ldr r0, _080D979C @ =sub_80D97A0 + str r0, [r5, 0x1C] +_080D9796: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D979C: .4byte sub_80D97A0 + thumb_func_end sub_80D96B8 + + thumb_func_start sub_80D97A0 +sub_80D97A0: @ 80D97A0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x3A] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x3C] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D97C8 + adds r0, r1, 0 + bl move_anim_8072740 +_080D97C8: + pop {r0} + bx r0 + thumb_func_end sub_80D97A0 + + thumb_func_start sub_80D97CC +sub_80D97CC: @ 80D97CC + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D9818 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9828 + ldr r4, _080D981C @ =gUnknown_02024C07 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D9820 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080D9824 @ =gUnknown_0202F7C9 + b _080D9844 + .align 2, 0 +_080D9818: .4byte gUnknown_03004B00 +_080D981C: .4byte gUnknown_02024C07 +_080D9820: .4byte gUnknown_0202F7C8 +_080D9824: .4byte gUnknown_0202F7C9 +_080D9828: + ldr r0, _080D9860 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + ldr r0, _080D9864 @ =gUnknown_0202F7C8 +_080D9844: + ldrb r0, [r0] + strh r0, [r5, 0x3C] + movs r0, 0 + strh r0, [r5, 0x2E] + movs r0, 0xC + strh r0, [r5, 0x30] + movs r0, 0x8 + strh r0, [r5, 0x32] + ldr r0, _080D9868 @ =sub_80D986C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9860: .4byte gUnknown_0202F7C9 +_080D9864: .4byte gUnknown_0202F7C8 +_080D9868: .4byte sub_80D986C + thumb_func_end sub_80D97CC + + thumb_func_start sub_80D986C +sub_80D986C: @ 80D986C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB4 + bne _080D98C6 + ldr r1, _080D98CC @ =REG_BLDCNT + movs r0, 0 + strh r0, [r1] + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x3C] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D98D0 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080D98D4 @ =sub_8078BB8 + str r0, [r4, 0x1C] +_080D98C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D98CC: .4byte REG_BLDCNT +_080D98D0: .4byte move_anim_8074EE0 +_080D98D4: .4byte sub_8078BB8 + thumb_func_end sub_80D986C + + thumb_func_start sub_80D98D8 +sub_80D98D8: @ 80D98D8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9924 @ =gUnknown_03004B00 + ldrh r0, [r4] + strh r0, [r5, 0x20] + movs r2, 0x78 + strh r2, [r5, 0x22] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x2E] + adds r0, r5, 0 + adds r0, 0x36 + adds r1, r5, 0 + adds r1, 0x38 + lsls r2, 8 + bl sub_8079BF4 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x3A] + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x4 + ldrsh r0, [r4, r3] + lsls r0, 2 + adds r1, r0 + ldr r3, _080D9928 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080D992C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r0, _080D9930 @ =sub_80D9934 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9924: .4byte gUnknown_03004B00 +_080D9928: .4byte 0x000003ff +_080D992C: .4byte 0xfffffc00 +_080D9930: .4byte sub_80D9934 + thumb_func_end sub_80D98D8 + + thumb_func_start sub_80D9934 +sub_80D9934: @ 80D9934 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _080D9986 + movs r2, 0x36 + ldrsh r0, [r7, r2] + movs r2, 0x38 + ldrsh r1, [r7, r2] + bl sub_8079BFC + adds r4, r0, 0 + movs r1, 0x3A + ldrsh r0, [r7, r1] + subs r4, r0 + adds r0, r7, 0 + adds r0, 0x36 + adds r1, r7, 0 + adds r1, 0x38 + adds r2, r4, 0 + bl sub_8079BF4 + asrs r4, 8 + strh r4, [r7, 0x22] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x8 + negs r0, r0 + cmp r4, r0 + bge _080D997E + adds r0, r7, 0 + bl move_anim_8072740 + b _080D99DC +_080D997E: + ldrh r0, [r7, 0x2E] + subs r0, 0x1 + strh r0, [r7, 0x2E] + b _080D99DC +_080D9986: + ldr r4, _080D99E8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r2, _080D99EC @ =gUnknown_0202F7C9 + mov r8, r2 + ldrb r0, [r2] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + subs r4, r6 + strh r4, [r7, 0x2E] + lsrs r0, 24 + subs r0, r5 + strh r0, [r7, 0x30] + ldrh r0, [r7, 0x20] + lsls r0, 4 + strh r0, [r7, 0x32] + ldrh r0, [r7, 0x22] + lsls r0, 4 + strh r0, [r7, 0x34] + ldr r0, _080D99F0 @ =sub_80D99F4 + str r0, [r7, 0x1C] +_080D99DC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D99E8: .4byte gUnknown_0202F7C8 +_080D99EC: .4byte gUnknown_0202F7C9 +_080D99F0: .4byte sub_80D99F4 + thumb_func_end sub_80D9934 + + thumb_func_start sub_80D99F4 +sub_80D99F4: @ 80D99F4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x34] + adds r1, r3 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080D9A2E + adds r1, r3, 0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + blt _080D9A2E + cmp r1, 0x78 + ble _080D9A34 +_080D9A2E: + adds r0, r2, 0 + bl move_anim_8072740 +_080D9A34: + pop {r0} + bx r0 + thumb_func_end sub_80D99F4 + + thumb_func_start sub_80D9A38 +sub_80D9A38: @ 80D9A38 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080D9A6C @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9A7C + ldr r4, _080D9A70 @ =gUnknown_02024C07 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r0, _080D9A74 @ =gUnknown_0202F7C9 + ldrb r4, [r0] + ldr r0, _080D9A78 @ =gUnknown_0202F7C8 + b _080D9A82 + .align 2, 0 +_080D9A6C: .4byte gUnknown_03004B00 +_080D9A70: .4byte gUnknown_02024C07 +_080D9A74: .4byte gUnknown_0202F7C9 +_080D9A78: .4byte gUnknown_0202F7C8 +_080D9A7C: + ldr r0, _080D9AB4 @ =gUnknown_0202F7C8 + ldrb r4, [r0] + ldr r0, _080D9AB8 @ =gUnknown_0202F7C9 +_080D9A82: + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9ABC + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x8 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x47 + b _080D9AD6 + .align 2, 0 +_080D9AB4: .4byte gUnknown_0202F7C8 +_080D9AB8: .4byte gUnknown_0202F7C9 +_080D9ABC: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9ADC + ldrb r2, [r5, 0x3] + lsls r1, r2, 26 + lsrs r1, 27 + movs r0, 0x18 + orrs r1, r0 + lsls r1, 1 + subs r0, 0x57 +_080D9AD6: + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_080D9ADC: + movs r0, 0x10 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _080D9B1C @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080D9B20 @ =sub_8078BB8 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9B1C: .4byte move_anim_8072740 +_080D9B20: .4byte sub_8078BB8 + thumb_func_end sub_80D9A38 + + thumb_func_start sub_80D9B24 +sub_80D9B24: @ 80D9B24 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080D9B3A + adds r0, r4, 0 + bl move_anim_8072740 +_080D9B3A: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9B24 + + thumb_func_start sub_80D9B48 +sub_80D9B48: @ 80D9B48 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080D9BC4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r1, _080D9BC8 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1] + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x2] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x36] + ldr r0, _080D9BCC @ =gUnknown_0202F7C4 + ldrb r6, [r0] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9B92 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080D9B92: + movs r0, 0x1 + ands r6, r0 + cmp r6, 0 + beq _080D9BA6 + ldrh r0, [r5, 0x32] + negs r0, r0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] +_080D9BA6: + ldrh r1, [r5, 0x30] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + ldrh r0, [r5, 0x32] + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x26] + ldr r0, _080D9BD0 @ =sub_80D9B24 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9BC4: .4byte gUnknown_0202F7C9 +_080D9BC8: .4byte gUnknown_03004B00 +_080D9BCC: .4byte gUnknown_0202F7C4 +_080D9BD0: .4byte sub_80D9B24 + thumb_func_end sub_80D9B48 + + thumb_func_start sub_80D9BD4 +sub_80D9BD4: @ 80D9BD4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D9BEC @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D9BF0 + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080D9BF8 + .align 2, 0 +_080D9BEC: .4byte gUnknown_03004B00 +_080D9BF0: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080D9BF8: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080D9C0C + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + b _080D9C22 +_080D9C0C: + ldr r0, _080D9C34 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9C22 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080D9C22: + ldr r0, _080D9C38 @ =sub_8078600 + str r0, [r4, 0x1C] + ldr r1, _080D9C3C @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9C34: .4byte gUnknown_0202F7C8 +_080D9C38: .4byte sub_8078600 +_080D9C3C: .4byte move_anim_8072740 + thumb_func_end sub_80D9BD4 + + thumb_func_start sub_80D9C40 +sub_80D9C40: @ 80D9C40 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080D9C7A + ldrh r0, [r4, 0x30] + adds r0, 0x28 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x2 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x28 + ble _080D9C7A + adds r0, r4, 0 + bl move_anim_8072740 +_080D9C7A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9C40 + + thumb_func_start sub_80D9C80 +sub_80D9C80: @ 80D9C80 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080D9CB0 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080D9CB8 + cmp r0, 0x1 + bgt _080D9CD2 + cmp r0, 0 + bne _080D9CD2 + movs r0, 0 + bl sub_80789D4 + ldr r0, _080D9CB4 @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r4, 0x18] + b _080D9CCA + .align 2, 0 +_080D9CB0: .4byte gTasks +_080D9CB4: .4byte gUnknown_03004B00 +_080D9CB8: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080D9CDE +_080D9CCA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D9CDE +_080D9CD2: + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r1, [r4, 0x1A] + adds r0, r1 + strh r0, [r4, 0x1A] +_080D9CDE: + movs r2, 0xB0 + lsls r2, 4 + adds r0, r2, 0 + ldrh r1, [r4, 0x1C] + adds r0, r1 + strh r0, [r4, 0x1C] + ldr r0, _080D9D0C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080D9D14 + ldr r1, _080D9D10 @ =gUnknown_030041B0 + ldrh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + adds r7, r1, 0 + b _080D9D24 + .align 2, 0 +_080D9D0C: .4byte gUnknown_0202F7C9 +_080D9D10: .4byte gUnknown_030041B0 +_080D9D14: + ldr r2, _080D9D64 @ =gUnknown_030041B0 + ldrh r1, [r4, 0x1A] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + adds r7, r2, 0 +_080D9D24: + ldr r3, _080D9D68 @ =gUnknown_030041B8 + ldrh r2, [r4, 0x1C] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + movs r0, 0xFF + ldrb r1, [r4, 0x1A] + movs r5, 0 + strh r1, [r4, 0x1A] + ands r0, r2 + strh r0, [r4, 0x1C] + ldr r0, _080D9D6C @ =gUnknown_03004B00 + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080D9D5C + strh r5, [r7] + strh r5, [r3] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r6, 0 + bl move_anim_task_del +_080D9D5C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D9D64: .4byte gUnknown_030041B0 +_080D9D68: .4byte gUnknown_030041B8 +_080D9D6C: .4byte gUnknown_03004B00 + thumb_func_end sub_80D9C80 + + thumb_func_start sub_80D9D70 +sub_80D9D70: @ 80D9D70 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080D9DC4 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D9D86 + adds r0, r5, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080D9D86: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x2E] + ldr r4, _080D9DC8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080D9DCC @ =0x0000ffe2 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080D9DD0 @ =sub_80D9DD4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9DC4: .4byte gUnknown_03004B00 +_080D9DC8: .4byte gUnknown_0202F7C9 +_080D9DCC: .4byte 0x0000ffe2 +_080D9DD0: .4byte sub_80D9DD4 + thumb_func_end sub_80D9D70 + + thumb_func_start sub_80D9DD4 +sub_80D9DD4: @ 80D9DD4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D9DE8 + adds r0, r4, 0 + bl move_anim_8072740 +_080D9DE8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9DD4 + + thumb_func_start sub_80D9DF0 +sub_80D9DF0: @ 80D9DF0 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r5, _080D9E64 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D9E08 + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080D9E08: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080D9E68 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + mov r6, sp + adds r6, 0x2 + movs r1, 0x1 + mov r2, sp + adds r3, r6, 0 + bl sub_807A3FC + ldr r0, _080D9E6C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9E36 + ldrh r0, [r5, 0x8] + negs r0, r0 + strh r0, [r5, 0x8] +_080D9E36: + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + mov r1, sp + ldrh r0, [r5, 0x8] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r6, [r6] + adds r0, r6 + strh r0, [r4, 0x36] + ldr r0, _080D9E70 @ =0x0000ffe2 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080D9E74 @ =sub_80D9E78 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D9E64: .4byte gUnknown_03004B00 +_080D9E68: .4byte gUnknown_0202F7C9 +_080D9E6C: .4byte gUnknown_0202F7C8 +_080D9E70: .4byte 0x0000ffe2 +_080D9E74: .4byte sub_80D9E78 + thumb_func_end sub_80D9DF0 + + thumb_func_start sub_80D9E78 +sub_80D9E78: @ 80D9E78 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080D9E8C + adds r0, r4, 0 + bl move_anim_8072740 +_080D9E8C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9E78 + + thumb_func_start sub_80D9E94 +sub_80D9E94: @ 80D9E94 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9EE0 @ =gUnknown_03004B00 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrh r1, [r5, 0x2] + adds r0, r1 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8078A5C + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x38] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r4, 0x3A] + ldr r0, _080D9EE4 @ =sub_80D9EE8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9EE0: .4byte gUnknown_03004B00 +_080D9EE4: .4byte sub_80D9EE8 + thumb_func_end sub_80D9E94 + + thumb_func_start sub_80D9EE8 +sub_80D9EE8: @ 80D9EE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078394 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + subs r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + subs r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D9F0E + adds r0, r4, 0 + bl move_anim_8072740 +_080D9F0E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9EE8 + + thumb_func_start sub_80D9F14 +sub_80D9F14: @ 80D9F14 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D9F74 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D9F78 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9F40 + ldr r1, _080D9F7C @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080D9F40: + ldr r0, _080D9F7C @ =gUnknown_03004B00 + ldrh r2, [r0] + ldrh r1, [r4, 0x20] + adds r2, r1 + strh r2, [r4, 0x20] + ldrh r1, [r0, 0x2] + ldrh r3, [r4, 0x22] + adds r1, r3 + strh r1, [r4, 0x22] + ldrh r3, [r0, 0x8] + strh r3, [r4, 0x2E] + ldrh r0, [r0, 0x4] + adds r2, r0 + strh r2, [r4, 0x32] + adds r1, r3 + strh r1, [r4, 0x36] + ldr r0, _080D9F80 @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080D9F84 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D9F74: .4byte gUnknown_0202F7C9 +_080D9F78: .4byte gUnknown_0202F7C8 +_080D9F7C: .4byte gUnknown_03004B00 +_080D9F80: .4byte sub_8078B34 +_080D9F84: .4byte move_anim_8072740 + thumb_func_end sub_80D9F14 + + thumb_func_start sub_80D9F88 +sub_80D9F88: @ 80D9F88 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D9FA0 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080D9FA4 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 + b _080D9FDA + .align 2, 0 +_080D9FA0: .4byte gUnknown_03004B00 +_080D9FA4: + ldr r0, _080D9FE4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0x1 + bl sub_807A3FC + ldr r0, _080D9FE8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080D9FCA + ldrh r0, [r5] + negs r0, r0 + strh r0, [r5] +_080D9FCA: + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] +_080D9FDA: + ldr r0, _080D9FEC @ =sub_80D9FF0 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D9FE4: .4byte gUnknown_0202F7C9 +_080D9FE8: .4byte gUnknown_0202F7C8 +_080D9FEC: .4byte sub_80D9FF0 + thumb_func_end sub_80D9F88 + + thumb_func_start sub_80D9FF0 +sub_80D9FF0: @ 80D9FF0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x30 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DA02C + adds r0, r4, 0 + bl move_anim_8072740 +_080DA02C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D9FF0 + + thumb_func_start sub_80DA034 +sub_80DA034: @ 80DA034 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_8078764 + ldrh r0, [r4, 0x22] + adds r0, 0x14 + strh r0, [r4, 0x22] + movs r0, 0xBF + strh r0, [r4, 0x30] + ldr r1, _080DA058 @ =sub_80DA05C + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA058: .4byte sub_80DA05C + thumb_func_end sub_80DA034 + + thumb_func_start sub_80DA05C +sub_80DA05C: @ 80DA05C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x47 + bne _080DA096 + adds r0, r4, 0 + bl move_anim_8072740 +_080DA096: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DA05C + + thumb_func_start sub_80DA09C +sub_80DA09C: @ 80DA09C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080DA0CC @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r1, _080DA0D0 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r1] + strh r0, [r4, 0xA] + ldr r0, _080DA0D4 @ =0x00002719 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldr r0, _080DA0D8 @ =sub_80DA0DC + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA0CC: .4byte gTasks +_080DA0D0: .4byte gUnknown_03004B00 +_080DA0D4: .4byte 0x00002719 +_080DA0D8: .4byte sub_80DA0DC + thumb_func_end sub_80DA09C + + thumb_func_start sub_80DA0DC +sub_80DA0DC: @ 80DA0DC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080DA15C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r4, 0xA + ldrsh r1, [r3, r4] + adds r7, r2, 0 + cmp r0, r1 + bne _080DA13A + movs r0, 0 + strh r0, [r3, 0x1C] + ldrb r0, [r3, 0xC] + ldr r2, _080DA160 @ =gPlttBufferFaded + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r1, r0, r3 + lsls r1, 1 + adds r1, r2 + ldrh r6, [r1] + movs r4, 0x7 + mov r12, r0 + ldr r0, _080DA164 @ =0x00000107 + add r0, r12 + lsls r0, 1 + adds r3, r0, r2 +_080DA122: + ldrh r0, [r3] + strh r0, [r1] + subs r3, 0x2 + subs r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bgt _080DA122 + ldr r0, _080DA168 @ =0x00000101 + add r0, r12 + lsls r0, 1 + adds r0, r2 + strh r6, [r0] +_080DA13A: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _080DA154 + adds r0, r5, 0 + bl move_anim_task_del +_080DA154: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA15C: .4byte gTasks +_080DA160: .4byte gPlttBufferFaded +_080DA164: .4byte 0x00000107 +_080DA168: .4byte 0x00000101 + thumb_func_end sub_80DA0DC + + thumb_func_start sub_80DA16C +sub_80DA16C: @ 80DA16C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DA1D8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA18C + ldr r1, _080DA1DC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080DA18C: + ldr r4, _080DA1DC @ =gUnknown_03004B00 + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrh r0, [r6, 0x20] + strh r0, [r6, 0x30] + ldr r5, _080DA1E0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrh r0, [r6, 0x22] + strh r0, [r6, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + adds r0, r6, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080DA1E4 @ =sub_80785E4 + str r0, [r6, 0x1C] + ldr r1, _080DA1E8 @ =sub_80DA1EC + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DA1D8: .4byte gUnknown_0202F7C8 +_080DA1DC: .4byte gUnknown_03004B00 +_080DA1E0: .4byte gUnknown_0202F7C9 +_080DA1E4: .4byte sub_80785E4 +_080DA1E8: .4byte sub_80DA1EC + thumb_func_end sub_80DA16C + + thumb_func_start sub_80DA1EC +sub_80DA1EC: @ 80DA1EC + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DA200 + adds r0, r4, 0 + bl move_anim_8072740 +_080DA200: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DA1EC + + thumb_func_start sub_80DA208 +sub_80DA208: @ 80DA208 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DA2A4 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA234 + ldr r1, _080DA2A8 @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080DA234: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DA24C + ldr r0, _080DA2A8 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0x6] + negs r1, r1 + strh r1, [r0, 0x6] +_080DA24C: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + ldr r2, _080DA2A8 @ =gUnknown_03004B00 + ldrh r1, [r2] + ldrh r3, [r5, 0x20] + adds r1, r3 + strh r1, [r5, 0x20] + lsrs r0, 24 + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r0, [r2, 0x8] + strh r0, [r5, 0x2E] + movs r3, 0xC + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080DA2B0 + ldr r4, _080DA2AC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080DA2C2 + .align 2, 0 +_080DA2A4: .4byte gUnknown_0202F7C8 +_080DA2A8: .4byte gUnknown_03004B00 +_080DA2AC: .4byte gUnknown_0202F7C9 +_080DA2B0: + ldr r0, _080DA2F0 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080DA2C2: + ldr r4, _080DA2F4 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + ldrh r3, [r5, 0x36] + adds r0, r3 + strh r0, [r5, 0x36] + ldr r0, _080DA2F8 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080DA2FC @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldrb r1, [r4, 0xA] + adds r0, r5, 0 + bl SeekSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA2F0: .4byte gUnknown_0202F7C9 +_080DA2F4: .4byte gUnknown_03004B00 +_080DA2F8: .4byte sub_8078B34 +_080DA2FC: .4byte move_anim_8072740 + thumb_func_end sub_80DA208 + + thumb_func_start sub_80DA300 +sub_80DA300: @ 80DA300 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DA33C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DA340 @ =sub_80DA348 + str r0, [r4, 0x1C] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DA344 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA33C: .4byte gUnknown_03004B00 +_080DA340: .4byte sub_80DA348 +_080DA344: .4byte gSprites + thumb_func_end sub_80DA300 + + thumb_func_start sub_80DA348 +sub_80DA348: @ 80DA348 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080DA35C + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080DA36E +_080DA35C: + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] +_080DA36E: + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DA386 + adds r0, r2, 0 + bl move_anim_8072740 +_080DA386: + pop {r0} + bx r0 + thumb_func_end sub_80DA348 + + thumb_func_start sub_80DA38C +sub_80DA38C: @ 80DA38C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DA3B4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DA3BC + movs r0, 0x88 + lsls r0, 1 + strh r0, [r5, 0x20] + ldr r0, _080DA3B8 @ =0x0000ffe0 + strh r0, [r5, 0x22] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _080DA3C2 + .align 2, 0 +_080DA3B4: .4byte gUnknown_0202F7C8 +_080DA3B8: .4byte 0x0000ffe0 +_080DA3BC: + ldr r0, _080DA400 @ =0x0000ffe0 + strh r0, [r5, 0x20] + strh r0, [r5, 0x22] +_080DA3C2: + ldr r0, _080DA404 @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldr r4, _080DA408 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r0, _080DA40C @ =sub_80DA410 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DA400: .4byte 0x0000ffe0 +_080DA404: .4byte gUnknown_03004B00 +_080DA408: .4byte gUnknown_0202F7C9 +_080DA40C: .4byte sub_80DA410 + thumb_func_end sub_80DA38C + + thumb_func_start sub_80DA410 +sub_80DA410: @ 80DA410 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078B5C + ldrh r1, [r4, 0x34] + lsrs r0, r1, 8 + cmp r0, 0xC8 + bls _080DA438 + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r0, 0 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] +_080DA438: + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + adds r0, 0x20 + movs r1, 0x98 + lsls r1, 1 + cmp r0, r1 + bhi _080DA45A + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + ble _080DA480 +_080DA45A: + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DA488 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_8072740 +_080DA480: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA488: .4byte gSprites + thumb_func_end sub_80DA410 + + thumb_func_start sub_80DA48C +sub_80DA48C: @ 80DA48C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + subs r1, r0, 0x1 + strh r1, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bgt _080DA4CC + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DA4BE + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] +_080DA4BE: + adds r0, r4, 0 + bl DestroySprite + ldr r1, _080DA4D4 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080DA4CC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DA4D4: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80DA48C + + thumb_func_start sub_80DA4D8 +sub_80DA4D8: @ 80DA4D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r5, r7, 0 + adds r5, 0x2E + ldr r0, _080DA4F8 @ =gUnknown_03004B00 + ldrh r1, [r0, 0xE] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080DA500 + ldr r0, _080DA4FC @ =gUnknown_0202F7C8 + b _080DA502 + .align 2, 0 +_080DA4F8: .4byte gUnknown_03004B00 +_080DA4FC: .4byte gUnknown_0202F7C8 +_080DA500: + ldr r0, _080DA5B0 @ =gUnknown_0202F7C9 +_080DA502: + ldrb r6, [r0] + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DA518 + ldr r1, _080DA5B4 @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DA518: + adds r0, r6, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080DA5B4 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r7, 0x20] + adds r0, r6, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + ldrh r1, [r4, 0x2] + lsrs r0, 24 + adds r1, r0, r1 + strh r1, [r7, 0x22] + lsls r1, 8 + strh r1, [r5, 0x8] + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 1 + ldrh r2, [r5, 0xE] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0xE] + ldrb r0, [r5] + movs r2, 0x4 + mov r8, r2 + mov r1, r8 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r4, 0x4] + ldrb r1, [r4, 0x4] + strh r1, [r5, 0x2] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0xA] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x4] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x6] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0xC] + subs r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x7F + bhi _080DA618 + ldr r0, _080DA5B8 @ =gMain + ldr r2, _080DA5BC @ =0x0000043d + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA5C0 + adds r0, r6, 0 + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r7, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r7, 0x5] + b _080DA5D8 + .align 2, 0 +_080DA5B0: .4byte gUnknown_0202F7C9 +_080DA5B4: .4byte gUnknown_03004B00 +_080DA5B8: .4byte gMain +_080DA5BC: .4byte 0x0000043d +_080DA5C0: + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] +_080DA5D8: + ldrb r1, [r5, 0xE] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + strb r0, [r5, 0xE] + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _080DA678 + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + b _080DA66E +_080DA618: + adds r0, r6, 0 + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7, 0x5] + ldrb r0, [r5, 0xE] + movs r4, 0x1 + orrs r0, r4 + strb r0, [r5, 0xE] + movs r2, 0x4 + ldrsh r0, [r5, r2] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080DA678 + adds r3, r7, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + ands r1, r4 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r7, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + mov r1, r8 +_080DA66E: + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] +_080DA678: + ldrh r1, [r5, 0x2] + lsrs r1, 6 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r3, _080DA6E4 @ =gSineTable + ldrh r0, [r5, 0x2] + lsls r0, 1 + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + ldrb r0, [r5, 0xC] + muls r0, r1 + asrs r0, 8 + strh r0, [r7, 0x24] + ldrb r2, [r7, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r1, 0x24 + ldrsh r0, [r7, r1] + negs r0, r0 + asrs r0, 1 + ldrb r5, [r5, 0xA] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r4, [r1] + ldr r1, _080DA6E8 @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r4, [r2, 0x2] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + ldr r0, _080DA6EC @ =sub_80DA6F0 + str r0, [r7, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DA6E4: .4byte gSineTable +_080DA6E8: .4byte gOamMatrices +_080DA6EC: .4byte sub_80DA6F0 + thumb_func_end sub_80DA4D8 + + thumb_func_start sub_80DA6F0 +sub_80DA6F0: @ 80DA6F0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r6, 0 + movs r0, 0x2E + adds r0, r5 + mov r12, r0 + ldrb r2, [r0] + movs r7, 0x1 + movs r1, 0x1 + mov r9, r1 + mov r0, r9 + ands r0, r2 + cmp r0, 0 + beq _080DA730 + mov r3, r12 + ldrb r0, [r3, 0x1] + adds r1, r0, 0 + adds r1, 0xFF + strb r1, [r3, 0x1] + lsls r0, 24 + cmp r0, 0 + beq _080DA724 + b _080DAD1A +_080DA724: + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DAD1A +_080DA730: + mov r4, r12 + ldrh r0, [r4, 0x2] + lsrs r4, r0, 6 + mov r8, r0 + cmp r4, 0x1 + bne _080DA73E + b _080DA896 +_080DA73E: + cmp r4, 0x1 + bgt _080DA748 + cmp r4, 0 + beq _080DA756 + b _080DAC52 +_080DA748: + cmp r4, 0x2 + bne _080DA74E + b _080DA9C8 +_080DA74E: + cmp r4, 0x3 + bne _080DA754 + b _080DAB0E +_080DA754: + b _080DAC52 +_080DA756: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080DA76C + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r1, r12 + strb r0, [r1] + strb r6, [r1, 0x1] + b _080DA88A +_080DA76C: + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080DA790 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + mov r2, r12 + strb r1, [r2] + strb r6, [r2, 0x1] + b _080DA88A +_080DA790: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DA88A + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r3, r12 + ldrb r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DA87A + ldr r0, _080DA80C @ =gMain + ldr r1, _080DA810 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA82E + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA814 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA868 + .align 2, 0 +_080DA80C: .4byte gMain +_080DA810: .4byte 0x0000043d +_080DA814: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA866 +_080DA82E: + mov r0, r12 + ldrb r1, [r0, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA85C + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + mov r1, r12 + ldrb r2, [r1, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DA87A +_080DA85C: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DA866: + mov r3, r12 +_080DA868: + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] +_080DA87A: + mov r4, r12 + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r0, [r4, 0x2] + mov r8, r0 +_080DA88A: + mov r2, r12 + ldrb r1, [r2] + movs r0, 0xF + ands r0, r1 + strb r0, [r2] + b _080DAC52 +_080DA896: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0 + bne _080DA8AC + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r3, r12 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DA9BC +_080DA8AC: + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080DA8BE + adds r0, r2, 0 + orrs r0, r7 + mov r4, r12 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080DA9BC +_080DA8BE: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DA9BC + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DA9AC + ldr r0, _080DA940 @ =gMain + ldr r1, _080DA944 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DA962 + mov r2, r12 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA948 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r3, r12 + b _080DA978 + .align 2, 0 +_080DA940: .4byte gMain +_080DA944: .4byte 0x0000043d +_080DA948: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DA996 +_080DA962: + mov r3, r12 + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DA98C + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] +_080DA978: + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + b _080DA9AC +_080DA98C: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DA996: + mov r0, r12 + ldrb r2, [r0, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] +_080DA9AC: + mov r3, r12 + ldrb r1, [r3] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldrh r4, [r3, 0x2] + mov r8, r4 +_080DA9BC: + mov r1, r12 + ldrb r0, [r1] + movs r1, 0xF + ands r1, r0 + movs r0, 0x10 + b _080DAC4C +_080DA9C8: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x3 + bne _080DA9DE + movs r0, 0x8 + orrs r0, r2 + orrs r0, r7 + mov r3, r12 + strb r0, [r3] + strb r6, [r3, 0x1] + b _080DAAFE +_080DA9DE: + lsrs r0, r1, 28 + cmp r0, 0x1 + bne _080DA9F0 + adds r0, r2, 0 + orrs r0, r7 + mov r4, r12 + strb r0, [r4] + strb r6, [r4, 0x1] + b _080DAAFE +_080DA9F0: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + bne _080DA9FA + b _080DAAFE +_080DA9FA: + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r6, 0x1 + eors r1, r6 + ands r1, r7 + movs r0, 0x2 + negs r0, r0 + mov r8, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r2, r12 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DAAEC + ldr r0, _080DAA6C @ =gMain + ldr r3, _080DAA70 @ =0x0000043d + adds r0, r3 + ldrb r0, [r0] + ands r4, r0 + cmp r4, 0 + beq _080DAAA4 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAA74 + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DAAD8 + .align 2, 0 +_080DAA6C: .4byte gMain +_080DAA70: .4byte 0x0000043d +_080DAA74: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r0, r12 + ldrb r2, [r0, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DAAEC +_080DAAA4: + mov r3, r12 + ldrb r1, [r3, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAACE + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + b _080DAAEC +_080DAACE: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DAAD8: + mov r4, r12 + ldrb r2, [r4, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r6 + ands r0, r7 + mov r1, r8 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0xE] +_080DAAEC: + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r2, [r1, 0x2] + mov r8, r2 +_080DAAFE: + mov r3, r12 + ldrb r0, [r3] + movs r1, 0xF + ands r1, r0 + movs r0, 0x20 + orrs r1, r0 + strb r1, [r3] + b _080DAC52 +_080DAB0E: + lsls r1, r2, 24 + lsrs r0, r1, 28 + cmp r0, 0x2 + bne _080DAB20 + movs r0, 0x8 + orrs r0, r2 + mov r4, r12 + strb r0, [r4] + b _080DAC42 +_080DAB20: + lsrs r0, r1, 28 + cmp r0, 0 + bne _080DAB44 + lsls r0, r2, 30 + lsrs r0, 31 + movs r1, 0x1 + eors r0, r1 + ands r0, r7 + lsls r0, 1 + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + orrs r1, r7 + mov r0, r12 + strb r1, [r0] + strb r6, [r0, 0x1] + b _080DAC42 +_080DAB44: + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080DAC42 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r1, r2, 31 + lsrs r1, 31 + movs r4, 0x1 + eors r1, r4 + ands r1, r7 + movs r6, 0x2 + negs r6, r6 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + lsls r0, 31 + lsrs r0, 31 + adds r1, r5, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + mov r2, r12 + ldrb r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DAC32 + ldr r0, _080DABC4 @ =gMain + ldr r3, _080DABC8 @ =0x0000043d + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DABE6 + ldrb r1, [r2, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DABCC + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + mov r0, r12 + ldrb r2, [r0, 0xE] + b _080DAC00 + .align 2, 0 +_080DABC4: .4byte gMain +_080DABC8: .4byte 0x0000043d +_080DABCC: + ldrb r2, [r5, 0x5] + lsls r1, r2, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + b _080DAC1E +_080DABE6: + mov r0, r12 + ldrb r1, [r0, 0xE] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080DAC14 + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + subs r0, 0xC + strb r0, [r1] + mov r1, r12 + ldrb r2, [r1, 0xE] +_080DAC00: + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + mov r2, r12 + strb r1, [r2, 0xE] + b _080DAC32 +_080DAC14: + adds r1, r5, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0xC + strb r0, [r1] +_080DAC1E: + mov r3, r12 + ldrb r2, [r3, 0xE] + lsls r0, r2, 31 + lsrs r0, 31 + eors r0, r4 + ands r0, r7 + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] +_080DAC32: + mov r4, r12 + ldrb r1, [r4] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrh r0, [r4, 0x2] + mov r8, r0 +_080DAC42: + mov r1, r12 + ldrb r0, [r1] + movs r1, 0xF + ands r1, r0 + movs r0, 0x30 +_080DAC4C: + orrs r1, r0 + mov r2, r12 + strb r1, [r2] +_080DAC52: + mov r3, r12 + ldrb r1, [r3] + lsls r1, 30 + lsrs r1, 31 + mov r0, r12 + adds r0, 0xC + adds r0, r1 + ldrb r1, [r0] + ldr r3, _080DACE0 @ =gSineTable + mov r4, r8 + lsls r0, r4, 1 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + muls r0, r1 + asrs r0, 8 + strh r0, [r5, 0x24] + ldrb r2, [r5, 0x3] + lsls r2, 26 + lsrs r2, 27 + movs r4, 0x24 + ldrsh r0, [r5, r4] + negs r0, r0 + asrs r0, 1 + mov r1, r12 + ldrb r1, [r1, 0xA] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r3 + ldrh r6, [r1] + ldr r1, _080DACE4 @ =gOamMatrices + lsls r2, 3 + adds r2, r1 + adds r0, 0x40 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x6] + strh r0, [r2] + strh r6, [r2, 0x2] + lsls r0, r6, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + mov r2, r12 + ldrh r0, [r2, 0x6] + ldrh r3, [r2, 0x8] + adds r0, r3 + strh r0, [r2, 0x8] + lsls r0, 16 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r4, 0x4 + ldrsh r0, [r2, r4] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _080DACE8 + ldrh r0, [r2, 0x4] + subs r1, 0x1 + ands r1, r0 + ldrh r0, [r2, 0x2] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r2, 0x2] + b _080DACFE + .align 2, 0 +_080DACE0: .4byte gSineTable +_080DACE4: .4byte gOamMatrices +_080DACE8: + mov r1, r12 + ldrh r0, [r1, 0x4] + ldr r1, _080DAD28 @ =0x00007fff + ands r1, r0 + mov r2, r12 + ldrh r2, [r2, 0x2] + adds r1, r2 + movs r0, 0xFF + ands r1, r0 + mov r3, r12 + strh r1, [r3, 0x2] +_080DACFE: + movs r4, 0x22 + ldrsh r1, [r5, r4] + movs r2, 0x26 + ldrsh r0, [r5, r2] + adds r1, r0 + mov r3, r12 + ldrh r0, [r3, 0xE] + lsrs r0, 1 + cmp r1, r0 + blt _080DAD1A + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080DAD2C @ =sub_80DA48C + str r0, [r5, 0x1C] +_080DAD1A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAD28: .4byte 0x00007fff +_080DAD2C: .4byte sub_80DA48C + thumb_func_end sub_80DA6F0 + + thumb_func_start sub_80DAD30 +sub_80DAD30: @ 80DAD30 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _080DAD78 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldr r5, _080DAD7C @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080DAD80 @ =sub_807941C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DAD78: .4byte gUnknown_0202F7C9 +_080DAD7C: .4byte gUnknown_0202F7C8 +_080DAD80: .4byte sub_807941C + thumb_func_end sub_80DAD30 + + thumb_func_start sub_80DAD84 +sub_80DAD84: @ 80DAD84 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r5, _080DADCC @ =gUnknown_03004B00 + ldrh r0, [r5] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x34] + ldr r0, _080DADD0 @ =gMain + ldr r1, _080DADD4 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080DAE44 + ldr r0, _080DADD8 @ =gUnknown_02024A72 + ldr r1, _080DADDC @ =gUnknown_0202F7C9 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DADE0 + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + b _080DADEE + .align 2, 0 +_080DADCC: .4byte gUnknown_03004B00 +_080DADD0: .4byte gMain +_080DADD4: .4byte 0x0000043d +_080DADD8: .4byte gUnknown_02024A72 +_080DADDC: .4byte gUnknown_0202F7C9 +_080DADE0: + adds r0, r2, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x28 +_080DADEE: + strh r0, [r4, 0x3C] + ldr r0, _080DAE1C @ =gUnknown_03004B00 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080DAE24 + ldr r0, _080DAE20 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080DAE58 + .align 2, 0 +_080DAE1C: .4byte gUnknown_03004B00 +_080DAE20: .4byte gUnknown_0202F7C9 +_080DAE24: + ldr r0, _080DAE40 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8079ED4 + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + b _080DAE58 + .align 2, 0 +_080DAE40: .4byte gUnknown_0202F7C9 +_080DAE44: + ldr r0, _080DAEFC @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x3C] +_080DAE58: + ldr r5, _080DAF00 @ =gSineTable + ldrh r3, [r4, 0x30] + movs r1, 0xFF + ands r1, r3 + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + movs r2, 0 + strh r0, [r4, 0x36] + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x38] + strh r2, [r4, 0x3A] + strh r2, [r4, 0x26] + strh r2, [r4, 0x24] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r6, r0, 27 + lsls r3, 16 + lsrs r3, 24 + strh r3, [r4, 0x30] + bl Random + lsls r0, 16 + asrs r7, r0, 16 + movs r0, 0x80 + lsls r0, 8 + ands r0, r7 + cmp r0, 0 + beq _080DAEA2 + ldrh r1, [r4, 0x30] + movs r0, 0xFF + subs r0, r1 + strh r0, [r4, 0x30] +_080DAEA2: + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r3, _080DAF04 @ =gOamMatrices + lsls r2, r6, 3 + adds r2, r3 + adds r1, 0x40 + lsls r1, 1 + adds r1, r5 + ldrh r1, [r1] + strh r1, [r2, 0x6] + strh r1, [r2] + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r2, 0x4] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + movs r0, 0x1 + ands r0, r7 + cmp r0, 0 + beq _080DAEF2 + adds r2, r4, 0 + adds r2, 0x2A + movs r1, 0x1 + movs r0, 0x1 + strb r0, [r2] + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_080DAEF2: + ldr r0, _080DAF08 @ =sub_80DAF0C + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAEFC: .4byte gUnknown_0202F7C9 +_080DAF00: .4byte gSineTable +_080DAF04: .4byte gOamMatrices +_080DAF08: .4byte sub_80DAF0C + thumb_func_end sub_80DAD84 + + thumb_func_start sub_80DAF0C +sub_80DAF0C: @ 80DAF0C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r4, 0 + adds r5, 0x2E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r1, 0 + mov r8, r1 + movs r7, 0 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080DAFF0 + movs r2, 0x36 + ldrsh r1, [r4, r2] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r6, r0, 8 + strh r6, [r4, 0x24] + movs r0, 0x38 + ldrsh r1, [r4, r0] + movs r2, 0x3A + ldrsh r0, [r4, r2] + muls r0, r1 + asrs r3, r0, 8 + strh r3, [r4, 0x26] + ldrh r2, [r4, 0x34] + movs r1, 0xFF + adds r0, r1, 0 + ands r0, r2 + ldrh r2, [r4, 0x3A] + adds r0, r2 + strh r0, [r4, 0x3A] + ldrh r2, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + ands r1, r2 + cmp r0, r1 + blt _080DAFF0 + ldrh r0, [r4, 0x20] + adds r0, r6 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + strh r7, [r4, 0x24] + strh r7, [r4, 0x26] + mov r0, sp + adds r1, r5, 0 + movs r2, 0x10 + bl memcpy + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + bl memset + ldrh r0, [r4, 0x22] + lsls r0, 8 + strh r0, [r5, 0x8] + mov r0, sp + ldrh r0, [r0, 0x6] + lsrs r1, r0, 8 + strh r1, [r5, 0x6] + strh r7, [r5, 0x2] + mov r0, sp + ldrh r0, [r0, 0x2] + strh r0, [r5, 0xA] + adds r0, r4, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0 + beq _080DAFC0 + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080DAFB8 + ldr r0, _080DAFB4 @ =0x00008001 + b _080DAFCE + .align 2, 0 +_080DAFB4: .4byte 0x00008001 +_080DAFB8: + ldr r0, _080DAFBC @ =0x00008002 + b _080DAFCE + .align 2, 0 +_080DAFBC: .4byte 0x00008002 +_080DAFC0: + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080DAFCC + movs r0, 0x1 + b _080DAFCE +_080DAFCC: + movs r0, 0x2 +_080DAFCE: + strh r0, [r5, 0x4] + mov r0, sp + ldrh r0, [r0, 0x4] + lsrs r0, 8 + strb r0, [r5, 0xC] + subs r0, 0x2 + strb r0, [r5, 0xD] + mov r0, sp + ldrh r1, [r0, 0xE] + lsls r1, 1 + ldrh r2, [r5, 0xE] + movs r0, 0x1 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0xE] + ldr r0, _080DAFFC @ =sub_80DA6F0 + str r0, [r4, 0x1C] +_080DAFF0: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DAFFC: .4byte sub_80DA6F0 + thumb_func_end sub_80DAF0C + + thumb_func_start sub_80DB000 +sub_80DB000: @ 80DB000 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DB018 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DB01C + adds r0, r5, 0 + movs r1, 0 + bl sub_80787B0 + b _080DB024 + .align 2, 0 +_080DB018: .4byte gUnknown_03004B00 +_080DB01C: + adds r0, r5, 0 + movs r1, 0 + bl sub_8078764 +_080DB024: + ldr r4, _080DB08C @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DB03C + ldr r0, _080DB090 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB052 +_080DB03C: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080DB058 + ldr r0, _080DB094 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DB058 +_080DB052: + ldrh r0, [r5, 0x20] + adds r0, 0x8 + strh r0, [r5, 0x20] +_080DB058: + ldr r4, _080DB08C @ =gUnknown_03004B00 + ldrb r1, [r4, 0x8] + adds r0, r5, 0 + bl SeekSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x20 + strh r0, [r5, 0x20] + ldr r0, _080DB098 @ =0x00000ccc + strh r0, [r5, 0x30] + ldrh r1, [r4, 0x8] + movs r0, 0xC + adds r2, r0, 0 + muls r2, r1 + adds r0, r2, 0 + ldrh r2, [r5, 0x24] + adds r0, r2 + strh r0, [r5, 0x24] + strh r1, [r5, 0x2E] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x3C] + ldr r0, _080DB09C @ =sub_80DB0A0 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB08C: .4byte gUnknown_03004B00 +_080DB090: .4byte gUnknown_0202F7C8 +_080DB094: .4byte gUnknown_0202F7C9 +_080DB098: .4byte 0x00000ccc +_080DB09C: .4byte sub_80DB0A0 + thumb_func_end sub_80DB000 + + thumb_func_start sub_80DB0A0 +sub_80DB0A0: @ 80DB0A0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _080DB0CA + strh r1, [r4, 0x2E] + strh r1, [r4, 0x24] + adds r0, r4, 0 + bl StartSpriteAnim +_080DB0CA: + ldrh r0, [r4, 0x3C] + subs r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DB0E2 + adds r0, r4, 0 + bl move_anim_8072740 +_080DB0E2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB0A0 + + thumb_func_start sub_80DB0E8 +sub_80DB0E8: @ 80DB0E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r1, _080DB180 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x8] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _080DB162 + ldr r1, _080DB184 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x8 + ldrsh r0, [r7, r1] + movs r5, 0xD + negs r5, r5 + adds r1, r5, 0 + bl Sin + ldr r4, _080DB188 @ =gUnknown_03004B00 + strh r0, [r4] + movs r1, 0x8 + ldrsh r0, [r7, r1] + adds r1, r5, 0 + bl Cos + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4, 0x4] + movs r0, 0x3 + strh r0, [r4, 0x6] + ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538 + mov r8, r0 + ldr r5, _080DB190 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0x3 + bl CreateSpriteAndAnimate +_080DB162: + ldrh r0, [r7, 0x8] + adds r0, 0x8 + strh r0, [r7, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080DB176 + adds r0, r6, 0 + bl move_anim_task_del +_080DB176: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB180: .4byte gTasks +_080DB184: .4byte gUnknown_0202F7B2 +_080DB188: .4byte gUnknown_03004B00 +_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 +_080DB190: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80DB0E8 + + thumb_func_start sub_80DB194 +sub_80DB194: @ 80DB194 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DB1A6 + cmp r0, 0x1 + beq _080DB1D8 + b _080DB1EC +_080DB1A6: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB1D4 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DB1EC + .align 2, 0 +_080DB1D4: .4byte gSprites +_080DB1D8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DB1EC + adds r0, r4, 0 + bl move_anim_8072740 +_080DB1EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB194 + + thumb_func_start sub_80DB1F4 +sub_80DB1F4: @ 80DB1F4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DB22C + cmp r0, 0x1 + bgt _080DB20A + cmp r0, 0 + beq _080DB210 + b _080DB27E +_080DB20A: + cmp r0, 0x2 + beq _080DB240 + b _080DB27E +_080DB210: + ldr r0, _080DB228 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r4, 0x26] + b _080DB238 + .align 2, 0 +_080DB228: .4byte gUnknown_0202F7C9 +_080DB22C: + ldrh r0, [r4, 0x26] + adds r0, 0xA + strh r0, [r4, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080DB27E +_080DB238: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DB27E +_080DB240: + ldrh r0, [r4, 0x26] + subs r0, 0xA + strh r0, [r4, 0x26] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DB27E + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB284 @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_8072740 +_080DB27E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB284: .4byte gSprites + thumb_func_end sub_80DB1F4 + + thumb_func_start sub_80DB288 +sub_80DB288: @ 80DB288 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DB2C4 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DB2C8 @ =sub_80DB2D0 + str r0, [r4, 0x1C] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r2, _080DB2CC @ =gSprites + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB2C4: .4byte gUnknown_03004B00 +_080DB2C8: .4byte sub_80DB2D0 +_080DB2CC: .4byte gSprites + thumb_func_end sub_80DB288 + + thumb_func_start sub_80DB2D0 +sub_80DB2D0: @ 80DB2D0 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080DB2E4 + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + b _080DB328 +_080DB2E4: + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080DB30A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + subs r1, r0 + strh r1, [r2, 0x26] + b _080DB328 +_080DB30A: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x34] + adds r1, r0, 0x1 + strh r1, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080DB328 + ldr r0, _080DB32C @ =sub_80DB330 + str r0, [r2, 0x1C] +_080DB328: + pop {r0} + bx r0 + .align 2, 0 +_080DB32C: .4byte sub_80DB330 + thumb_func_end sub_80DB2D0 + + thumb_func_start sub_80DB330 +sub_80DB330: @ 80DB330 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + movs r3, 0x22 + ldrsh r0, [r2, r3] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _080DB360 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080DB360: + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080DB36E + adds r0, r2, 0 + bl move_anim_8072740 +_080DB36E: + pop {r0} + bx r0 + thumb_func_end sub_80DB330 + + thumb_func_start sub_80DB374 +sub_80DB374: @ 80DB374 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080DB388 + cmp r0, 0x1 + beq _080DB3E0 + b _080DB44C +_080DB388: + ldr r0, _080DB398 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080DB3A0 + ldr r4, _080DB39C @ =gUnknown_0202F7C8 + b _080DB3A2 + .align 2, 0 +_080DB398: .4byte gUnknown_03004B00 +_080DB39C: .4byte gUnknown_0202F7C8 +_080DB3A0: + ldr r4, _080DB3DC @ =gUnknown_0202F7C9 +_080DB3A2: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0 + movs r3, 0x80 + lsls r3, 2 + strh r3, [r5, 0x30] + movs r2, 0x80 + lsls r2, 1 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl sub_8078FDC + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DB44C + .align 2, 0 +_080DB3DC: .4byte gUnknown_0202F7C9 +_080DB3E0: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0xB + bgt _080DB3EE + ldrh r0, [r5, 0x30] + subs r0, 0x28 + b _080DB3F2 +_080DB3EE: + ldrh r0, [r5, 0x30] + adds r0, 0x28 +_080DB3F2: + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x30 + ldrsh r3, [r5, r0] + str r1, [sp] + adds r0, r5, 0 + bl sub_8078FDC + ldrb r1, [r5, 0x3] + lsls r1, 26 + lsrs r1, 27 + movs r0, 0xF4 + lsls r0, 6 + ldr r2, _080DB454 @ =gOamMatrices + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + adds r1, r0, 0x1 + cmp r1, 0x80 + ble _080DB42C + movs r1, 0x80 +_080DB42C: + movs r0, 0x40 + subs r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + strh r1, [r5, 0x26] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x18 + bne _080DB44C + adds r0, r5, 0 + bl sub_8079098 + adds r0, r5, 0 + bl move_anim_8072740 +_080DB44C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB454: .4byte gOamMatrices + thumb_func_end sub_80DB374 + + thumb_func_start sub_80DB458 +sub_80DB458: @ 80DB458 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + ldr r4, _080DB47C @ =0x000001ff + ands r4, r0 + bl Random + movs r1, 0x7F + ands r1, r0 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080DB480 + movs r2, 0xB8 + lsls r2, 2 + adds r0, r4, r2 + b _080DB488 + .align 2, 0 +_080DB47C: .4byte 0x000001ff +_080DB480: + movs r2, 0xB8 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r4 +_080DB488: + strh r0, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DB49C + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + adds r0, r1, r0 + b _080DB4A4 +_080DB49C: + movs r2, 0xE0 + lsls r2, 2 + adds r0, r2, 0 + subs r0, r1 +_080DB4A4: + strh r0, [r5, 0x30] + ldr r2, _080DB4CC @ =gUnknown_03004B00 + ldrh r0, [r2] + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + beq _080DB4C0 + ldrb r0, [r5, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r5, 0x3] +_080DB4C0: + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080DB4D4 + ldr r4, _080DB4D0 @ =gUnknown_0202F7C8 + b _080DB4D6 + .align 2, 0 +_080DB4CC: .4byte gUnknown_03004B00 +_080DB4D0: .4byte gUnknown_0202F7C8 +_080DB4D4: + ldr r4, _080DB500 @ =gUnknown_0202F7C9 +_080DB4D6: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r5, 0x22] + ldr r0, _080DB504 @ =sub_80DB508 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DB500: .4byte gUnknown_0202F7C9 +_080DB504: .4byte sub_80DB508 + thumb_func_end sub_80DB458 + + thumb_func_start sub_80DB508 +sub_80DB508: @ 80DB508 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DB520 + ldrh r3, [r4, 0x2E] + lsls r0, r3, 16 + asrs r0, 24 + ldrh r1, [r4, 0x24] + adds r0, r1 + b _080DB52A +_080DB520: + ldrh r3, [r4, 0x2E] + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 +_080DB52A: + strh r0, [r4, 0x24] + ldrh r2, [r4, 0x30] + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r4, 0x26] + subs r0, r1 + strh r0, [r4, 0x26] + strh r3, [r4, 0x2E] + adds r0, r2, 0 + subs r0, 0x20 + strh r0, [r4, 0x30] + lsls r0, r3, 16 + cmp r0, 0 + bge _080DB54A + movs r0, 0 + strh r0, [r4, 0x2E] +_080DB54A: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080DB55E + adds r0, r4, 0 + bl move_anim_8072740 +_080DB55E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DB508 + + thumb_func_start sub_80DB564 +sub_80DB564: @ 80DB564 + movs r1, 0 + strh r1, [r0, 0x3A] + movs r1, 0x40 + strh r1, [r0, 0x3C] + ldr r1, _080DB574 @ =sub_80DB578 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080DB574: .4byte sub_80DB578 + thumb_func_end sub_80DB564 + + thumb_func_start sub_80DB578 +sub_80DB578: @ 80DB578 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080DB58A + cmp r1, 0x1 + beq _080DB5D8 + b _080DB5DE +_080DB58A: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080DB5DE + strh r1, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DB5DE + ldrb r1, [r1] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080DB5DE + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080DB5DE +_080DB5D8: + adds r0, r3, 0 + bl move_anim_8072740 +_080DB5DE: + pop {r0} + bx r0 + thumb_func_end sub_80DB578 + + thumb_func_start sub_80DB5E4 +sub_80DB5E4: @ 80DB5E4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + mov r8, r0 + ldrh r4, [r0, 0x20] + ldrh r5, [r0, 0x22] + ldr r6, _080DB698 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + strh r0, [r1, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + mov r2, r8 + strh r6, [r2, 0x22] + ldrh r0, [r2, 0x20] + mov r9, r0 + mov r1, r9 + lsls r0, r1, 4 + strh r0, [r2, 0x36] + lsls r0, r6, 4 + strh r0, [r2, 0x38] + lsls r4, 16 + asrs r4, 16 + movs r1, 0x20 + ldrsh r0, [r2, r1] + subs r0, r4, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3A] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x22 + ldrsh r0, [r2, r1] + subs r0, r5, r0 + lsls r0, 4 + movs r1, 0xC + bl __divsi3 + mov r2, r8 + strh r0, [r2, 0x3C] + mov r0, r9 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + subs r5, r6 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + mov r0, r8 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_8078FDC + ldr r0, _080DB69C @ =sub_80DB6A0 + mov r2, r8 + str r0, [r2, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DB698: .4byte gUnknown_0202F7C8 +_080DB69C: .4byte sub_80DB6A0 + thumb_func_end sub_80DB5E4 + + thumb_func_start sub_80DB6A0 +sub_80DB6A0: @ 80DB6A0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x3A] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x3C] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r3, r1, 20 + strh r3, [r2, 0x22] + adds r0, 0x2D + lsls r0, 16 + movs r1, 0xA5 + lsls r1, 17 + cmp r0, r1 + bhi _080DB6DA + adds r1, r3, 0 + cmp r1, 0x9D + bgt _080DB6DA + movs r0, 0x2D + negs r0, r0 + cmp r1, r0 + bge _080DB6E0 +_080DB6DA: + adds r0, r2, 0 + bl move_anim_8074EE0 +_080DB6E0: + pop {r0} + bx r0 + thumb_func_end sub_80DB6A0 + + thumb_func_start unref_sub_80DB6E4 +unref_sub_80DB6E4: @ 80DB6E4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080DB714 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DB71C + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DB718 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + b _080DB73A + .align 2, 0 +_080DB714: .4byte gUnknown_03004B00 +_080DB718: .4byte gSprites +_080DB71C: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DB748 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 +_080DB73A: + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DB748: .4byte gSprites + thumb_func_end unref_sub_80DB6E4 + + thumb_func_start sub_80DB74C +sub_80DB74C: @ 80DB74C + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, _080DB804 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB768 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DB77E +_080DB768: + ldrb r1, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r1, r6, 0 + adds r1, 0x43 + movs r0, 0xC8 + strb r0, [r1] +_080DB77E: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB7DA + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + adds r0, r4, 0 + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB7BC + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8076034 +_080DB7BC: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r7 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB7DA + movs r0, 0x1 + eors r5, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8076034 +_080DB7DA: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB810 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080DB810 + ldr r0, _080DB804 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DB808 + movs r0, 0x48 + strh r0, [r6, 0x20] + movs r0, 0x50 + b _080DB84A + .align 2, 0 +_080DB804: .4byte gUnknown_0202F7C8 +_080DB808: + movs r0, 0xB0 + strh r0, [r6, 0x20] + movs r0, 0x28 + b _080DB84A +_080DB810: + ldr r5, _080DB880 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DB826 + ldr r1, _080DB884 @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DB826: + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r4, _080DB884 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x2] + adds r0, r4 +_080DB84A: + strh r0, [r6, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DB85C + ldrh r0, [r6, 0x22] + adds r0, 0x9 + strh r0, [r6, 0x22] +_080DB85C: + ldr r0, _080DB884 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x2E] + ldr r1, _080DB888 @ =sub_80DB88C + str r1, [r6, 0x1C] + adds r0, r6, 0 + bl _call_via_r1 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB880: .4byte gUnknown_0202F7C8 +_080DB884: .4byte gUnknown_03004B00 +_080DB888: .4byte sub_80DB88C + thumb_func_end sub_80DB74C + + thumb_func_start sub_80DB88C +sub_80DB88C: @ 80DB88C + push {lr} + adds r3, r0, 0 + ldr r2, _080DB8B0 @ =REG_BLDALPHA + ldrh r1, [r3, 0x34] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0xD + bne _080DB8B8 + ldr r0, _080DB8B4 @ =sub_80DB8C0 + str r0, [r3, 0x1C] + b _080DB8BC + .align 2, 0 +_080DB8B0: .4byte REG_BLDALPHA +_080DB8B4: .4byte sub_80DB8C0 +_080DB8B8: + adds r0, r1, 0x1 + strh r0, [r3, 0x34] +_080DB8BC: + pop {r0} + bx r0 + thumb_func_end sub_80DB88C + + thumb_func_start sub_80DB8C0 +sub_80DB8C0: @ 80DB8C0 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080DB91E + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r4, [r3, 0x2E] + ldr r1, _080DB924 @ =gPlttBufferFaded + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 1 + adds r0, r1 + ldrh r7, [r0] + movs r5, 0x8 + adds r6, r1, 0 + adds r1, r4, 0x7 + lsls r0, r4, 1 + adds r0, r6 + adds r2, r0, 0 + adds r2, 0x10 + lsls r1, 1 + adds r1, r6 +_080DB8F6: + ldrh r0, [r1] + strh r0, [r2] + subs r1, 0x2 + subs r2, 0x2 + subs r5, 0x1 + cmp r5, 0 + bgt _080DB8F6 + adds r0, r4, 0x1 + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bne _080DB91E + ldr r0, _080DB928 @ =sub_80DB92C + str r0, [r3, 0x1C] +_080DB91E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DB924: .4byte gPlttBufferFaded +_080DB928: .4byte sub_80DB92C + thumb_func_end sub_80DB8C0 + + thumb_func_start sub_80DB92C +sub_80DB92C: @ 80DB92C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r2, _080DB9D4 @ =REG_BLDALPHA + ldrh r1, [r5, 0x34] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DB9CC + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DB9BC + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB98E + ldr r2, _080DB9D8 @ =gSprites + ldr r0, _080DB9DC @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080DB98E: + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r6 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DB9BC + ldr r2, _080DB9D8 @ =gSprites + ldr r0, _080DB9DC @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080DB9BC: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DB9E0 @ =sub_80DB9E4 + str r0, [r5, 0x1C] +_080DB9CC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DB9D4: .4byte REG_BLDALPHA +_080DB9D8: .4byte gSprites +_080DB9DC: .4byte gUnknown_02024BE0 +_080DB9E0: .4byte sub_80DB9E4 + thumb_func_end sub_80DB92C + + thumb_func_start sub_80DB9E4 +sub_80DB9E4: @ 80DB9E4 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DBA3C + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DBA22 + adds r0, r5, 0 + bl sub_8076464 +_080DBA22: + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DBA3C + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_080DBA3C: + ldr r0, _080DBA48 @ =move_anim_8072740 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DBA48: .4byte move_anim_8072740 + thumb_func_end sub_80DB9E4 + + thumb_func_start sub_80DBA4C +sub_80DBA4C: @ 80DBA4C + push {r4-r6,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DBAD8 + ldr r5, _080DBA98 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r5, r1] + movs r6, 0 + cmp r0, 0 + bne _080DBA66 + movs r6, 0x1 +_080DBA66: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DBAAE + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080DBAAE + ldr r0, _080DBA9C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DBAA0 + ldrh r0, [r5] + movs r1, 0x48 + subs r1, r0 + strh r1, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x50 + strh r0, [r4, 0x22] + b _080DBAD0 + .align 2, 0 +_080DBA98: .4byte gUnknown_03004B00 +_080DBA9C: .4byte gUnknown_0202F7C8 +_080DBAA0: + ldrh r0, [r5] + adds r0, 0xB0 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + adds r0, 0x28 + strh r0, [r4, 0x22] + b _080DBAD0 +_080DBAAE: + ldr r0, _080DBAC4 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DBAC8 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80787B0 + b _080DBAD0 + .align 2, 0 +_080DBAC4: .4byte gUnknown_03004B00 +_080DBAC8: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8078764 +_080DBAD0: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DBAEC +_080DBAD8: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _080DBAEC + adds r0, r4, 0 + bl move_anim_8074EE0 +_080DBAEC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DBA4C + + thumb_func_start sub_80DBAF4 +sub_80DBAF4: @ 80DBAF4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DBB3C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DBB44 + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r5, 0x20] + subs r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xA + strh r0, [r5, 0x22] + ldr r0, _080DBB40 @ =0x0000ffff + b _080DBB52 + .align 2, 0 +_080DBB3C: .4byte gUnknown_0202F7C8 +_080DBB40: .4byte 0x0000ffff +_080DBB44: + ldrh r0, [r5, 0x20] + adds r0, 0x28 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + subs r0, 0xA + strh r0, [r5, 0x22] + movs r0, 0x1 +_080DBB52: + strh r0, [r5, 0x30] + ldr r1, _080DBB68 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DBB6C @ =sub_8078600 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBB68: .4byte move_anim_8072740 +_080DBB6C: .4byte sub_8078600 + thumb_func_end sub_80DBAF4 + + thumb_func_start sub_80DBB70 +sub_80DBB70: @ 80DBB70 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _080DBBF4 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + lsls r1, 15 + lsrs r4, r1, 16 + ldrb r0, [r6] + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + negs r1, r1 + lsls r1, 16 + lsrs r7, r1, 16 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DBBB6 + lsls r0, r4, 16 + negs r0, r0 + lsrs r4, r0, 16 +_080DBBB6: + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + strh r0, [r5, 0x20] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r7 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bgt _080DBBE2 + movs r0, 0x10 + strh r0, [r5, 0x22] +_080DBBE2: + ldr r1, _080DBBF8 @ =sub_80DBC00 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DBBFC @ =sub_8078600 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBBF4: .4byte gUnknown_0202F7C8 +_080DBBF8: .4byte sub_80DBC00 +_080DBBFC: .4byte sub_8078600 + thumb_func_end sub_80DBB70 + + thumb_func_start sub_80DBC00 +sub_80DBC00: @ 80DBC00 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080DBC2C @ =gUnknown_083DA888 + str r0, [r4, 0x10] + movs r0, 0 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl InitSpriteAffineAnim + ldr r0, _080DBC30 @ =sub_80DBC34 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBC2C: .4byte gUnknown_083DA888 +_080DBC30: .4byte sub_80DBC34 + thumb_func_end sub_80DBC00 + + thumb_func_start sub_80DBC34 +sub_80DBC34: @ 80DBC34 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBC46 + cmp r0, 0x1 + beq _080DBC74 + b _080DBC8C +_080DBC46: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DBC8C + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x12 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DBC8C +_080DBC74: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DBC8C + adds r0, r4, 0 + bl move_anim_8072740 +_080DBC8C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DBC34 + + thumb_func_start sub_80DBC94 +sub_80DBC94: @ 80DBC94 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080DBCC4 @ =gTasks + adds r4, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + strh r1, [r4, 0x8] + ldr r2, _080DBCC8 @ =gUnknown_083DA8A4 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080DBCCC @ =sub_80DBCD0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBCC4: .4byte gTasks +_080DBCC8: .4byte gUnknown_083DA8A4 +_080DBCCC: .4byte sub_80DBCD0 + thumb_func_end sub_80DBC94 + + thumb_func_start sub_80DBCD0 +sub_80DBCD0: @ 80DBCD0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DBCF8 @ =gTasks + adds r0, r1 + bl sub_807992C + lsls r0, 24 + cmp r0, 0 + bne _080DBCF0 + adds r0, r4, 0 + bl move_anim_task_del +_080DBCF0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBCF8: .4byte gTasks + thumb_func_end sub_80DBCD0 + + thumb_func_start sub_80DBCFC +sub_80DBCFC: @ 80DBCFC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DBD48 @ =gTasks + adds r4, r1, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + ldr r0, _080DBD4C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _080DBD30 + movs r1, 0x4 +_080DBD30: + strh r1, [r4, 0xE] + ldrb r1, [r4, 0x8] + ldr r2, _080DBD50 @ =gUnknown_083DA8C4 + adds r0, r4, 0 + bl sub_80798F4 + ldr r0, _080DBD54 @ =sub_80DBD58 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DBD48: .4byte gTasks +_080DBD4C: .4byte gUnknown_0202F7C8 +_080DBD50: .4byte gUnknown_083DA8C4 +_080DBD54: .4byte sub_80DBD58 + thumb_func_end sub_80DBCFC + + thumb_func_start sub_80DBD58 +sub_80DBD58: @ 80DBD58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DBD78 @ =gTasks + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBD7C + cmp r0, 0x1 + beq _080DBD98 + b _080DBDF6 + .align 2, 0 +_080DBD78: .4byte gTasks +_080DBD7C: + adds r0, r4, 0 + bl sub_807992C + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080DBDF6 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _080DBDF6 +_080DBD98: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DBDC0 + ldr r2, _080DBDBC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080DBDF6 + .align 2, 0 +_080DBDBC: .4byte gSprites +_080DBDC0: + ldr r3, _080DBDFC @ =gSprites + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + ldrb r0, [r4, 0x8] + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del +_080DBDF6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DBDFC: .4byte gSprites + thumb_func_end sub_80DBD58 + + thumb_func_start sub_80DBE00 +sub_80DBE00: @ 80DBE00 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DBE84 @ =gTasks + adds r5, r1, r0 + movs r0, 0 + movs r7, 0x10 + strh r7, [r5, 0xE] + strh r0, [r5, 0x10] + ldr r4, _080DBE88 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x24] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, r6 + bcs _080DBE6A + adds r1, r6, 0 +_080DBE6A: + strh r1, [r5, 0x20] + ldr r1, _080DBE8C @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DBE90 @ =REG_BLDALPHA + strh r7, [r0] + ldr r0, _080DBE94 @ =sub_80DBE98 + str r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DBE84: .4byte gTasks +_080DBE88: .4byte gUnknown_0202F7C8 +_080DBE8C: .4byte REG_BLDCNT +_080DBE90: .4byte REG_BLDALPHA +_080DBE94: .4byte sub_80DBE98 + thumb_func_end sub_80DBE00 + + thumb_func_start sub_80DBE98 +sub_80DBE98: @ 80DBE98 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DBEBC @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080DBF98 + cmp r1, 0x1 + bgt _080DBEC0 + cmp r1, 0 + beq _080DBECE + b _080DC014 + .align 2, 0 +_080DBEBC: .4byte gTasks +_080DBEC0: + cmp r1, 0x2 + bne _080DBEC6 + b _080DBFF4 +_080DBEC6: + cmp r1, 0x3 + bne _080DBECC + b _080DC004 +_080DBECC: + b _080DC014 +_080DBECE: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bgt _080DBEDE + b _080DC014 +_080DBEDE: + strh r1, [r4, 0xA] + ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC + movs r2, 0x22 + ldrsh r1, [r4, r2] + movs r3, 0x24 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0xC + ldrsh r1, [r4, r0] + adds r1, 0x8 + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + strh r2, [r0] + cmp r2, 0x40 + beq _080DBF82 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DBF3C + cmp r0, 0x1 + bgt _080DBF20 + cmp r0, 0 + beq _080DBF2A + b _080DBF82 + .align 2, 0 +_080DBF1C: .4byte gSpriteTemplate_83DA8DC +_080DBF20: + cmp r0, 0x2 + beq _080DBF54 + cmp r0, 0x3 + beq _080DBF6C + b _080DBF82 +_080DBF2A: + ldr r0, _080DBF38 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + b _080DBF7A + .align 2, 0 +_080DBF38: .4byte gSprites +_080DBF3C: + ldr r0, _080DBF50 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + b _080DBF80 + .align 2, 0 +_080DBF50: .4byte gSprites +_080DBF54: + ldr r1, _080DBF68 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x24] + ldrh r1, [r4, 0x20] + strh r1, [r0, 0x26] + b _080DBF82 + .align 2, 0 +_080DBF68: .4byte gSprites +_080DBF6C: + ldr r0, _080DBF94 @ =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r4, 0x20] + negs r0, r0 +_080DBF7A: + strh r0, [r1, 0x24] + ldrh r0, [r4, 0x20] + negs r0, r0 +_080DBF80: + strh r0, [r1, 0x26] +_080DBF82: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080DC014 + b _080DBFF4 + .align 2, 0 +_080DBF94: .4byte gSprites +_080DBF98: + ldrh r0, [r4, 0xA] + ands r1, r0 + cmp r1, 0 + beq _080DBFA8 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + b _080DBFAE +_080DBFA8: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] +_080DBFAE: + ldr r2, _080DBFFC @ =REG_BLDALPHA + ldrh r0, [r4, 0x10] + lsls r0, 8 + ldrh r1, [r4, 0xE] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + bne _080DC014 + movs r5, 0x8 + adds r6, r4, 0 + adds r6, 0x8 +_080DBFCE: + lsls r0, r5, 1 + adds r1, r6, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x40 + beq _080DBFEA + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DC000 @ =gSprites + adds r0, r1 + bl DestroySprite +_080DBFEA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xC + bls _080DBFCE +_080DBFF4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DC014 + .align 2, 0 +_080DBFFC: .4byte REG_BLDALPHA +_080DC000: .4byte gSprites +_080DC004: + ldr r0, _080DC01C @ =REG_BLDALPHA + movs r1, 0 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080DC014: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC01C: .4byte REG_BLDALPHA + thumb_func_end sub_80DBE98 + + thumb_func_start sub_80DC020 +sub_80DC020: @ 80DC020 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + subs r0, 0xA + cmp r1, r0 + ble _080DC04A + ldrh r0, [r4, 0x30] + movs r1, 0x1 + ands r1, r0 + adds r3, r4, 0 + adds r3, 0x3E + lsls r1, 2 + ldrb r2, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080DC04A: + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080DC05C + adds r0, r4, 0 + bl move_anim_8072740 +_080DC05C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DC020 + + thumb_func_start sub_80DC068 +sub_80DC068: @ 80DC068 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080DC0A4 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080DC094 + ldr r4, _080DC0A8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080DC094: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x2E] + ldr r0, _080DC0AC @ =sub_80DC020 + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC0A4: .4byte gUnknown_03004B00 +_080DC0A8: .4byte gUnknown_0202F7C8 +_080DC0AC: .4byte sub_80DC020 + thumb_func_end sub_80DC068 + + thumb_func_start sub_80DC0B0 +sub_80DC0B0: @ 80DC0B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DC10C @ =gTasks + adds r5, r1, r0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC154 + ldr r0, _080DC110 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080DC120 + ldr r0, _080DC114 @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080DC118 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC11C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080DC1DE + .align 2, 0 +_080DC10C: .4byte gTasks +_080DC110: .4byte gUnknown_03004B00 +_080DC114: .4byte 0x0000fff6 +_080DC118: .4byte gUnknown_0202F7C9 +_080DC11C: .4byte gUnknown_0202F7C8 +_080DC120: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080DC14C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC150 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + b _080DC1D2 + .align 2, 0 +_080DC14C: .4byte gUnknown_0202F7C8 +_080DC150: .4byte gUnknown_0202F7C9 +_080DC154: + ldr r0, _080DC198 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _080DC1A8 + ldr r0, _080DC19C @ =0x0000fff6 + strh r0, [r5, 0x1C] + ldr r4, _080DC1A0 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC1A4 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080DC1DE + .align 2, 0 +_080DC198: .4byte gUnknown_03004B00 +_080DC19C: .4byte 0x0000fff6 +_080DC1A0: .4byte gUnknown_0202F7C9 +_080DC1A4: .4byte gUnknown_0202F7C8 +_080DC1A8: + movs r0, 0xA + strh r0, [r5, 0x1C] + ldr r4, _080DC1F0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x1E] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r5, 0x20] + ldr r4, _080DC1F4 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 +_080DC1D2: + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + subs r0, 0x8 +_080DC1DE: + strh r0, [r5, 0x24] + movs r0, 0x6 + strh r0, [r5, 0xA] + ldr r0, _080DC1F8 @ =sub_80DC1FC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC1F0: .4byte gUnknown_0202F7C8 +_080DC1F4: .4byte gUnknown_0202F7C9 +_080DC1F8: .4byte sub_80DC1FC + thumb_func_end sub_80DC0B0 + + thumb_func_start sub_80DC1FC +sub_80DC1FC: @ 80DC1FC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DC21C @ =gTasks + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _080DC220 + cmp r1, 0x1 + beq _080DC294 + b _080DC2A8 + .align 2, 0 +_080DC21C: .4byte gTasks +_080DC220: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080DC2A8 + strh r1, [r5, 0xA] + ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC + movs r2, 0x1E + ldrsh r1, [r5, r2] + movs r3, 0x20 + ldrsh r2, [r5, r3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080DC274 + ldr r0, _080DC290 @ =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + movs r0, 0x10 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x22] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x24] + strh r0, [r4, 0x36] + ldrh r0, [r5, 0x1C] + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldrb r0, [r5, 0xC] + movs r1, 0x3 + ands r1, r0 + adds r0, r4, 0 + bl StartSpriteAffineAnim +_080DC274: + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _080DC2A8 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080DC2A8 + .align 2, 0 +_080DC28C: .4byte gSpriteTemplate_83DA9AC +_080DC290: .4byte gSprites +_080DC294: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _080DC2A8 + adds r0, r2, 0 + bl move_anim_task_del +_080DC2A8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DC1FC + + thumb_func_start sub_80DC2B0 +sub_80DC2B0: @ 80DC2B0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DC2CE + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite +_080DC2CE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DC2B0 + + thumb_func_start sub_80DC2D4 +sub_80DC2D4: @ 80DC2D4 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DC30C @ =gTasks + adds r4, r1, r0 + ldr r0, _080DC310 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r1, 0 + subs r0, 0x20 + strh r0, [r4, 0x24] + ldr r0, _080DC314 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x1 + beq _080DC32A + cmp r0, 0x1 + bgt _080DC318 + cmp r0, 0 + beq _080DC31E + b _080DC346 + .align 2, 0 +_080DC30C: .4byte gTasks +_080DC310: .4byte gUnknown_0202F7C9 +_080DC314: .4byte gUnknown_03004B00 +_080DC318: + cmp r0, 0x2 + beq _080DC336 + b _080DC346 +_080DC31E: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0x40 + b _080DC33E +_080DC32A: + movs r0, 0x2 + strh r0, [r4, 0x1E] + movs r0, 0x5 + strh r0, [r4, 0x20] + movs r0, 0xC0 + b _080DC33E +_080DC336: + movs r0, 0x4 + strh r0, [r4, 0x1E] + strh r0, [r4, 0x20] + movs r0, 0 +_080DC33E: + strh r0, [r4, 0x22] + adds r0, r1, 0 + adds r0, 0x20 + strh r0, [r4, 0x26] +_080DC346: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080DC352 + movs r0, 0 + strh r0, [r4, 0x24] +_080DC352: + ldr r0, _080DC36C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DC378 + ldr r0, _080DC370 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080DC374 @ =REG_BG1HOFS + b _080DC380 + .align 2, 0 +_080DC36C: .4byte gUnknown_0202F7C9 +_080DC370: .4byte gUnknown_030042C0 +_080DC374: .4byte REG_BG1HOFS +_080DC378: + ldr r0, _080DC3E0 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r4, 0x1C] + ldr r0, _080DC3E4 @ =REG_BG2HOFS +_080DC380: + str r0, [sp] + ldrh r1, [r4, 0x24] + lsls r3, r1, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + bgt _080DC3BA + ldr r5, _080DC3E8 @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080DC39A: + asrs r3, 16 + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0x1C] + strh r0, [r1] + adds r3, 0x1 + lsls r3, 16 + asrs r1, r3, 16 + movs r2, 0x24 + ldrsh r0, [r4, r2] + adds r0, 0x40 + cmp r1, r0 + ble _080DC39A +_080DC3BA: + ldr r0, _080DC3EC @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080DC3F0 @ =sub_80DC3F4 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC3E0: .4byte gUnknown_03004288 +_080DC3E4: .4byte REG_BG2HOFS +_080DC3E8: .4byte gUnknown_03004DE0 +_080DC3EC: .4byte 0xa2600001 +_080DC3F0: .4byte sub_80DC3F4 + thumb_func_end sub_80DC2D4 + + thumb_func_start sub_80DC3F4 +sub_80DC3F4: @ 80DC3F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DC41C @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DC4CE + cmp r0, 0x1 + bgt _080DC420 + cmp r0, 0 + beq _080DC426 + b _080DC4E6 + .align 2, 0 +_080DC41C: .4byte gTasks +_080DC420: + cmp r0, 0x2 + beq _080DC4E0 + b _080DC4E6 +_080DC426: + ldrh r3, [r5, 0x22] + ldrh r4, [r5, 0x24] + movs r2, 0x24 + ldrsh r1, [r5, r2] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r1, r0 + bgt _080DC4BE + ldr r0, _080DC470 @ =gSineTable + mov r9, r0 + movs r7, 0x3 + ldr r1, _080DC474 @ =gUnknown_03004DE0 + mov r12, r1 + movs r2, 0xF0 + lsls r2, 3 + add r2, r12 + mov r8, r2 +_080DC448: + lsls r2, r3, 16 + asrs r0, r2, 15 + add r0, r9 + movs r3, 0 + ldrsh r0, [r0, r3] + movs r3, 0x20 + ldrsh r1, [r5, r3] + asrs r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r3, r0, 16 + adds r6, r2, 0 + cmp r3, 0 + ble _080DC478 + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + adds r0, r3, r0 + b _080DC484 + .align 2, 0 +_080DC470: .4byte gSineTable +_080DC474: .4byte gUnknown_03004DE0 +_080DC478: + cmp r3, 0 + bge _080DC488 + ldrh r1, [r5, 0xA] + adds r0, r7, 0 + ands r0, r1 + subs r0, r3, r0 +_080DC484: + lsls r0, 16 + lsrs r1, r0, 16 +_080DC488: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + mov r0, r12 + adds r4, r3, r0 + ldrh r0, [r5, 0x1C] + lsls r1, 16 + asrs r1, 16 + adds r0, r1, r0 + strh r0, [r4] + add r3, r8 + ldrh r0, [r5, 0x1C] + adds r1, r0 + strh r1, [r3] + asrs r0, r6, 16 + ldrh r1, [r5, 0x1E] + adds r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r2, r0 + ble _080DC448 +_080DC4BE: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _080DC4E6 + b _080DC4D4 +_080DC4CE: + ldr r1, _080DC4DC @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080DC4D4: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080DC4E6 + .align 2, 0 +_080DC4DC: .4byte gUnknown_03004DC0 +_080DC4E0: + adds r0, r2, 0 + bl move_anim_task_del +_080DC4E6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80DC3F4 + + thumb_func_start sub_80DC4F4 +sub_80DC4F4: @ 80DC4F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DC528 @ =gTasks + adds r7, r0, r1 + bl AllocOamMatrix + lsls r0, 24 + lsrs r5, r0, 24 + mov r10, r5 + adds r6, r5, 0 + cmp r6, 0xFF + bne _080DC52C + adds r0, r4, 0 + bl move_anim_task_del + b _080DC5D6 + .align 2, 0 +_080DC528: .4byte gTasks +_080DC52C: + ldr r1, _080DC550 @ =gUnknown_03004B00 + ldrb r0, [r1] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r1, r0, 16 + mov r9, r1 + asrs r0, 16 + cmp r0, 0 + bge _080DC554 + adds r0, r5, 0 + bl FreeOamMatrix + mov r0, r8 + bl move_anim_task_del + b _080DC5D6 + .align 2, 0 +_080DC550: .4byte gUnknown_03004B00 +_080DC554: + ldr r2, _080DC5E4 @ =gSprites + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r2, 0 + adds r0, 0x1C + adds r0, r4, r0 + ldr r1, _080DC5E8 @ =SpriteCallbackDummy + str r1, [r0] + adds r4, r2 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x1F + ands r6, r0 + lsls r2, r6, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, 0 + adds r1, 0x43 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + ldr r1, _080DC5EC @ =gUnknown_03004B00 + ldrb r0, [r1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x22] + mov r0, r10 + strh r0, [r7, 0x24] + mov r1, r9 + strh r1, [r7, 0x26] + ldr r0, _080DC5F0 @ =sub_80DC5F4 + str r0, [r7] +_080DC5D6: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DC5E4: .4byte gSprites +_080DC5E8: .4byte SpriteCallbackDummy +_080DC5EC: .4byte gUnknown_03004B00 +_080DC5F0: .4byte sub_80DC5F4 + thumb_func_end sub_80DC4F4 + + thumb_func_start sub_80DC5F4 +sub_80DC5F4: @ 80DC5F4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DC618 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DC678 + cmp r0, 0x1 + bgt _080DC61C + cmp r0, 0 + beq _080DC626 + b _080DC6F8 + .align 2, 0 +_080DC618: .4byte gTasks +_080DC61C: + cmp r0, 0x2 + beq _080DC6C8 + cmp r0, 0x3 + beq _080DC6E8 + b _080DC6F8 +_080DC626: + ldrh r0, [r4, 0xA] + adds r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080DC674 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8079AB8 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x30 + bne _080DC6F8 + b _080DC6DA + .align 2, 0 +_080DC674: .4byte gSineTable +_080DC678: + ldrh r0, [r4, 0xA] + subs r0, 0x4 + strh r0, [r4, 0xA] + ldr r1, _080DC6C4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + ldrsh r2, [r4, r1] + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + lsls r1, 24 + lsrs r1, 24 + bl sub_8079AB8 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DC6F8 + b _080DC6DA + .align 2, 0 +_080DC6C4: .4byte gSineTable +_080DC6C8: + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DC6E4 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram +_080DC6DA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DC6F8 + .align 2, 0 +_080DC6E4: .4byte gSprites +_080DC6E8: + ldrh r0, [r4, 0x24] + lsls r0, 24 + lsrs r0, 24 + bl FreeOamMatrix + adds r0, r5, 0 + bl move_anim_task_del +_080DC6F8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DC5F4 + + thumb_func_start sub_80DC700 +sub_80DC700: @ 80DC700 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DC778 + cmp r0, 0x1 + bgt _080DC716 + cmp r0, 0 + beq _080DC720 + b _080DC818 +_080DC716: + cmp r0, 0x2 + beq _080DC7AA + cmp r0, 0x3 + beq _080DC808 + b _080DC818 +_080DC720: + ldr r4, _080DC76C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC74E + ldrh r0, [r5, 0x22] + adds r0, 0xC + strh r0, [r5, 0x22] +_080DC74E: + movs r0, 0x8 + strh r0, [r5, 0x30] + ldr r1, _080DC770 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080DC774 @ =REG_BLDALPHA + ldrh r1, [r5, 0x30] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + b _080DC7A2 + .align 2, 0 +_080DC76C: .4byte gUnknown_0202F7C8 +_080DC770: .4byte REG_BLDCNT +_080DC774: .4byte REG_BLDALPHA +_080DC778: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080DC818 + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xCB + bl PlaySE12WithPanning + adds r0, r5, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_080DC7A2: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DC818 +_080DC7AA: + ldrh r0, [r5, 0x32] + adds r1, r0, 0x1 + strh r1, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DC7E8 + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r1, 0x1 + strh r1, [r5, 0x30] + ldr r2, _080DC804 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DC7E8 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080DC7E8: + movs r0, 0xE0 + lsls r0, 2 + adds r2, r0, 0 + ldrh r1, [r5, 0x34] + adds r2, r1 + lsls r1, r2, 16 + asrs r1, 24 + ldrh r0, [r5, 0x26] + subs r0, r1 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r5, 0x34] + b _080DC818 + .align 2, 0 +_080DC804: .4byte REG_BLDALPHA +_080DC808: + ldr r0, _080DC820 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r5, 0 + bl move_anim_8072740 +_080DC818: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DC820: .4byte REG_BLDCNT + thumb_func_end sub_80DC700 + + thumb_func_start sub_80DC824 +sub_80DC824: @ 80DC824 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC850 + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080DC84C @ =gUnknown_03004B00 + ldrh r1, [r0, 0x4] + negs r1, r1 + strh r1, [r0, 0x4] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] + b _080DC880 + .align 2, 0 +_080DC84C: .4byte gUnknown_03004B00 +_080DC850: + ldr r0, _080DC8E4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DC880 + adds r0, r6, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, _080DC8E8 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] +_080DC880: + ldr r5, _080DC8E4 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080DC8E8 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080DC8EC @ =sub_8078B34 + str r0, [r6, 0x1C] + ldr r1, _080DC8F0 @ =move_anim_8072740 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC8E4: .4byte gUnknown_0202F7C9 +_080DC8E8: .4byte gUnknown_03004B00 +_080DC8EC: .4byte sub_8078B34 +_080DC8F0: .4byte move_anim_8072740 + thumb_func_end sub_80DC824 + + thumb_func_start sub_80DC8F4 +sub_80DC8F4: @ 80DC8F4 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC918 + ldr r1, _080DC914 @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _080DC934 + .align 2, 0 +_080DC914: .4byte gUnknown_03004B00 +_080DC918: + ldr r0, _080DC990 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DC934 + ldr r0, _080DC994 @ =gUnknown_03004B00 + ldrh r1, [r0, 0x2] + negs r1, r1 + strh r1, [r0, 0x2] + ldrh r1, [r0] + negs r1, r1 + strh r1, [r0] +_080DC934: + ldr r5, _080DC990 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + ldr r4, _080DC994 @ =gUnknown_03004B00 + lsrs r0, 24 + ldrh r1, [r4] + adds r0, r1 + strh r0, [r6, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x2] + adds r0, r1 + strh r0, [r6, 0x22] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x36] + ldr r0, _080DC998 @ =sub_8078B34 + str r0, [r6, 0x1C] + ldr r1, _080DC99C @ =move_anim_8072740 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DC990: .4byte gUnknown_0202F7C9 +_080DC994: .4byte gUnknown_03004B00 +_080DC998: .4byte sub_8078B34 +_080DC99C: .4byte move_anim_8072740 + thumb_func_end sub_80DC8F4 + + thumb_func_start sub_80DC9A0 +sub_80DC9A0: @ 80DC9A0 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DC9BC + ldr r0, _080DC9FC @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + strh r1, [r0, 0x4] +_080DC9BC: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r1, _080DC9FC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x22] + strh r0, [r5, 0x34] + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080DCA04 + ldr r4, _080DCA00 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + b _080DCA16 + .align 2, 0 +_080DC9FC: .4byte gUnknown_03004B00 +_080DCA00: .4byte gUnknown_0202F7C9 +_080DCA04: + ldr r0, _080DCA2C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x32 + adds r3, r5, 0 + adds r3, 0x36 + movs r1, 0x1 + bl sub_807A3FC +_080DCA16: + adds r0, r5, 0 + bl sub_8078BD4 + ldr r0, _080DCA30 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x6] + strh r0, [r5, 0x38] + ldr r0, _080DCA34 @ =sub_80DCA38 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCA2C: .4byte gUnknown_0202F7C9 +_080DCA30: .4byte gUnknown_03004B00 +_080DCA34: .4byte sub_80DCA38 + thumb_func_end sub_80DC9A0 + + thumb_func_start sub_80DCA38 +sub_80DCA38: @ 80DCA38 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DCA4E + adds r0, r4, 0 + bl move_anim_8072740 + b _080DCA6A +_080DCA4E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0xD + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] +_080DCA6A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DCA38 + + thumb_func_start sub_80DCA70 +sub_80DCA70: @ 80DCA70 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DCAA0 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC + ldr r0, _080DCAA4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCAAC + ldr r0, _080DCAA8 @ =gUnknown_03004B00 + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _080DCAB8 + .align 2, 0 +_080DCAA0: .4byte gUnknown_0202F7C9 +_080DCAA4: .4byte gUnknown_0202F7C8 +_080DCAA8: .4byte gUnknown_03004B00 +_080DCAAC: + ldr r1, _080DCAE0 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_080DCAB8: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _080DCAE4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DCAD4 + ldrh r0, [r4, 0x22] + adds r0, 0x8 + strh r0, [r4, 0x22] +_080DCAD4: + ldr r0, _080DCAE8 @ =sub_80DCAEC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DCAE0: .4byte gUnknown_03004B00 +_080DCAE4: .4byte gUnknown_0202F7C9 +_080DCAE8: .4byte sub_80DCAEC + thumb_func_end sub_80DCA70 + + thumb_func_start sub_80DCAEC +sub_80DCAEC: @ 80DCAEC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DCB20 + movs r0, 0 + strh r0, [r3, 0x2E] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080DCB20: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _080DCB34 + adds r0, r3, 0 + bl move_anim_8072740 +_080DCB34: + pop {r0} + bx r0 + thumb_func_end sub_80DCAEC + + thumb_func_start sub_80DCB38 +sub_80DCB38: @ 80DCB38 + ldr r2, _080DCB54 @ =REG_BLDCNT + movs r3, 0xFD + lsls r3, 6 + adds r1, r3, 0 + strh r1, [r2] + adds r2, 0x2 + movs r1, 0x10 + strh r1, [r2] + movs r1, 0x10 + strh r1, [r0, 0x2E] + ldr r1, _080DCB58 @ =sub_80DCB5C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080DCB54: .4byte REG_BLDCNT +_080DCB58: .4byte sub_80DCB5C + thumb_func_end sub_80DCB38 + + thumb_func_start sub_80DCB5C +sub_80DCB5C: @ 80DCB5C + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x32] + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r0, 0x13 + bgt _080DCB70 + adds r0, r1, 0x1 + strh r0, [r3, 0x32] + b _080DCBA8 +_080DCB70: + ldrh r1, [r3, 0x30] + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DCBA8 + ldrh r1, [r3, 0x2E] + subs r1, 0x1 + strh r1, [r3, 0x2E] + ldr r2, _080DCBAC @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080DCBA8 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DCBB0 @ =sub_80DCBB4 + str r0, [r3, 0x1C] +_080DCBA8: + pop {r0} + bx r0 + .align 2, 0 +_080DCBAC: .4byte REG_BLDALPHA +_080DCBB0: .4byte sub_80DCBB4 + thumb_func_end sub_80DCB5C + + thumb_func_start sub_80DCBB4 +sub_80DCBB4: @ 80DCBB4 + push {lr} + ldr r1, _080DCBC8 @ =REG_BLDCNT + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DCBC8: .4byte REG_BLDCNT + thumb_func_end sub_80DCBB4 + + thumb_func_start sub_80DCBCC +sub_80DCBCC: @ 80DCBCC + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DCBEC + ldr r1, _080DCBE8 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + b _080DCC0E + .align 2, 0 +_080DCBE8: .4byte gUnknown_03004B00 +_080DCBEC: + ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCC0E + ldr r1, _080DCCEC @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] + ldrh r0, [r1, 0x6] + negs r0, r0 + strh r0, [r1, 0x6] +_080DCC0E: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DCC5E + ldr r0, _080DCCE8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080DCC5E + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + beq _080DCC4C + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DCC5E +_080DCC4C: + ldr r0, _080DCCEC @ =gUnknown_03004B00 + movs r2, 0x4 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0, 0x4] + movs r2, 0 + ldrsh r1, [r0, r2] + negs r1, r1 + strh r1, [r0] +_080DCC5E: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r5, _080DCCF0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + ldr r6, _080DCCEC @ =gUnknown_03004B00 + lsrs r4, 24 + ldrh r0, [r6, 0x4] + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r6, 0x6] + adds r1, r2 + lsls r1, 16 + ldrh r2, [r7, 0x20] + lsls r0, r4, 16 + asrs r0, 16 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r7, 0x22] + lsrs r5, r1, 16 + asrs r1, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + ldrh r0, [r6, 0x8] + strh r0, [r7, 0x2E] + strh r4, [r7, 0x32] + strh r5, [r7, 0x36] + ldr r0, _080DCCF4 @ =sub_8078B34 + str r0, [r7, 0x1C] + ldr r1, _080DCCF8 @ =move_anim_8072740 + adds r0, r7, 0 + bl oamt_set_x3A_32 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DCCE8: .4byte gUnknown_0202F7C8 +_080DCCEC: .4byte gUnknown_03004B00 +_080DCCF0: .4byte gUnknown_0202F7C9 +_080DCCF4: .4byte sub_8078B34 +_080DCCF8: .4byte move_anim_8072740 + thumb_func_end sub_80DCBCC + + thumb_func_start sub_80DCCFC +sub_80DCCFC: @ 80DCCFC + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DCD68 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCD1C + ldr r1, _080DCD6C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080DCD1C: + ldr r4, _080DCD6C @ =gUnknown_03004B00 + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080DCD70 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _080DCD74 @ =sub_80DCD78 + str r0, [r6, 0x1C] + adds r2, r6, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DCD68: .4byte gUnknown_0202F7C8 +_080DCD6C: .4byte gUnknown_03004B00 +_080DCD70: .4byte gUnknown_0202F7C9 +_080DCD74: .4byte sub_80DCD78 + thumb_func_end sub_80DCCFC + + thumb_func_start sub_80DCD78 +sub_80DCD78: @ 80DCD78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DCDA4 + adds r0, r4, 0 + bl move_anim_8072740 + b _080DCE34 +_080DCDA4: + movs r0, 0x2E + adds r0, r4 + mov r8, r0 + ldrh r7, [r4, 0x20] + ldrh r5, [r4, 0x24] + ldrh r1, [r4, 0x22] + mov r12, r1 + ldrh r6, [r4, 0x26] + mov r2, r8 + add r1, sp, 0x4 + movs r3, 0x7 +_080DCDBA: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080DCDBA + adds r0, r7, r5 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r12 + adds r0, r2, r6 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + bne _080DCE34 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + lsls r1, r5, 16 + asrs r1, 16 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r1, r2 + lsls r2, r6, 16 + asrs r2, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sub_80790F0 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 24 + adds r0, r1 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + adds r2, r3, 0 + bl sub_8078FDC + add r2, sp, 0x4 + mov r1, r8 + movs r3, 0x7 +_080DCE26: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080DCE26 +_080DCE34: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80DCD78 + + thumb_func_start sub_80DCE40 +sub_80DCE40: @ 80DCE40 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DCE54 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DCE5C + ldr r4, _080DCE58 @ =gUnknown_0202F7C8 + b _080DCE5E + .align 2, 0 +_080DCE54: .4byte gUnknown_03004B00 +_080DCE58: .4byte gUnknown_0202F7C8 +_080DCE5C: + ldr r4, _080DCE90 @ =gUnknown_0202F7C9 +_080DCE5E: + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x12 + strh r0, [r5, 0x22] + ldr r1, _080DCE94 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DCE98 @ =sub_80785E4 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCE90: .4byte gUnknown_0202F7C9 +_080DCE94: .4byte move_anim_8074EE0 +_080DCE98: .4byte sub_80785E4 + thumb_func_end sub_80DCE40 + + thumb_func_start sub_80DCE9C +sub_80DCE9C: @ 80DCE9C + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, _080DCF08 @ =gUnknown_03004B00 + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080DCEBC + ldr r0, _080DCF0C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl sub_807A3FC +_080DCEBC: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r4, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xE + strh r0, [r5, 0x22] + ldrb r1, [r6, 0x2] + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + strh r4, [r5, 0x2E] + strh r4, [r5, 0x30] + movs r0, 0x4 + strh r0, [r5, 0x32] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldr r0, _080DCF10 @ =0x0000ffba + strh r0, [r5, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x38] + ldr r1, _080DCF14 @ =sub_80DCF1C + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r1, _080DCF18 @ =sub_8078278 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DCF08: .4byte gUnknown_03004B00 +_080DCF0C: .4byte gUnknown_0202F7C9 +_080DCF10: .4byte 0x0000ffba +_080DCF14: .4byte sub_80DCF1C +_080DCF18: .4byte sub_8078278 + thumb_func_end sub_80DCE9C + + thumb_func_start sub_80DCF1C +sub_80DCF1C: @ 80DCF1C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x20] + adds r0, r1, r2 + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x20 + strh r0, [r4, 0x34] + ldr r0, _080DCF54 @ =0x0000ffe8 + strh r0, [r4, 0x36] + ldr r1, _080DCF58 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080DCF5C @ =sub_8078278 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DCF54: .4byte 0x0000ffe8 +_080DCF58: .4byte move_anim_8074EE0 +_080DCF5C: .4byte sub_8078278 + thumb_func_end sub_80DCF1C + + thumb_func_start sub_80DCF60 +sub_80DCF60: @ 80DCF60 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DCF88 @ =gUnknown_03004B00 + ldrb r1, [r4, 0xA] + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + ldr r0, _080DCF8C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DCF90 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _080DCF96 + .align 2, 0 +_080DCF88: .4byte gUnknown_03004B00 +_080DCF8C: .4byte gUnknown_0202F7C8 +_080DCF90: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_080DCF96: + strh r0, [r5, 0x20] + ldr r3, _080DCFD8 @ =gUnknown_03004B00 + ldrh r2, [r3, 0x2] + ldrh r0, [r5, 0x22] + adds r2, r0 + movs r4, 0 + strh r2, [r5, 0x22] + ldrh r0, [r3, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldrh r0, [r3, 0x6] + adds r2, r0 + strh r2, [r5, 0x36] + adds r0, r5, 0 + bl sub_8078A5C + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + ldr r0, _080DCFDC @ =sub_8078394 + str r0, [r5, 0x1C] + ldr r1, _080DCFE0 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DCFD8: .4byte gUnknown_03004B00 +_080DCFDC: .4byte sub_8078394 +_080DCFE0: .4byte move_anim_8074EE0 + thumb_func_end sub_80DCF60 + + thumb_func_start sub_80DCFE4 +sub_80DCFE4: @ 80DCFE4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DCFFC @ =gUnknown_03004B00 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DD000 + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080DD008 + .align 2, 0 +_080DCFFC: .4byte gUnknown_03004B00 +_080DD000: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080DD008: + ldr r1, _080DD024 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, _080DD028 @ =sub_80DD02C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD024: .4byte gUnknown_03004B00 +_080DD028: .4byte sub_80DD02C + thumb_func_end sub_80DCFE4 + + thumb_func_start sub_80DD02C +sub_80DD02C: @ 80DD02C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080DD072 + adds r0, r4, 0 + bl move_anim_8072740 +_080DD072: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD02C + + thumb_func_start do_boulder_dust +do_boulder_dust: @ 80DD078 + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _080DD154 @ =REG_BLDCNT + ldr r2, _080DD158 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _080DD15C @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DD0C4 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080DD0C4: + ldr r0, _080DD160 @ =gUnknown_030042C0 + strh r5, [r0] + ldr r0, _080DD164 @ =gUnknown_030041B4 + strh r5, [r0] + ldr r0, _080DD168 @ =REG_BG1HOFS + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + str r5, [sp, 0xC] + ldr r2, _080DD16C @ =0x040000d4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080DD170 @ =0x85000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew + bl LZDecompressVram + ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DD120 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080DD120: + ldr r0, _080DD180 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080DD13A + ldr r0, _080DD184 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DD13A + movs r5, 0x1 +_080DD13A: + ldr r0, _080DD188 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + strh r5, [r1, 0x8] + ldr r0, _080DD18C @ =sub_80DD190 + str r0, [r1] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DD154: .4byte REG_BLDCNT +_080DD158: .4byte 0x00003f42 +_080DD15C: .4byte REG_BG1CNT +_080DD160: .4byte gUnknown_030042C0 +_080DD164: .4byte gUnknown_030041B4 +_080DD168: .4byte REG_BG1HOFS +_080DD16C: .4byte 0x040000d4 +_080DD170: .4byte 0x85000400 +_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew +_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew +_080DD17C: .4byte gBattleAnimSpritePalette_261 +_080DD180: .4byte gUnknown_03004B00 +_080DD184: .4byte gUnknown_0202F7C8 +_080DD188: .4byte gTasks +_080DD18C: .4byte sub_80DD190 + thumb_func_end do_boulder_dust + + thumb_func_start sub_80DD190 +sub_80DD190: @ 80DD190 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080DD1C0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r3, r1, 0 + cmp r0, 0 + bne _080DD1CC + ldr r1, _080DD1C4 @ =gUnknown_030042C0 + ldr r5, _080DD1C8 @ =0x0000fffa + adds r0, r5, 0 + ldrh r2, [r1] + adds r0, r2 + b _080DD1D2 + .align 2, 0 +_080DD1C0: .4byte gTasks +_080DD1C4: .4byte gUnknown_030042C0 +_080DD1C8: .4byte 0x0000fffa +_080DD1CC: + ldr r1, _080DD204 @ =gUnknown_030042C0 + ldrh r0, [r1] + adds r0, 0x6 +_080DD1D2: + strh r0, [r1] + adds r4, r1, 0 + ldr r1, _080DD208 @ =gUnknown_030041B4 + ldr r5, _080DD20C @ =0x0000ffff + adds r0, r5, 0 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r0, r3 + movs r5, 0x20 + ldrsh r0, [r0, r5] + mov r8, r2 + adds r2, r1, 0 + cmp r0, 0x4 + bls _080DD1F8 + b _080DD37C +_080DD1F8: + lsls r0, 2 + ldr r1, _080DD210 @ =_080DD214 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD204: .4byte gUnknown_030042C0 +_080DD208: .4byte gUnknown_030041B4 +_080DD20C: .4byte 0x0000ffff +_080DD210: .4byte _080DD214 + .align 2, 0 +_080DD214: + .4byte _080DD228 + .4byte _080DD270 + .4byte _080DD292 + .4byte _080DD2D4 + .4byte _080DD358 +_080DD228: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + movs r4, 0 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + beq _080DD242 + b _080DD37C +_080DD242: + strh r4, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + adds r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080DD26C @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r0, [r3, r2] + cmp r0, 0x7 + beq _080DD260 + b _080DD37C +_080DD260: + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r4, [r3, 0x1E] + b _080DD37C + .align 2, 0 +_080DD26C: .4byte REG_BLDALPHA +_080DD270: + mov r5, r8 + adds r0, r5, r7 + lsls r0, 3 + adds r1, r0, r3 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _080DD37C + movs r0, 0x7 + strh r0, [r1, 0x1E] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _080DD37C +_080DD292: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 3 + adds r3, r0, r3 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080DD37C + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0x1E] + subs r1, 0x1 + strh r1, [r3, 0x1E] + ldr r2, _080DD2D0 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x1E + ldrsh r1, [r3, r2] + cmp r1, 0 + bne _080DD37C + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] + strh r1, [r3, 0x1E] + b _080DD37C + .align 2, 0 +_080DD2D0: .4byte REG_BLDALPHA +_080DD2D4: + mov r0, sp + bl sub_8078914 + ldr r2, [sp] + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0xC + movs r6, 0 + ldr r1, _080DD38C @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r9, r5 + ldr r0, _080DD390 @ =0x85000400 + mov r12, r0 + movs r0, 0x85 + lsls r0, 24 + mov r10, r0 +_080DD2F6: + str r6, [sp, 0xC] + mov r0, r9 + str r0, [r1] + str r2, [r1, 0x4] + mov r0, r12 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080DD2F6 + str r6, [sp, 0xC] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r10 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r0, _080DD38C @ =0x040000d4 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _080DD394 @ =0x85000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080DD344 + ldr r2, _080DD398 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080DD344: + ldr r0, _080DD39C @ =gTasks + mov r5, r8 + adds r1, r5, r7 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + ldr r4, _080DD3A0 @ =gUnknown_030042C0 + ldr r2, _080DD3A4 @ =gUnknown_030041B4 +_080DD358: + movs r1, 0 + strh r1, [r4] + strh r1, [r2] + ldr r0, _080DD3A8 @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r2, _080DD398 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + adds r0, r7, 0 + bl move_anim_task_del +_080DD37C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD38C: .4byte 0x040000d4 +_080DD390: .4byte 0x85000400 +_080DD394: .4byte 0x85000200 +_080DD398: .4byte REG_BG1CNT +_080DD39C: .4byte gTasks +_080DD3A0: .4byte gUnknown_030042C0 +_080DD3A4: .4byte gUnknown_030041B4 +_080DD3A8: .4byte REG_BLDCNT + thumb_func_end sub_80DD190 + + thumb_func_start sub_80DD3AC +sub_80DD3AC: @ 80DD3AC + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DD428 + ldr r4, _080DD3F0 @ =gUnknown_03004B00 + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DD3F8 + ldr r0, _080DD3F4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DD3F8 + movs r0, 0x98 + lsls r0, 1 + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + subs r0, 0x40 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + b _080DD3FC + .align 2, 0 +_080DD3F0: .4byte gUnknown_03004B00 +_080DD3F4: .4byte gUnknown_0202F7C8 +_080DD3F8: + ldr r0, _080DD41C @ =0x0000ffc0 + strh r0, [r5, 0x20] +_080DD3FC: + ldr r4, _080DD420 @ =gUnknown_03004B00 + ldrh r0, [r4] + strh r0, [r5, 0x22] + ldr r1, _080DD424 @ =gUnknown_083DAD10 + adds r0, r5, 0 + bl SetSubspriteTables + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DD484 + .align 2, 0 +_080DD41C: .4byte 0x0000ffc0 +_080DD420: .4byte gUnknown_03004B00 +_080DD424: .4byte gUnknown_083DAD10 +_080DD428: + ldrh r1, [r5, 0x30] + ldrh r3, [r5, 0x34] + adds r1, r3 + ldrh r2, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r2, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r3, [r5, 0x24] + adds r0, r3 + strh r0, [r5, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r3, [r5, 0x26] + adds r0, r3 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x34] + ands r2, r0 + strh r2, [r5, 0x36] + movs r1, 0x38 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DD46E + movs r2, 0x20 + ldrsh r0, [r5, r2] + movs r3, 0x24 + ldrsh r1, [r5, r3] + adds r0, r1 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + ble _080DD484 + b _080DD480 +_080DD46E: + movs r1, 0x20 + ldrsh r0, [r5, r1] + movs r2, 0x24 + ldrsh r1, [r5, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080DD484 +_080DD480: + ldr r0, _080DD48C @ =move_anim_8072740 + str r0, [r5, 0x1C] +_080DD484: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD48C: .4byte move_anim_8072740 + thumb_func_end sub_80DD3AC + + thumb_func_start sub_80DD490 +sub_80DD490: @ 80DD490 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD4C8 @ =gUnknown_03004B00 + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, _080DD4CC @ =sub_8078B34 + str r0, [r4, 0x1C] + ldr r1, _080DD4D0 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD4C8: .4byte gUnknown_03004B00 +_080DD4CC: .4byte sub_8078B34 +_080DD4D0: .4byte move_anim_8072740 + thumb_func_end sub_80DD490 + + thumb_func_start sub_80DD4D4 +sub_80DD4D4: @ 80DD4D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DD554 @ =gTasks + adds r6, r1, r0 + ldr r5, _080DD558 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r7, r0, 16 + ldr r4, _080DD55C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xC0 + lsls r2, 13 + adds r0, r2 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _080DD544 + mov r8, r7 +_080DD544: + bl sub_80DD8BC + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _080DD560 + movs r0, 0x20 + b _080DD566 + .align 2, 0 +_080DD554: .4byte gTasks +_080DD558: .4byte gUnknown_0202F7C8 +_080DD55C: .4byte gUnknown_0202F7C9 +_080DD560: + lsls r1, r5, 3 + movs r0, 0x30 + subs r0, r1 +_080DD566: + strh r0, [r6, 0x18] + movs r4, 0 + strh r4, [r6, 0x8] + strh r4, [r6, 0x1E] + strh r4, [r6, 0x1A] + movs r0, 0x1 + strh r0, [r6, 0x20] + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _080DD57E + adds r0, 0x7 +_080DD57E: + asrs r0, 3 + subs r0, 0x1 + strh r0, [r6, 0x1C] + mov r2, r9 + lsls r0, r2, 3 + strh r0, [r6, 0xC] + lsls r0, r7, 3 + strh r0, [r6, 0xE] + mov r1, r10 + subs r0, r1, r2 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x12] + strh r4, [r6, 0x14] + strh r4, [r6, 0x16] + movs r0, 0x40 + negs r0, r0 + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + asrs r4, 8 + lsrs r4, 16 + movs r0, 0x3F + bl sub_8076F98 + lsls r0, 24 + strh r4, [r6, 0x22] + asrs r0, 24 + lsls r4, 16 + asrs r4, 16 + subs r0, r4 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x24] + strh r5, [r6, 0xA] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + ldr r0, _080DD600 @ =sub_80DD604 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD600: .4byte sub_80DD604 + thumb_func_end sub_80DD4D4 + + thumb_func_start sub_80DD604 +sub_80DD604: @ 80DD604 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DD628 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080DD61E + b _080DD76C +_080DD61E: + lsls r0, 2 + ldr r1, _080DD62C @ =_080DD630 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD628: .4byte gTasks +_080DD62C: .4byte _080DD630 + .align 2, 0 +_080DD630: + .4byte _080DD644 + .4byte _080DD6A8 + .4byte _080DD6B0 + .4byte _080DD70C + .4byte _080DD75E +_080DD644: + ldrh r2, [r4, 0x14] + ldrh r0, [r4, 0x10] + subs r2, r0 + strh r2, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + ldr r3, _080DD6A4 @ =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + lsls r2, 16 + asrs r2, 19 + strh r2, [r0, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080DD694 + movs r0, 0x14 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DD694: + ldrh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA2 + bl PlaySE12WithPanning + b _080DD76C + .align 2, 0 +_080DD6A4: .4byte gSprites +_080DD6A8: + ldrh r0, [r4, 0x1E] + subs r0, 0x1 + strh r0, [r4, 0x1E] + b _080DD750 +_080DD6B0: + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _080DD6D0 + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0x14] + adds r0, r2 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + b _080DD6DA +_080DD6D0: + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DD6DA: + ldr r2, _080DD708 @ =gSprites + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + b _080DD76C + .align 2, 0 +_080DD708: .4byte gSprites +_080DD70C: + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1C + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080DD74A + movs r0, 0 + strh r0, [r4, 0x1A] + adds r0, r4, 0 + bl sub_80DD774 + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xAF + bl PlaySE12WithPanning +_080DD74A: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] +_080DD750: + lsls r0, 16 + cmp r0, 0 + bne _080DD76C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DD76C +_080DD75E: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DD76C + adds r0, r2, 0 + bl move_anim_task_del +_080DD76C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD604 + + thumb_func_start sub_80DD774 +sub_80DD774: @ 80DD774 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bhi _080DD864 + lsls r0, 2 + ldr r1, _080DD790 @ =_080DD794 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DD790: .4byte _080DD794 + .align 2, 0 +_080DD794: + .4byte _080DD7A8 + .4byte _080DD7B4 + .4byte _080DD7B4 + .4byte _080DD7C0 + .4byte _080DD7CC +_080DD7A8: + ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78 + movs r5, 0 + b _080DD7D0 + .align 2, 0 +_080DD7B0: .4byte gSpriteTemplate_83DAD78 +_080DD7B4: + ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90 + movs r5, 0x50 + b _080DD7D0 + .align 2, 0 +_080DD7BC: .4byte gSpriteTemplate_83DAD90 +_080DD7C0: + ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90 + movs r5, 0x40 + b _080DD7D0 + .align 2, 0 +_080DD7C8: .4byte gSpriteTemplate_83DAD90 +_080DD7CC: + ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90 + movs r5, 0x30 +_080DD7D0: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0xE] + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + movs r6, 0x20 + ldrsh r0, [r4, r6] + lsls r0, 2 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r0, r3, 0 + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080DD85C + ldr r1, _080DD870 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x2E] + movs r2, 0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r2, r6, r2 + movs r6, 0xA + ldrsh r3, [r4, r6] + lsls r1, r3, 1 + adds r1, r3 + adds r2, r1 + strh r2, [r0, 0x32] + strh r7, [r0, 0x36] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r2, 1 + movs r3, 0x10 + negs r3, r3 + adds r1, r3, 0 + subs r1, r2 + strh r1, [r0, 0x38] + ldrh r3, [r0, 0x4] + lsls r2, r3, 22 + lsrs r2, 22 + adds r2, r5 + ldr r5, _080DD874 @ =0x000003ff + adds r1, r5, 0 + ands r2, r1 + ldr r1, _080DD878 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + bl sub_80786EC + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] +_080DD85C: + movs r6, 0x20 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x20] +_080DD864: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DD86C: .4byte gSpriteTemplate_83DAD90 +_080DD870: .4byte gSprites +_080DD874: .4byte 0x000003ff +_080DD878: .4byte 0xfffffc00 + thumb_func_end sub_80DD774 + + thumb_func_start sub_80DD87C +sub_80DD87C: @ 80DD87C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080DD8AE + ldr r0, _080DD8B4 @ =sub_80DD604 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080DD8A8 + ldr r0, _080DD8B8 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1E] + subs r0, 0x1 + strh r0, [r1, 0x1E] +_080DD8A8: + adds r0, r4, 0 + bl DestroySprite +_080DD8AE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD8B4: .4byte sub_80DD604 +_080DD8B8: .4byte gTasks + thumb_func_end sub_80DD87C + + thumb_func_start sub_80DD8BC +sub_80DD8BC: @ 80DD8BC + push {lr} + ldr r0, _080DD8E4 @ =gUnknown_0202F7B4 + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _080DD8DE + movs r1, 0x1 +_080DD8DE: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080DD8E4: .4byte gUnknown_0202F7B4 + thumb_func_end sub_80DD8BC + + thumb_func_start sub_80DD8E8 +sub_80DD8E8: @ 80DD8E8 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD920 @ =gUnknown_03004B00 + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + ldrh r1, [r5, 0x4] + subs r0, r1 + strh r0, [r4, 0x34] + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, _080DD924 @ =sub_80DD928 + str r0, [r4, 0x1C] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD920: .4byte gUnknown_03004B00 +_080DD924: .4byte sub_80DD928 + thumb_func_end sub_80DD8E8 + + thumb_func_start sub_80DD928 +sub_80DD928: @ 80DD928 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x34] + movs r3, 0x34 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080DD960 + ldrh r3, [r2, 0x32] + adds r0, r1, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r1, r0 + strh r1, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r1, 16 + cmp r1, 0 + ble _080DD972 + movs r0, 0 + strh r0, [r2, 0x34] + b _080DD972 +_080DD960: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080DD972 + adds r0, r2, 0 + bl move_anim_8072740 +_080DD972: + pop {r0} + bx r0 + thumb_func_end sub_80DD928 + + thumb_func_start sub_80DD978 +sub_80DD978: @ 80DD978 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DD9A0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DD994 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080DD994: + adds r0, r4, 0 + bl sub_807941C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DD9A0: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80DD978 + + thumb_func_start sub_80DD9A4 +sub_80DD9A4: @ 80DD9A4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DD9F0 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DD9F4 @ =gUnknown_03004B00 + ldrh r3, [r2] + ldrh r5, [r4, 0x20] + adds r1, r3, r5 + strh r1, [r4, 0x20] + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r4, 0x22] + strh r3, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x38] + ldrb r1, [r2, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080DD9F8 @ =sub_80DD9FC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DD9F0: .4byte gUnknown_0202F7C9 +_080DD9F4: .4byte gUnknown_03004B00 +_080DD9F8: .4byte sub_80DD9FC + thumb_func_end sub_80DD9A4 + + thumb_func_start sub_80DD9FC +sub_80DD9FC: @ 80DD9FC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + ldrh r1, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + subs r1, r0 + strh r1, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8C + ble _080DDA46 + adds r0, r4, 0 + bl move_anim_8072740 +_080DDA46: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DD9FC + + thumb_func_start sub_80DDA4C +sub_80DDA4C: @ 80DDA4C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080DDA84 @ =gUnknown_0202F7B8 + ldr r0, [r2] + cmp r0, 0x20 + bgt _080DDA60 + ldr r1, _080DDA88 @ =gUnknown_03004B00 + movs r0, 0 + strh r0, [r1, 0xE] +_080DDA60: + ldr r2, [r2] + adds r0, r2, 0 + subs r0, 0x21 + cmp r0, 0x20 + bhi _080DDA70 + ldr r1, _080DDA88 @ =gUnknown_03004B00 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080DDA70: + cmp r2, 0x41 + ble _080DDA7A + ldr r1, _080DDA88 @ =gUnknown_03004B00 + movs r0, 0x2 + strh r0, [r1, 0xE] +_080DDA7A: + adds r0, r3, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080DDA84: .4byte gUnknown_0202F7B8 +_080DDA88: .4byte gUnknown_03004B00 + thumb_func_end sub_80DDA4C + + thumb_func_start sub_80DDA8C +sub_80DDA8C: @ 80DDA8C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080DDAE8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080DDAAE + movs r0, 0 + bl sub_80789D4 + movs r0, 0xC8 + strh r0, [r5, 0xA] +_080DDAAE: + ldr r4, _080DDAEC @ =gUnknown_030041B8 + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + ldrh r0, [r5, 0xA] + subs r0, 0x3 + strh r0, [r5, 0xA] + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _080DDADA + movs r0, 0x1 + bl sub_80789D4 + adds r0, r6, 0 + bl move_anim_task_del +_080DDADA: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDAE8: .4byte gTasks +_080DDAEC: .4byte gUnknown_030041B8 + thumb_func_end sub_80DDA8C + + thumb_func_start sub_80DDAF0 +sub_80DDAF0: @ 80DDAF0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080DDB5C @ =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 _080DDB1C + movs r0, 0 + bl sub_80789D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080DDB60 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r4, 0xC] +_080DDB1C: + ldrh r0, [r4, 0xA] + adds r0, 0x50 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0xA] + ldr r6, _080DDB60 @ =gUnknown_030041B8 + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r0, 0x4 + bl Cos + ldrh r4, [r4, 0xC] + adds r0, r4 + strh r0, [r6] + ldr r0, _080DDB64 @ =gUnknown_03004B00 + movs r2, 0xE + ldrsh r1, [r0, r2] + ldr r0, _080DDB68 @ =0x00000fff + cmp r1, r0 + bne _080DDB54 + movs r0, 0 + strh r0, [r6] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r5, 0 + bl move_anim_task_del +_080DDB54: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDB5C: .4byte gTasks +_080DDB60: .4byte gUnknown_030041B8 +_080DDB64: .4byte gUnknown_03004B00 +_080DDB68: .4byte 0x00000fff + thumb_func_end sub_80DDAF0 + + thumb_func_start sub_80DDB6C +sub_80DDB6C: @ 80DDB6C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DDBC8 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldr r5, _080DDBCC @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_8078BD4 + ldr r0, _080DDBD0 @ =sub_80DDBD8 + str r0, [r4, 0x1C] + movs r0, 0x10 + strh r0, [r4, 0x3A] + ldr r1, _080DDBD4 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x3A] + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DDBC8: .4byte gUnknown_03004B00 +_080DDBCC: .4byte gUnknown_0202F7C9 +_080DDBD0: .4byte sub_80DDBD8 +_080DDBD4: .4byte REG_BLDCNT + thumb_func_end sub_80DDB6C + + thumb_func_start sub_80DDBD8 +sub_80DDBD8: @ 80DDBD8 + push {r4,lr} + adds r4, r0, 0 + bl sub_80DDCC8 + adds r0, r4, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _080DDBF8 + ldr r0, _080DDBF4 @ =sub_80DDC4C + str r0, [r4, 0x1C] + b _080DDC42 + .align 2, 0 +_080DDBF4: .4byte sub_80DDC4C +_080DDBF8: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080DDC30 + cmp r2, 0xC4 + ble _080DDC42 +_080DDC30: + lsls r0, 16 + cmp r0, 0 + ble _080DDC42 + ldr r0, _080DDC48 @ =gUnknown_0202F7D2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xC4 + bl PlaySE12WithPanning +_080DDC42: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDC48: .4byte gUnknown_0202F7D2 + thumb_func_end sub_80DDBD8 + + thumb_func_start sub_80DDC4C +sub_80DDC4C: @ 80DDC4C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078B5C + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl Sin + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r1, 0xF + bl Cos + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x38] + adds r0, r2, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x38] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080DDC92 + cmp r2, 0xC4 + ble _080DDC9E +_080DDC92: + lsls r0, 16 + cmp r0, 0 + ble _080DDC9E + movs r0, 0xC4 + bl PlaySE +_080DDC9E: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DDCBC + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DDCB8 @ =sub_807861C + str r0, [r4, 0x1C] + b _080DDCC2 + .align 2, 0 +_080DDCB8: .4byte sub_807861C +_080DDCBC: + adds r0, r4, 0 + bl sub_80DDCC8 +_080DDCC2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DDC4C + + thumb_func_start sub_80DDCC8 +sub_80DDCC8: @ 80DDCC8 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0xFF + ble _080DDCEC + adds r0, r2, 0x1 + strh r0, [r3, 0x3A] + lsls r0, 16 + ldr r1, _080DDCE8 @ =0x010d0000 + cmp r0, r1 + bne _080DDD4C + movs r0, 0 + b _080DDD4A + .align 2, 0 +_080DDCE8: .4byte 0x010d0000 +_080DDCEC: + ldrh r1, [r3, 0x3C] + adds r4, r1, 0x1 + strh r4, [r3, 0x3C] + movs r0, 0xFF + ands r0, r1 + cmp r0, 0 + bne _080DDD4C + ldr r1, _080DDD10 @ =0xffffff00 + ands r1, r4 + strh r1, [r3, 0x3C] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080DDD14 + adds r0, r2, 0x1 + b _080DDD16 + .align 2, 0 +_080DDD10: .4byte 0xffffff00 +_080DDD14: + subs r0, r2, 0x1 +_080DDD16: + strh r0, [r3, 0x3A] + ldr r2, _080DDD54 @ =REG_BLDALPHA + ldrh r1, [r3, 0x3A] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r0, r1 + strh r0, [r2] + movs r2, 0x3A + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080DDD32 + cmp r0, 0x10 + bne _080DDD3E +_080DDD32: + ldrh r0, [r3, 0x3C] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r3, 0x3C] +_080DDD3E: + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080DDD4C + movs r0, 0x80 + lsls r0, 1 +_080DDD4A: + strh r0, [r3, 0x3A] +_080DDD4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDD54: .4byte REG_BLDALPHA + thumb_func_end sub_80DDCC8 + + thumb_func_start sub_80DDD58 +sub_80DDD58: @ 80DDD58 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r1, _080DDD74 @ =sub_80DDD78 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DDD74: .4byte sub_80DDD78 + thumb_func_end sub_80DDD58 + + thumb_func_start sub_80DDD78 +sub_80DDD78: @ 80DDD78 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x82 + bhi _080DDDAC + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x8 + b _080DDDB6 +_080DDDAC: + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 +_080DDDB6: + orrs r1, r0 + strb r1, [r4, 0x5] + ldrh r0, [r4, 0x2E] + adds r0, 0x13 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x50 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3D + bne _080DDDE8 + adds r0, r4, 0 + bl move_anim_8072740 +_080DDDE8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DDD78 + + thumb_func_start sub_80DDDF0 +sub_80DDDF0: @ 80DDDF0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _080DDE68 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078E70 + adds r0, r4, 0 + movs r1, 0x80 + movs r2, 0x80 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _080DDE6C @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r1, _080DDE70 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x80 + strh r1, [r0, 0x8] + ldr r1, _080DDE74 @ =gUnknown_03004B00 + ldrh r1, [r1] + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r1, 0x10 + strh r1, [r0, 0xE] + ldr r1, _080DDE78 @ =sub_80DDE7C + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DDE68: .4byte REG_BLDCNT +_080DDE6C: .4byte gSprites +_080DDE70: .4byte gTasks +_080DDE74: .4byte gUnknown_03004B00 +_080DDE78: .4byte sub_80DDE7C + thumb_func_end sub_80DDDF0 + + thumb_func_start sub_80DDE7C +sub_80DDE7C: @ 80DDE7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DDEC4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DDEBE + movs r0, 0 + strh r0, [r3, 0x1C] + ldrh r1, [r3, 0xC] + adds r1, 0x1 + strh r1, [r3, 0xC] + ldrh r0, [r3, 0xE] + subs r0, 0x1 + strh r0, [r3, 0xE] + ldr r2, _080DDEC8 @ =REG_BLDALPHA + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0x9 + bne _080DDEBE + ldr r0, _080DDECC @ =sub_80DDED0 + str r0, [r3] +_080DDEBE: + pop {r0} + bx r0 + .align 2, 0 +_080DDEC4: .4byte gTasks +_080DDEC8: .4byte REG_BLDALPHA +_080DDECC: .4byte sub_80DDED0 + thumb_func_end sub_80DDE7C + + thumb_func_start sub_80DDED0 +sub_80DDED0: @ 80DDED0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _080DDEF4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DDEF8 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080DDF36 + .align 2, 0 +_080DDEF4: .4byte gTasks +_080DDEF8: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r1, r0, 24 + ldrh r0, [r4, 0x8] + adds r0, 0x8 + movs r6, 0 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + bgt _080DDF22 + movs r0, 0x8 + ldrsh r2, [r4, r0] + adds r0, r1, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + b _080DDF36 +_080DDF22: + adds r0, r1, 0 + bl sub_8078F40 + adds r0, r5, 0 + bl move_anim_task_del + ldr r0, _080DDF3C @ =REG_BLDCNT + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] +_080DDF36: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDF3C: .4byte REG_BLDCNT + thumb_func_end sub_80DDED0 + + thumb_func_start sub_80DDF40 +sub_80DDF40: @ 80DDF40 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r5, [r4, 0x20] + ldrh r6, [r4, 0x22] + ldr r0, _080DDFDC @ =gUnknown_0202F7C8 + mov r8, r0 + ldrb r0, [r0] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + mov r9, r1 + strh r0, [r4, 0x20] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + mov r1, r9 + strh r1, [r4, 0x2E] + ldr r2, _080DDFE0 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r4, 0x30] + ldrh r1, [r2, 0x2] + strh r1, [r4, 0x32] + ldrh r1, [r2, 0x4] + strh r1, [r4, 0x34] + ldrh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x36] + lsls r0, 4 + strh r0, [r4, 0x38] + lsls r5, 16 + asrs r5, 16 + movs r1, 0x20 + ldrsh r0, [r4, r1] + subs r5, r0 + lsls r5, 4 + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r5, 0 + str r2, [sp] + bl __divsi3 + strh r0, [r4, 0x3A] + lsls r6, 16 + asrs r6, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + subs r6, r0 + lsls r6, 4 + ldr r2, [sp] + movs r0, 0 + ldrsh r1, [r2, r0] + lsls r1, 1 + adds r0, r6, 0 + bl __divsi3 + strh r0, [r4, 0x3C] + ldr r0, _080DDFE4 @ =sub_80DDFE8 + str r0, [r4, 0x1C] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DDFDC: .4byte gUnknown_0202F7C8 +_080DDFE0: .4byte gUnknown_03004B00 +_080DDFE4: .4byte sub_80DDFE8 + thumb_func_end sub_80DDF40 + + thumb_func_start sub_80DDFE8 +sub_80DDFE8: @ 80DDFE8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080DE032 + cmp r0, 0x1 + bgt _080DDFFE + cmp r0, 0 + beq _080DE008 + b _080DE0F6 +_080DDFFE: + cmp r0, 0x2 + beq _080DE09C + cmp r0, 0x3 + beq _080DE0F0 + b _080DE0F6 +_080DE008: + ldrh r0, [r5, 0x3A] + ldrh r2, [r5, 0x36] + adds r0, r2 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x30] + subs r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + b _080DE0E2 +_080DE032: + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + ldr r4, _080DE098 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x30] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x20] + lsls r0, 4 + strh r0, [r5, 0x36] + ldrh r0, [r5, 0x22] + lsls r0, 4 + strh r0, [r5, 0x38] + movs r1, 0x30 + ldrsh r0, [r5, r1] + movs r2, 0x20 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3A] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r2, 0x22 + ldrsh r1, [r5, r2] + subs r0, r1 + lsls r0, 4 + movs r2, 0x34 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0x3C] + b _080DE0E2 + .align 2, 0 +_080DE098: .4byte gUnknown_0202F7C9 +_080DE09C: + ldrh r0, [r5, 0x3A] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r1, [r5, 0x3C] + ldrh r2, [r5, 0x38] + adds r1, r2 + strh r1, [r5, 0x38] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x34] + subs r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + cmp r0, 0 + bgt _080DE0F6 + ldr r4, _080DE0EC @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_080DE0E2: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _080DE0F6 + .align 2, 0 +_080DE0EC: .4byte gUnknown_0202F7C9 +_080DE0F0: + adds r0, r5, 0 + bl move_anim_8074EE0 +_080DE0F6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DDFE8 + + thumb_func_start sub_80DE0FC +sub_80DE0FC: @ 80DE0FC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080DE110 @ =sub_80DE114 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DE110: .4byte sub_80DE114 + thumb_func_end sub_80DE0FC + + thumb_func_start sub_80DE114 +sub_80DE114: @ 80DE114 + push {r4-r6,lr} + adds r3, r0, 0 + movs r5, 0 + movs r6, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080DE1AA + adds r1, r3, 0 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x4 + ands r0, r2 + adds r4, r1, 0 + cmp r0, 0 + bne _080DE13E + movs r0, 0x4 + orrs r0, r2 + strb r0, [r4] +_080DE13E: + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080DE14E + cmp r0, 0x1 + beq _080DE158 + movs r6, 0x1 + b _080DE162 +_080DE14E: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x2 + bne _080DE162 + b _080DE166 +_080DE158: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bne _080DE162 + movs r5, 0x1 +_080DE162: + cmp r5, 0 + beq _080DE198 +_080DE166: + ldrb r2, [r4] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x32] + strh r1, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _080DE1AA + strh r1, [r3, 0x32] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080DE1AA +_080DE198: + cmp r6, 0 + beq _080DE1A4 + adds r0, r3, 0 + bl move_anim_8072740 + b _080DE1AA +_080DE1A4: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_080DE1AA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DE114 + + thumb_func_start sub_80DE1B0 +sub_80DE1B0: @ 80DE1B0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DE1DC @ =gTasks + adds r5, r0, r1 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + movs r6, 0 + movs r1, 0 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080DE1E0 + adds r0, r4, 0 + bl move_anim_task_del + b _080DE2C0 + .align 2, 0 +_080DE1DC: .4byte gTasks +_080DE1E0: + strh r1, [r5, 0xA] + movs r0, 0xF + strh r0, [r5, 0xC] + movs r0, 0x2 + strh r0, [r5, 0xE] + strh r1, [r5, 0x10] + ldr r1, _080DE244 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080DE248 @ =REG_BLDALPHA + ldrh r0, [r5, 0xE] + lsls r0, 8 + ldrh r1, [r5, 0xC] + orrs r0, r1 + strh r0, [r2] + ldr r4, _080DE24C @ =gSprites + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x50 + strh r1, [r0, 0x2E] + ldr r0, _080DE250 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DE258 + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE254 @ =0x0000ff70 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x70 + b _080DE276 + .align 2, 0 +_080DE244: .4byte REG_BLDCNT +_080DE248: .4byte REG_BLDALPHA +_080DE24C: .4byte gSprites +_080DE250: .4byte gUnknown_0202F7C9 +_080DE254: .4byte 0x0000ff70 +_080DE258: + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x90 + strh r1, [r0, 0x30] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE2C8 @ =0x0000ff90 +_080DE276: + strh r1, [r0, 0x32] + ldr r4, _080DE2CC @ =gSprites + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x34] + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x36] + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080DE2D0 @ =SpriteCallbackDummy + bl oamt_set_x3A_32 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _080DE2D4 @ =sub_8078394 + str r1, [r0] + ldr r0, _080DE2D8 @ =sub_80DE2DC + str r0, [r5] +_080DE2C0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DE2C8: .4byte 0x0000ff90 +_080DE2CC: .4byte gSprites +_080DE2D0: .4byte SpriteCallbackDummy +_080DE2D4: .4byte sub_8078394 +_080DE2D8: .4byte sub_80DE2DC + thumb_func_end sub_80DE1B0 + + thumb_func_start sub_80DE2DC +sub_80DE2DC: @ 80DE2DC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DE300 @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DE37C + cmp r0, 0x1 + bgt _080DE304 + cmp r0, 0 + beq _080DE30A + b _080DE3A6 + .align 2, 0 +_080DE300: .4byte gTasks +_080DE304: + cmp r0, 0x2 + beq _080DE3A0 + b _080DE3A6 +_080DE30A: + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x3 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0x1 + bne _080DE328 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DE328 + subs r0, r1, 0x1 + strh r0, [r4, 0xC] +_080DE328: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _080DE33E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DE33E + adds r0, r1, 0x1 + strh r0, [r4, 0xE] +_080DE33E: + ldr r2, _080DE374 @ =REG_BLDALPHA + ldrh r0, [r4, 0xE] + lsls r0, 8 + ldrh r1, [r4, 0xC] + orrs r0, r1 + strh r0, [r2] + ldr r1, [r4, 0xC] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080DE3A6 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080DE3A6 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DE378 @ =gSprites + adds r0, r1 + bl obj_delete_but_dont_free_vram + movs r0, 0x1 + strh r0, [r4, 0x10] + b _080DE3A6 + .align 2, 0 +_080DE374: .4byte REG_BLDALPHA +_080DE378: .4byte gSprites +_080DE37C: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DE3A6 + ldr r0, _080DE39C @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + b _080DE3A6 + .align 2, 0 +_080DE39C: .4byte REG_BLDCNT +_080DE3A0: + adds r0, r2, 0 + bl move_anim_task_del +_080DE3A6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DE2DC + + thumb_func_start sub_80DE3AC +sub_80DE3AC: @ 80DE3AC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, _080DE3CC @ =gTasks + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + ldr r2, _080DE3D0 @ =sub_80DE3D4 + str r2, [r1] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080DE3CC: .4byte gTasks +_080DE3D0: .4byte sub_80DE3D4 + thumb_func_end sub_80DE3AC + + thumb_func_start sub_80DE3D4 +sub_80DE3D4: @ 80DE3D4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080DE40C @ =gTasks + adds r5, r0, r1 + ldr r0, _080DE410 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080DE400 + b _080DE604 +_080DE400: + lsls r0, 2 + ldr r1, _080DE414 @ =_080DE418 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DE40C: .4byte gTasks +_080DE410: .4byte gUnknown_0202F7C9 +_080DE414: .4byte _080DE418 + .align 2, 0 +_080DE418: + .4byte _080DE42C + .4byte _080DE500 + .4byte _080DE544 + .4byte _080DE5AC + .4byte _080DE5E0 +_080DE42C: + ldr r7, _080DE460 @ =0x00002771 + adds r0, r7, 0 + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + mov r8, r2 + strh r0, [r5, 0x24] + cmp r0, 0xFF + beq _080DE456 + movs r0, 0x1 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bge _080DE464 + adds r0, r7, 0 + bl FreeSpritePaletteByTag +_080DE456: + adds r0, r4, 0 + bl move_anim_task_del + b _080DE60A + .align 2, 0 +_080DE460: .4byte 0x00002771 +_080DE464: + ldr r4, _080DE4E4 @ =gSprites + movs r3, 0x8 + ldrsh r0, [r5, r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r2, [r5, 0x24] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r1, 0x8 + ldrsh r0, [r5, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + movs r2, 0x8 + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + mov r3, r8 + strh r3, [r5, 0xA] + strh r3, [r5, 0xC] + movs r0, 0x10 + strh r0, [r5, 0xE] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x10] + cmp r6, 0x1 + bne _080DE4EC + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE4E8 @ =0x0000fdff + b _080DE4F4 + .align 2, 0 +_080DE4E4: .4byte gSprites +_080DE4E8: .4byte 0x0000fdff +_080DE4EC: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE4FC @ =0x0000fbff +_080DE4F4: + ands r0, r1 + strh r0, [r2] + b _080DE604 + .align 2, 0 +_080DE4FC: .4byte 0x0000fbff +_080DE500: + movs r1, 0x24 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 4 + strh r0, [r5, 0x24] + movs r2, 0x10 + ldrsh r0, [r5, r2] + lsls r0, 1 + ldr r1, _080DE534 @ =gPlttBufferUnfaded + adds r0, r1 + movs r3, 0x24 + ldrsh r1, [r5, r3] + lsls r1, 1 + ldr r2, _080DE538 @ =gPlttBufferFaded + adds r1, r2 + ldr r2, _080DE53C @ =REG_BG0CNT + bl CpuSet + ldrh r0, [r5, 0x10] + ldr r3, _080DE540 @ =0x00003c0d + movs r1, 0x10 + movs r2, 0xA + bl BlendPalette + b _080DE604 + .align 2, 0 +_080DE534: .4byte gPlttBufferUnfaded +_080DE538: .4byte gPlttBufferFaded +_080DE53C: .4byte REG_BG0CNT +_080DE540: .4byte 0x00003c0d +_080DE544: + ldr r2, _080DE580 @ =gSprites + movs r0, 0x22 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + subs r1, 0x20 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080DE564 + movs r2, 0 +_080DE564: + cmp r6, 0x1 + bne _080DE584 + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x4 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + b _080DE59C + .align 2, 0 +_080DE580: .4byte gSprites +_080DE584: + lsls r0, r2, 24 + lsrs r0, 24 + adds r1, r2, 0 + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + str r2, [sp] + movs r2, 0x8 + str r2, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] +_080DE59C: + movs r2, 0x2 + movs r3, 0x6 + bl sub_8089944 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + b _080DE604 +_080DE5AC: + cmp r6, 0x1 + bne _080DE5C0 + ldr r1, _080DE5B8 @ =REG_BLDCNT + ldr r2, _080DE5BC @ =0x00003f42 + adds r0, r2, 0 + b _080DE5C6 + .align 2, 0 +_080DE5B8: .4byte REG_BLDCNT +_080DE5BC: .4byte 0x00003f42 +_080DE5C0: + ldr r1, _080DE5D4 @ =REG_BLDCNT + ldr r3, _080DE5D8 @ =0x00003f44 + adds r0, r3, 0 +_080DE5C6: + strh r0, [r1] + ldr r1, _080DE5DC @ =REG_BLDALPHA + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + b _080DE604 + .align 2, 0 +_080DE5D4: .4byte REG_BLDCNT +_080DE5D8: .4byte 0x00003f44 +_080DE5DC: .4byte REG_BLDALPHA +_080DE5E0: + cmp r6, 0x1 + bne _080DE5F0 + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080DE5FA +_080DE5F0: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080DE5FA: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + ldr r0, _080DE618 @ =sub_80DE61C + str r0, [r5] +_080DE604: + ldrh r0, [r5, 0x26] + adds r0, 0x1 + strh r0, [r5, 0x26] +_080DE60A: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE618: .4byte sub_80DE61C + thumb_func_end sub_80DE3D4 + + thumb_func_start sub_80DE61C +sub_80DE61C: @ 80DE61C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DE6A0 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + adds r1, 0x1 + strh r1, [r4, 0xA] + movs r0, 0x1 + ands r0, r1 + strh r0, [r4, 0x12] + cmp r0, 0 + bne _080DE654 + ldr r1, _080DE6A4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + strh r0, [r4, 0xC] +_080DE654: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _080DE676 + ldr r1, _080DE6A4 @ =gSineTable + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x12 + bl __divsi3 + movs r1, 0x10 + subs r1, r0 + strh r1, [r4, 0xE] +_080DE676: + ldr r2, _080DE6A8 @ =REG_BLDALPHA + ldrh r0, [r4, 0xE] + lsls r0, 8 + ldrh r1, [r4, 0xC] + orrs r0, r1 + strh r0, [r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x80 + bne _080DE698 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080DE6AC @ =sub_80DE6B0 + str r1, [r4] + adds r0, r5, 0 + bl _call_via_r1 +_080DE698: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DE6A0: .4byte gTasks +_080DE6A4: .4byte gSineTable +_080DE6A8: .4byte REG_BLDALPHA +_080DE6AC: .4byte sub_80DE6B0 + thumb_func_end sub_80DE61C + + thumb_func_start sub_80DE6B0 +sub_80DE6B0: @ 80DE6B0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080DE6E0 @ =gTasks + adds r4, r0, r1 + ldr r0, _080DE6E4 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080DE72C + cmp r0, 0x1 + bgt _080DE6E8 + cmp r0, 0 + beq _080DE6EE + b _080DE7AA + .align 2, 0 +_080DE6E0: .4byte gTasks +_080DE6E4: .4byte gUnknown_0202F7C9 +_080DE6E8: + cmp r0, 0x2 + beq _080DE740 + b _080DE7AA +_080DE6EE: + ldr r1, _080DE710 @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] + movs r0, 0x1 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + cmp r6, 0x1 + bne _080DE718 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE714 @ =0x0000fdff + b _080DE720 + .align 2, 0 +_080DE710: .4byte gUnknown_03004DC0 +_080DE714: .4byte 0x0000fdff +_080DE718: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080DE728 @ =0x0000fbff +_080DE720: + ands r0, r1 + strh r0, [r2] + b _080DE7AA + .align 2, 0 +_080DE728: .4byte 0x0000fbff +_080DE72C: + ldrh r0, [r4, 0x10] + ldr r3, _080DE73C @ =0x00003c0d + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + b _080DE7AA + .align 2, 0 +_080DE73C: .4byte 0x00003c0d +_080DE740: + ldr r3, _080DE788 @ =gSprites + movs r0, 0x24 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl obj_delete_but_dont_free_vram + ldr r0, _080DE78C @ =0x00002771 + bl FreeSpritePaletteByTag + ldr r0, _080DE790 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + cmp r6, 0x1 + bne _080DE794 + subs r0, 0x52 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 2 + b _080DE79E + .align 2, 0 +_080DE788: .4byte gSprites +_080DE78C: .4byte 0x00002771 +_080DE790: .4byte REG_BLDCNT +_080DE794: + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 +_080DE79E: + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del +_080DE7AA: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DE6B0 + + thumb_func_start sub_80DE7B8 +sub_80DE7B8: @ 80DE7B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + ldr r0, _080DE7F4 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DE800 + ldr r4, _080DE7F8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080DE7FC @ =gUnknown_0202F7C9 + b _080DE824 + .align 2, 0 +_080DE7F4: .4byte gUnknown_03004B00 +_080DE7F8: .4byte gUnknown_0202F7C8 +_080DE7FC: .4byte gUnknown_0202F7C9 +_080DE800: + ldr r4, _080DE8C8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xE0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + ldr r4, _080DE8CC @ =gUnknown_0202F7C8 +_080DE824: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xE0 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + mov r9, r0 + mov r8, r5 + mov r2, r9 + subs r4, r2, r5 + lsls r4, 16 + lsrs r4, 16 + lsls r0, r6, 4 + strh r0, [r7, 0x2E] + lsls r0, r5, 4 + strh r0, [r7, 0x30] + mov r1, r10 + subs r0, r1, r6 + lsls r0, 4 + ldr r5, _080DE8D0 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r7, 0x32] + lsls r4, 16 + asrs r4, 12 + movs r0, 0x2 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r7, 0x34] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0x36] + mov r1, r10 + strh r1, [r7, 0x38] + mov r2, r9 + strh r2, [r7, 0x3A] + movs r1, 0x36 + ldrsh r0, [r7, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r7, 0x3C] + ldrb r1, [r7, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x5] + strh r6, [r7, 0x20] + mov r2, r8 + strh r2, [r7, 0x22] + ldr r0, _080DE8D4 @ =sub_80DE8D8 + str r0, [r7, 0x1C] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DE8C8: .4byte gUnknown_0202F7C9 +_080DE8CC: .4byte gUnknown_0202F7C8 +_080DE8D0: .4byte gUnknown_03004B00 +_080DE8D4: .4byte sub_80DE8D8 + thumb_func_end sub_80DE7B8 + + thumb_func_start sub_80DE8D8 +sub_80DE8D8: @ 80DE8D8 + push {r4,lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x36] + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080DE910 + ldrh r0, [r2, 0x32] + ldrh r4, [r2, 0x2E] + adds r0, r4 + strh r0, [r2, 0x2E] + ldrh r1, [r2, 0x34] + ldrh r4, [r2, 0x30] + adds r1, r4 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r2, 0x22] + subs r0, r3, 0x1 + strh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080DE910 + strh r0, [r2, 0x2E] +_080DE910: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DE8D8 + + thumb_func_start sub_80DE918 +sub_80DE918: @ 80DE918 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DEA68 @ =gTasks + adds r1, r0 + str r1, [sp] + ldr r1, _080DEA6C @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + movs r0, 0 + ldr r1, [sp] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + strh r0, [r1, 0x16] + strh r0, [r1, 0x18] + movs r0, 0x10 + strh r0, [r1, 0x1A] + ldr r2, _080DEA70 @ =gUnknown_03004B00 + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldr r4, _080DEA74 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_807A100 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DE988 + b _080DEA88 +_080DE988: + movs r4, 0 +_080DE98A: + lsls r1, r4, 16 + asrs r3, r1, 16 + ldr r0, _080DEA74 @ =gUnknown_0202F7C8 + ldrb r2, [r0] + str r1, [sp, 0x10] + cmp r3, r2 + beq _080DEA56 + movs r0, 0x2 + eors r2, r0 + cmp r3, r2 + beq _080DEA56 + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080DEA56 + ldr r6, [sp, 0x4] + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + asrs r7, r0, 16 + ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08 + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080DEA56 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_807A100 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r0, r8 + lsls r5, r0, 4 + add r5, r8 + lsls r5, 2 + ldr r1, _080DEA7C @ =gSprites + adds r4, r5, r1 + lsls r0, r6, 4 + strh r0, [r4, 0x2E] + lsls r0, r7, 4 + strh r0, [r4, 0x30] + mov r2, r10 + subs r0, r2, r6 + lsls r0, 4 + ldr r3, _080DEA70 @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + lsls r0, r3, 16 + asrs r0, 16 + subs r0, r7 + lsls r0, 4 + ldr r2, _080DEA70 @ =gUnknown_03004B00 + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080DEA70 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + ldr r0, _080DEA80 @ =gSprites + 0x1C + adds r5, r0 + ldr r0, _080DEA84 @ =sub_80DE8D8 + str r0, [r5] + ldr r2, [sp] + movs r3, 0x20 + ldrsh r1, [r2, r3] + adds r1, 0xD + lsls r1, 1 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] +_080DEA56: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080DE98A + b _080DEB0C + .align 2, 0 +_080DEA68: .4byte gTasks +_080DEA6C: .4byte REG_BLDCNT +_080DEA70: .4byte gUnknown_03004B00 +_080DEA74: .4byte gUnknown_0202F7C8 +_080DEA78: .4byte gSpriteTemplate_83DAF08 +_080DEA7C: .4byte gSprites +_080DEA80: .4byte gSprites + 0x1C +_080DEA84: .4byte sub_80DE8D8 +_080DEA88: + ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08 + ldr r7, [sp, 0x4] + ldr r2, [sp, 0x8] + lsls r1, r2, 16 + asrs r1, 16 + str r1, [sp, 0xC] + adds r1, r7, 0 + ldr r2, [sp, 0xC] + movs r3, 0x37 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x40 + beq _080DEB0C + movs r3, 0x30 + mov r10, r3 + movs r0, 0x28 + mov r9, r0 + ldr r6, _080DEB28 @ =gSprites + mov r1, r8 + lsls r5, r1, 4 + add r5, r8 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, r7, 4 + strh r0, [r4, 0x2E] + ldr r2, [sp, 0xC] + lsls r0, r2, 4 + strh r0, [r4, 0x30] + subs r0, r3, r7 + lsls r0, 4 + ldr r3, _080DEB2C @ =gUnknown_03004B00 + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl __divsi3 + strh r0, [r4, 0x32] + mov r3, r9 + ldr r1, [sp, 0xC] + subs r0, r3, r1 + lsls r0, 4 + ldr r2, _080DEB2C @ =gUnknown_03004B00 + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl __divsi3 + strh r0, [r4, 0x34] + ldr r1, _080DEB2C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x36] + mov r2, r10 + strh r2, [r4, 0x38] + mov r3, r9 + strh r3, [r4, 0x3A] + adds r6, 0x1C + adds r5, r6 + ldr r0, _080DEB30 @ =sub_80DE8D8 + str r0, [r5] + mov r1, r8 + ldr r0, [sp] + strh r1, [r0, 0x22] + movs r0, 0x1 + ldr r2, [sp] + strh r0, [r2, 0x20] +_080DEB0C: + ldr r0, _080DEB34 @ =sub_80DEB38 + ldr r3, [sp] + str r0, [r3] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEB24: .4byte gSpriteTemplate_83DAF08 +_080DEB28: .4byte gSprites +_080DEB2C: .4byte gUnknown_03004B00 +_080DEB30: .4byte sub_80DE8D8 +_080DEB34: .4byte sub_80DEB38 + thumb_func_end sub_80DE918 + + thumb_func_start sub_80DEB38 +sub_80DEB38: @ 80DEB38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080DEB5C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080DEBEE + cmp r1, 0x1 + bgt _080DEB60 + cmp r1, 0 + beq _080DEB6E + b _080DECA4 + .align 2, 0 +_080DEB5C: .4byte gTasks +_080DEB60: + cmp r1, 0x2 + bne _080DEB66 + b _080DEC80 +_080DEB66: + cmp r1, 0x3 + bne _080DEB6C + b _080DEC94 +_080DEB6C: + b _080DECA4 +_080DEB6E: + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DEBCE + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DEBCE + strh r1, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DEBA4 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DEBB2 + adds r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080DEBB2 +_080DEBA4: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEBB2 + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080DEBB2: + ldr r2, _080DEBE0 @ =REG_BLDALPHA + ldrh r0, [r4, 0x1A] + lsls r0, 8 + ldrh r1, [r4, 0x18] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x16 + ldrsh r0, [r4, r1] + cmp r0, 0x17 + ble _080DEBCE + movs r0, 0 + strh r0, [r4, 0x16] + movs r0, 0x1 + strh r0, [r4, 0x14] +_080DEBCE: + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEBE4 + subs r0, r1, 0x1 + strh r0, [r4, 0x1C] + b _080DECA4 + .align 2, 0 +_080DEBE0: .4byte REG_BLDALPHA +_080DEBE4: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080DECA4 + b _080DEC8C +_080DEBEE: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DECA4 + movs r0, 0 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080DEC1E + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080DEC2C + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + b _080DEC2C +_080DEC1E: + ldrh r1, [r4, 0x1A] + movs r2, 0x1A + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DEC2C + adds r0, r1, 0x1 + strh r0, [r4, 0x1A] +_080DEC2C: + ldr r2, _080DEC48 @ =REG_BLDALPHA + ldrh r0, [r4, 0x1A] + lsls r0, 8 + ldrh r1, [r4, 0x18] + orrs r0, r1 + strh r0, [r2] + ldr r1, [r4, 0x18] + movs r0, 0x80 + lsls r0, 13 + cmp r1, r0 + bne _080DECA4 + movs r5, 0 + b _080DEC70 + .align 2, 0 +_080DEC48: .4byte REG_BLDALPHA +_080DEC4C: + adds r1, r5, 0 + adds r1, 0xD + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x8 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080DEC7C @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080DEC70: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r5, r0 + blt _080DEC4C + b _080DEC8C + .align 2, 0 +_080DEC7C: .4byte gSprites +_080DEC80: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + cmp r0, 0 + ble _080DECA4 +_080DEC8C: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DECA4 +_080DEC94: + ldr r0, _080DECAC @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080DECA4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DECAC: .4byte REG_BLDCNT + thumb_func_end sub_80DEB38 + + thumb_func_start sub_80DECB0 +sub_80DECB0: @ 80DECB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080DECF8 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080DECFC @ =gUnknown_03004240 + strh r1, [r0] + ldr r1, _080DED00 @ =REG_WININ + ldr r2, _080DED04 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x20 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0xC8 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r0, _080DED08 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DECF4 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080DED0C +_080DECF4: + movs r6, 0x28 + b _080DED0E + .align 2, 0 +_080DECF8: .4byte gUnknown_030042C4 +_080DECFC: .4byte gUnknown_03004240 +_080DED00: .4byte REG_WININ +_080DED04: .4byte 0x00003f3f +_080DED08: .4byte gUnknown_0202F7C8 +_080DED0C: + movs r6, 0xC8 +_080DED0E: + ldr r1, _080DED4C @ =gUnknown_030042C4 + lsls r3, r6, 16 + asrs r2, r3, 16 + lsls r0, r2, 8 + orrs r0, r2 + strh r0, [r1] + ldr r1, _080DED50 @ =gUnknown_03004240 + movs r5, 0x28 + ldr r0, _080DED54 @ =0x00002828 + strh r0, [r1] + lsrs r3, 16 + movs r1, 0xF0 + subs r1, r2 + movs r4, 0x48 + ldr r2, _080DED58 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r2 + strh r3, [r0, 0xA] + strh r1, [r0, 0xC] + strh r5, [r0, 0xE] + strh r4, [r0, 0x10] + strh r6, [r0, 0x12] + strh r5, [r0, 0x14] + ldr r1, _080DED5C @ =sub_80DED60 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DED4C: .4byte gUnknown_030042C4 +_080DED50: .4byte gUnknown_03004240 +_080DED54: .4byte 0x00002828 +_080DED58: .4byte gTasks +_080DED5C: .4byte sub_80DED60 + thumb_func_end sub_80DECB0 + + thumb_func_start sub_80DED60 +sub_80DED60: @ 80DED60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DEE80 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + adds r0, r1, 0x1 + strh r0, [r4, 0x8] + ldrh r5, [r4, 0xA] + ldrh r7, [r4, 0xC] + ldrh r0, [r4, 0xE] + mov r10, r0 + ldrh r2, [r4, 0x10] + str r2, [sp, 0xC] + ldrh r0, [r4, 0x12] + ldrh r2, [r4, 0x14] + mov r8, r2 + lsls r1, 16 + asrs r6, r1, 16 + cmp r6, 0xF + ble _080DED9C + b _080DEE8C +_080DED9C: + lsls r0, 16 + asrs r0, 16 + bl __floatsidf + str r0, [sp, 0x10] + str r1, [sp, 0x14] + lsls r0, r5, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 @ =0x3fb00000 + ldr r3, _080DEE88 @ =0x00000000 + bl __muldf3 + adds r5, r1, 0 + adds r4, r0, 0 + adds r0, r6, 0 + bl __floatsidf + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + adds r1, r5, 0 + adds r0, r4, 0 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r0, r7, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 @ =0x3fb00000 + ldr r3, _080DEE88 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + adds r5, r1, 0 + adds r4, r0, 0 + mov r2, r10 + lsls r0, r2, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 @ =0x3fb00000 + ldr r3, _080DEE88 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __subdf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, [sp, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + bl __floatsidf + ldr r2, _080DEE84 @ =0x3fb00000 + ldr r3, _080DEE88 @ =0x00000000 + bl __muldf3 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + bl __muldf3 + adds r3, r1, 0 + adds r2, r0, 0 + adds r1, r5, 0 + adds r0, r4, 0 + bl __adddf3 + bl __fixunsdfsi + lsls r0, 16 + lsrs r5, r0, 16 + b _080DEEBA + .align 2, 0 +_080DEE80: .4byte gTasks +_080DEE84: .4byte 0x3fb00000 +_080DEE88: .4byte 0x00000000 +_080DEE8C: + movs r2, 0 + mov r9, r2 + movs r7, 0xF0 + movs r6, 0 + movs r5, 0x70 + str r6, [sp] + str r6, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_80791A8 + lsls r0, 16 + lsrs r0, 16 + str r6, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080DEEDC @ =sub_80DEEE8 + str r0, [r4] +_080DEEBA: + ldr r1, _080DEEE0 @ =gUnknown_030042C4 + mov r2, r9 + lsls r0, r2, 8 + orrs r7, r0 + strh r7, [r1] + ldr r1, _080DEEE4 @ =gUnknown_03004240 + lsls r0, r6, 8 + orrs r5, r0 + strh r5, [r1] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DEEDC: .4byte sub_80DEEE8 +_080DEEE0: .4byte gUnknown_030042C4 +_080DEEE4: .4byte gUnknown_03004240 + thumb_func_end sub_80DED60 + + thumb_func_start sub_80DEEE8 +sub_80DEEE8: @ 80DEEE8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080DEF28 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080DEF20 + ldr r0, _080DEF2C @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080DEF30 @ =gUnknown_03004240 + strh r2, [r0] + ldr r0, _080DEF34 @ =REG_WININ + ldr r4, _080DEF38 @ =0x00003f3f + adds r1, r4, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x6 + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + adds r0, r3, 0 + bl move_anim_task_del +_080DEF20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DEF28: .4byte gPaletteFade +_080DEF2C: .4byte gUnknown_030042C4 +_080DEF30: .4byte gUnknown_03004240 +_080DEF34: .4byte REG_WININ +_080DEF38: .4byte 0x00003f3f + thumb_func_end sub_80DEEE8 + + thumb_func_start sub_80DEF3C +sub_80DEF3C: @ 80DEF3C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _080DEF68 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080DEF70 + movs r2, 0x18 + ldr r3, _080DEF6C @ =0x0000fffe + ldrb r0, [r4, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + strb r1, [r4, 0x3] + b _080DEF74 + .align 2, 0 +_080DEF68: .4byte gUnknown_0202F7C8 +_080DEF6C: .4byte 0x0000fffe +_080DEF70: + ldr r2, _080DEF90 @ =0x0000ffe8 + movs r3, 0x2 +_080DEF74: + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r3, [r4, 0x30] + movs r0, 0x3C + strh r0, [r4, 0x2E] + ldr r0, _080DEF94 @ =sub_80DEF98 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DEF90: .4byte 0x0000ffe8 +_080DEF94: .4byte sub_80DEF98 + thumb_func_end sub_80DEF3C + + thumb_func_start sub_80DEF98 +sub_80DEF98: @ 80DEF98 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080DEFAA + subs r0, r1, 0x1 + b _080DF00E +_080DEFAA: + ldrh r0, [r3, 0x30] + ldrh r4, [r3, 0x24] + adds r1, r0, r4 + strh r1, [r3, 0x24] + adds r0, r1, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bls _080DF010 + ldrh r0, [r3, 0x20] + adds r0, r1 + strh r0, [r3, 0x20] + movs r0, 0 + strh r0, [r3, 0x24] + ldrh r2, [r3, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x8 + ldr r4, _080DEFFC @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _080DF000 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DF00C + movs r0, 0x1E + strh r0, [r3, 0x2E] + ldr r0, _080DF004 @ =sub_80782D8 + str r0, [r3, 0x1C] + ldr r1, _080DF008 @ =sub_80DF018 + adds r0, r3, 0 + bl oamt_set_x3A_32 + b _080DF010 + .align 2, 0 +_080DEFFC: .4byte 0x000003ff +_080DF000: .4byte 0xfffffc00 +_080DF004: .4byte sub_80782D8 +_080DF008: .4byte sub_80DF018 +_080DF00C: + movs r0, 0x28 +_080DF00E: + strh r0, [r3, 0x2E] +_080DF010: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DEF98 + + thumb_func_start sub_80DF018 +sub_80DF018: @ 80DF018 + push {r4,lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r2, [r3, r0] + cmp r2, 0 + bne _080DF044 + ldr r1, _080DF040 @ =REG_BLDCNT + movs r4, 0xFD + lsls r4, 6 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + strh r2, [r3, 0x30] + strh r2, [r3, 0x32] + b _080DF082 + .align 2, 0 +_080DF040: .4byte REG_BLDCNT +_080DF044: + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + bgt _080DF054 + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080DF082 +_080DF054: + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + ldr r2, _080DF088 @ =REG_BLDALPHA + movs r1, 0x10 + subs r1, r0 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r4, 0x32 + ldrsh r0, [r3, r4] + cmp r0, 0x10 + bne _080DF082 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DF08C @ =sub_80DF090 + str r0, [r3, 0x1C] +_080DF082: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF088: .4byte REG_BLDALPHA +_080DF08C: .4byte sub_80DF090 + thumb_func_end sub_80DF018 + + thumb_func_start sub_80DF090 +sub_80DF090: @ 80DF090 + push {lr} + ldr r1, _080DF0AC @ =REG_BLDCNT + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + ldr r1, _080DF0B0 @ =gUnknown_030042C4 + strh r2, [r1] + ldr r1, _080DF0B4 @ =gUnknown_03004240 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DF0AC: .4byte REG_BLDCNT +_080DF0B0: .4byte gUnknown_030042C4 +_080DF0B4: .4byte gUnknown_03004240 + thumb_func_end sub_80DF090 + + thumb_func_start sub_80DF0B8 +sub_80DF0B8: @ 80DF0B8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0xC + bl Sin + strh r0, [r4, 0x24] + ldr r0, _080DF120 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF0DC + ldrh r0, [r4, 0x24] + negs r0, r0 + strh r0, [r4, 0x24] +_080DF0DC: + ldrh r0, [r4, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080DF12C + ldr r0, _080DF124 @ =0x0000050b + strh r0, [r4, 0x3A] + ldr r1, _080DF128 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x3A] + strh r0, [r1] + b _080DF17E + .align 2, 0 +_080DF120: .4byte gUnknown_0202F7C8 +_080DF124: .4byte 0x0000050b +_080DF128: .4byte REG_BLDCNT +_080DF12C: + cmp r0, 0x1E + ble _080DF17E + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x3A] + lsls r0, r1, 16 + asrs r0, 24 + lsls r0, 16 + movs r2, 0xFF + ands r2, r1 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r3, r0, 16 + cmp r3, 0x10 + bls _080DF150 + movs r3, 0x10 +_080DF150: + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bge _080DF15C + movs r2, 0 +_080DF15C: + ldr r1, _080DF184 @ =REG_BLDALPHA + lsls r0, r3, 8 + orrs r0, r2 + strh r0, [r1] + strh r0, [r4, 0x3A] + cmp r3, 0x10 + bne _080DF17E + cmp r2, 0 + bne _080DF17E + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080DF188 @ =sub_80DF18C + str r0, [r4, 0x1C] +_080DF17E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF184: .4byte REG_BLDALPHA +_080DF188: .4byte sub_80DF18C + thumb_func_end sub_80DF0B8 + + thumb_func_start sub_80DF18C +sub_80DF18C: @ 80DF18C + push {lr} + ldr r1, _080DF1A0 @ =REG_BLDCNT + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_080DF1A0: .4byte REG_BLDCNT + thumb_func_end sub_80DF18C + + thumb_func_start sub_80DF1A4 +sub_80DF1A4: @ 80DF1A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080DF23C @ =gTasks + adds r4, r0 + movs r6, 0 + strh r6, [r4, 0x8] + movs r0, 0x10 + mov r8, r0 + mov r2, r8 + strh r2, [r4, 0xA] + ldr r5, _080DF240 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + ldrb r0, [r5] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldrb r0, [r5] + movs r1, 0x1 + bl sub_807A100 + lsls r0, 16 + asrs r1, r0, 16 + lsrs r0, 31 + adds r1, r0 + asrs r1, 1 + adds r1, 0x8 + strh r1, [r4, 0x1E] + strh r6, [r4, 0x16] + ldrb r0, [r5] + bl sub_8079ED4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x12] + ldrb r0, [r5] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x2 + strh r0, [r4, 0x14] + strh r6, [r4, 0xE] + mov r0, r8 + strh r0, [r4, 0x10] + ldr r1, _080DF244 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + strh r6, [r4, 0x18] + ldr r0, _080DF248 @ =sub_80DF24C + str r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DF23C: .4byte gTasks +_080DF240: .4byte gUnknown_0202F7C8 +_080DF244: .4byte REG_BLDCNT +_080DF248: .4byte sub_80DF24C + thumb_func_end sub_80DF1A4 + + thumb_func_start sub_80DF24C +sub_80DF24C: @ 80DF24C + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _080DF270 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080DF266 + b _080DF3CC +_080DF266: + lsls r0, 2 + ldr r1, _080DF274 @ =_080DF278 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DF270: .4byte gTasks +_080DF274: .4byte _080DF278 + .align 2, 0 +_080DF278: + .4byte _080DF290 + .4byte _080DF300 + .4byte _080DF342 + .4byte _080DF356 + .4byte _080DF3AC + .4byte _080DF3BC +_080DF290: + movs r6, 0 +_080DF292: + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r0, 0x1C + ldrsh r2, [r4, r0] + ldrb r3, [r4, 0x14] + ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080DF2E6 + ldr r1, _080DF2F8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r1 + strh r7, [r5, 0x2E] + ldr r0, _080DF2FC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080DF2C8 + movs r1, 0x1 +_080DF2C8: + strh r1, [r5, 0x30] + movs r0, 0x2A + muls r0, r6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x1E] + strh r0, [r5, 0x34] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + strh r0, [r5, 0x38] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] +_080DF2E6: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080DF292 + b _080DF3B4 + .align 2, 0 +_080DF2F4: .4byte gSpriteTemplate_83DAF80 +_080DF2F8: .4byte gSprites +_080DF2FC: .4byte gUnknown_0202F7C8 +_080DF300: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DF31E + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0xD + bgt _080DF32C + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080DF32C +_080DF31E: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0x4 + ble _080DF32C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] +_080DF32C: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r3, [r4, 0xE] + ldrh r2, [r4, 0x10] + cmp r0, 0xE + bne _080DF39C + cmp r2, 0x4 + bne _080DF39C + movs r0, 0 + strh r0, [r4, 0xA] + b _080DF396 +_080DF342: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _080DF3CC + movs r0, 0 + strh r0, [r4, 0xA] + b _080DF3B4 +_080DF356: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DF374 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080DF382 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080DF382 +_080DF374: + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF382 + adds r0, r1, 0x1 + strh r0, [r4, 0x10] +_080DF382: + movs r1, 0xE + ldrsh r0, [r4, r1] + ldrh r3, [r4, 0xE] + ldrh r2, [r4, 0x10] + cmp r0, 0 + bne _080DF39C + cmp r2, 0x10 + bne _080DF39C + movs r0, 0x1 + strh r0, [r4, 0x18] +_080DF396: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080DF39C: + ldr r1, _080DF3A8 @ =REG_BLDALPHA + lsls r0, r2, 8 + orrs r0, r3 + strh r0, [r1] + b _080DF3CC + .align 2, 0 +_080DF3A8: .4byte REG_BLDALPHA +_080DF3AC: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080DF3CC +_080DF3B4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080DF3CC +_080DF3BC: + ldr r0, _080DF3D4 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r7, 0 + bl move_anim_task_del +_080DF3CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF3D4: .4byte REG_BLDCNT + thumb_func_end sub_80DF24C + + thumb_func_start sub_80DF3D8 +sub_80DF3D8: @ 80DF3D8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080DF3EA + ldrh r0, [r4, 0x32] + adds r0, 0x2 + b _080DF3EE +_080DF3EA: + ldrh r0, [r4, 0x32] + subs r0, 0x2 +_080DF3EE: + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7E + bhi _080DF430 + ldr r2, _080DF42C @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + b _080DF444 + .align 2, 0 +_080DF42C: .4byte gTasks +_080DF430: + ldr r2, _080DF498 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x3 + ldrb r1, [r0, 0x12] + ands r1, r2 +_080DF444: + lsls r1, 2 + ldrb r2, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r0, 3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + movs r1, 0x7 + bl Sin + strh r0, [r4, 0x26] + ldr r2, _080DF498 @ =gTasks + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r1, r0, r2 + movs r2, 0x18 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080DF492 + ldrh r0, [r1, 0x16] + subs r0, 0x1 + strh r0, [r1, 0x16] + adds r0, r4, 0 + bl DestroySprite +_080DF492: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF498: .4byte gTasks + thumb_func_end sub_80DF3D8 + + thumb_func_start sub_80DF49C +sub_80DF49C: @ 80DF49C + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldr r2, _080DF4E0 @ =gUnknown_02024BE0 + ldr r1, _080DF4E4 @ =gUnknown_0202F7C8 + ldrb r1, [r1] + adds r1, r2 + ldrb r1, [r1] + strh r1, [r0, 0x38] + movs r1, 0x80 + strh r1, [r0, 0x2E] + movs r1, 0xA + strh r1, [r0, 0x30] + ldr r2, _080DF4E8 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r0, 0x32] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0x34] + ldr r1, _080DF4EC @ =sub_80DF4F4 + str r1, [r0, 0x1C] + ldr r2, _080DF4F0 @ =gSprites + movs r3, 0x38 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080DF4E0: .4byte gUnknown_02024BE0 +_080DF4E4: .4byte gUnknown_0202F7C8 +_080DF4E8: .4byte gUnknown_03004B00 +_080DF4EC: .4byte sub_80DF4F4 +_080DF4F0: .4byte gSprites + thumb_func_end sub_80DF49C + + thumb_func_start sub_80DF4F4 +sub_80DF4F4: @ 80DF4F4 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x34] + movs r1, 0x34 + ldrsh r3, [r5, r1] + cmp r3, 0 + beq _080DF55C + subs r0, 0x1 + strh r0, [r5, 0x34] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + ldr r4, _080DF554 @ =gSprites + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Cos + movs r1, 0x38 + ldrsh r2, [r5, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x26] + ldrh r0, [r5, 0x32] + ldrh r2, [r5, 0x2E] + adds r1, r0, r2 + strh r1, [r5, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080DF590 + ldr r2, _080DF558 @ =0xffffff00 + adds r0, r1, r2 + strh r0, [r5, 0x2E] + b _080DF590 + .align 2, 0 +_080DF554: .4byte gSprites +_080DF558: .4byte 0xffffff00 +_080DF55C: + ldr r2, _080DF598 @ =gSprites + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x24] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x8 + strh r1, [r0, 0x22] + ldr r0, _080DF59C @ =move_anim_8074EE0 + str r0, [r5, 0x1C] +_080DF590: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF598: .4byte gSprites +_080DF59C: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF4F4 + + thumb_func_start sub_80DF5A0 +sub_80DF5A0: @ 80DF5A0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080DF5E8 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF5F0 + ldr r2, _080DF5EC @ =gUnknown_03004B00 + ldrh r0, [r5, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + negs r0, r0 + strh r0, [r2, 0x8] + adds r1, r2, 0 + b _080DF5FA + .align 2, 0 +_080DF5E8: .4byte gUnknown_0202F7C8 +_080DF5EC: .4byte gUnknown_03004B00 +_080DF5F0: + ldr r1, _080DF630 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] +_080DF5FA: + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r5, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r5, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r5, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r5, 0x38] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080DF634 @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + ldr r0, _080DF638 @ =sub_8078504 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF630: .4byte gUnknown_03004B00 +_080DF634: .4byte move_anim_8074EE0 +_080DF638: .4byte sub_8078504 + thumb_func_end sub_80DF5A0 + + thumb_func_start sub_80DF63C +sub_80DF63C: @ 80DF63C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8078650 + ldr r4, _080DF694 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + ldr r0, _080DF698 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF6A0 + ldr r2, _080DF69C @ =gUnknown_03004B00 + ldrh r0, [r5, 0x20] + ldrh r1, [r2, 0x2] + subs r0, r1 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r1, r0 + strh r1, [r5, 0x22] + ldrh r0, [r5, 0x32] + ldrh r1, [r2, 0x4] + subs r0, r1 + strh r0, [r5, 0x32] + ldrh r0, [r2, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + b _080DF6CA + .align 2, 0 +_080DF694: .4byte gUnknown_0202F7C9 +_080DF698: .4byte gUnknown_0202F7C8 +_080DF69C: .4byte gUnknown_03004B00 +_080DF6A0: + ldr r1, _080DF6E4 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r5, 0x20] + adds r0, r2 + strh r0, [r5, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + ldrh r0, [r1, 0x4] + ldrh r2, [r5, 0x32] + adds r0, r2 + strh r0, [r5, 0x32] + ldrh r0, [r1, 0x6] + ldrh r1, [r5, 0x36] + adds r0, r1 + strh r0, [r5, 0x36] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080DF6CA: + ldr r0, _080DF6E4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080DF6E8 @ =sub_8078B34 + str r0, [r5, 0x1C] + ldr r1, _080DF6EC @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF6E4: .4byte gUnknown_03004B00 +_080DF6E8: .4byte sub_8078B34 +_080DF6EC: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF63C + + thumb_func_start sub_80DF6F0 +sub_80DF6F0: @ 80DF6F0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080DF704 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080DF70C + ldr r4, _080DF708 @ =gUnknown_0202F7C8 + b _080DF70E + .align 2, 0 +_080DF704: .4byte gUnknown_03004B00 +_080DF708: .4byte gUnknown_0202F7C8 +_080DF70C: + ldr r4, _080DF750 @ =gUnknown_0202F7C9 +_080DF70E: + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _080DF754 @ =gUnknown_03004B00 + movs r0, 0x2 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x4] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + ldr r0, _080DF758 @ =sub_8078600 + str r0, [r5, 0x1C] + ldr r1, _080DF75C @ =move_anim_8074EE0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DF750: .4byte gUnknown_0202F7C9 +_080DF754: .4byte gUnknown_03004B00 +_080DF758: .4byte sub_8078600 +_080DF75C: .4byte move_anim_8074EE0 + thumb_func_end sub_80DF6F0 + + thumb_func_start sub_80DF760 +sub_80DF760: @ 80DF760 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080DF788 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080DF77A + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_080DF77A: + adds r0, r4, 0 + bl sub_80DF63C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DF788: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80DF760 + + thumb_func_start sub_80DF78C +sub_80DF78C: @ 80DF78C + push {r4-r7,lr} + adds r6, r0, 0 + ldr r4, _080DF7E0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + strh r0, [r6, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x22] + strh r5, [r6, 0x36] + movs r0, 0x1 + strh r0, [r6, 0x38] + ldr r0, _080DF7E4 @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r6, 0x3A] + ldr r4, _080DF7E8 @ =gUnknown_02024C07 + ldrb r0, [r4] + movs r1, 0 + bl sub_807A100 + lsls r7, r0, 16 + lsrs r5, r7, 16 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_807A100 + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r5, r0 + bls _080DF7EC + lsrs r0, r7, 17 + b _080DF7EE + .align 2, 0 +_080DF7E0: .4byte gUnknown_0202F7C8 +_080DF7E4: .4byte gUnknown_03004B00 +_080DF7E8: .4byte gUnknown_02024C07 +_080DF7EC: + lsrs r0, r1, 17 +_080DF7EE: + strh r0, [r6, 0x3C] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Cos + strh r0, [r6, 0x24] + movs r1, 0x3A + ldrsh r0, [r6, r1] + movs r2, 0x3C + ldrsh r1, [r6, r2] + bl Sin + strh r0, [r6, 0x26] + ldr r0, _080DF818 @ =sub_80DF81C + str r0, [r6, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DF818: .4byte sub_80DF81C + thumb_func_end sub_80DF78C + + thumb_func_start sub_80DF81C +sub_80DF81C: @ 80DF81C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080DF82E + cmp r5, 0x1 + beq _080DF89A + b _080DF91E +_080DF82E: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DF880 + strh r5, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF880 + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080DF880 + movs r0, 0x10 + strh r0, [r4, 0x38] +_080DF880: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080DF91E + movs r0, 0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080DF91E +_080DF89A: + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x38] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x95 + bgt _080DF8C2 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r4, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x95 + ble _080DF8C2 + movs r0, 0x96 + strh r0, [r4, 0x3C] +_080DF8C2: + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080DF90A + movs r0, 0 + strh r0, [r4, 0x36] + ldrh r1, [r4, 0x38] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0xF + bgt _080DF90A + adds r0, r1, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080DF90A + movs r0, 0x10 + strh r0, [r4, 0x38] +_080DF90A: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080DF91E + adds r0, r4, 0 + bl move_anim_8072740 +_080DF91E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DF81C + + thumb_func_start sub_80DF924 +sub_80DF924: @ 80DF924 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080DF950 @ =gTasks + adds r4, r1, r0 + ldr r0, _080DF954 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DF960 + ldr r0, _080DF958 @ =REG_BG1HOFS + str r0, [sp] + ldr r0, _080DF95C @ =gUnknown_030042C0 + b _080DF966 + .align 2, 0 +_080DF950: .4byte gTasks +_080DF954: .4byte gUnknown_0202F7C8 +_080DF958: .4byte REG_BG1HOFS +_080DF95C: .4byte gUnknown_030042C0 +_080DF960: + ldr r0, _080DF9DC @ =REG_BG2HOFS + str r0, [sp] + ldr r0, _080DF9E0 @ =gUnknown_03004288 +_080DF966: + ldrh r0, [r0] + strh r0, [r4, 0xC] + ldr r0, _080DF9E4 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r5, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r5, [r0, 0x9] + ldr r0, _080DF9E8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0xE] + adds r0, 0x20 + strh r0, [r4, 0x10] + cmp r1, 0 + bge _080DF996 + strh r5, [r4, 0xE] +_080DF996: + ldrh r3, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + bgt _080DF9C4 + ldr r5, _080DF9EC @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080DF9A8: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r4, 0xC] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r3, r0 + ble _080DF9A8 +_080DF9C4: + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r0, _080DF9F0 @ =sub_80DF9F4 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DF9DC: .4byte REG_BG2HOFS +_080DF9E0: .4byte gUnknown_03004288 +_080DF9E4: .4byte 0xa2600001 +_080DF9E8: .4byte gUnknown_0202F7C8 +_080DF9EC: .4byte gUnknown_03004DE0 +_080DF9F0: .4byte sub_80DF9F4 + thumb_func_end sub_80DF924 + + thumb_func_start sub_80DF9F4 +sub_80DF9F4: @ 80DF9F4 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080DFA18 @ =gTasks + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _080DFAAA + lsls r0, 2 + ldr r1, _080DFA1C @ =_080DFA20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080DFA18: .4byte gTasks +_080DFA1C: .4byte _080DFA20 + .align 2, 0 +_080DFA20: + .4byte _080DFA34 + .4byte _080DFA56 + .4byte _080DFA66 + .4byte _080DFA92 + .4byte _080DFAA4 +_080DFA34: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DFA8A + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + adds r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080DFA8A + b _080DFA84 +_080DFA56: + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080DFA8A + b _080DFA84 +_080DFA66: + ldrh r0, [r2, 0x16] + adds r0, 0x1 + strh r0, [r2, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080DFA8A + movs r0, 0 + strh r0, [r2, 0x16] + ldrh r0, [r2, 0x14] + subs r0, 0x1 + strh r0, [r2, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080DFA8A +_080DFA84: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_080DFA8A: + adds r0, r2, 0 + bl sub_80DFAB0 + b _080DFAAA +_080DFA92: + ldr r1, _080DFAA0 @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080DFAAA + .align 2, 0 +_080DFAA0: .4byte gUnknown_03004DC0 +_080DFAA4: + adds r0, r3, 0 + bl move_anim_task_del +_080DFAAA: + pop {r0} + bx r0 + thumb_func_end sub_80DF9F4 + + thumb_func_start sub_80DFAB0 +sub_80DFAB0: @ 80DFAB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + ldrh r3, [r5, 0x12] + ldrh r4, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r4, r0 + bgt _080DFB06 + ldr r7, _080DFB1C @ =gUnknown_03004DE0 + mov r12, r7 + ldr r0, _080DFB20 @ =gSineTable + mov r8, r0 + ldr r6, _080DFB24 @ =gUnknown_03004DC0 +_080DFACE: + lsls r2, r4, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + lsls r0, r3, 1 + add r0, r8 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x14 + ldrsh r0, [r5, r7] + muls r0, r1 + asrs r0, 7 + ldrh r1, [r5, 0xC] + adds r0, r1 + strh r0, [r2] + adds r3, 0x8 + movs r0, 0xFF + ands r3, r0 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0x10 + ldrsh r0, [r5, r7] + cmp r4, r0 + ble _080DFACE +_080DFB06: + ldrh r0, [r5, 0x12] + adds r0, 0x9 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x12] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080DFB1C: .4byte gUnknown_03004DE0 +_080DFB20: .4byte gSineTable +_080DFB24: .4byte gUnknown_03004DC0 + thumb_func_end sub_80DFAB0 + + thumb_func_start sub_80DFB28 +sub_80DFB28: @ 80DFB28 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080DFBC8 @ =gUnknown_03004B00 + movs r0, 0x4 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + movs r1, 0x5 + bl __divsi3 + adds r6, r0, 0 + ldr r1, _080DFBCC @ =gUnknown_0202F7C8 + mov r8, r1 + ldrb r0, [r1] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r5, 0x8] + adds r0, r3 + strh r0, [r4, 0x22] + movs r1, 0x2 + ldrsh r0, [r5, r1] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r4, 0x30] + movs r3, 0x2 + ldrsh r0, [r5, r3] + lsls r6, 16 + asrs r6, 16 + adds r1, r6, 0 + bl Sin + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + ldrh r2, [r5] + adds r3, r2, 0 + muls r3, r1 + adds r1, r3, 0 + ldrh r3, [r4, 0x20] + adds r1, r3 + strh r1, [r4, 0x20] + adds r1, r2, 0 + muls r1, r0 + adds r0, r1, 0 + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x34] + ldr r0, _080DFBD0 @ =sub_80DFBD8 + str r0, [r4, 0x1C] + adds r4, 0x2E + ldr r2, _080DFBD4 @ =gUnknown_03000730 + movs r1, 0x6 +_080DFBB0: + ldrh r0, [r4] + strh r0, [r2] + adds r4, 0x2 + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080DFBB0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFBC8: .4byte gUnknown_03004B00 +_080DFBCC: .4byte gUnknown_0202F7C8 +_080DFBD0: .4byte sub_80DFBD8 +_080DFBD4: .4byte gUnknown_03000730 + thumb_func_end sub_80DFB28 + + thumb_func_start sub_80DFBD8 +sub_80DFBD8: @ 80DFBD8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080DFC1C + adds r0, r4, 0 + bl move_anim_8072740 +_080DFC1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80DFBD8 + + thumb_func_start sub_80DFC24 +sub_80DFC24: @ 80DFC24 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080DFC58 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080DFC5C @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r1, 0x8] + ldr r0, _080DFC60 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + movs r2, 0x10 + strh r2, [r1, 0xA] + ldr r1, _080DFC64 @ =REG_BLDALPHA + strh r2, [r1] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DFC70 + ldr r1, _080DFC68 @ =REG_BLDCNT + ldr r2, _080DFC6C @ =0x00003f42 + b _080DFC74 + .align 2, 0 +_080DFC58: .4byte gTasks +_080DFC5C: .4byte gUnknown_03004B00 +_080DFC60: .4byte gUnknown_0202F7C8 +_080DFC64: .4byte REG_BLDALPHA +_080DFC68: .4byte REG_BLDCNT +_080DFC6C: .4byte 0x00003f42 +_080DFC70: + ldr r1, _080DFC8C @ =REG_BLDCNT + ldr r2, _080DFC90 @ =0x00003f44 +_080DFC74: + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DFC94 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080DFC98 @ =sub_80DFC9C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DFC8C: .4byte REG_BLDCNT +_080DFC90: .4byte 0x00003f44 +_080DFC94: .4byte gTasks +_080DFC98: .4byte sub_80DFC9C + thumb_func_end sub_80DFC24 + + thumb_func_start sub_80DFC9C +sub_80DFC9C: @ 80DFC9C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080DFD04 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + lsrs r2, r0, 8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0xC + ldrsh r0, [r4, r3] + ldrb r3, [r4, 0x8] + cmp r0, r3 + bne _080DFD18 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r2, 8 + orrs r1, r0 + movs r3, 0 + strh r1, [r4, 0xA] + ldr r0, _080DFD08 @ =REG_BLDALPHA + strh r1, [r0] + strh r3, [r4, 0xC] + cmp r2, 0x10 + bne _080DFD1E + ldr r2, _080DFD0C @ =gSprites + ldr r1, _080DFD10 @ =gUnknown_02024BE0 + ldr r0, _080DFD14 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0 + bl move_anim_task_del + b _080DFD1E + .align 2, 0 +_080DFD04: .4byte gTasks +_080DFD08: .4byte REG_BLDALPHA +_080DFD0C: .4byte gSprites +_080DFD10: .4byte gUnknown_02024BE0 +_080DFD14: .4byte gUnknown_0202F7C8 +_080DFD18: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080DFD1E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DFC9C + + thumb_func_start sub_80DFD24 +sub_80DFD24: @ 80DFD24 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080DFD48 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080DFD4C @ =gUnknown_03004B00 + ldrh r0, [r0] + strh r0, [r1, 0x8] + movs r2, 0x80 + lsls r2, 5 + strh r2, [r1, 0xA] + ldr r0, _080DFD50 @ =sub_80DFD58 + str r0, [r1] + ldr r0, _080DFD54 @ =REG_BLDALPHA + strh r2, [r0] + bx lr + .align 2, 0 +_080DFD48: .4byte gTasks +_080DFD4C: .4byte gUnknown_03004B00 +_080DFD50: .4byte sub_80DFD58 +_080DFD54: .4byte REG_BLDALPHA + thumb_func_end sub_80DFD24 + + thumb_func_start sub_80DFD58 +sub_80DFD58: @ 80DFD58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080DFDA8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xA] + lsrs r1, r0, 8 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0xC + ldrsh r0, [r2, r3] + ldrb r3, [r2, 0x8] + cmp r0, r3 + bne _080DFDB4 + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r3, 8 + orrs r1, r0 + movs r0, 0 + strh r1, [r2, 0xA] + ldr r5, _080DFDAC @ =REG_BLDALPHA + strh r1, [r5] + strh r0, [r2, 0xC] + cmp r3, 0 + bne _080DFDBA + ldr r0, _080DFDB0 @ =REG_BLDCNT + strh r3, [r0] + strh r3, [r5] + adds r0, r4, 0 + bl move_anim_task_del + b _080DFDBA + .align 2, 0 +_080DFDA8: .4byte gTasks +_080DFDAC: .4byte REG_BLDALPHA +_080DFDB0: .4byte REG_BLDCNT +_080DFDB4: + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] +_080DFDBA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80DFD58 + + thumb_func_start sub_80DFDC0 +sub_80DFDC0: @ 80DFDC0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080DFDE8 @ =REG_BLDALPHA + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080DFDEC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080DFDF8 + ldr r1, _080DFDF0 @ =REG_BLDCNT + ldr r2, _080DFDF4 @ =0x00003f42 + b _080DFDFC + .align 2, 0 +_080DFDE8: .4byte REG_BLDALPHA +_080DFDEC: .4byte gUnknown_0202F7C8 +_080DFDF0: .4byte REG_BLDCNT +_080DFDF4: .4byte 0x00003f42 +_080DFDF8: + ldr r1, _080DFE0C @ =REG_BLDCNT + ldr r2, _080DFE10 @ =0x00003f44 +_080DFDFC: + adds r0, r2, 0 + strh r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080DFE0C: .4byte REG_BLDCNT +_080DFE10: .4byte 0x00003f44 + thumb_func_end sub_80DFDC0 + + thumb_func_start sub_80DFE14 +sub_80DFE14: @ 80DFE14 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _080DFE80 @ =gUnknown_0202F7C9 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x30] + ldr r5, _080DFE84 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r6] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + movs r0, 0x7E + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078A5C + ldrh r0, [r4, 0x30] + negs r0, r0 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + negs r0, r0 + strh r0, [r4, 0x36] + ldr r0, _080DFE88 @ =0x0000ffd8 + strh r0, [r4, 0x3A] + ldr r1, _080DFE8C @ =sub_80DFE90 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080DFE80: .4byte gUnknown_0202F7C9 +_080DFE84: .4byte gUnknown_0202F7C8 +_080DFE88: .4byte 0x0000ffd8 +_080DFE8C: .4byte sub_80DFE90 + thumb_func_end sub_80DFE14 + + thumb_func_start sub_80DFE90 +sub_80DFE90: @ 80DFE90 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r5, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r2, r5, r0 + strh r2, [r4, 0x34] + ldrh r3, [r4, 0x32] + ldrh r6, [r4, 0x36] + adds r1, r3, r6 + strh r1, [r4, 0x36] + lsls r0, r2, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + movs r6, 0x3C + ldrsh r0, [r4, r6] + cmp r0, 0 + bne _080DFED2 + adds r0, r2, r5 + strh r0, [r4, 0x34] + adds r1, r3 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] +_080DFED2: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x3A + ldrsh r1, [r4, r2] + bl Sin + ldrh r6, [r4, 0x26] + adds r0, r6 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x3 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + cmp r0, 0x7F + ble _080DFF02 + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x14 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] +_080DFF02: + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080DFF14 + adds r0, r4, 0 + bl move_anim_8072740 +_080DFF14: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80DFE90 + + thumb_func_start sub_80DFF1C +sub_80DFF1C: @ 80DFF1C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080DFF50 @ =gUnknown_03004B00 + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrb r1, [r5, 0x4] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x30] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x32] + ldr r0, _080DFF54 @ =sub_80DFF58 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080DFF50: .4byte gUnknown_03004B00 +_080DFF54: .4byte sub_80DFF58 + thumb_func_end sub_80DFF1C + + thumb_func_start sub_80DFF58 +sub_80DFF58: @ 80DFF58 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x36] + adds r0, r1 + strh r0, [r2, 0x36] + ldrh r1, [r2, 0x30] + ldrh r3, [r2, 0x38] + adds r1, r3 + strh r1, [r2, 0x38] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _080DFF8E + ldr r0, _080DFF94 @ =sub_80DFF98 + str r0, [r2, 0x1C] +_080DFF8E: + pop {r0} + bx r0 + .align 2, 0 +_080DFF94: .4byte sub_80DFF98 + thumb_func_end sub_80DFF58 + + thumb_func_start sub_80DFF98 +sub_80DFF98: @ 80DFF98 + push {lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x36] + ldrh r0, [r3, 0x2E] + subs r1, r0 + strh r1, [r3, 0x36] + ldrh r0, [r3, 0x38] + ldrh r2, [r3, 0x30] + subs r0, r2 + strh r0, [r3, 0x38] + lsls r1, 16 + asrs r1, 24 + strh r1, [r3, 0x24] + lsls r0, 16 + asrs r0, 24 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _080DFFCA + adds r0, r3, 0 + bl move_anim_8074EE0 +_080DFFCA: + pop {r0} + bx r0 + thumb_func_end sub_80DFF98 + + thumb_func_start sub_80DFFD0 +sub_80DFFD0: @ 80DFFD0 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080DFFE4 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r3, r0, 0 + cmp r1, 0 + bne _080DFFEC + ldr r0, _080DFFE8 @ =gUnknown_0202F7C8 + b _080DFFEE + .align 2, 0 +_080DFFE4: .4byte gUnknown_03004B00 +_080DFFE8: .4byte gUnknown_0202F7C8 +_080DFFEC: + ldr r0, _080E001C @ =gUnknown_0202F7C9 +_080DFFEE: + ldrb r5, [r0] + movs r6, 0x14 + ldrh r2, [r4, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x4 + ldr r7, _080E0020 @ =0x000003ff + adds r0, r7, 0 + ands r1, r0 + ldr r0, _080E0024 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _080E004C + cmp r0, 0x1 + bgt _080E0028 + cmp r0, 0 + beq _080E0032 + b _080E00A0 + .align 2, 0 +_080E001C: .4byte gUnknown_0202F7C9 +_080E0020: .4byte 0x000003ff +_080E0024: .4byte 0xfffffc00 +_080E0028: + cmp r0, 0x2 + beq _080E0066 + cmp r0, 0x3 + beq _080E007E + b _080E00A0 +_080E0032: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + subs r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r4, 0x22] + b _080E00A0 +_080E004C: + adds r0, r5, 0 + movs r1, 0x5 + bl sub_807A100 + subs r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x10 + strh r0, [r4, 0x22] + b _080E00A0 +_080E0066: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + adds r0, 0x8 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x8 + b _080E0094 +_080E007E: + adds r0, r5, 0 + movs r1, 0x4 + bl sub_807A100 + adds r0, 0xE + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x2 + bl sub_807A100 + adds r0, 0x10 +_080E0094: + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r6, 0xEC +_080E00A0: + movs r0, 0x20 + strh r0, [r4, 0x2E] + lsls r0, r6, 24 + asrs r0, 24 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x22] + adds r0, 0xC + strh r0, [r4, 0x36] + ldr r0, _080E00C8 @ =0x0000fff4 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080E00CC @ =sub_80E00D0 + str r0, [r4, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E00C8: .4byte 0x0000fff4 +_080E00CC: .4byte sub_80E00D0 + thumb_func_end sub_80DFFD0 + + thumb_func_start sub_80E00D0 +sub_80E00D0: @ 80E00D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E00E4 + adds r0, r4, 0 + bl move_anim_8074EE0 +_080E00E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E00D0 + + thumb_func_start sub_80E00EC +sub_80E00EC: @ 80E00EC + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080E0150 @ =gTasks + adds r5, r1, r0 + ldr r4, _080E0154 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + strh r1, [r5, 0x12] + strh r0, [r5, 0x10] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r5, 0x24] + adds r0, 0x20 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080E015C + ldr r0, _080E0158 @ =0x0000fff4 + b _080E015E + .align 2, 0 +_080E0150: .4byte gTasks +_080E0154: .4byte gUnknown_0202F7C8 +_080E0158: .4byte 0x0000fff4 +_080E015C: + ldr r0, _080E01A8 @ =0x0000ffc0 +_080E015E: + strh r0, [r5, 0x18] + ldr r0, _080E01AC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080E01C4 + add r4, sp, 0xC + adds r0, r4, 0 + bl sub_8078914 + ldr r0, _080E01B0 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080E01B4 @ =REG_BLDCNT + ldr r2, _080E01B8 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + ldrb r1, [r4, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + ldr r0, _080E01BC @ =REG_BG1VOFS + str r0, [sp] + movs r7, 0x2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E01F4 + ldr r1, _080E01C0 @ =gUnknown_03004288 + b _080E01EE + .align 2, 0 +_080E01A8: .4byte 0x0000ffc0 +_080E01AC: .4byte gUnknown_0202F7C8 +_080E01B0: .4byte gUnknown_030041B4 +_080E01B4: .4byte REG_BLDCNT +_080E01B8: .4byte 0x00003f42 +_080E01BC: .4byte REG_BG1VOFS +_080E01C0: .4byte gUnknown_03004288 +_080E01C4: + ldr r0, _080E0278 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + ldr r1, _080E027C @ =REG_BLDCNT + ldr r2, _080E0280 @ =0x00003f44 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette + ldr r0, _080E0284 @ =REG_BG2VOFS + str r0, [sp] + movs r7, 0x4 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E01F4 + ldr r1, _080E0288 @ =gUnknown_030042C0 +_080E01EE: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] +_080E01F4: + ldr r0, _080E028C @ =0xa2600001 + str r0, [sp, 0x4] + mov r2, sp + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + mov r0, sp + strb r1, [r0, 0x9] + strh r1, [r5, 0x1E] + movs r0, 0x10 + strh r0, [r5, 0x20] + strh r1, [r5, 0x8] + strh r1, [r5, 0xA] + strh r1, [r5, 0xC] + movs r0, 0x3 + bl sub_80E08CC + movs r3, 0 + ldr r4, _080E0290 @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r4, r0 +_080E0220: + lsls r1, r3, 1 + adds r2, r1, r4 + ldrh r0, [r5, 0x1C] + strh r0, [r2] + adds r1, r6 + ldrh r0, [r5, 0x1C] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080E0220 + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldr r1, _080E0294 @ =REG_WINOUT + movs r0, 0x3F + eors r7, r0 + movs r2, 0xFC + lsls r2, 6 + adds r0, r2, 0 + orrs r7, r0 + strh r7, [r1] + subs r1, 0x2 + adds r2, 0x3F + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080E0298 @ =gUnknown_030042C4 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E029C @ =gUnknown_03004240 + movs r0, 0xA0 + strh r0, [r1] + ldr r0, _080E02A0 @ =sub_80E02A4 + str r0, [r5] + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0278: .4byte gUnknown_03004280 +_080E027C: .4byte REG_BLDCNT +_080E0280: .4byte 0x00003f44 +_080E0284: .4byte REG_BG2VOFS +_080E0288: .4byte gUnknown_030042C0 +_080E028C: .4byte 0xa2600001 +_080E0290: .4byte gUnknown_03004DE0 +_080E0294: .4byte REG_WINOUT +_080E0298: .4byte gUnknown_030042C4 +_080E029C: .4byte gUnknown_03004240 +_080E02A0: .4byte sub_80E02A4 + thumb_func_end sub_80E00EC + + thumb_func_start sub_80E02A4 +sub_80E02A4: @ 80E02A4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E02C8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E02BE + b _080E03B6 +_080E02BE: + lsls r0, 2 + ldr r1, _080E02CC @ =_080E02D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E02C8: .4byte gTasks +_080E02CC: .4byte _080E02D0 + .align 2, 0 +_080E02D0: + .4byte _080E02E4 + .4byte _080E0344 + .4byte _080E035E + .4byte _080E039C + .4byte _080E03B0 +_080E02E4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E03B6 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E0314 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0xC + beq _080E0322 + adds r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080E0322 +_080E0314: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _080E0322 + subs r0, r1, 0x1 + strh r0, [r4, 0x20] +_080E0322: + ldr r2, _080E0340 @ =REG_BLDALPHA + ldrh r0, [r4, 0x20] + lsls r0, 8 + ldrh r1, [r4, 0x1E] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _080E03B6 + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + bne _080E03B6 + b _080E03A2 + .align 2, 0 +_080E0340: .4byte REG_BLDALPHA +_080E0344: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r1, r0 + bge _080E03B6 + b _080E03A2 +_080E035E: + ldrh r0, [r4, 0x10] + subs r0, 0x8 + strh r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80E079C + ldrh r1, [r4, 0x24] + adds r1, 0x4 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r2, r0, 0x4 + strh r2, [r4, 0x26] + lsls r1, 16 + lsls r0, r2, 16 + cmp r1, r0 + blt _080E0380 + strh r2, [r4, 0x24] +_080E0380: + ldr r3, _080E0398 @ =gUnknown_030042C4 + ldrh r2, [r4, 0x24] + lsls r0, r2, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r3] + lsls r2, 16 + lsls r1, 16 + cmp r2, r1 + bne _080E03B6 + b _080E03A2 + .align 2, 0 +_080E0398: .4byte gUnknown_030042C4 +_080E039C: + ldr r1, _080E03AC @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E03A2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E03B6 + .align 2, 0 +_080E03AC: .4byte gUnknown_03004DC0 +_080E03B0: + adds r0, r2, 0 + bl move_anim_task_del +_080E03B6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E02A4 + + thumb_func_start sub_80E03BC +sub_80E03BC: @ 80E03BC + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080E03E4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _080E03D8 + b _080E05F2 +_080E03D8: + lsls r0, 2 + ldr r1, _080E03E8 @ =_080E03EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E03E4: .4byte gTasks +_080E03E8: .4byte _080E03EC + .align 2, 0 +_080E03EC: + .4byte _080E0400 + .4byte _080E048C + .4byte _080E04D0 + .4byte _080E053C + .4byte _080E05A4 +_080E0400: + bl sub_8076BE0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E043C + ldr r0, _080E042C @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E0430 @ =gUnknown_03004240 + strh r1, [r0] + ldr r0, _080E0434 @ =REG_WININ + ldr r2, _080E0438 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r4, 0 + bl move_anim_task_del + b _080E05F2 + .align 2, 0 +_080E042C: .4byte gUnknown_030042C4 +_080E0430: .4byte gUnknown_03004240 +_080E0434: .4byte REG_WININ +_080E0438: .4byte 0x00003f3f +_080E043C: + ldr r0, _080E045C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xE] + cmp r0, 0x1 + bne _080E046C + ldr r1, _080E0460 @ =REG_BLDCNT + ldr r2, _080E0464 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0468 @ =gUnknown_03004288 + b _080E0476 + .align 2, 0 +_080E045C: .4byte gUnknown_0202F7C9 +_080E0460: .4byte REG_BLDCNT +_080E0464: .4byte 0x00003f42 +_080E0468: .4byte gUnknown_03004288 +_080E046C: + ldr r1, _080E0480 @ =REG_BLDCNT + ldr r2, _080E0484 @ =0x00003f44 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0488 @ =gUnknown_030042C0 +_080E0476: + ldrh r0, [r1] + adds r0, 0xF0 + strh r0, [r1] + b _080E0590 + .align 2, 0 +_080E0480: .4byte REG_BLDCNT +_080E0484: .4byte 0x00003f44 +_080E0488: .4byte gUnknown_030042C0 +_080E048C: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080E04B4 + mov r0, sp + bl sub_8078914 + ldr r0, _080E04B0 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + movs r0, 0 + movs r2, 0x20 + bl FillPalette + b _080E04C4 + .align 2, 0 +_080E04B0: .4byte gUnknown_030041B4 +_080E04B4: + ldr r0, _080E04CC @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r5, 0x1C] + movs r0, 0 + movs r1, 0x90 + movs r2, 0x20 + bl FillPalette +_080E04C4: + movs r0, 0x3 + bl sub_80E08CC + b _080E0590 + .align 2, 0 +_080E04CC: .4byte gUnknown_03004280 +_080E04D0: + ldr r4, _080E051C @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + movs r6, 0 + strh r0, [r5, 0x16] + ldrb r0, [r4] + movs r1, 0x2 + bl sub_807A100 + subs r0, 0x7 + strh r0, [r5, 0x14] + ldrh r1, [r5, 0x16] + subs r1, r0 + lsls r1, 8 + strh r1, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x4 + strh r1, [r5, 0x24] + adds r0, 0x4 + strh r0, [r5, 0x26] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080E0524 + ldr r0, _080E0520 @ =0x0000fff4 + b _080E0526 + .align 2, 0 +_080E051C: .4byte gUnknown_0202F7C9 +_080E0520: .4byte 0x0000fff4 +_080E0524: + ldr r0, _080E0538 @ =0x0000ffc0 +_080E0526: + strh r0, [r5, 0x18] + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r0, 0xC + strh r0, [r5, 0x1E] + movs r0, 0x8 + strh r0, [r5, 0x20] + b _080E0590 + .align 2, 0 +_080E0538: .4byte 0x0000ffc0 +_080E053C: + movs r2, 0xE + ldrsh r0, [r5, r2] + cmp r0, 0x1 + bne _080E054C + ldr r0, _080E0548 @ =REG_BG1VOFS + b _080E054E + .align 2, 0 +_080E0548: .4byte REG_BG1VOFS +_080E054C: + ldr r0, _080E0598 @ =REG_BG2VOFS +_080E054E: + str r0, [sp, 0xC] + movs r3, 0 + add r4, sp, 0xC + ldr r6, _080E059C @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r7, r6, r0 +_080E055C: + lsls r1, r3, 1 + adds r2, r1, r6 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r2] + adds r1, r7 + ldrh r0, [r5, 0x1C] + adds r0, 0x9F + subs r0, r3 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6F + bls _080E055C + ldr r1, _080E05A0 @ =0xa2600001 + str r1, [r4, 0x4] + movs r2, 0 + movs r0, 0x1 + strb r0, [r4, 0x8] + strb r2, [r4, 0x9] + ldr r0, [sp, 0xC] + ldr r2, [r4, 0x8] + bl sub_80895F8 +_080E0590: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080E05F2 + .align 2, 0 +_080E0598: .4byte REG_BG2VOFS +_080E059C: .4byte gUnknown_03004DE0 +_080E05A0: .4byte 0xa2600001 +_080E05A4: + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _080E05BC + ldr r1, _080E05B4 @ =REG_WINOUT + ldr r2, _080E05B8 @ =0x00003f3d + b _080E05C0 + .align 2, 0 +_080E05B4: .4byte REG_WINOUT +_080E05B8: .4byte 0x00003f3d +_080E05BC: + ldr r1, _080E05FC @ =REG_WINOUT + ldr r2, _080E0600 @ =0x00003f3b +_080E05C0: + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E0604 @ =REG_WININ + ldr r2, _080E0608 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080E060C @ =gUnknown_030042C4 + ldrh r0, [r5, 0x24] + lsls r0, 8 + ldrh r1, [r5, 0x26] + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E0610 @ =gUnknown_03004240 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0 + strh r0, [r5, 0x8] + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + ldr r1, _080E0614 @ =REG_BLDALPHA + ldr r2, _080E0618 @ =0x0000080c + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E061C @ =sub_80E0620 + str r0, [r5] +_080E05F2: + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E05FC: .4byte REG_WINOUT +_080E0600: .4byte 0x00003f3b +_080E0604: .4byte REG_WININ +_080E0608: .4byte 0x00003f3f +_080E060C: .4byte gUnknown_030042C4 +_080E0610: .4byte gUnknown_03004240 +_080E0614: .4byte REG_BLDALPHA +_080E0618: .4byte 0x0000080c +_080E061C: .4byte sub_80E0620 + thumb_func_end sub_80E03BC + + thumb_func_start sub_80E0620 +sub_80E0620: @ 80E0620 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E0644 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E063A + b _080E0784 +_080E063A: + lsls r0, 2 + ldr r1, _080E0648 @ =_080E064C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E0644: .4byte gTasks +_080E0648: .4byte _080E064C + .align 2, 0 +_080E064C: + .4byte _080E0660 + .4byte _080E068C + .4byte _080E06F4 + .4byte _080E0754 + .4byte _080E0768 +_080E0660: + ldrh r0, [r4, 0x12] + adds r0, 0x8 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x16] + movs r3, 0x16 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E0676 + strh r2, [r4, 0x12] +_080E0676: + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x12 + ldrsh r1, [r4, r0] + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080E068A + b _080E0784 +_080E068A: + b _080E075A +_080E068C: + movs r3, 0x26 + ldrsh r0, [r4, r3] + movs r2, 0x24 + ldrsh r1, [r4, r2] + subs r0, r1 + cmp r0, 0x3F + bgt _080E06A8 + ldrh r0, [r4, 0x24] + subs r0, 0x4 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x26] + adds r0, 0x4 + strh r0, [r4, 0x26] + b _080E06AC +_080E06A8: + movs r0, 0x1 + strh r0, [r4, 0xA] +_080E06AC: + ldr r2, _080E06F0 @ =gUnknown_030042C4 + ldrh r0, [r4, 0x24] + lsls r0, 8 + ldrh r1, [r4, 0x26] + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, 0x10] + adds r0, 0x8 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldrh r2, [r4, 0x14] + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E06CE + strh r2, [r4, 0x10] +_080E06CE: + adds r0, r4, 0 + bl sub_80E079C + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E0784 + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080E0784 + movs r0, 0 + strh r0, [r4, 0xA] + b _080E075A + .align 2, 0 +_080E06F0: .4byte gUnknown_030042C4 +_080E06F4: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E0784 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E0724 + ldrh r1, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E0732 + subs r0, r1, 0x1 + strh r0, [r4, 0x1E] + b _080E0732 +_080E0724: + ldrh r1, [r4, 0x20] + movs r3, 0x20 + ldrsh r0, [r4, r3] + cmp r0, 0xF + bgt _080E0732 + adds r0, r1, 0x1 + strh r0, [r4, 0x20] +_080E0732: + ldr r2, _080E0750 @ =REG_BLDALPHA + ldrh r0, [r4, 0x20] + lsls r0, 8 + ldrh r1, [r4, 0x1E] + orrs r0, r1 + strh r0, [r2] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E0784 + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bne _080E0784 + b _080E075A + .align 2, 0 +_080E0750: .4byte REG_BLDALPHA +_080E0754: + ldr r1, _080E0764 @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E075A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E0784 + .align 2, 0 +_080E0764: .4byte gUnknown_03004DC0 +_080E0768: + ldr r0, _080E078C @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E0790 @ =gUnknown_03004240 + strh r1, [r0] + ldr r0, _080E0794 @ =REG_WININ + ldr r3, _080E0798 @ =0x00003f3f + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r2, 0 + bl move_anim_task_del +_080E0784: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E078C: .4byte gUnknown_030042C4 +_080E0790: .4byte gUnknown_03004240 +_080E0794: .4byte REG_WININ +_080E0798: .4byte 0x00003f3f + thumb_func_end sub_80E0620 + + thumb_func_start sub_80E079C +sub_80E079C: @ 80E079C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldrh r0, [r6, 0x12] + ldrh r4, [r6, 0x10] + subs r0, r4 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + beq _080E0890 + movs r2, 0x22 + ldrsh r0, [r6, r2] + bl __divsi3 + mov r8, r0 + movs r3, 0x14 + ldrsh r0, [r6, r3] + lsls r5, r0, 8 + lsls r0, r4, 16 + movs r4, 0 + cmp r0, 0 + ble _080E07FC + ldr r0, _080E0888 @ =gUnknown_03004DE0 + mov r12, r0 + ldr r7, _080E088C @ =gUnknown_03004DC0 +_080E07D0: + lsls r2, r4, 16 + asrs r2, 16 + lsls r3, r2, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r3, r0 + add r3, r12 + adds r1, r2, 0 + subs r1, 0x9F + ldrh r0, [r6, 0x1C] + subs r0, r1 + strh r0, [r3] + adds r2, 0x1 + lsls r2, 16 + lsrs r4, r2, 16 + asrs r2, 16 + movs r1, 0x10 + ldrsh r0, [r6, r1] + cmp r2, r0 + blt _080E07D0 +_080E07FC: + ldrh r4, [r6, 0x10] + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + bgt _080E0846 + ldr r0, _080E0888 @ =gUnknown_03004DE0 + mov r12, r0 + ldr r7, _080E088C @ =gUnknown_03004DC0 +_080E0810: + asrs r4, r3, 16 + cmp r4, 0 + blt _080E0832 + asrs r1, r5, 8 + subs r1, r4 + lsls r3, r4, 1 + ldrb r2, [r7, 0x14] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 7 + adds r3, r0 + add r3, r12 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r6, 0x1C] + adds r1, r2 + strh r1, [r3] +_080E0832: + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r3, r4, 16 + asrs r1, r3, 16 + movs r2, 0x12 + ldrsh r0, [r6, r2] + cmp r1, r0 + ble _080E0810 +_080E0846: + movs r3, 0x1C + ldrsh r0, [r6, r3] + adds r0, 0x9F + lsls r2, r4, 16 + asrs r1, r2, 16 + subs r5, r0, r1 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + bge _080E08BE + ldr r7, _080E0888 @ =gUnknown_03004DE0 + ldr r4, _080E088C @ =gUnknown_03004DC0 +_080E085E: + asrs r3, r2, 16 + cmp r3, 0 + blt _080E0876 + lsls r2, r3, 1 + ldrb r1, [r4, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + strh r5, [r2] + subs r5, 0x1 +_080E0876: + adds r0, r3, 0x1 + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r3, 0x16 + ldrsh r0, [r6, r3] + cmp r1, r0 + blt _080E085E + b _080E08BE + .align 2, 0 +_080E0888: .4byte gUnknown_03004DE0 +_080E088C: .4byte gUnknown_03004DC0 +_080E0890: + movs r1, 0x1C + ldrsh r0, [r6, r1] + adds r5, r0, 0 + adds r5, 0x9F + movs r4, 0 + ldr r3, _080E08C8 @ =gUnknown_03004DE0 + movs r2, 0xF0 + lsls r2, 3 + adds r6, r3, r2 +_080E08A2: + lsls r0, r4, 16 + asrs r0, 16 + lsls r2, r0, 1 + adds r1, r2, r3 + strh r5, [r1] + adds r2, r6 + strh r5, [r2] + subs r5, 0x1 + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _080E08A2 +_080E08BE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E08C8: .4byte gUnknown_03004DE0 + thumb_func_end sub_80E079C + + thumb_func_start sub_80E08CC +sub_80E08CC: @ 80E08CC + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + ldr r7, _080E0914 @ =gSprites + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r0, 0xD + negs r0, r0 + adds r6, r0, 0 +_080E08E2: + lsls r0, r4, 24 + lsrs r0, 24 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080E0902 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x5] + ands r0, r6 + orrs r0, r5 + strb r0, [r1, 0x5] +_080E0902: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080E08E2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0914: .4byte gSprites + thumb_func_end sub_80E08CC + + thumb_func_start sub_80E0918 +sub_80E0918: @ 80E0918 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r6, _080E09B8 @ =gUnknown_0202F7C8 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + ldrb r0, [r6] + adds r1, r4, 0 + bl sub_8076034 + ldr r0, _080E09BC @ =gSprites + mov r9, r0 + ldr r0, _080E09C0 @ =gUnknown_02024BE0 + mov r8, r0 + ldrb r0, [r6] + add r0, r8 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + adds r1, 0x3E + ldrb r2, [r1] + movs r7, 0x5 + negs r7, r7 + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E09A2 + ldrb r0, [r6] + eors r0, r5 + movs r1, 0x1 + eors r4, r1 + adds r1, r4, 0 + bl sub_8076034 + ldrb r0, [r6] + eors r0, r5 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] +_080E09A2: + mov r0, r10 + bl move_anim_task_del + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E09B8: .4byte gUnknown_0202F7C8 +_080E09BC: .4byte gSprites +_080E09C0: .4byte gUnknown_02024BE0 + thumb_func_end sub_80E0918 + + thumb_func_start sub_80E09C4 +sub_80E09C4: @ 80E09C4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080E0A0C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 + adds r0, r5, 0 + bl sub_8076464 + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E0A00 + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_080E0A00: + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E0A0C: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E09C4 + + thumb_func_start sub_80E0A10 +sub_80E0A10: @ 80E0A10 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080E0A40 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrb r1, [r1, 0x4] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _080E0A44 @ =sub_8078600 + str r0, [r4, 0x1C] + ldr r1, _080E0A48 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E0A40: .4byte gUnknown_03004B00 +_080E0A44: .4byte sub_8078600 +_080E0A48: .4byte move_anim_8072740 + thumb_func_end sub_80E0A10 + + thumb_func_start sub_80E0A4C +sub_80E0A4C: @ 80E0A4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080E0B50 @ =gUnknown_030042C4 + strh r7, [r0] + ldr r0, _080E0B54 @ =gUnknown_03004240 + strh r7, [r0] + ldr r1, _080E0B58 @ =REG_WININ + ldr r2, _080E0B5C @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E0B60 @ =0x00003f3d + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E0B64 @ =REG_BLDCNT + ldr r2, _080E0B68 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E0B6C @ =0x00000c08 + adds r0, r3, 0 + strh r0, [r1] + ldr r5, _080E0B70 @ =REG_BG1CNT + ldrb r1, [r5] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r5] + ldrb r1, [r5, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r5, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0AC4 + ldrb r0, [r5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r5] +_080E0AC4: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E0B40 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0B40 + ldr r4, _080E0B74 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E0AF4 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E0B40 +_080E0AF4: + ldrb r0, [r4] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E0B40 + ldr r3, _080E0B78 @ =gSprites + ldr r1, _080E0B7C @ =gUnknown_02024BE0 + ldrb r0, [r4] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r5] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5] + movs r7, 0x1 +_080E0B40: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E0B84 + ldr r0, _080E0B80 @ =0x02019348 + ldrh r5, [r0] + b _080E0BCC + .align 2, 0 +_080E0B50: .4byte gUnknown_030042C4 +_080E0B54: .4byte gUnknown_03004240 +_080E0B58: .4byte REG_WININ +_080E0B5C: .4byte 0x00003f3f +_080E0B60: .4byte 0x00003f3d +_080E0B64: .4byte REG_BLDCNT +_080E0B68: .4byte 0x00003f42 +_080E0B6C: .4byte 0x00000c08 +_080E0B70: .4byte REG_BG1CNT +_080E0B74: .4byte gUnknown_0202F7C8 +_080E0B78: .4byte gSprites +_080E0B7C: .4byte gUnknown_02024BE0 +_080E0B80: .4byte 0x02019348 +_080E0B84: + ldr r4, _080E0BA4 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E0BB0 + ldr r1, _080E0BA8 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E0BAC @ =gEnemyParty + b _080E0BC0 + .align 2, 0 +_080E0BA4: .4byte gUnknown_0202F7C8 +_080E0BA8: .4byte gUnknown_02024A6A +_080E0BAC: .4byte gEnemyParty +_080E0BB0: + ldr r1, _080E0C58 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E0C5C @ =gPlayerParty +_080E0BC0: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 +_080E0BCC: + movs r0, 0 + bl obj_id_for_side_relative_to_move + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E0C60 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080E0C64 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080E0C68 @ =0x85000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080E0C6C @ =gUnknown_08D1D574 + bl LZDecompressVram + ldr r0, _080E0C70 @ =gUnknown_08D1D410 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080E0C74 @ =gUnknown_08D1D54C + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r2, _080E0C78 @ =gUnknown_030042C0 + ldr r0, _080E0C7C @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x60 + strh r0, [r2] + ldr r2, _080E0C80 @ =gUnknown_030041B4 + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + ldr r2, _080E0C84 @ =gUnknown_03004B00 + movs r3, 0x2 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080E0C88 + adds r0, r1, 0 + movs r1, 0 + bl sub_8079108 + b _080E0C94 + .align 2, 0 +_080E0C58: .4byte gUnknown_02024A6A +_080E0C5C: .4byte gPlayerParty +_080E0C60: .4byte gUnknown_0202F7C8 +_080E0C64: .4byte 0x040000d4 +_080E0C68: .4byte 0x85000400 +_080E0C6C: .4byte gUnknown_08D1D574 +_080E0C70: .4byte gUnknown_08D1D410 +_080E0C74: .4byte gUnknown_08D1D54C +_080E0C78: .4byte gUnknown_030042C0 +_080E0C7C: .4byte gSprites +_080E0C80: .4byte gUnknown_030041B4 +_080E0C84: .4byte gUnknown_03004B00 +_080E0C88: + lsls r0, r1, 4 + ldrh r3, [r2, 0x4] + movs r1, 0x10 + movs r2, 0xB + bl BlendPalette +_080E0C94: + ldr r1, _080E0CC4 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r2, _080E0CC8 @ =gUnknown_03004B00 + ldrh r1, [r2] + strh r1, [r0, 0xA] + ldrh r1, [r2, 0x2] + strh r1, [r0, 0xC] + ldrh r1, [r2, 0x4] + strh r1, [r0, 0xE] + strh r7, [r0, 0x14] + ldr r1, _080E0CCC @ =sub_80E0CD0 + str r1, [r0] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0CC4: .4byte gTasks +_080E0CC8: .4byte gUnknown_03004B00 +_080E0CCC: .4byte sub_80E0CD0 + thumb_func_end sub_80E0A4C + + thumb_func_start sub_80E0CD0 +sub_80E0CD0: @ 80E0CD0 + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080E0DF0 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r2, _080E0DF4 @ =gUnknown_030042C0 + ldrh r3, [r2] + subs r1, r3, 0x4 + strh r1, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x80 + bne _080E0DE8 + strh r5, [r4, 0x1C] + adds r0, r3, 0 + adds r0, 0x7C + strh r0, [r2] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080E0DE8 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E0DF8 @ =gUnknown_030042C4 + strh r5, [r0] + ldr r0, _080E0DFC @ =gUnknown_03004240 + strh r5, [r0] + ldr r0, _080E0E00 @ =REG_WININ + ldr r2, _080E0E04 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E0D40 + ldr r2, _080E0E08 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E0D40: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E0E0C @ =REG_BLDCNT + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r6, _080E0E10 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x5] + lsrs r0, 4 + adds r0, 0x10 + adds r1, r0, 0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080E0D84 + adds r0, r1, 0 + movs r1, 0x1 + bl sub_8079108 +_080E0D84: + movs r3, 0x8 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _080E0E14 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080E0E18 @ =0x85000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080E0DE2 + ldr r2, _080E0E1C @ =gUnknown_02024BE0 + ldr r0, _080E0E20 @ =gUnknown_0202F7C8 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E0DE2: + adds r0, r7, 0 + bl move_anim_task_del +_080E0DE8: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E0DF0: .4byte gTasks +_080E0DF4: .4byte gUnknown_030042C0 +_080E0DF8: .4byte gUnknown_030042C4 +_080E0DFC: .4byte gUnknown_03004240 +_080E0E00: .4byte REG_WININ +_080E0E04: .4byte 0x00003f3f +_080E0E08: .4byte REG_BG1CNT +_080E0E0C: .4byte REG_BLDCNT +_080E0E10: .4byte gSprites +_080E0E14: .4byte 0x040000d4 +_080E0E18: .4byte 0x85000200 +_080E0E1C: .4byte gUnknown_02024BE0 +_080E0E20: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E0CD0 + + thumb_func_start sub_80E0E24 +sub_80E0E24: @ 80E0E24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080E0E44 @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0x7 + bhi _080E0E88 + lsls r0, r1, 2 + ldr r1, _080E0E48 @ =_080E0E4C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E0E44: .4byte gUnknown_03004B00 +_080E0E48: .4byte _080E0E4C + .align 2, 0 +_080E0E4C: + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E6C + .4byte _080E0E78 + .4byte _080E0E7C + .4byte _080E0E80 + .4byte _080E0E84 +_080E0E6C: + ldrb r0, [r2] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + b _080E0E8A +_080E0E78: + movs r4, 0 + b _080E0E90 +_080E0E7C: + movs r4, 0x2 + b _080E0E90 +_080E0E80: + movs r4, 0x1 + b _080E0E90 +_080E0E84: + movs r4, 0x3 + b _080E0E90 +_080E0E88: + movs r2, 0xFF +_080E0E8A: + movs r0, 0 + cmp r0, 0 + beq _080E0EB6 +_080E0E90: + adds r0, r4, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E0EB4 + ldr r0, _080E0EB0 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r2, [r0] + b _080E0EB6 + .align 2, 0 +_080E0EB0: .4byte gUnknown_02024BE0 +_080E0EB4: + movs r2, 0xFF +_080E0EB6: + cmp r2, 0xFF + beq _080E0ED2 + ldr r1, _080E0EE0 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + ldr r1, _080E0EE4 @ =gUnknown_03004B00 + ldrb r1, [r1, 0x2] + bl sub_8079108 +_080E0ED2: + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0EE0: .4byte gSprites +_080E0EE4: .4byte gUnknown_03004B00 + thumb_func_end sub_80E0E24 + + thumb_func_start sub_80E0EE8 +sub_80E0EE8: @ 80E0EE8 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080E0F14 @ =gUnknown_0202F7C4 + ldrb r0, [r2] + cmp r0, 0x1 + bhi _080E0EFC + ldr r1, _080E0F18 @ =gUnknown_03004B00 + movs r0, 0 + strh r0, [r1, 0xE] +_080E0EFC: + ldrb r0, [r2] + cmp r0, 0x2 + bne _080E0F08 + ldr r1, _080E0F18 @ =gUnknown_03004B00 + movs r0, 0x1 + strh r0, [r1, 0xE] +_080E0F08: + adds r0, r3, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E0F14: .4byte gUnknown_0202F7C4 +_080E0F18: .4byte gUnknown_03004B00 + thumb_func_end sub_80E0EE8 + + thumb_func_start sub_80E0F1C +sub_80E0F1C: @ 80E0F1C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E0F74 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, _080E0F78 @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080E0F7C @ =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _080E0F80 @ =sub_80E0F84 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0F74: .4byte gUnknown_0202F7C8 +_080E0F78: .4byte gUnknown_0202F7C9 +_080E0F7C: .4byte 0x0000ffd8 +_080E0F80: .4byte sub_80E0F84 + thumb_func_end sub_80E0F1C + + thumb_func_start sub_80E0F84 +sub_80E0F84: @ 80E0F84 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E0FD8 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x14 + strh r0, [r5, 0x2E] + ldr r4, _080E0FE0 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080E0FE4 @ =sub_80E0FE8 + str r0, [r5, 0x1C] +_080E0FD8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E0FE0: .4byte gUnknown_0202F7C8 +_080E0FE4: .4byte sub_80E0FE8 + thumb_func_end sub_80E0F84 + + thumb_func_start sub_80E0FE8 +sub_80E0FE8: @ 80E0FE8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E0FFC + adds r0, r4, 0 + bl move_anim_8072740 +_080E0FFC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E0FE8 + + thumb_func_start sub_80E1004 +sub_80E1004: @ 80E1004 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_8078764 + ldr r0, _080E1064 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E1024 + ldr r1, _080E1068 @ =gUnknown_03004B00 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080E1024: + ldr r4, _080E1068 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _080E106C @ =gUnknown_0202F7C9 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, _080E1070 @ =sub_8078B34 + str r0, [r6, 0x1C] + ldr r1, _080E1074 @ =move_anim_8072740 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1064: .4byte gUnknown_0202F7C8 +_080E1068: .4byte gUnknown_03004B00 +_080E106C: .4byte gUnknown_0202F7C9 +_080E1070: .4byte sub_8078B34 +_080E1074: .4byte move_anim_8072740 + thumb_func_end sub_80E1004 + + thumb_func_start sub_80E1078 +sub_80E1078: @ 80E1078 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r4, _080E10F8 @ =gUnknown_0202F7C9 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077EE4 + lsls r0, 24 + lsrs r7, r0, 24 + bl Random + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + bl Random + ands r4, r0 + adds r1, r5, 0 + cmp r1, 0x10 + ble _080E10C0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_080E10C0: + lsls r0, r4, 16 + asrs r1, r0, 16 + cmp r1, 0x10 + ble _080E10D0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_080E10D0: + ldr r0, _080E10FC @ =gUnknown_03004B00 + ldrh r0, [r0, 0x4] + strh r0, [r6, 0x2E] + mov r1, r8 + adds r0, r1, r5 + strh r0, [r6, 0x32] + adds r0, r7, r4 + strh r0, [r6, 0x36] + ldr r0, _080E1100 @ =sub_8078B34 + str r0, [r6, 0x1C] + ldr r1, _080E1104 @ =move_anim_8074EE0 + adds r0, r6, 0 + bl oamt_set_x3A_32 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E10F8: .4byte gUnknown_0202F7C9 +_080E10FC: .4byte gUnknown_03004B00 +_080E1100: .4byte sub_8078B34 +_080E1104: .4byte move_anim_8074EE0 + thumb_func_end sub_80E1078 + + thumb_func_start sub_80E1108 +sub_80E1108: @ 80E1108 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x1 + ldr r3, _080E1168 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080E116C @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r6, _080E1170 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080E117C + ldr r4, _080E1174 @ =gUnknown_0202F7C8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x2] + adds r0, r2 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r6, 0x4] + adds r0, r3 + strh r0, [r5, 0x22] + movs r1, 0x2 + ldrsh r0, [r6, r1] + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + ble _080E1162 + movs r1, 0x1 +_080E1162: + strh r1, [r5, 0x2E] + ldr r0, _080E1178 @ =sub_80E1198 + b _080E118A + .align 2, 0 +_080E1168: .4byte 0x000003ff +_080E116C: .4byte 0xfffffc00 +_080E1170: .4byte gUnknown_03004B00 +_080E1174: .4byte gUnknown_0202F7C8 +_080E1178: .4byte sub_80E1198 +_080E117C: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x20] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x22] + negs r0, r0 + strh r0, [r5, 0x26] + ldr r0, _080E1194 @ =sub_80E11D4 +_080E118A: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1194: .4byte sub_80E11D4 + thumb_func_end sub_80E1108 + + thumb_func_start sub_80E1198 +sub_80E1198: @ 80E1198 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E11B6 + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] +_080E11B6: + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080E11CE + adds r0, r2, 0 + bl move_anim_8072740 +_080E11CE: + pop {r0} + bx r0 + thumb_func_end sub_80E1198 + + thumb_func_start sub_80E11D4 +sub_80E11D4: @ 80E11D4 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _080E11E6 + cmp r1, 0x1 + beq _080E11FC + b _080E123E +_080E11E6: + ldrh r0, [r3, 0x26] + adds r0, 0x4 + strh r0, [r3, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _080E123E + strh r1, [r3, 0x26] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _080E123E +_080E11FC: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _080E123E + movs r0, 0 + strh r0, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080E123E + adds r0, r3, 0 + bl move_anim_8072740 +_080E123E: + pop {r0} + bx r0 + thumb_func_end sub_80E11D4 + + thumb_func_start sub_80E1244 +sub_80E1244: @ 80E1244 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1264 @ =gTasks + adds r1, r0, r1 + ldr r0, _080E1268 @ =gUnknown_03004B00 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080E1270 + ldr r0, _080E126C @ =sub_80E1284 + b _080E1272 + .align 2, 0 +_080E1264: .4byte gTasks +_080E1268: .4byte gUnknown_03004B00 +_080E126C: .4byte sub_80E1284 +_080E1270: + ldr r0, _080E1280 @ =sub_80E143C +_080E1272: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E1280: .4byte sub_80E143C + thumb_func_end sub_80E1244 + + thumb_func_start sub_80E1284 +sub_80E1284: @ 80E1284 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E12A8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _080E129E + b _080E1432 +_080E129E: + lsls r0, 2 + ldr r1, _080E12AC @ =_080E12B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E12A8: .4byte gTasks +_080E12AC: .4byte _080E12B0 + .align 2, 0 +_080E12B0: + .4byte _080E12C4 + .4byte _080E134C + .4byte _080E135C + .4byte _080E1400 + .4byte _080E1414 +_080E12C4: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080E12EC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080E12F8 + ldr r0, _080E12F0 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E12F4 @ =gUnknown_030041B4 + b _080E1300 + .align 2, 0 +_080E12EC: .4byte gUnknown_0202F7C8 +_080E12F0: .4byte gUnknown_030042C0 +_080E12F4: .4byte gUnknown_030041B4 +_080E12F8: + ldr r0, _080E133C @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E1340 @ =gUnknown_03004280 +_080E1300: + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080E1344 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + cmp r1, 0 + bge _080E1322 + movs r0, 0 + strh r0, [r4, 0x24] +_080E1322: + ldr r2, _080E1348 @ =gSprites + movs r3, 0x1C + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _080E1406 + .align 2, 0 +_080E133C: .4byte gUnknown_03004288 +_080E1340: .4byte gUnknown_03004280 +_080E1344: .4byte gUnknown_0202F7C8 +_080E1348: .4byte gSprites +_080E134C: + ldrb r0, [r4, 0x1E] + movs r2, 0x24 + ldrsh r1, [r4, r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + bl sub_80E1668 + b _080E1406 +_080E135C: + ldrh r0, [r4, 0xC] + adds r0, 0x6 + movs r1, 0x7F + ands r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E137E + movs r0, 0 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_080E137E: + ldr r1, _080E13A0 @ =gSineTable + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + ldrh r3, [r4, 0xE] + adds r2, r0, r3 + strh r2, [r4, 0x12] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080E13A8 + ldr r1, _080E13A4 @ =gUnknown_030041B4 + b _080E13AA + .align 2, 0 +_080E13A0: .4byte gSineTable +_080E13A4: .4byte gUnknown_030041B4 +_080E13A8: + ldr r1, _080E13CC @ =gUnknown_03004280 +_080E13AA: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _080E1432 + ldrh r0, [r4, 0x24] + movs r1, 0x78 + subs r2, r1, r0 + strh r2, [r4, 0x12] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E13D4 + ldr r1, _080E13D0 @ =gUnknown_030041B4 + b _080E13D6 + .align 2, 0 +_080E13CC: .4byte gUnknown_03004280 +_080E13D0: .4byte gUnknown_030041B4 +_080E13D4: + ldr r1, _080E13F8 @ =gUnknown_03004280 +_080E13D6: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + ldr r2, _080E13FC @ =gSprites + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r1, 0x24] + b _080E1406 + .align 2, 0 +_080E13F8: .4byte gUnknown_03004280 +_080E13FC: .4byte gSprites +_080E1400: + ldr r1, _080E1410 @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E1406: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1432 + .align 2, 0 +_080E1410: .4byte gUnknown_03004DC0 +_080E1414: + adds r0, r2, 0 + bl move_anim_task_del + ldr r2, _080E1438 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080E1432: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1438: .4byte gSprites + thumb_func_end sub_80E1284 + + thumb_func_start sub_80E143C +sub_80E143C: @ 80E143C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E147C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + movs r4, 0 + strh r4, [r1, 0x24] + strh r4, [r1, 0x26] + ldr r0, _080E1480 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E1488 + ldr r0, _080E1484 @ =gUnknown_030041B4 + b _080E148A + .align 2, 0 +_080E147C: .4byte gSprites +_080E1480: .4byte gUnknown_0202F7C8 +_080E1484: .4byte gUnknown_030041B4 +_080E1488: + ldr r0, _080E1498 @ =gUnknown_03004280 +_080E148A: + strh r4, [r0] + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1498: .4byte gUnknown_03004280 + thumb_func_end sub_80E143C + + thumb_func_start sub_80E149C +sub_80E149C: @ 80E149C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E14BC @ =gTasks + adds r1, r0, r1 + ldr r0, _080E14C0 @ =gUnknown_03004B00 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _080E14C8 + ldr r0, _080E14C4 @ =sub_80E14DC + b _080E14CA + .align 2, 0 +_080E14BC: .4byte gTasks +_080E14C0: .4byte gUnknown_03004B00 +_080E14C4: .4byte sub_80E14DC +_080E14C8: + ldr r0, _080E14D8 @ =sub_80E1560 +_080E14CA: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E14D8: .4byte sub_80E1560 + thumb_func_end sub_80E149C + + thumb_func_start sub_80E14DC +sub_80E14DC: @ 80E14DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E14FC @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080E1500 + cmp r5, 0x1 + beq _080E1554 + b _080E155A + .align 2, 0 +_080E14FC: .4byte gTasks +_080E1500: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r3, _080E1550 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x22] + movs r0, 0xA0 + subs r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E155A + .align 2, 0 +_080E1550: .4byte gSprites +_080E1554: + adds r0, r2, 0 + bl move_anim_task_del +_080E155A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E14DC + + thumb_func_start sub_80E1560 +sub_80E1560: @ 80E1560 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1584 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _080E1662 + lsls r0, 2 + ldr r1, _080E1588 @ =_080E158C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E1584: .4byte gTasks +_080E1588: .4byte _080E158C + .align 2, 0 +_080E158C: + .4byte _080E15A0 + .4byte _080E15F4 + .4byte _080E1602 + .4byte _080E161C + .4byte _080E165C +_080E15A0: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, _080E15C4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _080E15CC + ldr r0, _080E15C8 @ =gUnknown_030042C0 + b _080E15CE + .align 2, 0 +_080E15C4: .4byte gUnknown_0202F7C8 +_080E15C8: .4byte gUnknown_030042C0 +_080E15CC: + ldr r0, _080E15EC @ =gUnknown_03004288 +_080E15CE: + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, _080E15F0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + b _080E164A + .align 2, 0 +_080E15EC: .4byte gUnknown_03004288 +_080E15F0: .4byte gUnknown_0202F7C8 +_080E15F4: + ldrb r0, [r4, 0x1E] + movs r1, 0x26 + ldrsh r2, [r4, r1] + movs r1, 0 + bl sub_80E1668 + b _080E164A +_080E1602: + ldr r2, _080E1618 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x60 + strh r1, [r0, 0x26] + b _080E164A + .align 2, 0 +_080E1618: .4byte gSprites +_080E161C: + ldr r2, _080E1654 @ =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E1662 + ldr r1, _080E1658 @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] +_080E164A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1662 + .align 2, 0 +_080E1654: .4byte gSprites +_080E1658: .4byte gUnknown_03004DC0 +_080E165C: + adds r0, r2, 0 + bl move_anim_task_del +_080E1662: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1560 + + thumb_func_start sub_80E1668 +sub_80E1668: @ 80E1668 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + cmp r0, 0x1 + bne _080E168C + ldr r0, _080E1684 @ =gUnknown_030042C0 + ldrh r3, [r0] + ldr r0, _080E1688 @ =REG_BG1HOFS + b _080E1692 + .align 2, 0 +_080E1684: .4byte gUnknown_030042C0 +_080E1688: .4byte REG_BG1HOFS +_080E168C: + ldr r0, _080E1718 @ =gUnknown_03004288 + ldrh r3, [r0] + ldr r0, _080E171C @ =REG_BG2HOFS +_080E1692: + str r0, [sp] + lsls r0, r1, 16 + cmp r0, 0 + bge _080E169C + movs r1, 0 +_080E169C: + lsls r2, r1, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r2, r0 + bge _080E16C8 + ldr r5, _080E1720 @ =gUnknown_03004DE0 + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_080E16AE: + asrs r2, 16 + lsls r1, r2, 1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r6 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r2, r1, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _080E16AE +_080E16C8: + lsls r1, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _080E16F6 + ldr r4, _080E1720 @ =gUnknown_03004DE0 + lsls r0, r3, 16 + asrs r0, 16 + adds r3, r0, 0 + adds r3, 0xF0 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_080E16E0: + asrs r2, r1, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r5 + strh r3, [r1] + adds r2, 0x1 + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _080E16E0 +_080E16F6: + ldr r0, _080E1724 @ =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1718: .4byte gUnknown_03004288 +_080E171C: .4byte REG_BG2HOFS +_080E1720: .4byte gUnknown_03004DE0 +_080E1724: .4byte 0xa2600001 + thumb_func_end sub_80E1668 + + thumb_func_start sub_80E1728 +sub_80E1728: @ 80E1728 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _080E173C @ =gUnknown_03004B00 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r7, r0, 0 + cmp r1, 0 + bne _080E1744 + ldr r0, _080E1740 @ =gUnknown_0202F7C8 + b _080E1746 + .align 2, 0 +_080E173C: .4byte gUnknown_03004B00 +_080E1740: .4byte gUnknown_0202F7C8 +_080E1744: + ldr r0, _080E17A8 @ =gUnknown_0202F7C9 +_080E1746: + ldrb r4, [r0] + movs r6, 0x18 + adds r1, r7, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _080E1762 + negs r0, r6 + lsls r0, 16 + lsrs r6, r0, 16 + movs r2, 0x4 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x4] +_080E1762: + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1E + strh r0, [r5, 0x22] + ldrh r1, [r7, 0xA] + strh r1, [r5, 0x2E] + ldrh r1, [r7, 0x4] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x32] + ldrh r1, [r7, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80786EC + ldr r0, _080E17AC @ =sub_80E17B0 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E17A8: .4byte gUnknown_0202F7C9 +_080E17AC: .4byte sub_80E17B0 + thumb_func_end sub_80E1728 + + thumb_func_start sub_80E17B0 +sub_80E17B0: @ 80E17B0 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _080E17C4 + adds r0, r4, 0 + bl move_anim_8072740 +_080E17C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E17B0 + + thumb_func_start sub_80E17CC +sub_80E17CC: @ 80E17CC + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _080E17E0 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E17E8 + ldr r0, _080E17E4 @ =gUnknown_0202F7C8 + b _080E17EA + .align 2, 0 +_080E17E0: .4byte gUnknown_03004B00 +_080E17E4: .4byte gUnknown_0202F7C8 +_080E17E8: + ldr r0, _080E1848 @ =gUnknown_0202F7C9 +_080E17EA: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E184C @ =0x0000fff0 + adds r0, r2 + ldr r4, _080E1850 @ =gUnknown_03004B00 + movs r3, 0x2 + ldrsh r1, [r4, r3] + lsls r1, 5 + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + bl sub_8077FC0 + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r6, 0x22] + ldrh r2, [r6, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x2 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r1, r0 + ldr r3, _080E1854 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080E1858 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, _080E185C @ =move_anim_8072740 + adds r0, r6, 0 + bl oamt_set_x3A_32 + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldr r0, _080E1860 @ =sub_80782D8 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1848: .4byte gUnknown_0202F7C9 +_080E184C: .4byte 0x0000fff0 +_080E1850: .4byte gUnknown_03004B00 +_080E1854: .4byte 0x000003ff +_080E1858: .4byte 0xfffffc00 +_080E185C: .4byte move_anim_8072740 +_080E1860: .4byte sub_80782D8 + thumb_func_end sub_80E17CC + + thumb_func_start sub_80E1864 +sub_80E1864: @ 80E1864 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080E1888 @ =gTasks + adds r4, r0, r1 + ldr r0, _080E188C @ =gUnknown_03004B00 + ldrh r2, [r0, 0x2] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r6, r0, 0 + cmp r1, 0 + beq _080E1890 + adds r0, r2, 0x3 + b _080E189C + .align 2, 0 +_080E1888: .4byte gTasks +_080E188C: .4byte gUnknown_03004B00 +_080E1890: + ldr r0, _080E18BC @ =gUnknown_0202F7BC + ldrh r0, [r0] + movs r1, 0xA + bl __udivsi3 + adds r0, 0x3 +_080E189C: + strh r0, [r4, 0x26] + strh r0, [r4, 0x24] + adds r1, r6, 0 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xE] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _080E18C8 + cmp r0, 0x5 + bne _080E1908 + ldr r0, _080E18C0 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, _080E18C4 @ =sub_80E1934 + b _080E1926 + .align 2, 0 +_080E18BC: .4byte gUnknown_0202F7BC +_080E18C0: .4byte gUnknown_030041B0 +_080E18C4: .4byte sub_80E1934 +_080E18C8: + movs r0, 0 + strh r0, [r4, 0x22] + movs r5, 0 +_080E18CE: + lsls r0, r5, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E18F8 + movs r3, 0x22 + ldrsh r0, [r4, r3] + adds r0, 0x9 + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r0 + ldr r0, _080E1904 @ =gUnknown_02024BE0 + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_080E18F8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080E18CE + b _080E1924 + .align 2, 0 +_080E1904: .4byte gUnknown_02024BE0 +_080E1908: + ldrb r0, [r6] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + cmp r0, 0xFF + bne _080E1920 + adds r0, r5, 0 + bl move_anim_task_del + b _080E1928 +_080E1920: + movs r0, 0x1 + strh r0, [r4, 0x22] +_080E1924: + ldr r0, _080E1930 @ =sub_80E1A2C +_080E1926: + str r0, [r4] +_080E1928: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E1930: .4byte sub_80E1A2C + thumb_func_end sub_80E1864 + + thumb_func_start sub_80E1934 +sub_80E1934: @ 80E1934 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E1958 @ =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _080E19B8 + cmp r1, 0x1 + bgt _080E195C + cmp r1, 0 + beq _080E1962 + b _080E1A24 + .align 2, 0 +_080E1958: .4byte gTasks +_080E195C: + cmp r1, 0x2 + beq _080E1A18 + b _080E1A24 +_080E1962: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1A24 + strh r1, [r3, 0xA] + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E198C + ldr r1, _080E1988 @ =gUnknown_030041B0 + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080E1996 + .align 2, 0 +_080E1988: .4byte gUnknown_030041B0 +_080E198C: + ldr r0, _080E19B4 @ =gUnknown_030041B0 + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x26] + subs r1, r2 + strh r1, [r0] +_080E1996: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _080E1A24 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + b _080E1A0C + .align 2, 0 +_080E19B4: .4byte gUnknown_030041B0 +_080E19B8: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1A24 + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + ands r1, r0 + cmp r1, 0 + bne _080E19E4 + ldr r1, _080E19E0 @ =gUnknown_030041B0 + ldrh r0, [r3, 0x24] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _080E19EE + .align 2, 0 +_080E19E0: .4byte gUnknown_030041B0 +_080E19E4: + ldr r0, _080E1A14 @ =gUnknown_030041B0 + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x24] + subs r1, r2 + strh r1, [r0] +_080E19EE: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E1A24 + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080E1A24 +_080E1A0C: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080E1A24 + .align 2, 0 +_080E1A14: .4byte gUnknown_030041B0 +_080E1A18: + ldr r1, _080E1A28 @ =gUnknown_030041B0 + ldrh r0, [r3, 0x22] + strh r0, [r1] + adds r0, r2, 0 + bl move_anim_task_del +_080E1A24: + pop {r0} + bx r0 + .align 2, 0 +_080E1A28: .4byte gUnknown_030041B0 + thumb_func_end sub_80E1934 + + thumb_func_start sub_80E1A2C +sub_80E1A2C: @ 80E1A2C + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080E1A50 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080E1A8C + cmp r5, 0x1 + bgt _080E1A54 + cmp r5, 0 + beq _080E1A5A + b _080E1B06 + .align 2, 0 +_080E1A50: .4byte gTasks +_080E1A54: + cmp r5, 0x2 + beq _080E1AC8 + b _080E1B06 +_080E1A5A: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1B06 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80E1B10 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080E1B06 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + b _080E1AC0 +_080E1A8C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E1B06 + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_80E1B10 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E1B06 + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080E1B06 +_080E1AC0: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E1B06 +_080E1AC8: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _080E1B00 + ldr r0, _080E1B0C @ =gSprites + mov r12, r0 + adds r5, r4, 0 + adds r5, 0x8 + movs r6, 0 +_080E1ADC: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + strh r6, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _080E1ADC +_080E1B00: + adds r0, r3, 0 + bl move_anim_task_del +_080E1B06: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1B0C: .4byte gSprites + thumb_func_end sub_80E1A2C + + thumb_func_start sub_80E1B10 +sub_80E1B10: @ 80E1B10 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xC] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080E1B38 + movs r0, 0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r2, [r3, 0x24] + adds r0, r4, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + b _080E1B48 +_080E1B38: + movs r1, 0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_080E1B48: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _080E1B7C + ldr r6, _080E1B84 @ =gSprites + adds r5, r3, 0 + adds r5, 0x8 +_080E1B58: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _080E1B58 +_080E1B7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1B84: .4byte gSprites + thumb_func_end sub_80E1B10 + + thumb_func_start sub_80E1B88 +sub_80E1B88: @ 80E1B88 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, _080E1BA8 @ =gUnknown_03004B00 + movs r2, 0 + ldr r0, _080E1BAC @ =gUnknown_0202F7BC + ldrh r0, [r0] + cmp r0, 0x63 + bls _080E1B9C + movs r2, 0x1 +_080E1B9C: + strh r2, [r3, 0x1E] + adds r0, r1, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E1BA8: .4byte gUnknown_03004B00 +_080E1BAC: .4byte gUnknown_0202F7BC + thumb_func_end sub_80E1B88 + + thumb_func_start sub_80E1BB0 +sub_80E1BB0: @ 80E1BB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080E1BC8 @ =gUnknown_03004B00 + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _080E1BD0 + ldr r0, _080E1BCC @ =gUnknown_0202F7C9 + b _080E1BD2 + .align 2, 0 +_080E1BC8: .4byte gUnknown_03004B00 +_080E1BCC: .4byte gUnknown_0202F7C9 +_080E1BD0: + ldr r0, _080E1C40 @ =gUnknown_0202F7C8 +_080E1BD2: + ldrb r0, [r0] + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + ble _080E1BE2 + movs r0, 0x2 + eors r5, r0 +_080E1BE2: + ldr r0, _080E1C44 @ =sub_80E1C58 + ldrb r1, [r6, 0x2] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _080E1C48 @ =gTasks + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x20 + subs r1, r0 + ldr r2, _080E1C4C @ =0x000001ff + adds r0, r2, 0 + ands r1, r0 + strh r1, [r4, 0xA] + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 + subs r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0xC] + ldr r2, _080E1C50 @ =gUnknown_030041B0 + ldrh r0, [r4, 0xA] + strh r0, [r2] + ldr r0, _080E1C54 @ =gUnknown_030041B8 + strh r1, [r0] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0xE] + adds r0, r7, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E1C40: .4byte gUnknown_0202F7C8 +_080E1C44: .4byte sub_80E1C58 +_080E1C48: .4byte gTasks +_080E1C4C: .4byte 0x000001ff +_080E1C50: .4byte gUnknown_030041B0 +_080E1C54: .4byte gUnknown_030041B8 + thumb_func_end sub_80E1BB0 + + thumb_func_start sub_80E1C58 +sub_80E1C58: @ 80E1C58 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, _080E1C88 @ =gTasks + adds r2, r0, r1 + ldr r0, _080E1C8C @ =gUnknown_03004B00 + movs r4, 0xE + ldrsh r1, [r0, r4] + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080E1C98 + ldr r0, _080E1C90 @ =gUnknown_030041B0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E1C94 @ =gUnknown_030041B8 + strh r1, [r0] + adds r0, r3, 0 + bl DestroyTask + b _080E1CA4 + .align 2, 0 +_080E1C88: .4byte gTasks +_080E1C8C: .4byte gUnknown_03004B00 +_080E1C90: .4byte gUnknown_030041B0 +_080E1C94: .4byte gUnknown_030041B8 +_080E1C98: + ldr r1, _080E1CAC @ =gUnknown_030041B0 + ldrh r0, [r2, 0xA] + strh r0, [r1] + ldr r1, _080E1CB0 @ =gUnknown_030041B8 + ldrh r0, [r2, 0xC] + strh r0, [r1] +_080E1CA4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1CAC: .4byte gUnknown_030041B0 +_080E1CB0: .4byte gUnknown_030041B8 + thumb_func_end sub_80E1C58 + + thumb_func_start sub_80E1CB4 +sub_80E1CB4: @ 80E1CB4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E1CEC @ =gUnknown_03004B00 + ldrh r0, [r5] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldr r0, _080E1CF0 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E1CF4 + ldrh r0, [r5, 0x6] + negs r0, r0 + strh r0, [r4, 0x30] + movs r0, 0x1 + strh r0, [r4, 0x36] + b _080E1D02 + .align 2, 0 +_080E1CEC: .4byte gUnknown_03004B00 +_080E1CF0: .4byte gUnknown_0202F7C8 +_080E1CF4: + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + strh r1, [r4, 0x36] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080E1D02: + ldr r0, _080E1D18 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x8] + strh r0, [r4, 0x34] + ldr r1, _080E1D1C @ =sub_80E1D20 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1D18: .4byte gUnknown_03004B00 +_080E1D1C: .4byte sub_80E1D20 + thumb_func_end sub_80E1CB4 + + thumb_func_start sub_80E1D20 +sub_80E1D20: @ 80E1D20 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x1E + bl Cos + strh r0, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r1, 0xA + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x2E] + cmp r0, 0x7F + bhi _080E1D52 + ldrb r0, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x5] + b _080E1D5A +_080E1D52: + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] +_080E1D5A: + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080E1D7E + adds r0, r4, 0 + bl move_anim_8072740 +_080E1D7E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1D20 + + thumb_func_start sub_80E1D84 +sub_80E1D84: @ 80E1D84 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r4, _080E1DBC @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0x2 + ldrsb r1, [r4, r1] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrh r4, [r4, 0x8] + str r4, [sp] + bl BeginNormalPaletteFade + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080E1DC0 @ =sub_80E1E0C + str r0, [r5, 0x1C] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1DBC: .4byte gUnknown_03004B00 +_080E1DC0: .4byte sub_80E1E0C + thumb_func_end sub_80E1D84 + + thumb_func_start sub_80E1DC4 +sub_80E1DC4: @ 80E1DC4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x1 + mov r8, r0 + mov r1, r8 + ands r1, r4 + mov r8, r1 + lsls r0, 16 + asrs r1, r0, 17 + ands r1, r4 + asrs r2, r0, 18 + ands r2, r4 + asrs r3, r0, 19 + ands r3, r4 + asrs r6, r0, 20 + ands r6, r4 + asrs r5, r0, 21 + ands r5, r4 + asrs r0, 22 + ands r0, r4 + str r6, [sp] + str r5, [sp, 0x4] + str r0, [sp, 0x8] + mov r0, r8 + bl sub_80791A8 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E1DC4 + + thumb_func_start sub_80E1E0C +sub_80E1E0C: @ 80E1E0C + push {lr} + adds r2, r0, 0 + ldr r0, _080E1E28 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1E22 + adds r0, r2, 0 + bl move_anim_8072740 +_080E1E22: + pop {r0} + bx r0 + .align 2, 0 +_080E1E28: .4byte gPaletteFade + thumb_func_end sub_80E1E0C + + thumb_func_start sub_80E1E2C +sub_80E1E2C: @ 80E1E2C + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E1E78 @ =gUnknown_03004B00 + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x2E] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r4, 0x6] + strh r0, [r5, 0x34] + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r5, 0x38] + ldrh r0, [r4, 0xC] + strh r0, [r5, 0x3A] + ldrh r0, [r4] + strh r0, [r5, 0x3C] + movs r1, 0x3C + ldrsh r0, [r5, r1] + bl sub_80E1DC4 + ldrb r1, [r4, 0x8] + ldrh r2, [r4, 0x6] + bl BlendPalettes + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080E1E7C @ =sub_80E1E80 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1E78: .4byte gUnknown_03004B00 +_080E1E7C: .4byte sub_80E1E80 + thumb_func_end sub_80E1E2C + + thumb_func_start sub_80E1E80 +sub_80E1E80: @ 80E1E80 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080E1E94 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080E1F04 +_080E1E94: + ldr r0, _080E1EB0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1F04 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E1EB8 + ldr r0, _080E1EB4 @ =sub_80E1F0C + str r0, [r4, 0x1C] + b _080E1F04 + .align 2, 0 +_080E1EB0: .4byte gPaletteFade +_080E1EB4: .4byte sub_80E1F0C +_080E1EB8: + movs r2, 0x3C + ldrsh r0, [r4, r2] + bl sub_80E1DC4 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080E1EDE + ldrh r1, [r4, 0x36] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x34] + adds r0, r3, 0 + bl BlendPalettes + b _080E1EEC +_080E1EDE: + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x38] + adds r0, r3, 0 + bl BlendPalettes +_080E1EEC: + ldrh r0, [r4, 0x30] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + eors r0, r1 + strh r0, [r4, 0x30] + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] +_080E1F04: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E1E80 + + thumb_func_start sub_80E1F0C +sub_80E1F0C: @ 80E1F0C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E1F38 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E1F32 + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0 + movs r2, 0 + bl BlendPalettes + adds r0, r4, 0 + bl move_anim_8072740 +_080E1F32: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1F38: .4byte gPaletteFade + thumb_func_end sub_80E1F0C + + thumb_func_start sub_80E1F3C +sub_80E1F3C: @ 80E1F3C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080E1F80 @ =gUnknown_03004B00 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + movs r2, 0 + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r2, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x8 + strh r0, [r4, 0x32] + movs r0, 0x28 + strh r0, [r4, 0x34] + movs r0, 0x70 + strh r0, [r4, 0x36] + strh r2, [r4, 0x38] + ldr r1, _080E1F84 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r1, _080E1F88 @ =sub_8078174 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E1F80: .4byte gUnknown_03004B00 +_080E1F84: .4byte move_anim_8074EE0 +_080E1F88: .4byte sub_8078174 + thumb_func_end sub_80E1F3C + + thumb_func_start sub_80E1F8C +sub_80E1F8C: @ 80E1F8C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E1FD0 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080E1FD4 @ =gUnknown_03004B00 + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80E1FDC + ldr r0, _080E1FD8 @ =sub_80E202C + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E1FD0: .4byte gTasks +_080E1FD4: .4byte gUnknown_03004B00 +_080E1FD8: .4byte sub_80E202C + thumb_func_end sub_80E1F8C + + thumb_func_start sub_80E1FDC +sub_80E1FDC: @ 80E1FDC + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080E2028 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r2, [r4, 0x12] + str r2, [sp] + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2028: .4byte gTasks + thumb_func_end sub_80E1FDC + + thumb_func_start sub_80E202C +sub_80E202C: @ 80E202C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080E2064 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E208E + ldr r1, _080E2068 @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080E2088 + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E206C + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080E2070 + .align 2, 0 +_080E2064: .4byte gPaletteFade +_080E2068: .4byte gTasks +_080E206C: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080E2070: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080E2080 + movs r2, 0 +_080E2080: + adds r0, r4, 0 + bl sub_80E1FDC + b _080E208E +_080E2088: + adds r0, r4, 0 + bl move_anim_task_del +_080E208E: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E202C + + thumb_func_start sub_80E2094 +sub_80E2094: @ 80E2094 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E20D8 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r3, _080E20DC @ =gUnknown_03004B00 + ldrh r1, [r3] + movs r5, 0 + strh r1, [r4, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r4, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r4, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r4, 0xE] + ldrh r2, [r3, 0x8] + strh r2, [r4, 0x10] + ldrh r1, [r3, 0xA] + strh r1, [r4, 0x12] + strh r5, [r4, 0x18] + lsls r2, 24 + lsrs r2, 24 + movs r1, 0 + bl sub_80E20E4 + ldr r0, _080E20E0 @ =sub_80E2140 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E20D8: .4byte gTasks +_080E20DC: .4byte gUnknown_03004B00 +_080E20E0: .4byte sub_80E2140 + thumb_func_end sub_80E2094 + + thumb_func_start sub_80E20E4 +sub_80E20E4: @ 80E20E4 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080E213C @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r0, [r4, 0x8] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + movs r1, 0xA + ldrsb r1, [r4, r1] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x18] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x18] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E213C: .4byte gTasks + thumb_func_end sub_80E20E4 + + thumb_func_start sub_80E2140 +sub_80E2140: @ 80E2140 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + ldr r0, _080E2178 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E21A2 + ldr r1, _080E217C @ =gTasks + lsls r2, r3, 2 + adds r0, r2, r3 + lsls r0, 3 + adds r3, r0, r1 + movs r5, 0xC + ldrsh r0, [r3, r5] + adds r6, r1, 0 + adds r5, r2, 0 + cmp r0, 0 + ble _080E219C + movs r1, 0x18 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E2180 + ldrb r1, [r3, 0xE] + ldrb r2, [r3, 0x10] + b _080E2184 + .align 2, 0 +_080E2178: .4byte gPaletteFade +_080E217C: .4byte gTasks +_080E2180: + ldrb r1, [r3, 0x10] + ldrb r2, [r3, 0xE] +_080E2184: + adds r0, r5, r4 + lsls r0, 3 + adds r0, r6 + movs r3, 0xC + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _080E2194 + movs r2, 0 +_080E2194: + adds r0, r4, 0 + bl sub_80E20E4 + b _080E21A2 +_080E219C: + adds r0, r4, 0 + bl move_anim_task_del +_080E21A2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E2140 + + thumb_func_start sub_80E21A8 +sub_80E21A8: @ 80E21A8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E2208 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldr r5, _080E220C @ =gUnknown_03004B00 + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x8] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0xA] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0xC] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0xE] + ldrh r0, [r5, 0x8] + strh r0, [r4, 0x10] + ldrh r0, [r5, 0xA] + strh r0, [r4, 0x12] + ldrh r0, [r5, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r5] + strh r0, [r4, 0x16] + ldrh r0, [r5] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldrb r3, [r5, 0x8] + ldrh r0, [r5, 0x6] + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080E2210 @ =sub_80E2214 + str r0, [r4] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2208: .4byte gTasks +_080E220C: .4byte gUnknown_03004B00 +_080E2210: .4byte sub_80E2214 + thumb_func_end sub_80E21A8 + + thumb_func_start sub_80E2214 +sub_80E2214: @ 80E2214 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E2238 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080E223C + subs r0, r1, 0x1 + strh r0, [r4, 0x8] + b _080E22C0 + .align 2, 0 +_080E2238: .4byte gTasks +_080E223C: + ldr r0, _080E2258 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E22C0 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080E2260 + ldr r0, _080E225C @ =sub_80E22CC + str r0, [r4] + b _080E22C0 + .align 2, 0 +_080E2258: .4byte gPaletteFade +_080E225C: .4byte sub_80E22CC +_080E2260: + ldrh r0, [r4, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r2, 0x1 + lsls r2, r0 + ldrh r1, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080E228E + ldrb r3, [r4, 0x10] + ldrh r0, [r4, 0xE] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade + b _080E229E +_080E228E: + ldrb r3, [r4, 0x14] + ldrh r0, [r4, 0x12] + str r0, [sp] + adds r0, r2, 0 + movs r1, 0 + adds r2, r3, 0 + bl BeginNormalPaletteFade +_080E229E: + ldr r0, _080E22C8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + movs r3, 0x80 + lsls r3, 1 + adds r2, r3, 0 + eors r0, r2 + strh r0, [r1, 0xA] + movs r2, 0xFF + ands r0, r2 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] +_080E22C0: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E22C8: .4byte gTasks + thumb_func_end sub_80E2214 + + thumb_func_start sub_80E22CC +sub_80E22CC: @ 80E22CC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E231C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080E2312 + ldr r1, _080E2320 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x16] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + str r5, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r4, 0 + bl move_anim_task_del +_080E2312: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E231C: .4byte gPaletteFade +_080E2320: .4byte gTasks + thumb_func_end sub_80E22CC + + thumb_func_start sub_80E2324 +sub_80E2324: @ 80E2324 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080E239C @ =gUnknown_0202F7C8 + ldrb r6, [r0] + ldr r0, _080E23A0 @ =gUnknown_0202F7C9 + ldrb r7, [r0] + ldr r4, _080E23A4 @ =gUnknown_03004B00 + ldrh r1, [r4] + movs r5, 0x80 + lsls r5, 1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E235E + str r2, [sp] + str r2, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r3, 0 + bl sub_80791A8 + adds r2, r0, 0 +_080E235E: + ldrh r1, [r4, 0x2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2370 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r6 + orrs r2, r0 +_080E2370: + ldrh r1, [r4, 0x4] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2382 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r7 + orrs r2, r0 +_080E2382: + adds r0, r2, 0 + bl InvertPlttBuffer + mov r0, r8 + bl move_anim_task_del + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E239C: .4byte gUnknown_0202F7C8 +_080E23A0: .4byte gUnknown_0202F7C9 +_080E23A4: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2324 + + thumb_func_start unref_sub_80E23A8 +unref_sub_80E23A8: @ 80E23A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r1, _080E249C @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E23EA + ldr r1, _080E24A0 @ =gUnknown_03004B00 + ldrh r0, [r1] + strh r0, [r4, 0xC] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x10] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0xA] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x12] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r1, 0xC] + strh r0, [r4, 0x16] +_080E23EA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _080E24A4 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + mov r9, r0 + ldr r0, _080E24A8 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + mov r10, r0 + ldrh r1, [r4, 0xC] + movs r7, 0x80 + lsls r7, 1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E240C + ldr r5, _080E24AC @ =0x0000ffff +_080E240C: + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080E243C + ldr r2, _080E24B0 @ =gSprites + ldr r0, _080E24B4 @ =gUnknown_03004340 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x14 + adds r0, r2 + ldr r0, [r0] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r1, r6, 0 + lsls r1, r0 + lsls r1, 16 + orrs r5, r1 +_080E243C: + ldrh r1, [r4, 0xE] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2450 + adds r0, r6, 0 + mov r2, r9 + lsls r0, r2 + lsls r0, 16 + orrs r5, r0 +_080E2450: + ldrh r1, [r4, 0x10] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080E2464 + adds r0, r6, 0 + mov r1, r10 + lsls r0, r1 + lsls r0, 16 + orrs r5, r0 +_080E2464: + movs r1, 0x12 + ldrsb r1, [r4, r1] + movs r2, 0x14 + ldrsb r2, [r4, r2] + movs r3, 0x16 + ldrsb r3, [r4, r3] + adds r0, r5, 0 + bl TintPlttBuffer + movs r2, 0x8 + ldrsh r1, [r4, r2] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E248E + adds r0, r5, 0 + bl UnfadePlttBuffer + mov r0, r8 + bl move_anim_task_del +_080E248E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E249C: .4byte gTasks +_080E24A0: .4byte gUnknown_03004B00 +_080E24A4: .4byte gUnknown_0202F7C8 +_080E24A8: .4byte gUnknown_0202F7C9 +_080E24AC: .4byte 0x0000ffff +_080E24B0: .4byte gSprites +_080E24B4: .4byte gUnknown_03004340 + thumb_func_end unref_sub_80E23A8 + + thumb_func_start sub_80E24B8 +sub_80E24B8: @ 80E24B8 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080E24EC @ =gUnknown_03004B00 + ldrh r0, [r1] + negs r0, r0 + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x34] + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080E2500 + cmp r0, 0x1 + bgt _080E24F0 + cmp r0, 0 + beq _080E24F6 + b _080E2518 + .align 2, 0 +_080E24EC: .4byte gUnknown_03004B00 +_080E24F0: + cmp r0, 0x2 + beq _080E2508 + b _080E2518 +_080E24F6: + ldr r1, _080E24FC @ =gUnknown_030041B0 + b _080E250A + .align 2, 0 +_080E24FC: .4byte gUnknown_030041B0 +_080E2500: + ldr r1, _080E2504 @ =gUnknown_030041B8 + b _080E250A + .align 2, 0 +_080E2504: .4byte gUnknown_030041B8 +_080E2508: + ldr r1, _080E2514 @ =gSpriteCoordOffsetX +_080E250A: + adds r0, r4, 0 + bl oamt_set_x3A_32 + b _080E2520 + .align 2, 0 +_080E2514: .4byte gSpriteCoordOffsetX +_080E2518: + ldr r1, _080E2550 @ =gSpriteCoordOffsetY + adds r0, r4, 0 + bl oamt_set_x3A_32 +_080E2520: + movs r0, 0x3A + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + lsls r0, 16 + orrs r1, r0 + ldr r0, [r1] + strh r0, [r4, 0x36] + ldr r0, _080E2554 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080E2544 + bl sub_80E260C +_080E2544: + ldr r0, _080E2558 @ =sub_80E255C + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2550: .4byte gSpriteCoordOffsetY +_080E2554: .4byte gUnknown_03004B00 +_080E2558: .4byte sub_80E255C + thumb_func_end sub_80E24B8 + + thumb_func_start sub_80E255C +sub_80E255C: @ 80E255C + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080E25A0 + subs r0, r1, 0x1 + strh r0, [r3, 0x34] + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080E257E + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _080E25FA +_080E257E: + ldrh r0, [r3, 0x32] + strh r0, [r3, 0x30] + movs r0, 0x3A + ldrsh r1, [r3, r0] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + movs r0, 0x2E + ldrsh r2, [r3, r0] + ldr r0, [r1] + adds r0, r2 + str r0, [r1] + ldrh r0, [r3, 0x2E] + negs r0, r0 + strh r0, [r3, 0x2E] + b _080E25FA +_080E25A0: + movs r2, 0x3A + ldrsh r1, [r3, r2] + movs r2, 0x3C + ldrsh r0, [r3, r2] + lsls r0, 16 + orrs r1, r0 + movs r2, 0x36 + ldrsh r0, [r3, r2] + str r0, [r1] + ldrh r0, [r3, 0x38] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080E25F4 + movs r4, 0 + ldr r5, _080E2600 @ =gUnknown_02024A68 + ldrb r0, [r5] + cmp r4, r0 + bcs _080E25F4 + ldr r2, _080E2604 @ =gSprites + mov r12, r2 + ldr r6, _080E2608 @ =gUnknown_02024BE0 + movs r7, 0x3 + negs r7, r7 +_080E25D2: + adds r0, r4, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r5] + cmp r4, r0 + bcc _080E25D2 +_080E25F4: + adds r0, r3, 0 + bl move_anim_8072740 +_080E25FA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E2600: .4byte gUnknown_02024A68 +_080E2604: .4byte gSprites +_080E2608: .4byte gUnknown_02024BE0 + thumb_func_end sub_80E255C + + thumb_func_start sub_80E260C +sub_80E260C: @ 80E260C + push {r4-r6,lr} + ldr r6, _080E2680 @ =gSprites + ldr r4, _080E2684 @ =gUnknown_02024BE0 + ldr r5, _080E2688 @ =gUnknown_0202F7C8 + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x3 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r3, _080E268C @ =gUnknown_0202F7C9 + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + ldr r0, _080E2690 @ =gUnknown_03004B00 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _080E2694 + ldrb r0, [r5] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + b _080E26B0 + .align 2, 0 +_080E2680: .4byte gSprites +_080E2684: .4byte gUnknown_02024BE0 +_080E2688: .4byte gUnknown_0202F7C8 +_080E268C: .4byte gUnknown_0202F7C9 +_080E2690: .4byte gUnknown_03004B00 +_080E2694: + cmp r0, 0 + bne _080E269C + ldrb r0, [r5] + b _080E269E +_080E269C: + ldrb r0, [r3] +_080E269E: + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 +_080E26B0: + orrs r1, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E260C + + thumb_func_start sub_80E26BC +sub_80E26BC: @ 80E26BC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E26FC @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldr r3, _080E2700 @ =gUnknown_03004B00 + ldrh r1, [r3] + strh r1, [r2, 0x8] + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xA] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x18] + ldr r4, _080E2704 @ =gUnknown_030041B0 + ldrh r1, [r3] + strh r1, [r4] + ldr r4, _080E2708 @ =gUnknown_030041B8 + ldrh r1, [r3, 0x2] + strh r1, [r4] + ldr r1, _080E270C @ =sub_80E2710 + str r1, [r2] + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E26FC: .4byte gTasks +_080E2700: .4byte gUnknown_03004B00 +_080E2704: .4byte gUnknown_030041B0 +_080E2708: .4byte gUnknown_030041B8 +_080E270C: .4byte sub_80E2710 + thumb_func_end sub_80E26BC + + thumb_func_start sub_80E2710 +sub_80E2710: @ 80E2710 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E2740 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r2, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + mov r12, r1 + cmp r0, 0 + bne _080E2796 + ldr r0, _080E2744 @ =gUnknown_030041B0 + ldrh r2, [r0] + movs r7, 0x8 + ldrsh r1, [r3, r7] + adds r6, r0, 0 + cmp r2, r1 + bne _080E2748 + ldrh r0, [r3, 0x8] + negs r0, r0 + b _080E274A + .align 2, 0 +_080E2740: .4byte gTasks +_080E2744: .4byte gUnknown_030041B0 +_080E2748: + ldrh r0, [r3, 0x8] +_080E274A: + strh r0, [r6] + ldr r2, _080E2768 @ =gUnknown_030041B8 + ldrh r3, [r2] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + mov r7, r12 + adds r4, r0, r7 + movs r7, 0xA + ldrsh r0, [r4, r7] + cmn r3, r0 + bne _080E276C + movs r0, 0 + b _080E2770 + .align 2, 0 +_080E2768: .4byte gUnknown_030041B8 +_080E276C: + ldrh r0, [r4, 0xA] + negs r0, r0 +_080E2770: + strh r0, [r2] + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + ldrh r1, [r0, 0x18] + strh r1, [r0, 0xE] + ldrh r1, [r0, 0xC] + subs r1, 0x1 + strh r1, [r0, 0xC] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0 + bne _080E279A + strh r1, [r6] + strh r1, [r2] + adds r0, r5, 0 + bl move_anim_task_del + b _080E279A +_080E2796: + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_080E279A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E2710 + + thumb_func_start sub_80E27A0 +sub_80E27A0: @ 80E27A0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E27C0 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E27C4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E27CC + .align 2, 0 +_080E27C0: .4byte gUnknown_03004B00 +_080E27C4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E27CC: + ldr r0, _080E27E0 @ =sub_80785E4 + str r0, [r5, 0x1C] + ldr r1, _080E27E4 @ =move_anim_8072740 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E27E0: .4byte sub_80785E4 +_080E27E4: .4byte move_anim_8072740 + thumb_func_end sub_80E27A0 + + thumb_func_start sub_80E27E8 +sub_80E27E8: @ 80E27E8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E2808 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E280C + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E2814 + .align 2, 0 +_080E2808: .4byte gUnknown_03004B00 +_080E280C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E2814: + ldr r0, _080E282C @ =gUnknown_03004B00 + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x2E] + ldr r0, _080E2830 @ =sub_80785E4 + str r0, [r5, 0x1C] + ldr r1, _080E2834 @ =sub_80DA48C + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E282C: .4byte gUnknown_03004B00 +_080E2830: .4byte sub_80785E4 +_080E2834: .4byte sub_80DA48C + thumb_func_end sub_80E27E8 + + thumb_func_start sub_80E2838 +sub_80E2838: @ 80E2838 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E2868 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E285C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E285C + ldr r1, _080E286C @ =gUnknown_03004B00 + ldrh r0, [r1, 0x2] + negs r0, r0 + strh r0, [r1, 0x2] +_080E285C: + adds r0, r4, 0 + bl sub_80E27A0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2868: .4byte gUnknown_0202F7C8 +_080E286C: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2838 + + thumb_func_start sub_80E2870 +sub_80E2870: @ 80E2870 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E28A8 @ =gUnknown_03004B00 + movs r0, 0x2 + ldrsh r1, [r5, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080E288C + bl Random + movs r1, 0x3 + ands r1, r0 + strh r1, [r5, 0x2] +_080E288C: + ldrb r1, [r5, 0x2] + adds r0, r4, 0 + bl StartSpriteAffineAnim + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080E28AC + adds r0, r4, 0 + movs r1, 0 + bl sub_80787B0 + b _080E28B4 + .align 2, 0 +_080E28A8: .4byte gUnknown_03004B00 +_080E28AC: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078764 +_080E28B4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x30 + bl __umodsi3 + ldr r1, _080E28F8 @ =0x0000ffe8 + adds r0, r1 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x18 + bl __umodsi3 + ldr r1, _080E28FC @ =0x0000fff4 + adds r0, r1 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldr r1, _080E2900 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E2904 @ =sub_80785E4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E28F8: .4byte 0x0000ffe8 +_080E28FC: .4byte 0x0000fff4 +_080E2900: .4byte move_anim_8074EE0 +_080E2904: .4byte sub_80785E4 + thumb_func_end sub_80E2870 + + thumb_func_start sub_80E2908 +sub_80E2908: @ 80E2908 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080E2968 @ =gUnknown_03004B00 + ldrb r0, [r5] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2E] + ldr r2, _080E296C @ =gSprites + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + strh r1, [r4, 0x20] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x26] + ldrb r1, [r5, 0x6] + adds r0, r4, 0 + bl StartSpriteAffineAnim + ldr r1, _080E2970 @ =move_anim_8074EE0 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E2974 @ =sub_80785E4 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2968: .4byte gUnknown_03004B00 +_080E296C: .4byte gSprites +_080E2970: .4byte move_anim_8074EE0 +_080E2974: .4byte sub_80785E4 + thumb_func_end sub_80E2908 + + thumb_func_start sub_80E2978 +sub_80E2978: @ 80E2978 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080E2990 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E2994 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E299C + .align 2, 0 +_080E2990: .4byte gUnknown_03004B00 +_080E2994: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8078764 +_080E299C: + ldr r0, _080E29B4 @ =gUnknown_03004B00 + ldrh r0, [r0, 0x6] + strh r0, [r4, 0x2E] + ldr r1, _080E29B8 @ =move_anim_8072740 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _080E29BC @ =sub_80782D8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E29B4: .4byte gUnknown_03004B00 +_080E29B8: .4byte move_anim_8072740 +_080E29BC: .4byte sub_80782D8 + thumb_func_end sub_80E2978 + + thumb_func_start sub_80E29C0 +sub_80E29C0: @ 80E29C0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _080E29E0 @ =gUnknown_03004B00 + ldrb r1, [r4, 0x6] + bl StartSpriteAffineAnim + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E29E4 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80787B0 + b _080E29EC + .align 2, 0 +_080E29E0: .4byte gUnknown_03004B00 +_080E29E4: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8078764 +_080E29EC: + ldr r0, _080E29F8 @ =sub_80E29FC + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E29F8: .4byte sub_80E29FC + thumb_func_end sub_80E29C0 + + thumb_func_start sub_80E29FC +sub_80E29FC: @ 80E29FC + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x2E] + adds r1, r0, 0x1 + strh r1, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080E2A32 + adds r0, r3, 0 + bl move_anim_8072740 +_080E2A32: + pop {r0} + bx r0 + thumb_func_end sub_80E29FC + + thumb_func_start sub_80E2A38 +sub_80E2A38: @ 80E2A38 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080E2A78 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_80E1DC4 + adds r6, r0, 0 + ldrh r3, [r4] + lsls r3, 16 + asrs r0, r3, 23 + movs r4, 0x1 + ands r0, r4 + asrs r1, r3, 24 + ands r1, r4 + asrs r2, r3, 25 + ands r2, r4 + asrs r3, 26 + ands r3, r4 + bl sub_80792C0 + orrs r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80E2C8C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E2A78: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2A38 + + thumb_func_start sub_80E2A7C +sub_80E2A7C: @ 80E2A7C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x1] + movs r0, 0x1 + bl sub_80E1DC4 + adds r5, r0, 0 + ldr r0, _080E2AA8 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x7 + bhi _080E2B26 + lsls r0, 2 + ldr r1, _080E2AAC @ =_080E2AB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E2AA8: .4byte gUnknown_03004B00 +_080E2AAC: .4byte _080E2AB0 + .align 2, 0 +_080E2AB0: + .4byte _080E2AD2 + .4byte _080E2ADE + .4byte _080E2AD0 + .4byte _080E2ADC + .4byte _080E2AEC + .4byte _080E2B04 + .4byte _080E2B0C + .4byte _080E2B18 +_080E2AD0: + movs r5, 0 +_080E2AD2: + mov r0, sp + ldr r1, _080E2AD8 @ =gUnknown_0202F7C8 + b _080E2AE2 + .align 2, 0 +_080E2AD8: .4byte gUnknown_0202F7C8 +_080E2ADC: + movs r5, 0 +_080E2ADE: + mov r0, sp + ldr r1, _080E2AE8 @ =gUnknown_0202F7C9 +_080E2AE2: + ldrb r1, [r1] + strb r1, [r0] + b _080E2B26 + .align 2, 0 +_080E2AE8: .4byte gUnknown_0202F7C9 +_080E2AEC: + mov r1, sp + ldr r0, _080E2AFC @ =gUnknown_0202F7C8 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080E2B00 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + strb r0, [r1, 0x1] + b _080E2B26 + .align 2, 0 +_080E2AFC: .4byte gUnknown_0202F7C8 +_080E2B00: .4byte gUnknown_0202F7C9 +_080E2B04: + mov r1, sp + movs r0, 0xFF + strb r0, [r1] + b _080E2B26 +_080E2B0C: + movs r5, 0 + mov r2, sp + ldr r0, _080E2B14 @ =gUnknown_0202F7C8 + b _080E2B1E + .align 2, 0 +_080E2B14: .4byte gUnknown_0202F7C8 +_080E2B18: + movs r5, 0 + mov r2, sp + ldr r0, _080E2B70 @ =gUnknown_0202F7C9 +_080E2B1E: + ldrb r0, [r0] + movs r1, 0x2 + eors r0, r1 + strb r0, [r2] +_080E2B26: + movs r4, 0 + mov r6, sp +_080E2B2A: + ldrb r0, [r6] + cmp r4, r0 + beq _080E2B54 + ldrb r0, [r6, 0x1] + cmp r4, r0 + beq _080E2B54 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E2B54 + adds r0, r4, 0 + bl sub_80793A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + orrs r5, r1 +_080E2B54: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080E2B2A + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80E2C8C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E2B70: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80E2A7C + + thumb_func_start sub_80E2B74 +sub_80E2B74: @ 80E2B74 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E2B98 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80E1DC4 + adds r2, r0, 0 + ldr r0, _080E2B9C @ =gUnknown_0300428C + ldrb r0, [r0] + cmp r0, 0x9 + bhi _080E2C4A + lsls r0, 2 + ldr r1, _080E2BA0 @ =_080E2BA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E2B98: .4byte gUnknown_03004B00 +_080E2B9C: .4byte gUnknown_0300428C +_080E2BA0: .4byte _080E2BA4 + .align 2, 0 +_080E2BA4: + .4byte _080E2BCC + .4byte _080E2BDC + .4byte _080E2BE8 + .4byte _080E2BF8 + .4byte _080E2C04 + .4byte _080E2C14 + .4byte _080E2C24 + .4byte _080E2C34 + .4byte _080E2C44 + .4byte _080E2C44 +_080E2BCC: + ldr r1, _080E2BD4 @ =gUnknown_03004B00 + ldr r0, _080E2BD8 @ =0x00000b0c + b _080E2C48 + .align 2, 0 +_080E2BD4: .4byte gUnknown_03004B00 +_080E2BD8: .4byte 0x00000b0c +_080E2BDC: + ldr r1, _080E2BE4 @ =gUnknown_03004B00 + movs r0, 0x9E + lsls r0, 4 + b _080E2C48 + .align 2, 0 +_080E2BE4: .4byte gUnknown_03004B00 +_080E2BE8: + ldr r1, _080E2BF0 @ =gUnknown_03004B00 + ldr r0, _080E2BF4 @ =0x00002f1e + b _080E2C48 + .align 2, 0 +_080E2BF0: .4byte gUnknown_03004B00 +_080E2BF4: .4byte 0x00002f1e +_080E2BF8: + ldr r1, _080E2C00 @ =gUnknown_03004B00 + movs r0, 0x90 + lsls r0, 7 + b _080E2C48 + .align 2, 0 +_080E2C00: .4byte gUnknown_03004B00 +_080E2C04: + ldr r1, _080E2C0C @ =gUnknown_03004B00 + ldr r0, _080E2C10 @ =0x00007ecb + b _080E2C48 + .align 2, 0 +_080E2C0C: .4byte gUnknown_03004B00 +_080E2C10: .4byte 0x00007ecb +_080E2C14: + ldr r1, _080E2C1C @ =gUnknown_03004B00 + ldr r0, _080E2C20 @ =0x00007ecb + b _080E2C48 + .align 2, 0 +_080E2C1C: .4byte gUnknown_03004B00 +_080E2C20: .4byte 0x00007ecb +_080E2C24: + ldr r1, _080E2C2C @ =gUnknown_03004B00 + ldr r0, _080E2C30 @ =0x00002a16 + b _080E2C48 + .align 2, 0 +_080E2C2C: .4byte gUnknown_03004B00 +_080E2C30: .4byte 0x00002a16 +_080E2C34: + ldr r1, _080E2C3C @ =gUnknown_03004B00 + ldr r0, _080E2C40 @ =0x00000d2e + b _080E2C48 + .align 2, 0 +_080E2C3C: .4byte gUnknown_03004B00 +_080E2C40: .4byte 0x00000d2e +_080E2C44: + ldr r1, _080E2C58 @ =gUnknown_03004B00 + ldr r0, _080E2C5C @ =0x00007fff +_080E2C48: + strh r0, [r1, 0x8] +_080E2C4A: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_80E2C8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2C58: .4byte gUnknown_03004B00 +_080E2C5C: .4byte 0x00007fff + thumb_func_end sub_80E2B74 + + thumb_func_start sub_80E2C60 +sub_80E2C60: @ 80E2C60 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E2C88 @ =gUnknown_03004B00 + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + adds r0, r4, 0 + bl sub_80E2C8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2C88: .4byte gUnknown_03004B00 + thumb_func_end sub_80E2C60 + + thumb_func_start sub_80E2C8C +sub_80E2C8C: @ 80E2C8C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080E2CC4 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + strh r1, [r2, 0x8] + lsrs r1, 16 + strh r1, [r2, 0xA] + ldr r3, _080E2CC8 @ =gUnknown_03004B00 + ldrh r1, [r3, 0x2] + strh r1, [r2, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0xE] + ldrh r1, [r3, 0x6] + strh r1, [r2, 0x10] + ldrh r1, [r3, 0x8] + strh r1, [r2, 0x12] + ldrh r1, [r3, 0x4] + strh r1, [r2, 0x1C] + ldr r1, _080E2CCC @ =sub_80E2CD0 + str r1, [r2] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080E2CC4: .4byte gTasks +_080E2CC8: .4byte gUnknown_03004B00 +_080E2CCC: .4byte sub_80E2CD0 + thumb_func_end sub_80E2C8C + + thumb_func_start sub_80E2CD0 +sub_80E2CD0: @ 80E2CD0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r2, _080E2D50 @ =gTasks + lsls r5, r7, 2 + adds r0, r5, r7 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1A] + mov r8, r0 + movs r4, 0x1A + ldrsh r1, [r3, r4] + movs r4, 0xC + ldrsh r0, [r3, r4] + mov r9, r2 + cmp r1, r0 + bne _080E2D66 + strh r6, [r3, 0x1A] + movs r0, 0x8 + ldrsh r4, [r3, r0] + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r0, 16 + orrs r4, r0 + mov r8, r5 + cmp r4, 0 + beq _080E2D32 + adds r5, r3, 0 +_080E2D10: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080E2D24 + ldrb r2, [r5, 0x1C] + ldrh r3, [r5, 0x12] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette +_080E2D24: + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r4, 1 + cmp r4, 0 + bne _080E2D10 +_080E2D32: + mov r4, r8 + adds r0, r4, r7 + lsls r0, 3 + mov r1, r9 + adds r2, r0, r1 + ldrh r0, [r2, 0x1C] + movs r4, 0x1C + ldrsh r3, [r2, r4] + movs r4, 0x10 + ldrsh r1, [r2, r4] + cmp r3, r1 + bge _080E2D54 + adds r0, 0x1 + strh r0, [r2, 0x1C] + b _080E2D6C + .align 2, 0 +_080E2D50: .4byte gTasks +_080E2D54: + cmp r3, r1 + ble _080E2D5E + subs r0, 0x1 + strh r0, [r2, 0x1C] + b _080E2D6C +_080E2D5E: + adds r0, r7, 0 + bl move_anim_task_del + b _080E2D6C +_080E2D66: + mov r0, r8 + adds r0, 0x1 + strh r0, [r3, 0x1A] +_080E2D6C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E2CD0 + + thumb_func_start sub_80E2D78 +sub_80E2D78: @ 80E2D78 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080E2DAC @ =gUnknown_03004B00 + ldrb r0, [r4] + ldrb r1, [r4, 0x2] + ldrb r2, [r4, 0x4] + ldrb r3, [r4, 0x6] + ldrb r4, [r4, 0x8] + str r4, [sp] + bl BeginHardwarePaletteFade + ldr r1, _080E2DB0 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080E2DB4 @ =sub_80E2DB8 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E2DAC: .4byte gUnknown_03004B00 +_080E2DB0: .4byte gTasks +_080E2DB4: .4byte sub_80E2DB8 + thumb_func_end sub_80E2D78 + + thumb_func_start sub_80E2DB8 +sub_80E2DB8: @ 80E2DB8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080E2DD4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080E2DD0 + adds r0, r2, 0 + bl move_anim_task_del +_080E2DD0: + pop {r0} + bx r0 + .align 2, 0 +_080E2DD4: .4byte gPaletteFade + thumb_func_end sub_80E2DB8 + + thumb_func_start sub_80E2DD8 +sub_80E2DD8: @ 80E2DD8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080E2E04 @ =gTasks + adds r1, r0 + ldr r2, _080E2E08 @ =gUnknown_03004B00 + ldrh r0, [r2] + movs r3, 0 + strh r0, [r1, 0x8] + strh r3, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x4] + strh r0, [r1, 0xE] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0x10] + strh r3, [r1, 0x12] + ldr r0, _080E2E0C @ =sub_80E2E10 + str r0, [r1] + bx lr + .align 2, 0 +_080E2E04: .4byte gTasks +_080E2E08: .4byte gUnknown_03004B00 +_080E2E0C: .4byte sub_80E2E10 + thumb_func_end sub_80E2DD8 + + thumb_func_start sub_80E2E10 +sub_80E2E10: @ 80E2E10 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080E2E3C @ =gTasks + adds r4, r0, r1 + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E2ED4 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E2E40 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _080E2EE2 + .align 2, 0 +_080E2E3C: .4byte gTasks +_080E2E40: + ldrb r0, [r4, 0x8] + bl duplicate_obj_of_side_rel2move_in_transparent_mode + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + blt _080E2EBE + ldr r6, _080E2ECC @ =gSprites + movs r1, 0x14 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r3, r1, r6 + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x2 + cmp r0, 0 + beq _080E2E68 + movs r2, 0x1 +_080E2E68: + lsls r2, 2 + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x5] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r4, 0xE] + strh r1, [r0, 0x2E] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r5, [r0, 0x30] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strh r1, [r0, 0x32] + movs r2, 0x14 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080E2ED0 @ =sub_80E2EE8 + str r1, [r0] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_080E2EBE: + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0xA] + b _080E2EE2 + .align 2, 0 +_080E2ECC: .4byte gSprites +_080E2ED0: .4byte sub_80E2EE8 +_080E2ED4: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E2EE2 + adds r0, r2, 0 + bl move_anim_task_del +_080E2EE2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E2E10 + + thumb_func_start sub_80E2EE8 +sub_80E2EE8: @ 80E2EE8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080E2EFC + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + b _080E2F20 +_080E2EFC: + ldr r3, _080E2F28 @ =gTasks + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r1, 1 + movs r0, 0x30 + ldrsh r2, [r4, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r3, 0x8 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + adds r0, r4, 0 + bl obj_delete_but_dont_free_vram +_080E2F20: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E2F28: .4byte gTasks + thumb_func_end sub_80E2EE8 + + thumb_func_start sub_80E2F2C +sub_80E2F2C: @ 80E2F2C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r7, 0 + ldr r0, _080E3038 @ =gUnknown_030042C4 + strh r7, [r0] + ldr r0, _080E303C @ =gUnknown_03004240 + strh r7, [r0] + ldr r1, _080E3040 @ =REG_WININ + ldr r2, _080E3044 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E3048 @ =0x00003f3d + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E304C @ =REG_BLDCNT + ldr r2, _080E3050 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E3054 @ =0x00000c08 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E3058 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + mov r8, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E2FAC + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E2FAC: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E3028 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3028 + ldr r5, _080E305C @ =gUnknown_0202F7C8 + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E2FDC + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E3028 +_080E2FDC: + ldrb r0, [r5] + movs r6, 0x2 + eors r0, r6 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E3028 + ldr r3, _080E3060 @ =gSprites + ldr r1, _080E3064 @ =gUnknown_02024BE0 + ldrb r0, [r5] + eors r0, r6 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + movs r7, 0x1 +_080E3028: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E306C + ldr r0, _080E3068 @ =0x02019348 + ldrh r4, [r0] + b _080E30B4 + .align 2, 0 +_080E3038: .4byte gUnknown_030042C4 +_080E303C: .4byte gUnknown_03004240 +_080E3040: .4byte REG_WININ +_080E3044: .4byte 0x00003f3f +_080E3048: .4byte 0x00003f3d +_080E304C: .4byte REG_BLDCNT +_080E3050: .4byte 0x00003f42 +_080E3054: .4byte 0x00000c08 +_080E3058: .4byte REG_BG1CNT +_080E305C: .4byte gUnknown_0202F7C8 +_080E3060: .4byte gSprites +_080E3064: .4byte gUnknown_02024BE0 +_080E3068: .4byte 0x02019348 +_080E306C: + ldr r4, _080E308C @ =gUnknown_0202F7C8 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3098 + ldr r1, _080E3090 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3094 @ =gEnemyParty + b _080E30A8 + .align 2, 0 +_080E308C: .4byte gUnknown_0202F7C8 +_080E3090: .4byte gUnknown_02024A6A +_080E3094: .4byte gEnemyParty +_080E3098: + ldr r1, _080E3160 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3164 @ =gPlayerParty +_080E30A8: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E30B4: + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E3168 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _080E316C @ =0x040000d4 + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080E3170 @ =0x85000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _080E3174 @ =gUnknown_08D20A30 + bl LZDecompressVram + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3106 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3106: + ldr r0, _080E3178 @ =gUnknown_08D20A14 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _080E317C @ =gUnknown_083DB568 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + adds r1, 0x1 + movs r2, 0x2 + bl LoadPalette + ldr r2, _080E3180 @ =gUnknown_030042C0 + ldr r0, _080E3184 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r2, _080E3188 @ =gUnknown_030041B4 + ldrh r0, [r1, 0x22] + negs r0, r0 + adds r0, 0x20 + strh r0, [r2] + ldr r1, _080E318C @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x8] + strh r7, [r0, 0x14] + ldr r1, _080E3190 @ =sub_80E3194 + str r1, [r0] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3160: .4byte gUnknown_02024A6A +_080E3164: .4byte gPlayerParty +_080E3168: .4byte gUnknown_0202F7C8 +_080E316C: .4byte 0x040000d4 +_080E3170: .4byte 0x85000400 +_080E3174: .4byte gUnknown_08D20A30 +_080E3178: .4byte gUnknown_08D20A14 +_080E317C: .4byte gUnknown_083DB568 +_080E3180: .4byte gUnknown_030042C0 +_080E3184: .4byte gSprites +_080E3188: .4byte gUnknown_030041B4 +_080E318C: .4byte gTasks +_080E3190: .4byte sub_80E3194 + thumb_func_end sub_80E2F2C + + thumb_func_start sub_80E3194 +sub_80E3194: @ 80E3194 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E32AC @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x4 + movs r5, 0 + strh r0, [r4, 0x1C] + ldr r7, _080E32B0 @ =gUnknown_030041B4 + ldrh r2, [r7] + subs r1, r2, 0x4 + strh r1, [r7] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + bne _080E329E + strh r5, [r4, 0x1C] + adds r0, r2, 0 + adds r0, 0x3C + strh r0, [r7] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080E329E + movs r0, 0 + bl sub_8076464 + ldr r0, _080E32B4 @ =gUnknown_030042C4 + strh r5, [r0] + ldr r0, _080E32B8 @ =gUnknown_03004240 + strh r5, [r0] + ldr r0, _080E32BC @ =REG_WININ + ldr r2, _080E32C0 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3208 + ldr r2, _080E32C4 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E3208: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E32C8 @ =REG_BLDCNT + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + movs r0, 0 + bl obj_id_for_side_relative_to_move + ldr r0, _080E32CC @ =gSprites + mov r8, r0 + movs r2, 0x8 + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _080E32D0 @ =0x040000d4 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080E32D4 @ =0x85000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E3288 + ldr r2, _080E32D8 @ =gUnknown_02024BE0 + ldr r0, _080E32DC @ =gUnknown_0202F7C8 + ldrb r1, [r0] + movs r0, 0x2 + eors r0, r1 + adds r0, r2 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E3288: + ldr r2, _080E32C4 @ =REG_BG1CNT + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + movs r0, 0 + strh r0, [r7] + adds r0, r6, 0 + bl move_anim_task_del +_080E329E: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E32AC: .4byte gTasks +_080E32B0: .4byte gUnknown_030041B4 +_080E32B4: .4byte gUnknown_030042C4 +_080E32B8: .4byte gUnknown_03004240 +_080E32BC: .4byte REG_WININ +_080E32C0: .4byte 0x00003f3f +_080E32C4: .4byte REG_BG1CNT +_080E32C8: .4byte REG_BLDCNT +_080E32CC: .4byte gSprites +_080E32D0: .4byte 0x040000d4 +_080E32D4: .4byte 0x85000200 +_080E32D8: .4byte gUnknown_02024BE0 +_080E32DC: .4byte gUnknown_0202F7C8 + thumb_func_end sub_80E3194 + + thumb_func_start sub_80E32E0 +sub_80E32E0: @ 80E32E0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _080E332C @ =gTasks + mov r12, r0 + ldr r1, _080E3330 @ =sub_80E3338 + mov r8, r1 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r4, r0, 3 + mov r7, r12 + adds r7, 0x8 + adds r5, r1, 0 + ldr r6, _080E3334 @ =gUnknown_03004B00 +_080E3302: + lsls r0, r2, 1 + adds r1, r0, r4 + adds r1, r7 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _080E3302 + adds r0, r5, r3 + lsls r0, 3 + add r0, r12 + mov r1, r8 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E332C: .4byte gTasks +_080E3330: .4byte sub_80E3338 +_080E3334: .4byte gUnknown_03004B00 + thumb_func_end sub_80E32E0 + + thumb_func_start sub_80E3338 +sub_80E3338: @ 80E3338 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + str r0, [sp, 0x1C] + movs r1, 0 + str r1, [sp, 0x20] + add r7, sp, 0xC + ldr r2, _080E3388 @ =gTasks + mov r3, r9 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + mov r10, r1 + adds r1, r2, 0 + adds r1, 0x8 + adds r1, r0, r1 + adds r3, r7, 0 + movs r4, 0 + movs r2, 0x7 +_080E336C: + ldrh r0, [r1] + strh r0, [r3] + strh r4, [r1] + adds r1, 0x2 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080E336C + movs r1, 0x4 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E3390 + ldr r0, _080E338C @ =gUnknown_0202F7C8 + b _080E3392 + .align 2, 0 +_080E3388: .4byte gTasks +_080E338C: .4byte gUnknown_0202F7C8 +_080E3390: + ldr r0, _080E34B4 @ =gUnknown_0202F7C9 +_080E3392: + ldrb r5, [r0] + movs r0, 0x2 + mov r8, r5 + mov r2, r8 + eors r2, r0 + mov r8, r2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E33BC + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r0, 0 + beq _080E33C0 + mov r0, r8 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080E33C0 +_080E33BC: + movs r0, 0 + strh r0, [r7, 0x6] +_080E33C0: + ldr r0, _080E34B8 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E34BC @ =gUnknown_03004240 + strh r1, [r0] + ldr r1, _080E34C0 @ =REG_WININ + ldr r2, _080E34C4 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080E34C8 @ =0x00003f3d + adds r0, r3, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E34CC @ =REG_BLDCNT + ldr r2, _080E34D0 @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E34D4 @ =REG_BG1CNT + ldrb r1, [r4] + movs r6, 0x4 + negs r6, r6 + adds r0, r6, 0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3432 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E3432: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080E34A4 + movs r1, 0x6 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E34A4 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E345E + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080E34A4 +_080E345E: + mov r0, r8 + bl b_side_obj__get_some_boolean + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E34A4 + ldr r1, _080E34D8 @ =gSprites + ldr r0, _080E34DC @ =gUnknown_02024BE0 + add r0, r8 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + subs r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] + ldrb r1, [r4] + adds r0, r6, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] + movs r2, 0x1 + str r2, [sp, 0x20] +_080E34A4: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E34E4 + ldr r0, _080E34E0 @ =0x02019348 + ldrh r4, [r0] + b _080E3522 + .align 2, 0 +_080E34B4: .4byte gUnknown_0202F7C9 +_080E34B8: .4byte gUnknown_030042C4 +_080E34BC: .4byte gUnknown_03004240 +_080E34C0: .4byte REG_WININ +_080E34C4: .4byte 0x00003f3f +_080E34C8: .4byte 0x00003f3d +_080E34CC: .4byte REG_BLDCNT +_080E34D0: .4byte 0x00003f42 +_080E34D4: .4byte REG_BG1CNT +_080E34D8: .4byte gSprites +_080E34DC: .4byte gUnknown_02024BE0 +_080E34E0: .4byte 0x02019348 +_080E34E4: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3508 + ldr r1, _080E3500 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3504 @ =gEnemyParty + b _080E3516 + .align 2, 0 +_080E3500: .4byte gUnknown_02024A6A +_080E3504: .4byte gEnemyParty +_080E3508: + ldr r1, _080E3568 @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E356C @ =gPlayerParty +_080E3516: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E3522: + ldr r6, _080E3570 @ =gUnknown_02024BE0 + adds r0, r5, r6 + ldrb r1, [r0] + adds r0, r5, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r0, 0 + beq _080E3550 + mov r1, r8 + adds r0, r1, r6 + ldrb r1, [r0] + mov r0, r8 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] +_080E3550: + mov r0, sp + bl sub_8078914 + movs r2, 0 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080E3578 + ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram + b _080E3580 + .align 2, 0 +_080E3568: .4byte gUnknown_02024A6A +_080E356C: .4byte gPlayerParty +_080E3570: .4byte gUnknown_02024BE0 +_080E3574: .4byte gBattleStatMask1_Tilemap +_080E3578: + ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap + ldr r1, [sp, 0x4] + bl LZDecompressVram +_080E3580: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3598 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3598: + ldr r0, _080E35B4 @ =gBattleStatMask_Gfx + ldr r1, [sp] + bl LZDecompressVram + ldrh r0, [r7, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _080E35BC + ldr r0, _080E35B8 @ =gBattleStatMask2_Pal + b _080E35FE + .align 2, 0 +_080E35B0: .4byte gBattleStatMask2_Tilemap +_080E35B4: .4byte gBattleStatMask_Gfx +_080E35B8: .4byte gBattleStatMask2_Pal +_080E35BC: + cmp r0, 0x1 + bne _080E35C8 + ldr r0, _080E35C4 @ =gBattleStatMask1_Pal + b _080E35FE + .align 2, 0 +_080E35C4: .4byte gBattleStatMask1_Pal +_080E35C8: + cmp r0, 0x2 + bne _080E35D4 + ldr r0, _080E35D0 @ =gBattleStatMask3_Pal + b _080E35FE + .align 2, 0 +_080E35D0: .4byte gBattleStatMask3_Pal +_080E35D4: + cmp r0, 0x3 + bne _080E35E0 + ldr r0, _080E35DC @ =gBattleStatMask4_Pal + b _080E35FE + .align 2, 0 +_080E35DC: .4byte gBattleStatMask4_Pal +_080E35E0: + cmp r0, 0x4 + bne _080E35EC + ldr r0, _080E35E8 @ =gBattleStatMask6_Pal + b _080E35FE + .align 2, 0 +_080E35E8: .4byte gBattleStatMask6_Pal +_080E35EC: + cmp r0, 0x5 + bne _080E35F8 + ldr r0, _080E35F4 @ =gBattleStatMask7_Pal + b _080E35FE + .align 2, 0 +_080E35F4: .4byte gBattleStatMask7_Pal +_080E35F8: + cmp r0, 0x6 + bne _080E3610 + ldr r0, _080E360C @ =gBattleStatMask8_Pal +_080E35FE: + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + b _080E361E + .align 2, 0 +_080E360C: .4byte gBattleStatMask8_Pal +_080E3610: + ldr r0, _080E3644 @ =gBattleStatMask5_Pal + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette +_080E361E: + ldr r2, _080E3648 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r2] + ldr r0, _080E364C @ =gUnknown_030041B4 + strh r1, [r0] + movs r3, 0 + ldrsh r0, [r7, r3] + cmp r0, 0x1 + bne _080E3658 + movs r0, 0x40 + strh r0, [r2] + ldr r2, _080E3650 @ =gTasks + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + ldr r1, _080E3654 @ =0x0000fffd + strh r1, [r0, 0xA] + b _080E3668 + .align 2, 0 +_080E3644: .4byte gBattleStatMask5_Pal +_080E3648: .4byte gUnknown_030042C0 +_080E364C: .4byte gUnknown_030041B4 +_080E3650: .4byte gTasks +_080E3654: .4byte 0x0000fffd +_080E3658: + ldr r0, _080E3680 @ =gTasks + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + movs r2, 0x3 + strh r2, [r1, 0xA] + adds r2, r0, 0 +_080E3668: + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E3684 + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + strh r1, [r0, 0x10] + movs r1, 0x14 + b _080E3692 + .align 2, 0 +_080E3680: .4byte gTasks +_080E3684: + mov r0, r10 + add r0, r9 + lsls r0, 3 + adds r0, r2 + movs r1, 0xD + strh r1, [r0, 0x10] + movs r1, 0x1E +_080E3692: + strh r1, [r0, 0x12] + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + ldrh r0, [r7, 0x6] + strh r0, [r1, 0xC] + mov r2, sp + ldrh r2, [r2, 0x1C] + strh r2, [r1, 0xE] + mov r3, sp + ldrh r3, [r3, 0x20] + strh r3, [r1, 0x14] + ldr r0, _080E36D8 @ =gUnknown_02024BE0 + add r0, r8 + ldrb r0, [r0] + strh r0, [r1, 0x16] + ldr r0, _080E36DC @ =sub_80E3704 + str r0, [r1] + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080E36E0 + movs r0, 0x40 + negs r0, r0 + bl sub_8077094 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xEF + bl PlaySE12WithPanning + b _080E36F4 + .align 2, 0 +_080E36D8: .4byte gUnknown_02024BE0 +_080E36DC: .4byte sub_80E3704 +_080E36E0: + movs r0, 0x40 + negs r0, r0 + bl sub_8077094 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0xF5 + bl PlaySE12WithPanning +_080E36F4: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E3338 + + thumb_func_start sub_80E3704 +sub_80E3704: @ 80E3704 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080E3730 @ =gUnknown_030041B4 + ldr r1, _080E3734 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + cmp r2, 0x1 + beq _080E3774 + cmp r2, 0x1 + bgt _080E3738 + cmp r2, 0 + beq _080E373E + b _080E3866 + .align 2, 0 +_080E3730: .4byte gUnknown_030041B4 +_080E3734: .4byte gTasks +_080E3738: + cmp r2, 0x2 + beq _080E378E + b _080E3866 +_080E373E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080E374C + b _080E3866 +_080E374C: + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _080E3770 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E3866 + b _080E3786 + .align 2, 0 +_080E3770: .4byte REG_BLDALPHA +_080E3774: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080E3866 +_080E3786: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _080E3866 +_080E378E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + ble _080E3866 + movs r0, 0 + strh r0, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r7, _080E386C @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r7] + movs r0, 0x20 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080E3866 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E3870 @ =gUnknown_030042C4 + strh r5, [r0] + ldr r0, _080E3874 @ =gUnknown_03004240 + strh r5, [r0] + ldr r0, _080E3878 @ =REG_WININ + ldr r2, _080E387C @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E37E8 + ldr r2, _080E3880 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E37E8: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E3884 @ =REG_BLDCNT + strh r5, [r0] + strh r5, [r7] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080E3888 @ =gSprites + adds r0, r5 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3828 + movs r2, 0xE + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_080E3828: + movs r3, 0x14 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080E3854 + movs r1, 0x16 + ldrsh r0, [r4, r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrb r3, [r2, 0x5] + lsls r1, r3, 28 + lsrs r1, 30 + adds r1, 0x1 + movs r0, 0x3 + ands r1, r0 + lsls r1, 2 + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x5] +_080E3854: + ldr r2, _080E3880 @ =REG_BG1CNT + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + adds r0, r6, 0 + bl move_anim_task_del +_080E3866: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E386C: .4byte REG_BLDALPHA +_080E3870: .4byte gUnknown_030042C4 +_080E3874: .4byte gUnknown_03004240 +_080E3878: .4byte REG_WININ +_080E387C: .4byte 0x00003f3f +_080E3880: .4byte REG_BG1CNT +_080E3884: .4byte REG_BLDCNT +_080E3888: .4byte gSprites + thumb_func_end sub_80E3704 + + thumb_func_start sub_80E388C +sub_80E388C: @ 80E388C + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x1 + bl sub_80792C0 + adds r6, r0, 0 + movs r1, 0 + bl sub_80E39BC + ldr r0, _080E38EC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + lsrs r0, r6, 16 + movs r5, 0 + strh r0, [r4, 0x24] + str r5, [sp] + str r5, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r6, r0, 0 + ldr r1, _080E38F0 @ =0x0000ffff + ands r6, r1 + adds r0, r6, 0 + bl sub_80E39BC + strh r6, [r4, 0x26] + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + ldr r0, _080E38F4 @ =sub_80E38F8 + str r0, [r4] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E38EC: .4byte gTasks +_080E38F0: .4byte 0x0000ffff +_080E38F4: .4byte sub_80E38F8 + thumb_func_end sub_80E388C + + thumb_func_start sub_80E38F8 +sub_80E38F8: @ 80E38F8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080E391C @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0x1 + beq _080E393C + cmp r1, 0x1 + bgt _080E3920 + cmp r1, 0 + beq _080E3926 + b _080E39B6 + .align 2, 0 +_080E391C: .4byte gTasks +_080E3920: + cmp r1, 0x2 + beq _080E39B0 + b _080E39B6 +_080E3926: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080E39B6 + strh r1, [r4, 0xA] + movs r0, 0x10 + strh r0, [r4, 0xC] + b _080E39A4 +_080E393C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080E39B6 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + movs r5, 0 + movs r6, 0x1 +_080E3958: + movs r1, 0x26 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080E3972 + lsls r0, r5, 20 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + ldr r3, _080E39AC @ =0x0000ffff + bl BlendPalette +_080E3972: + movs r1, 0x24 + ldrsh r0, [r4, r1] + asrs r0, r5 + ands r0, r6 + cmp r0, 0 + beq _080E3992 + lsls r0, r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldrb r2, [r4, 0xC] + movs r1, 0x10 + movs r3, 0 + bl BlendPalette +_080E3992: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _080E3958 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080E39B6 +_080E39A4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E39B6 + .align 2, 0 +_080E39AC: .4byte 0x0000ffff +_080E39B0: + adds r0, r2, 0 + bl move_anim_task_del +_080E39B6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E38F8 + + thumb_func_start sub_80E39BC +sub_80E39BC: @ 80E39BC + push {r4-r6,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r2, 0 +_080E39C6: + movs r0, 0x1 + ands r0, r3 + lsrs r4, r3, 1 + adds r5, r2, 0x1 + cmp r0, 0 + beq _080E39F2 + lsls r0, r2, 20 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x10 + cmp r2, r0 + bge _080E39F2 + ldr r1, _080E3A04 @ =gPlttBufferFaded + adds r3, r0, 0 +_080E39E2: + lsls r0, r2, 1 + adds r0, r1 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + blt _080E39E2 +_080E39F2: + adds r3, r4, 0 + lsls r0, r5, 16 + lsrs r2, r0, 16 + cmp r2, 0x1F + bls _080E39C6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3A04: .4byte gPlttBufferFaded + thumb_func_end sub_80E39BC + + thumb_func_start sub_80E3A08 +sub_80E3A08: @ 80E3A08 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r2, 0 + ldr r0, _080E3A50 @ =gUnknown_0202F7C8 + ldrb r3, [r0] + movs r5, 0x1 +_080E3A18: + cmp r3, r2 + beq _080E3A26 + adds r1, r2, 0 + adds r1, 0x10 + adds r0, r5, 0 + lsls r0, r1 + orrs r4, r0 +_080E3A26: + adds r2, 0x1 + cmp r2, 0x3 + bls _080E3A18 + movs r2, 0x5 + ldr r0, _080E3A54 @ =gUnknown_03004B00 + adds r1, r0, 0 + adds r1, 0x8 +_080E3A34: + ldrh r0, [r1] + strh r0, [r1, 0x2] + subs r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E3A34 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80E2C8C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3A50: .4byte gUnknown_0202F7C8 +_080E3A54: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3A08 + + thumb_func_start sub_80E3A58 +sub_80E3A58: @ 80E3A58 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + bl sub_80789D4 + ldr r0, _080E3AC0 @ =sub_80E3AD0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080E3AC4 @ =gUnknown_03004B00 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3A94 + ldr r0, _080E3AC8 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3A94 + ldrh r0, [r4] + negs r0, r0 + strh r0, [r4] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] +_080E3A94: + ldr r0, _080E3ACC @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r2, _080E3AC4 @ =gUnknown_03004B00 + ldrh r0, [r2] + strh r0, [r1, 0xA] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0xC] + ldrh r0, [r2, 0x6] + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + adds r0, r6, 0 + bl move_anim_task_del + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E3AC0: .4byte sub_80E3AD0 +_080E3AC4: .4byte gUnknown_03004B00 +_080E3AC8: .4byte gUnknown_0202F7C8 +_080E3ACC: .4byte gTasks + thumb_func_end sub_80E3A58 + + thumb_func_start sub_80E3AD0 +sub_80E3AD0: @ 80E3AD0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E3B3C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0xA] + ldrh r0, [r1, 0x1C] + adds r3, r0 + movs r4, 0 + mov r12, r4 + strh r3, [r1, 0x1C] + ldrh r2, [r1, 0xC] + ldrh r7, [r1, 0x1E] + adds r2, r7 + strh r2, [r1, 0x1E] + ldr r6, _080E3B40 @ =gUnknown_030041B0 + lsls r0, r3, 16 + asrs r0, 24 + ldrh r4, [r6] + adds r0, r4 + strh r0, [r6] + ldr r4, _080E3B44 @ =gUnknown_030041B8 + lsls r0, r2, 16 + asrs r0, 24 + ldrh r7, [r4] + adds r0, r7 + strh r0, [r4] + movs r0, 0xFF + ands r3, r0 + strh r3, [r1, 0x1C] + ands r2, r0 + strh r2, [r1, 0x1E] + ldr r0, _080E3B48 @ =gUnknown_03004B00 + movs r3, 0xE + ldrsh r2, [r0, r3] + movs r7, 0xE + ldrsh r0, [r1, r7] + cmp r2, r0 + bne _080E3B36 + mov r0, r12 + strh r0, [r6] + strh r0, [r4] + movs r0, 0x1 + bl sub_80789D4 + adds r0, r5, 0 + bl DestroyTask +_080E3B36: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3B3C: .4byte gTasks +_080E3B40: .4byte gUnknown_030041B0 +_080E3B44: .4byte gUnknown_030041B8 +_080E3B48: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3AD0 + + thumb_func_start sub_80E3B4C +sub_80E3B4C: @ 80E3B4C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E3B70 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + ldr r1, _080E3B74 @ =gUnknown_03004B00 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E3B70: .4byte gUnknown_0202F7C8 +_080E3B74: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3B4C + + thumb_func_start sub_80E3B78 +sub_80E3B78: @ 80E3B78 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080E3B9C @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + ldr r1, _080E3BA0 @ =gUnknown_03004B00 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0xE] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E3B9C: .4byte gUnknown_0202F7C9 +_080E3BA0: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3B78 + + thumb_func_start sub_80E3BA4 +sub_80E3BA4: @ 80E3BA4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r5, _080E3BD0 @ =gUnknown_03004B00 + movs r4, 0 + ldr r0, _080E3BD4 @ =gUnknown_0202F7C8 + ldrb r2, [r0] + movs r0, 0x2 + ldr r1, _080E3BD8 @ =gUnknown_0202F7C9 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bne _080E3BC0 + movs r4, 0x1 +_080E3BC0: + strh r4, [r5, 0xE] + adds r0, r3, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E3BD0: .4byte gUnknown_03004B00 +_080E3BD4: .4byte gUnknown_0202F7C8 +_080E3BD8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_80E3BA4 + + thumb_func_start sub_80E3BDC +sub_80E3BDC: @ 80E3BDC + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080E3C3C @ =gSprites +_080E3BE6: + ldr r0, _080E3C40 @ =gUnknown_0202F7C8 + ldrb r0, [r0] + cmp r4, r0 + beq _080E3C24 + lsls r0, r4, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080E3C24 + ldr r0, _080E3C44 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldr r1, _080E3C48 @ =gUnknown_03004B00 + adds r2, 0x3E + movs r0, 0x1 + ldrb r3, [r1] + ands r3, r0 + lsls r3, 2 + ldrb r0, [r2] + movs r7, 0x5 + negs r7, r7 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080E3C24: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080E3BE6 + adds r0, r5, 0 + bl move_anim_task_del + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3C3C: .4byte gSprites +_080E3C40: .4byte gUnknown_0202F7C8 +_080E3C44: .4byte gUnknown_02024BE0 +_080E3C48: .4byte gUnknown_03004B00 + thumb_func_end sub_80E3BDC + + thumb_func_start sub_80E3C4C +sub_80E3C4C: @ 80E3C4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r1, [sp, 0x3C] + ldr r4, [sp, 0x40] + ldr r5, [sp, 0x44] + ldr r6, [sp, 0x48] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0xC] + lsls r3, 24 + lsrs r7, r3, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp, 0x10] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x14] + lsls r6, 24 + lsrs r6, 24 + mov r10, r6 + movs r0, 0 + str r0, [sp, 0x18] + movs r0, 0x2 + adds r6, r7, 0 + eors r6, r0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3CAE + mov r1, r8 + cmp r1, 0 + beq _080E3CB2 + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080E3CB2 +_080E3CAE: + movs r2, 0 + mov r8, r2 +_080E3CB2: + ldr r0, _080E3D34 @ =gUnknown_030042C4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E3D38 @ =gUnknown_03004240 + strh r1, [r0] + ldr r1, _080E3D3C @ =REG_WININ + ldr r3, _080E3D40 @ =0x00003f3f + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E3D44 @ =0x00003f3d + adds r0, r2, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080E3D48 @ =REG_BLDCNT + ldr r2, _080E3D4C @ =0x00003f42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + strh r0, [r1] + ldr r4, _080E3D50 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3D22 + ldrb r0, [r4] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4] +_080E3D22: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3D58 + ldr r0, _080E3D54 @ =0x02019348 + ldrh r4, [r0] + b _080E3D96 + .align 2, 0 +_080E3D34: .4byte gUnknown_030042C4 +_080E3D38: .4byte gUnknown_03004240 +_080E3D3C: .4byte REG_WININ +_080E3D40: .4byte 0x00003f3f +_080E3D44: .4byte 0x00003f3d +_080E3D48: .4byte REG_BLDCNT +_080E3D4C: .4byte 0x00003f42 +_080E3D50: .4byte REG_BG1CNT +_080E3D54: .4byte 0x02019348 +_080E3D58: + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080E3D7C + ldr r1, _080E3D74 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3D78 @ =gEnemyParty + b _080E3D8A + .align 2, 0 +_080E3D74: .4byte gUnknown_02024A6A +_080E3D78: .4byte gEnemyParty +_080E3D7C: + ldr r1, _080E3E48 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080E3E4C @ =gPlayerParty +_080E3D8A: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_080E3D96: + ldr r5, _080E3E50 @ =gUnknown_02024BE0 + adds r0, r7, r5 + ldrb r1, [r0] + adds r0, r7, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r8 + cmp r0, 0 + beq _080E3DC0 + adds r0, r6, r5 + ldrb r1, [r0] + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_807A4A0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] +_080E3DC0: + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + ldr r0, [sp, 0x50] + bl LZDecompressVram + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E3DE6 + mov r0, sp + ldrb r0, [r0, 0x8] + ldr r1, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_80763FC +_080E3DE6: + ldr r1, [sp] + ldr r0, [sp, 0x4C] + bl LZDecompressVram + mov r0, sp + ldrb r1, [r0, 0x8] + lsls r1, 4 + ldr r0, [sp, 0x54] + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080E3E54 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E3E58 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r1, _080E3E5C @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r3, sp + ldrh r3, [r3, 0xC] + strh r3, [r0, 0xA] + mov r1, sp + ldrh r1, [r1, 0x10] + strh r1, [r0, 0x10] + mov r2, r10 + strh r2, [r0, 0x12] + mov r3, sp + ldrh r3, [r3, 0x14] + strh r3, [r0, 0x14] + strh r7, [r0, 0x8] + mov r1, r8 + strh r1, [r0, 0xC] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0xE] + ldr r1, _080E3E60 @ =sub_80E3E64 + str r1, [r0] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3E48: .4byte gUnknown_02024A6A +_080E3E4C: .4byte gPlayerParty +_080E3E50: .4byte gUnknown_02024BE0 +_080E3E54: .4byte gUnknown_030042C0 +_080E3E58: .4byte gUnknown_030041B4 +_080E3E5C: .4byte gTasks +_080E3E60: .4byte sub_80E3E64 + thumb_func_end sub_80E3C4C + + thumb_func_start sub_80E3E64 +sub_80E3E64: @ 80E3E64 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E3E9C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r3, r0, r1 + movs r0, 0xA + ldrsh r2, [r3, r0] + adds r5, r1, 0 + cmp r2, 0 + bge _080E3E80 + negs r2, r2 +_080E3E80: + ldrh r0, [r3, 0x22] + adds r4, r0, r2 + strh r4, [r3, 0x22] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bge _080E3EA4 + ldr r2, _080E3EA0 @ =gUnknown_030041B4 + lsls r1, r4, 16 + asrs r1, 24 + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + b _080E3EB0 + .align 2, 0 +_080E3E9C: .4byte gTasks +_080E3EA0: .4byte gUnknown_030041B4 +_080E3EA4: + ldr r1, _080E3ED4 @ =gUnknown_030041B4 + lsls r0, r4, 16 + asrs r0, 24 + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] +_080E3EB0: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r5 + ldrh r1, [r4, 0x22] + movs r0, 0xFF + ands r0, r1 + movs r2, 0 + strh r0, [r4, 0x22] + movs r3, 0x26 + ldrsh r0, [r4, r3] + cmp r0, 0x1 + beq _080E3F18 + cmp r0, 0x1 + bgt _080E3ED8 + cmp r0, 0 + beq _080E3EDE + b _080E3FE2 + .align 2, 0 +_080E3ED4: .4byte gUnknown_030041B4 +_080E3ED8: + cmp r0, 0x2 + beq _080E3F32 + b _080E3FE2 +_080E3EDE: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E3FE2 + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _080E3F14 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080E3FE2 + b _080E3F2A + .align 2, 0 +_080E3F14: .4byte REG_BLDALPHA +_080E3F18: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080E3FE2 +_080E3F2A: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _080E3FE2 +_080E3F32: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x14 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _080E3FE2 + strh r2, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r7, _080E3FE8 @ =REG_BLDALPHA + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r7] + movs r0, 0x20 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _080E3FE2 + movs r0, 0 + bl sub_8076464 + ldr r0, _080E3FEC @ =gUnknown_030042C4 + strh r5, [r0] + ldr r0, _080E3FF0 @ =gUnknown_03004240 + strh r5, [r0] + ldr r0, _080E3FF4 @ =REG_WININ + ldr r2, _080E3FF8 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080E3F90 + ldr r2, _080E3FFC @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080E3F90: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + eors r0, r1 + strh r0, [r2] + ldr r0, _080E4000 @ =REG_BLDCNT + strh r5, [r0] + strh r5, [r7] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _080E4004 @ =gSprites + adds r0, r5 + bl DestroySprite + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080E3FD0 + movs r2, 0xE + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_080E3FD0: + ldr r2, _080E3FFC @ =REG_BG1CNT + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + adds r0, r6, 0 + bl move_anim_task_del +_080E3FE2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E3FE8: .4byte REG_BLDALPHA +_080E3FEC: .4byte gUnknown_030042C4 +_080E3FF0: .4byte gUnknown_03004240 +_080E3FF4: .4byte REG_WININ +_080E3FF8: .4byte 0x00003f3f +_080E3FFC: .4byte REG_BG1CNT +_080E4000: .4byte REG_BLDCNT +_080E4004: .4byte gSprites + thumb_func_end sub_80E3E64 + + thumb_func_start sub_80E4008 +sub_80E4008: @ 80E4008 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4020 @ =gUnknown_03004B00 + ldr r1, _080E4024 @ =gUnknown_0300428C + ldrb r1, [r1] + strh r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E4020: .4byte gUnknown_03004B00 +_080E4024: .4byte gUnknown_0300428C + thumb_func_end sub_80E4008 + + thumb_func_start sub_80E4028 +sub_80E4028: @ 80E4028 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _080E4068 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E406C + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E4084 + movs r2, 0x1 +_080E405A: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E405A + b _080E4084 + .align 2, 0 +_080E4068: .4byte gUnknown_03004B00 +_080E406C: + cmp r0, 0x1 + bne _080E4078 + ldr r0, _080E4074 @ =gUnknown_0202F7C8 + b _080E407E + .align 2, 0 +_080E4074: .4byte gUnknown_0202F7C8 +_080E4078: + cmp r0, 0x2 + bne _080E4084 + ldr r0, _080E409C @ =gUnknown_0202F7C9 +_080E407E: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E4084: + ldr r0, _080E40A0 @ =gUnknown_03004B00 + movs r1, 0x2 + ldrsh r0, [r0, r1] + lsls r5, r0, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E40A8 + ldr r0, _080E40A4 @ =0x02014800 + b _080E40AA + .align 2, 0 +_080E409C: .4byte gUnknown_0202F7C9 +_080E40A0: .4byte gUnknown_03004B00 +_080E40A4: .4byte 0x02014800 +_080E40A8: + ldr r0, _080E40C8 @ =0x02018000 +_080E40AA: + adds r2, r5, r0 + lsls r1, r4, 5 + ldr r0, _080E40CC @ =gPlttBufferUnfaded + adds r1, r0 + adds r0, r2, 0 + movs r2, 0x20 + bl memcpy + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E40C8: .4byte 0x02018000 +_080E40CC: .4byte gPlttBufferUnfaded + thumb_func_end sub_80E4028 + + thumb_func_start sub_80E40D0 +sub_80E40D0: @ 80E40D0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _080E4110 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E4114 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E412C + movs r2, 0x1 +_080E4102: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E4102 + b _080E412C + .align 2, 0 +_080E4110: .4byte gUnknown_03004B00 +_080E4114: + cmp r0, 0x1 + bne _080E4120 + ldr r0, _080E411C @ =gUnknown_0202F7C8 + b _080E4126 + .align 2, 0 +_080E411C: .4byte gUnknown_0202F7C8 +_080E4120: + cmp r0, 0x2 + bne _080E412C + ldr r0, _080E4148 @ =gUnknown_0202F7C9 +_080E4126: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E412C: + lsls r1, r4, 5 + ldr r0, _080E414C @ =gPlttBufferUnfaded + adds r5, r1, r0 + ldr r0, _080E4150 @ =gUnknown_03004B00 + movs r1, 0x2 + ldrsh r0, [r0, r1] + lsls r4, r0, 5 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E4158 + ldr r0, _080E4154 @ =0x02014800 + b _080E415A + .align 2, 0 +_080E4148: .4byte gUnknown_0202F7C9 +_080E414C: .4byte gPlttBufferUnfaded +_080E4150: .4byte gUnknown_03004B00 +_080E4154: .4byte 0x02014800 +_080E4158: + ldr r0, _080E4174 @ =0x02018000 +_080E415A: + adds r1, r4, r0 + adds r0, r5, 0 + movs r2, 0x20 + bl memcpy + adds r0, r6, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E4174: .4byte 0x02018000 + thumb_func_end sub_80E40D0 + + thumb_func_start sub_80E4178 +sub_80E4178: @ 80E4178 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080E41B8 @ =gUnknown_03004B00 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080E41BC + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r1, r0, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080E41D4 + movs r2, 0x1 +_080E41AA: + lsrs r1, 1 + adds r4, 0x1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _080E41AA + b _080E41D4 + .align 2, 0 +_080E41B8: .4byte gUnknown_03004B00 +_080E41BC: + cmp r0, 0x1 + bne _080E41C8 + ldr r0, _080E41C4 @ =gUnknown_0202F7C8 + b _080E41CE + .align 2, 0 +_080E41C4: .4byte gUnknown_0202F7C8 +_080E41C8: + cmp r0, 0x2 + bne _080E41D4 + ldr r0, _080E41F4 @ =gUnknown_0202F7C9 +_080E41CE: + ldrb r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 +_080E41D4: + lsls r1, r4, 5 + ldr r0, _080E41F8 @ =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, _080E41FC @ =gPlttBufferFaded + adds r1, r2 + movs r2, 0x20 + bl memcpy + adds r0, r5, 0 + bl move_anim_task_del + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E41F4: .4byte gUnknown_0202F7C9 +_080E41F8: .4byte gPlttBufferUnfaded +_080E41FC: .4byte gPlttBufferFaded + thumb_func_end sub_80E4178 + + thumb_func_start sub_80E4200 +sub_80E4200: @ 80E4200 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E4220 + ldr r1, _080E421C @ =gUnknown_03004B00 + movs r0, 0x1 + strh r0, [r1, 0xE] + b _080E4224 + .align 2, 0 +_080E421C: .4byte gUnknown_03004B00 +_080E4220: + ldr r0, _080E4230 @ =gUnknown_03004B00 + strh r1, [r0, 0xE] +_080E4224: + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4230: .4byte gUnknown_03004B00 + thumb_func_end sub_80E4200 + + thumb_func_start sub_80E4234 +sub_80E4234: @ 80E4234 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4254 @ =gUnknown_0202F7C8 + ldr r1, _080E4258 @ =gUnknown_02024C08 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080E425C @ =gUnknown_0202F7C9 + ldr r1, _080E4260 @ =gUnknown_02024C0A + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E4254: .4byte gUnknown_0202F7C8 +_080E4258: .4byte gUnknown_02024C08 +_080E425C: .4byte gUnknown_0202F7C9 +_080E4260: .4byte gUnknown_02024C0A + thumb_func_end sub_80E4234 + + thumb_func_start sub_80E4264 +sub_80E4264: @ 80E4264 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E428C @ =gUnknown_0202F7C8 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r0, _080E4290 @ =gUnknown_0202F7C9 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080E4298 + ldr r1, _080E4294 @ =gUnknown_03004B00 + movs r0, 0x1 + b _080E429C + .align 2, 0 +_080E428C: .4byte gUnknown_0202F7C8 +_080E4290: .4byte gUnknown_0202F7C9 +_080E4294: .4byte gUnknown_03004B00 +_080E4298: + ldr r1, _080E42AC @ =gUnknown_03004B00 + movs r0, 0 +_080E429C: + strh r0, [r1, 0xE] + adds r0, r5, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E42AC: .4byte gUnknown_03004B00 + thumb_func_end sub_80E4264 + + thumb_func_start sub_80E42B0 +sub_80E42B0: @ 80E42B0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E42C8 @ =gUnknown_0202F7C9 + ldr r1, _080E42CC @ =gUnknown_02024C08 + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E42C8: .4byte gUnknown_0202F7C9 +_080E42CC: .4byte gUnknown_02024C08 + thumb_func_end sub_80E42B0 + + thumb_func_start sub_80E42D0 +sub_80E42D0: @ 80E42D0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E42F0 @ =gUnknown_0202F7C8 + ldr r1, _080E42F4 @ =gUnknown_02024C07 + ldrb r1, [r1] + strb r1, [r2] + ldr r2, _080E42F8 @ =gUnknown_0202F7C9 + ldr r1, _080E42FC @ =gUnknown_02024C0A + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_080E42F0: .4byte gUnknown_0202F7C8 +_080E42F4: .4byte gUnknown_02024C07 +_080E42F8: .4byte gUnknown_0202F7C9 +_080E42FC: .4byte gUnknown_02024C0A + thumb_func_end sub_80E42D0 + + thumb_func_start sub_80E4300 +sub_80E4300: @ 80E4300 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080E4318 + adds r0, r4, 0 + bl move_anim_task_del + b _080E434E +_080E4318: + ldr r0, _080E4354 @ =gTasks + lsls r3, r4, 2 + adds r3, r4 + lsls r3, 3 + adds r3, r0 + ldr r1, _080E4358 @ =gUnknown_0202F7C8 + ldrb r0, [r1] + lsls r0, 2 + ldr r2, _080E435C @ =0x02017800 + adds r0, r2 + ldr r0, [r0] + lsls r0, 31 + lsrs r0, 31 + strh r0, [r3, 0x8] + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, _080E4360 @ =sub_80E4368 + str r0, [r3] + ldr r1, _080E4364 @ =gUnknown_0202F7B2 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_080E434E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4354: .4byte gTasks +_080E4358: .4byte gUnknown_0202F7C8 +_080E435C: .4byte 0x02017800 +_080E4360: .4byte sub_80E4368 +_080E4364: .4byte gUnknown_0202F7B2 + thumb_func_end sub_80E4300 + + thumb_func_start sub_80E4368 +sub_80E4368: @ 80E4368 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E43B0 @ =gUnknown_03004B00 + movs r2, 0xE + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _080E43A8 + ldr r0, _080E43B4 @ =gUnknown_0202F7C8 + ldrb r3, [r0] + lsls r3, 2 + ldr r0, _080E43B8 @ =0x02017800 + adds r3, r0 + ldr r1, _080E43BC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0x1 + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask +_080E43A8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E43B0: .4byte gUnknown_03004B00 +_080E43B4: .4byte gUnknown_0202F7C8 +_080E43B8: .4byte 0x02017800 +_080E43BC: .4byte gTasks + thumb_func_end sub_80E4368 + + thumb_func_start sub_80E43C0 +sub_80E43C0: @ 80E43C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E43D8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E43E0 + ldr r0, _080E43DC @ =sub_80E4C34 + b _080E4408 + .align 2, 0 +_080E43D8: .4byte gUnknown_020239F8 +_080E43DC: .4byte sub_80E4C34 +_080E43E0: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _080E4400 + ldr r0, _080E43F8 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + beq _080E4400 + movs r4, 0x3 + ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8 + b _080E4408 + .align 2, 0 +_080E43F8: .4byte gGameVersion +_080E43FC: .4byte task00_battle_intro_80BC6C8 +_080E4400: + ldr r1, _080E4434 @ =gUnknown_083DB56C + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] +_080E4408: + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080E4438 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r0, [r1, 0x10] + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E4434: .4byte gUnknown_083DB56C +_080E4438: .4byte gTasks + thumb_func_end sub_80E43C0 + + thumb_func_start sub_80E443C +sub_80E443C: @ 80E443C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, _080E4474 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080E4478 @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _080E447C @ =gUnknown_03004288 + strh r1, [r0] + ldr r0, _080E4480 @ =gUnknown_03004280 + strh r1, [r0] + ldr r0, _080E4484 @ =REG_BLDCNT + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xC + ldr r2, _080E4488 @ =0x00003f3f + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E4474: .4byte gUnknown_030042C0 +_080E4478: .4byte gUnknown_030041B4 +_080E447C: .4byte gUnknown_03004288 +_080E4480: .4byte gUnknown_03004280 +_080E4484: .4byte REG_BLDCNT +_080E4488: .4byte 0x00003f3f + thumb_func_end sub_80E443C + + thumb_func_start task_battle_intro_80BC47C +task_battle_intro_80BC47C: @ 80E448C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080E44C4 @ =gUnknown_030042C0 + ldrh r0, [r1] + adds r0, 0x6 + strh r0, [r1] + ldr r1, _080E44C8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + mov r8, r1 + cmp r0, 0x4 + bls _080E44B8 + b _080E46BE +_080E44B8: + lsls r0, 2 + ldr r1, _080E44CC @ =_080E44D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E44C4: .4byte gUnknown_030042C0 +_080E44C8: .4byte gTasks +_080E44CC: .4byte _080E44D0 + .align 2, 0 +_080E44D0: + .4byte _080E44E4 + .4byte _080E4514 + .4byte _080E4540 + .4byte _080E4588 + .4byte _080E46B8 +_080E44E4: + ldr r0, _080E44FC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E4500 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x10 + b _080E450A + .align 2, 0 +_080E44FC: .4byte gUnknown_020239F8 +_080E4500: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + movs r1, 0x1 +_080E450A: + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080E46BE +_080E4514: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r3, r8 + adds r1, r0, r3 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E452C + b _080E46BE +_080E452C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E453C @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + b _080E46BE + .align 2, 0 +_080E453C: .4byte REG_WININ +_080E4540: + ldr r1, _080E457C @ =gUnknown_03004240 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4558 + b _080E46BE +_080E4558: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080E4580 @ =gUnknown_02024DE8 + ldrh r1, [r2] + ldr r0, _080E4584 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080E46BE + .align 2, 0 +_080E457C: .4byte gUnknown_03004240 +_080E4580: .4byte gUnknown_02024DE8 +_080E4584: .4byte 0x0000fffe +_080E4588: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + mov r5, r8 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r5, 0xE + ldrsh r1, [r2, r5] + mov r12, r0 + cmp r1, 0 + beq _080E45A4 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080E45D2 +_080E45A4: + movs r1, 0xA + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080E45C4 + ldr r2, _080E45BC @ =gUnknown_030041B4 + ldrh r1, [r2] + ldr r0, _080E45C0 @ =0x0000ffb0 + cmp r1, r0 + beq _080E45D2 + subs r0, r1, 0x2 + b _080E45D0 + .align 2, 0 +_080E45BC: .4byte gUnknown_030041B4 +_080E45C0: .4byte 0x0000ffb0 +_080E45C4: + ldr r2, _080E4690 @ =gUnknown_030041B4 + ldrh r1, [r2] + ldr r0, _080E4694 @ =0x0000ffc8 + cmp r1, r0 + beq _080E45D2 + subs r0, r1, 0x1 +_080E45D0: + strh r0, [r2] +_080E45D2: + ldr r2, _080E4698 @ =gUnknown_03004240 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E45E6 + ldr r3, _080E469C @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080E45E6: + mov r5, r12 + adds r0, r5, r4 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E45FE + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E45FE: + movs r3, 0 + ldr r5, _080E46A0 @ =gUnknown_03004DC0 + mov r9, r5 + ldr r7, _080E46A4 @ =gUnknown_03004DE0 + mov r6, r9 + adds r5, r1, 0 +_080E460A: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E460A + cmp r3, 0x9F + bgt _080E464E + ldr r7, _080E46A4 @ =gUnknown_03004DE0 + ldr r6, _080E46A0 @ =gUnknown_03004DC0 + ldr r1, _080E46A8 @ =gTasks + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080E4634: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4634 +_080E464E: + mov r3, r12 + adds r0, r3, r4 + lsls r0, 3 + mov r5, r8 + adds r1, r0, r5 + movs r0, 0xC + ldrsh r2, [r1, r0] + cmp r2, 0 + bne _080E46BE + movs r0, 0x3 + mov r3, r9 + strb r0, [r3, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E46AC @ =0x0600e000 + ldr r2, _080E46B0 @ =0x05000200 + mov r0, sp + bl CpuSet + ldr r1, _080E46B4 @ =REG_BG1CNT + movs r5, 0x9C + lsls r5, 8 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xBC + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r1] + b _080E46BE + .align 2, 0 +_080E4690: .4byte gUnknown_030041B4 +_080E4694: .4byte 0x0000ffc8 +_080E4698: .4byte gUnknown_03004240 +_080E469C: .4byte 0xfffffc04 +_080E46A0: .4byte gUnknown_03004DC0 +_080E46A4: .4byte gUnknown_03004DE0 +_080E46A8: .4byte gTasks +_080E46AC: .4byte 0x0600e000 +_080E46B0: .4byte 0x05000200 +_080E46B4: .4byte REG_BG1CNT +_080E46B8: + adds r0, r4, 0 + bl sub_80E443C +_080E46BE: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_battle_intro_80BC47C + + thumb_func_start task00_battle_intro_80BC6C8 +task00_battle_intro_80BC6C8: @ 80E46CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080E46F8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0xA + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x3 + beq _080E470C + cmp r0, 0x3 + bgt _080E46FC + cmp r0, 0x2 + beq _080E4700 + b _080E4714 + .align 2, 0 +_080E46F8: .4byte gTasks +_080E46FC: + cmp r0, 0x4 + bne _080E4714 +_080E4700: + ldr r1, _080E4708 @ =gUnknown_030042C0 + ldrh r0, [r1] + adds r0, 0x8 + b _080E4712 + .align 2, 0 +_080E4708: .4byte gUnknown_030042C0 +_080E470C: + ldr r1, _080E4750 @ =gUnknown_030042C0 + ldrh r0, [r1] + adds r0, 0x6 +_080E4712: + strh r0, [r1] +_080E4714: + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r4, r1, r2 + movs r3, 0xA + ldrsh r1, [r4, r3] + adds r6, r0, 0 + cmp r1, 0x4 + bne _080E4778 + ldr r7, _080E4754 @ =gUnknown_030041B4 + ldrh r0, [r4, 0x14] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080E473A + ldr r1, _080E4758 @ =0x000001ff + adds r0, r1 +_080E473A: + asrs r0, 9 + subs r0, 0x8 + strh r0, [r7] + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0xB3 + bgt _080E475C + adds r0, r1, 0x4 + b _080E475E + .align 2, 0 +_080E4750: .4byte gUnknown_030042C0 +_080E4754: .4byte gUnknown_030041B4 +_080E4758: .4byte 0x000001ff +_080E475C: + adds r0, r1, 0x6 +_080E475E: + strh r0, [r4, 0x14] + ldr r2, _080E4794 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r3, r0, r2 + movs r4, 0x14 + ldrsh r1, [r3, r4] + movs r0, 0xB4 + lsls r0, 1 + cmp r1, r0 + bne _080E4778 + movs r0, 0 + strh r0, [r3, 0x14] +_080E4778: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x4 + bls _080E4788 + b _080E4996 +_080E4788: + lsls r0, 2 + ldr r1, _080E4798 @ =_080E479C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E4794: .4byte gTasks +_080E4798: .4byte _080E479C + .align 2, 0 +_080E479C: + .4byte _080E47B0 + .4byte _080E47E0 + .4byte _080E480C + .4byte _080E485C + .4byte _080E4990 +_080E47B0: + ldr r1, _080E47CC @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x10 + strh r3, [r2, 0x10] + ldr r0, _080E47D0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E47D4 + strh r3, [r2, 0xC] + b _080E47D8 + .align 2, 0 +_080E47CC: .4byte gTasks +_080E47D0: .4byte gUnknown_020239F8 +_080E47D4: + movs r0, 0x1 + strh r0, [r2, 0xC] +_080E47D8: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _080E4996 +_080E47E0: + ldr r0, _080E4804 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E47F6 + b _080E4996 +_080E47F6: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4808 @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + b _080E4996 + .align 2, 0 +_080E4804: .4byte gTasks +_080E4808: .4byte REG_WININ +_080E480C: + ldr r1, _080E484C @ =gUnknown_03004240 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4824 + b _080E4996 +_080E4824: + ldr r0, _080E4850 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080E4854 @ =gUnknown_02024DE8 + ldrh r1, [r2] + ldr r0, _080E4858 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080E4996 + .align 2, 0 +_080E484C: .4byte gUnknown_03004240 +_080E4850: .4byte gTasks +_080E4854: .4byte gUnknown_02024DE8 +_080E4858: .4byte 0x0000fffe +_080E485C: + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r3, [r1, 0xE] + movs r4, 0xE + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _080E4898 + subs r0, r3, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + asrs r3, r0, 16 + cmp r3, 0 + bne _080E48B8 + ldr r1, _080E488C @ =REG_BLDCNT + ldr r4, _080E4890 @ =0x00001842 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xF + strh r0, [r1] + ldr r0, _080E4894 @ =REG_BLDY + strh r3, [r0] + b _080E48B8 + .align 2, 0 +_080E488C: .4byte REG_BLDCNT +_080E4890: .4byte 0x00001842 +_080E4894: .4byte REG_BLDY +_080E4898: + ldrh r3, [r1, 0x10] + movs r0, 0x1F + ands r0, r3 + cmp r0, 0 + beq _080E48B8 + ldrh r0, [r1, 0x12] + subs r0, 0x1 + strh r0, [r1, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080E48B8 + adds r0, r3, 0 + adds r0, 0xFF + strh r0, [r1, 0x10] + movs r0, 0x4 + strh r0, [r1, 0x12] +_080E48B8: + ldr r3, _080E4970 @ =gUnknown_03004240 + ldrh r1, [r3] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E48CC + ldr r4, _080E4974 @ =0xfffffc04 + adds r0, r1, r4 + strh r0, [r3] +_080E48CC: + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E48E0 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E48E0: + movs r3, 0 + ldr r4, _080E4978 @ =gUnknown_03004DC0 + mov r8, r4 + ldr r0, _080E497C @ =gUnknown_03004DE0 + mov r12, r0 + mov r7, r8 + adds r4, r1, 0 +_080E48EE: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E48EE + cmp r3, 0x9F + bgt _080E4932 + ldr r1, _080E497C @ =gUnknown_03004DE0 + mov r12, r1 + ldr r7, _080E4978 @ =gUnknown_03004DC0 + ldr r1, _080E4980 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r4, r0, r1 +_080E4918: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r12 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4918 +_080E4932: + ldr r1, _080E4980 @ =gTasks + adds r0, r6, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080E4996 + movs r0, 0x3 + mov r4, r8 + strb r0, [r4, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E4984 @ =0x0600e000 + ldr r2, _080E4988 @ =0x05000200 + mov r0, sp + bl CpuSet + ldr r1, _080E498C @ =REG_BG1CNT + movs r2, 0x9C + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xBC + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + b _080E4996 + .align 2, 0 +_080E4970: .4byte gUnknown_03004240 +_080E4974: .4byte 0xfffffc04 +_080E4978: .4byte gUnknown_03004DC0 +_080E497C: .4byte gUnknown_03004DE0 +_080E4980: .4byte gTasks +_080E4984: .4byte 0x0600e000 +_080E4988: .4byte 0x05000200 +_080E498C: .4byte REG_BG1CNT +_080E4990: + adds r0, r5, 0 + bl sub_80E443C +_080E4996: + ldr r0, _080E49B8 @ =gTasks + adds r1, r6, r5 + lsls r1, 3 + adds r2, r1, r0 + movs r4, 0x8 + ldrsh r0, [r2, r4] + cmp r0, 0x4 + beq _080E49AC + ldr r1, _080E49BC @ =REG_BLDALPHA + ldrh r0, [r2, 0x10] + strh r0, [r1] +_080E49AC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E49B8: .4byte gTasks +_080E49BC: .4byte REG_BLDALPHA + thumb_func_end task00_battle_intro_80BC6C8 + + thumb_func_start task_battle_intro_anim +task_battle_intro_anim: @ 80E49C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080E49F4 @ =gUnknown_030042C0 + ldrh r0, [r1] + adds r0, 0x8 + strh r0, [r1] + ldr r1, _080E49F8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r5, r1, 0 + cmp r0, 0x4 + bls _080E49EA + b _080E4C06 +_080E49EA: + lsls r0, 2 + ldr r1, _080E49FC @ =_080E4A00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E49F4: .4byte gUnknown_030042C0 +_080E49F8: .4byte gTasks +_080E49FC: .4byte _080E4A00 + .align 2, 0 +_080E4A00: + .4byte _080E4A14 + .4byte _080E4A6C + .4byte _080E4A9C + .4byte _080E4AEC + .4byte _080E4C00 +_080E4A14: + ldr r1, _080E4A48 @ =REG_BLDCNT + ldr r3, _080E4A4C @ =0x00001842 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080E4A50 @ =REG_BLDALPHA + ldr r6, _080E4A54 @ =0x00000808 + adds r2, r6, 0 + strh r2, [r0] + adds r1, 0x4 + movs r0, 0 + strh r0, [r1] + ldr r1, _080E4A58 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r3, r0, r1 + strh r2, [r3, 0x10] + ldr r0, _080E4A5C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E4A60 + movs r0, 0x10 + b _080E4A62 + .align 2, 0 +_080E4A48: .4byte REG_BLDCNT +_080E4A4C: .4byte 0x00001842 +_080E4A50: .4byte REG_BLDALPHA +_080E4A54: .4byte 0x00000808 +_080E4A58: .4byte gTasks +_080E4A5C: .4byte gUnknown_020239F8 +_080E4A60: + movs r0, 0x1 +_080E4A62: + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _080E4C06 +_080E4A6C: + ldr r0, _080E4A94 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E4A84 + b _080E4C06 +_080E4A84: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4A98 @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + b _080E4C06 + .align 2, 0 +_080E4A94: .4byte gTasks +_080E4A98: .4byte REG_WININ +_080E4A9C: + ldr r1, _080E4ADC @ =gUnknown_03004240 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4AB4 + b _080E4C06 +_080E4AB4: + ldr r0, _080E4AE0 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x12] + ldr r2, _080E4AE4 @ =gUnknown_02024DE8 + ldrh r1, [r2] + ldr r0, _080E4AE8 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080E4C06 + .align 2, 0 +_080E4ADC: .4byte gUnknown_03004240 +_080E4AE0: .4byte gTasks +_080E4AE4: .4byte gUnknown_02024DE8 +_080E4AE8: .4byte 0x0000fffe +_080E4AEC: + lsls r0, r4, 2 + adds r1, r0, r4 + lsls r1, 3 + adds r2, r1, r5 + ldrh r3, [r2, 0xE] + movs r6, 0xE + ldrsh r1, [r2, r6] + mov r12, r0 + cmp r1, 0 + beq _080E4B06 + subs r0, r3, 0x1 + strh r0, [r2, 0xE] + b _080E4B26 +_080E4B06: + ldrh r1, [r2, 0x10] + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + beq _080E4B26 + ldrh r0, [r2, 0x12] + subs r0, 0x1 + strh r0, [r2, 0x12] + lsls r0, 16 + cmp r0, 0 + bne _080E4B26 + adds r0, r1, 0 + adds r0, 0xFF + strh r0, [r2, 0x10] + movs r0, 0x6 + strh r0, [r2, 0x12] +_080E4B26: + ldr r2, _080E4BE0 @ =gUnknown_03004240 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E4B3A + ldr r3, _080E4BE4 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080E4B3A: + mov r6, r12 + adds r0, r6, r4 + lsls r0, 3 + adds r1, r0, r5 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E4B50 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E4B50: + movs r3, 0 + ldr r6, _080E4BE8 @ =gUnknown_03004DC0 + mov r8, r6 + ldr r7, _080E4BEC @ =gUnknown_03004DE0 + adds r5, r1, 0 +_080E4B5A: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E4B5A + cmp r3, 0x9F + bgt _080E4B9E + ldr r7, _080E4BEC @ =gUnknown_03004DE0 + ldr r6, _080E4BE8 @ =gUnknown_03004DC0 + ldr r1, _080E4BF0 @ =gTasks + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r1 +_080E4B84: + lsls r2, r3, 1 + ldrb r1, [r6, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + adds r2, r7 + ldrh r0, [r5, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4B84 +_080E4B9E: + ldr r1, _080E4BF0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0xC + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080E4C06 + movs r0, 0x3 + mov r6, r8 + strb r0, [r6, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + str r2, [sp] + ldr r1, _080E4BF4 @ =0x0600e000 + ldr r2, _080E4BF8 @ =0x05000200 + mov r0, sp + bl CpuSet + ldr r1, _080E4BFC @ =REG_BG1CNT + movs r2, 0x9C + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xBC + lsls r3, 7 + adds r0, r3, 0 + strh r0, [r1] + b _080E4C06 + .align 2, 0 +_080E4BE0: .4byte gUnknown_03004240 +_080E4BE4: .4byte 0xfffffc04 +_080E4BE8: .4byte gUnknown_03004DC0 +_080E4BEC: .4byte gUnknown_03004DE0 +_080E4BF0: .4byte gTasks +_080E4BF4: .4byte 0x0600e000 +_080E4BF8: .4byte 0x05000200 +_080E4BFC: .4byte REG_BG1CNT +_080E4C00: + adds r0, r4, 0 + bl sub_80E443C +_080E4C06: + ldr r0, _080E4C2C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r2, r1, r0 + movs r6, 0x8 + ldrsh r0, [r2, r6] + cmp r0, 0x4 + beq _080E4C1E + ldr r1, _080E4C30 @ =REG_BLDALPHA + ldrh r0, [r2, 0x10] + strh r0, [r1] +_080E4C1E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E4C2C: .4byte gTasks +_080E4C30: .4byte REG_BLDALPHA + thumb_func_end task_battle_intro_anim + + thumb_func_start sub_80E4C34 +sub_80E4C34: @ 80E4C34 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080E4C80 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0x1 + ble _080E4CAA + movs r2, 0x10 + ldrsh r0, [r7, r2] + cmp r0, 0 + bne _080E4CAA + ldr r2, _080E4C84 @ =gUnknown_030042C0 + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _080E4C72 + cmp r1, 0x4F + bhi _080E4C8C +_080E4C72: + adds r0, r1, 0x3 + strh r0, [r2] + ldr r1, _080E4C88 @ =gUnknown_03004288 + ldrh r0, [r1] + subs r0, 0x3 + strh r0, [r1] + b _080E4CAA + .align 2, 0 +_080E4C80: .4byte gTasks +_080E4C84: .4byte gUnknown_030042C0 +_080E4C88: .4byte gUnknown_03004288 +_080E4C8C: + str r5, [sp] + ldr r1, _080E4CCC @ =0x0600e000 + ldr r4, _080E4CD0 @ =0x05000200 + mov r0, sp + adds r2, r4, 0 + bl CpuSet + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, _080E4CD4 @ =0x0600f000 + adds r2, r4, 0 + bl CpuSet + movs r0, 0x1 + strh r0, [r7, 0x10] +_080E4CAA: + ldr r0, _080E4CD8 @ =gTasks + lsls r2, r6, 2 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + movs r3, 0x8 + ldrsh r1, [r1, r3] + mov r12, r0 + adds r5, r2, 0 + cmp r1, 0x4 + bls _080E4CC2 + b _080E4EBA +_080E4CC2: + lsls r0, r1, 2 + ldr r1, _080E4CDC @ =_080E4CE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E4CCC: .4byte 0x0600e000 +_080E4CD0: .4byte 0x05000200 +_080E4CD4: .4byte 0x0600f000 +_080E4CD8: .4byte gTasks +_080E4CDC: .4byte _080E4CE0 + .align 2, 0 +_080E4CE0: + .4byte _080E4CF4 + .4byte _080E4D06 + .4byte _080E4DA8 + .4byte _080E4DEC + .4byte _080E4EB4 +_080E4CF4: + adds r0, r5, r6 + lsls r0, 3 + add r0, r12 + movs r1, 0x10 + strh r1, [r0, 0xC] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080E4EBA +_080E4D06: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0xC] + subs r0, 0x1 + strh r0, [r1, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _080E4D1C + b _080E4EBA +_080E4D1C: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r5, _080E4D8C @ =gSprites + ldr r4, _080E4D90 @ =0x02000000 + ldr r3, _080E4D94 @ =0x0001608a + adds r6, r4, r3 + ldrb r0, [r6] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x8 + mov r8, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1, 0x1] + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r6, r5, 0 + adds r6, 0x1C + adds r0, r6 + ldr r3, _080E4D98 @ =sub_800FE20 + str r3, [r0] + ldr r0, _080E4D9C @ =0x0001608b + adds r4, r0 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r2, r1 + mov r1, r8 + orrs r2, r1 + strb r2, [r0, 0x1] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + str r3, [r0] + ldr r1, _080E4DA0 @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E4DA4 @ =0x00003f06 + b _080E4E94 + .align 2, 0 +_080E4D8C: .4byte gSprites +_080E4D90: .4byte 0x02000000 +_080E4D94: .4byte 0x0001608a +_080E4D98: .4byte sub_800FE20 +_080E4D9C: .4byte 0x0001608b +_080E4DA0: .4byte REG_WININ +_080E4DA4: .4byte 0x00003f06 +_080E4DA8: + ldr r1, _080E4DE0 @ =gUnknown_03004240 + ldrh r0, [r1] + subs r0, 0xFF + strh r0, [r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0xC0 + lsls r1, 6 + cmp r0, r1 + beq _080E4DC0 + b _080E4EBA +_080E4DC0: + adds r1, r5, r6 + lsls r1, 3 + add r1, r12 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xF0 + strh r0, [r1, 0xC] + movs r0, 0x20 + strh r0, [r1, 0xE] + ldr r2, _080E4DE4 @ =gUnknown_02024DE8 + ldrh r1, [r2] + ldr r0, _080E4DE8 @ =0x0000fffe + ands r0, r1 + strh r0, [r2] + b _080E4EBA + .align 2, 0 +_080E4DE0: .4byte gUnknown_03004240 +_080E4DE4: .4byte gUnknown_02024DE8 +_080E4DE8: .4byte 0x0000fffe +_080E4DEC: + ldr r2, _080E4E9C @ =gUnknown_03004240 + ldrh r1, [r2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _080E4E00 + ldr r3, _080E4EA0 @ =0xfffffc04 + adds r0, r1, r3 + strh r0, [r2] +_080E4E00: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080E4E16 + subs r0, r2, 0x2 + strh r0, [r1, 0xC] +_080E4E16: + movs r3, 0 + ldr r0, _080E4EA4 @ =gUnknown_03004DC0 + mov r9, r0 + ldr r2, _080E4EA8 @ =gUnknown_03004DE0 + mov r8, r2 + mov r7, r9 + adds r4, r1, 0 +_080E4E24: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x4F + ble _080E4E24 + cmp r3, 0x9F + bgt _080E4E68 + ldr r0, _080E4EA8 @ =gUnknown_03004DE0 + mov r8, r0 + ldr r7, _080E4EA4 @ =gUnknown_03004DC0 + ldr r1, _080E4EAC @ =gTasks + adds r0, r5, r6 + lsls r0, 3 + adds r4, r0, r1 +_080E4E4E: + lsls r2, r3, 1 + ldrb r1, [r7, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + adds r2, r0 + add r2, r8 + ldrh r0, [r4, 0xC] + negs r0, r0 + strh r0, [r2] + adds r3, 0x1 + cmp r3, 0x9F + ble _080E4E4E +_080E4E68: + adds r0, r5, r6 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080E4EBA + movs r0, 0x3 + mov r2, r9 + strb r0, [r2, 0x15] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + ldr r1, _080E4EB0 @ =REG_BG1CNT + movs r3, 0x9C + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xBC + lsls r2, 7 +_080E4E94: + adds r0, r2, 0 + strh r0, [r1] + b _080E4EBA + .align 2, 0 +_080E4E9C: .4byte gUnknown_03004240 +_080E4EA0: .4byte 0xfffffc04 +_080E4EA4: .4byte gUnknown_03004DC0 +_080E4EA8: .4byte gUnknown_03004DE0 +_080E4EAC: .4byte gTasks +_080E4EB0: .4byte REG_BG1CNT +_080E4EB4: + adds r0, r6, 0 + bl sub_80E443C +_080E4EBA: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E4C34 + + thumb_func_start unref_sub_80E4EC8 +unref_sub_80E4EC8: @ 80E4EC8 + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + movs r4, 0x80 + lsls r4, 7 + str r4, [sp] + movs r4, 0x1E + str r4, [sp, 0x4] + movs r4, 0x1 + str r4, [sp, 0x8] + bl sub_80E4EF8 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80E4EC8 + + thumb_func_start sub_80E4EF8 +sub_80E4EF8: @ 80E4EF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r1 + adds r4, r2, 0 + ldr r1, [sp, 0x24] + mov r8, r1 + ldr r1, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + mov r7, r9 + lsls r7, 24 + adds r0, r7, 0 + lsrs r0, 24 + mov r9, r0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + mov r3, r8 + lsls r3, 16 + mov r8, r3 + lsrs r6, r3, 16 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r5, 24 + lsrs r5, 24 + adds r0, r4, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E4FCC @ =0x040000d4 + ldr r1, _080E4FD0 @ =gUnknown_081FAF4C + lsls r4, 2 + adds r4, r1 + ldr r1, _080E4FD4 @ =gUnknown_02024E84 + adds r0, r1 + ldrb r1, [r0] + lsls r1, 11 + ldr r0, [r4] + adds r0, r1 + str r0, [r2] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r2, 0x4] + ldr r0, _080E4FD8 @ =0x80000400 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + mov r0, r8 + lsrs r0, 21 + lsls r5, 9 + subs r5, r0, r5 + mov r0, r9 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080E4FBC + mov r9, r1 + mov r1, r10 + lsls r1, 1 + mov r8, r1 + lsls r7, 11 + mov r12, r7 +_080E4F86: + mov r2, r10 + adds r4, r2, 0 + adds r4, 0x8 + adds r1, r0, 0x1 + cmp r2, r4 + bge _080E4FB6 + ldr r3, [sp] + lsls r6, r3, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + add r0, r12 + mov r7, r8 + adds r3, r7, r0 + subs r2, r4, r2 +_080E4FA6: + adds r0, r5, 0 + orrs r0, r6 + strh r0, [r3] + adds r5, 0x1 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E4FA6 +_080E4FB6: + adds r0, r1, 0 + cmp r0, r9 + blt _080E4F86 +_080E4FBC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E4FCC: .4byte 0x040000d4 +_080E4FD0: .4byte gUnknown_081FAF4C +_080E4FD4: .4byte gUnknown_02024E84 +_080E4FD8: .4byte 0x80000400 + thumb_func_end sub_80E4EF8 + + thumb_func_start unref_sub_80E4FDC +unref_sub_80E4FDC: @ 80E4FDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r5, [sp, 0x28] + mov r8, r5 + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + mov r9, r6 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 24 + lsls r2, 24 + lsls r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + mov r7, r8 + lsls r7, 16 + lsrs r6, r7, 16 + lsls r5, 24 + lsrs r5, 24 + mov r0, r9 + lsls r0, 24 + mov r9, r0 + ldr r4, _080E509C @ =0x040000d4 + ldr r0, _080E50A0 @ =gUnknown_081FAF4C + lsrs r2, 22 + adds r2, r0 + lsrs r3, 13 + ldr r0, [r2] + adds r0, r3 + str r0, [r4] + movs r0, 0xC0 + lsls r0, 19 + adds r6, r0 + str r6, [r4, 0x4] + ldr r0, _080E50A4 @ =0x80000400 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r2, r7, 0 + lsrs r2, 21 + mov r6, r9 + lsrs r6, 15 + subs r4, r2, r6 + lsrs r0, r1, 24 + adds r1, r0, 0 + adds r1, 0x8 + cmp r0, r1 + bge _080E508C + mov r9, r1 + mov r7, r12 + lsls r7, 1 + mov r8, r7 + lsls r5, 11 + str r5, [sp] +_080E5054: + mov r2, r12 + adds r3, r2, 0 + adds r3, 0x8 + adds r5, r0, 0x1 + cmp r2, r3 + bge _080E5086 + mov r1, r10 + lsls r6, r1, 12 + lsls r0, 6 + movs r7, 0xC0 + lsls r7, 19 + adds r0, r7 + ldr r1, [sp] + adds r0, r1, r0 + mov r7, r8 + adds r1, r7, r0 + subs r2, r3, r2 +_080E5076: + adds r0, r4, 0 + orrs r0, r6 + strh r0, [r1] + adds r4, 0x1 + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bne _080E5076 +_080E5086: + adds r0, r5, 0 + cmp r0, r9 + blt _080E5054 +_080E508C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E509C: .4byte 0x040000d4 +_080E50A0: .4byte gUnknown_081FAF4C +_080E50A4: .4byte 0x80000400 + thumb_func_end unref_sub_80E4FDC + + thumb_func_start MovePlayerOnBike +MovePlayerOnBike: @ 80E50A8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r0, _080E50CC @ =gPlayerAvatar + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E50D0 + adds r0, r3, 0 + adds r1, r4, 0 + bl MovePlayerOnMachBike + b _080E50D8 + .align 2, 0 +_080E50CC: .4byte gPlayerAvatar +_080E50D0: + adds r0, r3, 0 + adds r1, r4, 0 + bl MovePlayerOnAcroBike +_080E50D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end MovePlayerOnBike + + thumb_func_start MovePlayerOnMachBike +MovePlayerOnMachBike: @ 80E50E0 + push {r4,lr} + sub sp, 0x4 + mov r1, sp + strb r0, [r1] + ldr r4, _080E510C @ =gUnknown_083DB594 + mov r0, sp + bl CheckMovementInputMachBike + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E510C: .4byte gUnknown_083DB594 + thumb_func_end MovePlayerOnMachBike + + thumb_func_start CheckMovementInputMachBike +CheckMovementInputMachBike: @ 80E5110 + push {r4,lr} + adds r4, r0, 0 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldrb r1, [r4] + cmp r1, 0 + bne _080E5138 + strb r0, [r4] + ldr r2, _080E5134 @ =gPlayerAvatar + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _080E514C + strb r1, [r2, 0x2] + movs r0, 0 + b _080E5160 + .align 2, 0 +_080E5134: .4byte gPlayerAvatar +_080E5138: + ldr r2, _080E5154 @ =gPlayerAvatar + cmp r1, r3 + beq _080E515C + ldrb r0, [r2, 0x2] + cmp r0, 0x2 + beq _080E515C + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _080E5158 + strb r3, [r4] +_080E514C: + movs r0, 0x2 + strb r0, [r2, 0x2] + movs r0, 0x3 + b _080E5160 + .align 2, 0 +_080E5154: .4byte gPlayerAvatar +_080E5158: + movs r0, 0x1 + b _080E515E +_080E515C: + movs r0, 0x2 +_080E515E: + strb r0, [r2, 0x2] +_080E5160: + pop {r4} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputMachBike + + thumb_func_start sub_80E5168 +sub_80E5168: @ 80E5168 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl PlayerFaceDirection + bl sub_80E6024 + pop {r0} + bx r0 + thumb_func_end sub_80E5168 + + thumb_func_start sub_80E517C +sub_80E517C: @ 80E517C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080E51AC @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E51B0 @ =gMapObjects + adds r4, r0, r1 + ldrb r1, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + beq _080E51B4 + adds r0, r5, 0 + bl PlayerTurnInPlace + bl sub_80E6024 + b _080E51BE + .align 2, 0 +_080E51AC: .4byte gPlayerAvatar +_080E51B0: .4byte gMapObjects +_080E51B4: + ldrb r0, [r4, 0x18] + lsls r0, 28 + lsrs r0, 28 + bl sub_80E5168 +_080E51BE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E517C + + thumb_func_start sub_80E51C4 +sub_80E51C4: @ 80E51C4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + ldr r6, _080E51F8 @ =gPlayerAvatar + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E51FC @ =gMapObjects + adds r4, r0, r1 + ldrb r1, [r4, 0x1E] + adds r0, r5, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E520A + ldrb r0, [r6, 0xB] + cmp r0, 0 + beq _080E5200 + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl sub_80E5270 + b _080E5266 + .align 2, 0 +_080E51F8: .4byte gPlayerAvatar +_080E51FC: .4byte gMapObjects +_080E5200: + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl sub_80E5168 + b _080E5266 +_080E520A: + adds r0, r5, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r4, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5242 + cmp r4, 0x6 + bne _080E522C + adds r0, r5, 0 + bl PlayerJumpLedge + b _080E5266 +_080E522C: + bl sub_80E6024 + subs r0, r4, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E5266 + adds r0, r5, 0 + bl PlayerOnBikeCollide + b _080E5266 +_080E5242: + ldr r1, _080E526C @ =gUnknown_083DB5A4 + ldrb r0, [r6, 0xA] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r7, 0 + bl _call_via_r1 + ldrb r2, [r6, 0xA] + lsls r0, r2, 24 + lsrs r1, r0, 24 + lsrs r0, 25 + adds r0, r2, r0 + strb r0, [r6, 0xB] + cmp r1, 0x1 + bhi _080E5266 + adds r0, r2, 0x1 + strb r0, [r6, 0xA] +_080E5266: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E526C: .4byte gUnknown_083DB5A4 + thumb_func_end sub_80E51C4 + + thumb_func_start sub_80E5270 +sub_80E5270: @ 80E5270 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + ldr r6, _080E52A8 @ =gPlayerAvatar + ldrb r0, [r6, 0xB] + cmp r0, 0 + beq _080E5286 + subs r0, 0x1 + strb r0, [r6, 0xB] + strb r0, [r6, 0xA] +_080E5286: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E52C2 + cmp r5, 0x6 + bne _080E52AC + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E52D2 + .align 2, 0 +_080E52A8: .4byte gPlayerAvatar +_080E52AC: + bl sub_80E6024 + subs r0, r5, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E52D2 + adds r0, r4, 0 + bl PlayerOnBikeCollide + b _080E52D2 +_080E52C2: + ldr r0, _080E52D8 @ =gUnknown_083DB5A4 + ldrb r1, [r6, 0xA] + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r7, 0 + bl _call_via_r1 +_080E52D2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E52D8: .4byte gUnknown_083DB5A4 + thumb_func_end sub_80E5270 + + thumb_func_start MovePlayerOnAcroBike +MovePlayerOnAcroBike: @ 80E52DC + push {r4,lr} + sub sp, 0x4 + mov r3, sp + strb r0, [r3] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E5310 @ =gUnknown_083DB5B0 + mov r0, sp + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + mov r1, sp + ldrb r1, [r1] + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5310: .4byte gUnknown_083DB5B0 + thumb_func_end MovePlayerOnAcroBike + + thumb_func_start CheckMovementInputAcroBike +CheckMovementInputAcroBike: @ 80E5314 + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E5338 @ =gUnknown_083DB5E4 + ldr r3, _080E533C @ =gPlayerAvatar + ldrb r3, [r3, 0x8] + lsls r3, 2 + adds r3, r4 + ldr r3, [r3] + bl _call_via_r3 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E5338: .4byte gUnknown_083DB5E4 +_080E533C: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBike + + thumb_func_start CheckMovementInputAcroBikeNormal +CheckMovementInputAcroBikeNormal: @ 80E5340 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080E5374 @ =gPlayerAvatar + movs r0, 0 + strb r0, [r2, 0xA] + ldrb r1, [r4] + cmp r1, 0 + bne _080E5380 + movs r0, 0x2 + ands r0, r6 + cmp r0, 0 + beq _080E5378 + strb r3, [r4] + strb r1, [r2, 0x2] + movs r0, 0x2 + strb r0, [r2, 0x8] + movs r0, 0x3 + b _080E53D4 + .align 2, 0 +_080E5374: .4byte gPlayerAvatar +_080E5378: + strb r3, [r4] + strb r1, [r2, 0x2] + movs r0, 0 + b _080E53D4 +_080E5380: + cmp r1, r3 + bne _080E53A6 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _080E539E + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _080E539E + adds r0, 0x1 + strb r0, [r2, 0xB] + movs r0, 0x4 + strb r0, [r2, 0x8] + movs r0, 0xB + b _080E53D4 +_080E539E: + ldrb r0, [r4] + ldr r2, _080E53CC @ =gPlayerAvatar + cmp r0, r3 + beq _080E53D0 +_080E53A6: + ldr r0, _080E53CC @ =gPlayerAvatar + ldrb r1, [r0, 0x2] + adds r2, r0, 0 + cmp r1, 0x2 + beq _080E53D0 + movs r1, 0 + movs r0, 0x1 + strb r0, [r2, 0x8] + ldrb r0, [r4] + strb r0, [r2, 0x9] + strb r1, [r2, 0x2] + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E53D4 + .align 2, 0 +_080E53CC: .4byte gPlayerAvatar +_080E53D0: + movs r0, 0x2 + strb r0, [r2, 0x2] +_080E53D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeNormal + + thumb_func_start CheckMovementInputAcroBikeChangingDirection +CheckMovementInputAcroBikeChangingDirection: @ 80E53DC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _080E5404 @ =gPlayerAvatar + ldrb r0, [r4, 0x9] + strb r0, [r5] + ldrb r0, [r4, 0xA] + adds r0, 0x1 + strb r0, [r4, 0xA] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _080E5408 + movs r0, 0x1 + strb r0, [r4, 0x2] + movs r0, 0 + strb r0, [r4, 0x8] + bl sub_80E6024 + movs r0, 0x1 + b _080E544E + .align 2, 0 +_080E5404: .4byte gPlayerAvatar +_080E5408: + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_80E5C2C + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080E544A + bl sub_80E6024 + movs r0, 0x1 + strb r0, [r4, 0xB] + adds r0, r6, 0 + bl GetOppositeDirection + ldrb r1, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _080E543E + movs r0, 0x6 + strb r0, [r4, 0x8] + movs r0, 0x9 + b _080E544E +_080E543E: + movs r0, 0x2 + strb r0, [r4, 0x2] + movs r0, 0x5 + strb r0, [r4, 0x8] + movs r0, 0x8 + b _080E544E +_080E544A: + strb r6, [r5] + movs r0, 0 +_080E544E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeChangingDirection + + thumb_func_start CheckMovementInputAcroBikeStandingWheelie +CheckMovementInputAcroBikeStandingWheelie: @ 80E5454 + push {r4-r7,lr} + adds r7, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _080E54A0 @ =gPlayerAvatar + ldrb r1, [r5, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E54A4 @ =gMapObjects + adds r1, r0, r1 + movs r0, 0 + strb r0, [r5, 0x2] + movs r0, 0x2 + ands r4, r0 + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0 + bne _080E54A8 + strb r4, [r5, 0xA] + ldrb r0, [r1, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080E54AE + strb r6, [r7] + strb r0, [r5, 0x8] + bl sub_80E6024 + movs r0, 0x4 + b _080E54EC + .align 2, 0 +_080E54A0: .4byte gPlayerAvatar +_080E54A4: .4byte gMapObjects +_080E54A8: + ldrb r0, [r5, 0xA] + adds r0, 0x1 + strb r0, [r5, 0xA] +_080E54AE: + ldr r1, _080E54C4 @ =gPlayerAvatar + ldrb r0, [r1, 0xA] + cmp r0, 0x27 + bls _080E54C8 + strb r6, [r7] + movs r0, 0x3 + strb r0, [r1, 0x8] + bl sub_80E6024 + movs r0, 0x6 + b _080E54EC + .align 2, 0 +_080E54C4: .4byte gPlayerAvatar +_080E54C8: + ldrb r0, [r7] + cmp r0, r6 + bne _080E54DE + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_80E6024 + movs r0, 0xA + b _080E54EC +_080E54DE: + cmp r0, 0 + beq _080E54E8 + movs r0, 0x1 + strb r0, [r1, 0x2] + b _080E54EA +_080E54E8: + strb r6, [r7] +_080E54EA: + movs r0, 0x5 +_080E54EC: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end CheckMovementInputAcroBikeStandingWheelie + + thumb_func_start CheckMovementInputAcroBikeBunnyHop +CheckMovementInputAcroBikeBunnyHop: @ 80E54F4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + ldr r4, _080E5554 @ =gPlayerAvatar + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5558 @ =gMapObjects + adds r7, r0, r1 + movs r0, 0x2 + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080E5566 + bl sub_80E6024 + ldrb r0, [r7, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080E555C + movs r0, 0x2 + strb r0, [r4, 0x8] + adds r0, r6, 0 + mov r1, r9 + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E558A + .align 2, 0 +_080E5554: .4byte gPlayerAvatar +_080E5558: .4byte gMapObjects +_080E555C: + strb r5, [r6] + strb r0, [r4, 0x2] + strb r0, [r4, 0x8] + movs r0, 0x4 + b _080E558A +_080E5566: + ldrb r0, [r6] + cmp r0, 0 + bne _080E5570 + strb r5, [r6] + b _080E557C +_080E5570: + cmp r0, r2 + beq _080E5582 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E5582 + movs r0, 0x1 +_080E557C: + strb r0, [r4, 0x2] + movs r0, 0x6 + b _080E558A +_080E5582: + ldr r1, _080E5598 @ =gPlayerAvatar + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x7 +_080E558A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E5598: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeBunnyHop + + thumb_func_start CheckMovementInputAcroBikeMovingWheelie +CheckMovementInputAcroBikeMovingWheelie: @ 80E559C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, r5, 0 + ldr r4, _080E55F8 @ =gPlayerAvatar + ldrb r1, [r4, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E55FC @ =gMapObjects + adds r7, r0, r1 + movs r0, 0x2 + mov r9, r0 + movs r0, 0x2 + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080E5634 + bl sub_80E6024 + ldrb r0, [r7, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080E5620 + strb r1, [r4, 0x8] + ldrb r0, [r6] + cmp r0, 0 + bne _080E5600 + strb r5, [r6] + b _080E560A + .align 2, 0 +_080E55F8: .4byte gPlayerAvatar +_080E55FC: .4byte gMapObjects +_080E5600: + cmp r0, r5 + beq _080E5610 + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E5610 +_080E560A: + strb r1, [r4, 0x2] + movs r0, 0x4 + b _080E5664 +_080E5610: + ldr r1, _080E561C @ =gPlayerAvatar + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xC + b _080E5664 + .align 2, 0 +_080E561C: .4byte gPlayerAvatar +_080E5620: + mov r0, r9 + strb r0, [r4, 0x8] + adds r0, r6, 0 + mov r1, r10 + mov r2, r8 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + b _080E5664 +_080E5634: + ldrb r0, [r6] + cmp r0, 0 + bne _080E564A + strb r5, [r6] + mov r1, r9 + strb r1, [r4, 0x8] + strb r0, [r4, 0x2] + bl sub_80E6024 + movs r0, 0x5 + b _080E5664 +_080E564A: + cmp r2, r0 + beq _080E565C + ldrb r0, [r4, 0x2] + cmp r0, 0x2 + beq _080E565C + movs r0, 0 + strb r0, [r4, 0x2] + movs r0, 0x5 + b _080E5664 +_080E565C: + ldr r1, _080E5674 @ =gPlayerAvatar + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xA +_080E5664: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E5674: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeMovingWheelie + + thumb_func_start CheckMovementInputAcroBikeUnknownMode5 +CheckMovementInputAcroBikeUnknownMode5: @ 80E5678 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r6, _080E56CC @ =gPlayerAvatar + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E56D0 @ =gMapObjects + adds r0, r1 + ldrb r2, [r0, 0x1] + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x1] + ldrb r1, [r0, 0x18] + lsls r1, 28 + lsrs r1, 28 + bl FieldObjectSetDirection + movs r0, 0 + strb r0, [r6, 0x8] + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080E56CC: .4byte gPlayerAvatar +_080E56D0: .4byte gMapObjects + thumb_func_end CheckMovementInputAcroBikeUnknownMode5 + + thumb_func_start CheckMovementInputAcroBikeUnknownMode6 +CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4 + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080E56F4 @ =gPlayerAvatar + movs r3, 0 + strb r3, [r4, 0x8] + bl CheckMovementInputAcroBike + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E56F4: .4byte gPlayerAvatar + thumb_func_end CheckMovementInputAcroBikeUnknownMode6 + + thumb_func_start sub_80E56F8 +sub_80E56F8: @ 80E56F8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl PlayerFaceDirection + pop {r0} + bx r0 + thumb_func_end sub_80E56F8 + + thumb_func_start sub_80E5708 +sub_80E5708: @ 80E5708 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E573C @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5740 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E572E + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E572E: + adds r0, r4, 0 + bl PlayerFaceDirection + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E573C: .4byte gPlayerAvatar +_080E5740: .4byte gMapObjects + thumb_func_end sub_80E5708 + + thumb_func_start sub_80E5744 +sub_80E5744: @ 80E5744 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r0, _080E5774 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5778 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E577C + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_80E56F8 + b _080E57B6 + .align 2, 0 +_080E5774: .4byte gPlayerAvatar +_080E5778: .4byte gMapObjects +_080E577C: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E57B0 + cmp r1, 0x6 + bne _080E579E + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E57B6 +_080E579E: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E57B6 + adds r0, r4, 0 + bl PlayerOnBikeCollide + b _080E57B6 +_080E57B0: + adds r0, r6, 0 + bl npc_use_some_d2s +_080E57B6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E5744 + + thumb_func_start sub_80E57BC +sub_80E57BC: @ 80E57BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E57F0 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E57F4 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E57E2 + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E57E2: + adds r0, r4, 0 + bl sub_805951C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E57F0: .4byte gPlayerAvatar +_080E57F4: .4byte gMapObjects + thumb_func_end sub_80E57BC + + thumb_func_start sub_80E57F8 +sub_80E57F8: @ 80E57F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E582C @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5830 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E581E + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E581E: + adds r0, r4, 0 + bl sub_8059534 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E582C: .4byte gPlayerAvatar +_080E5830: .4byte gMapObjects + thumb_func_end sub_80E57F8 + + thumb_func_start sub_80E5834 +sub_80E5834: @ 80E5834 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E5868 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E586C @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E585A + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E585A: + adds r0, r4, 0 + bl sub_8059504 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E5868: .4byte gPlayerAvatar +_080E586C: .4byte gMapObjects + thumb_func_end sub_80E5834 + + thumb_func_start sub_80E5870 +sub_80E5870: @ 80E5870 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E58A4 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E58A8 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5896 + ldrb r0, [r5, 0x18] + lsrs r4, r0, 4 +_080E5896: + adds r0, r4, 0 + bl sub_805954C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E58A4: .4byte gPlayerAvatar +_080E58A8: .4byte gMapObjects + thumb_func_end sub_80E5870 + + thumb_func_start sub_80E58AC +sub_80E58AC: @ 80E58AC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E58D8 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E58DC @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E58E0 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_80E5870 + b _080E591A + .align 2, 0 +_080E58D8: .4byte gPlayerAvatar +_080E58DC: .4byte gMapObjects +_080E58E0: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080E5914 + cmp r1, 0x9 + beq _080E5914 + cmp r1, 0x6 + bne _080E58FE + adds r0, r4, 0 + bl sub_8059594 + b _080E591A +_080E58FE: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E591A + cmp r1, 0xB + bhi _080E5914 + adds r0, r4, 0 + bl sub_80E5870 + b _080E591A +_080E5914: + adds r0, r4, 0 + bl sub_8059570 +_080E591A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E58AC + + thumb_func_start sub_80E5920 +sub_80E5920: @ 80E5920 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + beq _080E5954 + cmp r0, 0x7 + beq _080E5980 + cmp r0, 0x9 + bls _080E594C + adds r0, r1, 0 + adds r1, r5, 0 + bl sub_80E5EC0 + lsls r0, 24 + cmp r0, 0 + bne _080E5954 +_080E594C: + adds r0, r5, 0 + bl sub_80E5708 + b _080E5980 +_080E5954: + ldr r0, _080E5988 @ =gPlayerAvatar + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080E598C @ =gMapObjects + adds r4, r0 + movs r0, 0x22 + bl PlaySE + ldrb r0, [r4, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r0, r5, 0 + bl sub_80608A4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl player_npc_set_state_and_x22_etc +_080E5980: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E5988: .4byte gPlayerAvatar +_080E598C: .4byte gMapObjects + thumb_func_end sub_80E5920 + + thumb_func_start sub_80E5990 +sub_80E5990: @ 80E5990 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80595B8 + pop {r0} + bx r0 + thumb_func_end sub_80E5990 + + thumb_func_start sub_80E59A0 +sub_80E59A0: @ 80E59A0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r7, _080E59D0 @ =gPlayerAvatar + ldrb r1, [r7, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E59D4 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E59D8 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_8059504 + b _080E5A28 + .align 2, 0 +_080E59D0: .4byte gPlayerAvatar +_080E59D4: .4byte gMapObjects +_080E59D8: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5A1E + cmp r1, 0x6 + bne _080E59FA + adds r0, r4, 0 + bl sub_8059594 + b _080E5A28 +_080E59FA: + cmp r1, 0x9 + beq _080E5A0E + cmp r1, 0x4 + bhi _080E5A28 + ldrb r0, [r5, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5A16 +_080E5A0E: + adds r0, r4, 0 + bl sub_8059504 + b _080E5A28 +_080E5A16: + adds r0, r4, 0 + bl sub_80595DC + b _080E5A28 +_080E5A1E: + adds r0, r6, 0 + bl sub_8059618 + movs r0, 0x2 + strb r0, [r7, 0x2] +_080E5A28: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E59A0 + + thumb_func_start sub_80E5A30 +sub_80E5A30: @ 80E5A30 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r7, _080E5A60 @ =gPlayerAvatar + ldrb r1, [r7, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5A64 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5A68 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_805951C + b _080E5AB8 + .align 2, 0 +_080E5A60: .4byte gPlayerAvatar +_080E5A64: .4byte gMapObjects +_080E5A68: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5AAE + cmp r1, 0x6 + bne _080E5A8A + adds r0, r4, 0 + bl sub_8059594 + b _080E5AB8 +_080E5A8A: + cmp r1, 0x9 + beq _080E5A9E + cmp r1, 0x4 + bhi _080E5AB8 + ldrb r0, [r5, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5AA6 +_080E5A9E: + adds r0, r4, 0 + bl sub_8059504 + b _080E5AB8 +_080E5AA6: + adds r0, r4, 0 + bl sub_80595DC + b _080E5AB8 +_080E5AAE: + adds r0, r6, 0 + bl sub_8059600 + movs r0, 0x2 + strb r0, [r7, 0x2] +_080E5AB8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E5A30 + + thumb_func_start sub_80E5AC0 +sub_80E5AC0: @ 80E5AC0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r0, _080E5AF0 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E5AF4 @ =gMapObjects + adds r5, r0, r1 + ldrb r1, [r5, 0x1E] + adds r0, r4, 0 + bl sub_80E5E70 + lsls r0, 24 + cmp r0, 0 + bne _080E5AF8 + ldrb r0, [r5, 0x18] + lsrs r0, 4 + bl sub_8059534 + b _080E5B32 + .align 2, 0 +_080E5AF0: .4byte gPlayerAvatar +_080E5AF4: .4byte gMapObjects +_080E5AF8: + adds r0, r4, 0 + bl sub_80E5D34 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0xA + bhi _080E5B2C + cmp r1, 0x6 + bne _080E5B1A + adds r0, r4, 0 + bl PlayerJumpLedge + b _080E5B32 +_080E5B1A: + subs r0, r1, 0x5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080E5B32 + adds r0, r4, 0 + bl sub_8059534 + b _080E5B32 +_080E5B2C: + adds r0, r6, 0 + bl sub_8059630 +_080E5B32: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E5AC0 + + thumb_func_start sub_80E5B38 +sub_80E5B38: @ 80E5B38 + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + ldr r0, _080E5B5C @ =gPlayerAvatar + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E5B56 + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_80E5B60 +_080E5B56: + pop {r0} + bx r0 + .align 2, 0 +_080E5B5C: .4byte gPlayerAvatar + thumb_func_end sub_80E5B38 + + thumb_func_start sub_80E5B60 +sub_80E5B60: @ 80E5B60 + push {r4,r5,lr} + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r5, 0 + bl sub_80E5CF4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r4, _080E5B88 @ =gPlayerAvatar + ldr r0, [r4, 0xC] + movs r1, 0xF + ands r0, r1 + cmp r2, r0 + bne _080E5B8C + ldrb r0, [r4, 0x14] + cmp r0, 0xFE + bhi _080E5B96 + adds r0, 0x1 + strb r0, [r4, 0x14] + b _080E5B96 + .align 2, 0 +_080E5B88: .4byte gPlayerAvatar +_080E5B8C: + adds r0, r2, 0 + bl sub_80E5C7C + movs r0, 0 + strb r0, [r4, 0xB] +_080E5B96: + movs r0, 0xF + adds r2, r5, 0 + ands r2, r0 + ldr r4, _080E5BB4 @ =gPlayerAvatar + ldr r0, [r4, 0x10] + movs r1, 0xF + ands r0, r1 + cmp r2, r0 + bne _080E5BB8 + ldrb r0, [r4, 0x1C] + cmp r0, 0xFE + bhi _080E5BC2 + adds r0, 0x1 + strb r0, [r4, 0x1C] + b _080E5BC2 + .align 2, 0 +_080E5BB4: .4byte gPlayerAvatar +_080E5BB8: + adds r0, r2, 0 + bl sub_80E5CB8 + movs r0, 0 + strb r0, [r4, 0xB] +_080E5BC2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E5B60 + + thumb_func_start sub_80E5BC8 +sub_80E5BC8: @ 80E5BC8 + push {r4,r5,lr} + adds r3, r0, 0 + adds r4, r1, 0 + movs r2, 0 + ldrb r0, [r3] + cmp r0, 0 + beq _080E5BF2 + ldr r5, _080E5C0C @ =gUnknown_0202E86C +_080E5BD8: + adds r0, r2, r5 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _080E5C08 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080E5BD8 +_080E5BF2: + movs r2, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _080E5C22 + ldr r3, _080E5C10 @ =gUnknown_0202E874 +_080E5BFC: + adds r0, r2, r3 + adds r1, r4, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080E5C14 +_080E5C08: + movs r0, 0 + b _080E5C24 + .align 2, 0 +_080E5C0C: .4byte gUnknown_0202E86C +_080E5C10: .4byte gUnknown_0202E874 +_080E5C14: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080E5BFC +_080E5C22: + movs r0, 0x1 +_080E5C24: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5BC8 + + thumb_func_start sub_80E5C2C +sub_80E5C2C: @ 80E5C2C + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 +_080E5C32: + ldr r0, _080E5C64 @ =gUnknown_083DB608 + adds r4, r5, r0 + ldr r0, _080E5C68 @ =gPlayerAvatar + ldr r1, [r0, 0xC] + ldr r2, [r0, 0x10] + ldr r0, [r4, 0x8] + ands r1, r0 + ldr r0, [r4, 0xC] + ands r2, r0 + ldr r0, [r4] + cmp r1, r0 + bne _080E5C6C + ldr r0, [r4, 0x4] + cmp r2, r0 + bne _080E5C6C + ldr r0, [r4, 0x10] + ldr r1, [r4, 0x14] + bl sub_80E5BC8 + lsls r0, 24 + cmp r0, 0 + beq _080E5C6C + ldrb r0, [r4, 0x18] + b _080E5C76 + .align 2, 0 +_080E5C64: .4byte gUnknown_083DB608 +_080E5C68: .4byte gPlayerAvatar +_080E5C6C: + adds r5, 0x1C + adds r6, 0x1 + cmp r6, 0x3 + bls _080E5C32 + movs r0, 0 +_080E5C76: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E5C2C + + thumb_func_start sub_80E5C7C +sub_80E5C7C: @ 80E5C7C + push {r4,lr} + lsls r0, 24 + ldr r3, _080E5CB4 @ =gPlayerAvatar + ldr r2, [r3, 0xC] + lsls r2, 4 + movs r1, 0xF0 + lsls r1, 20 + ands r1, r0 + lsrs r1, 24 + orrs r2, r1 + str r2, [r3, 0xC] + movs r1, 0x7 + adds r4, r3, 0 + adds r3, 0x14 +_080E5C98: + adds r2, r1, r3 + subs r1, 0x1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080E5C98 + movs r0, 0x1 + strb r0, [r4, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5CB4: .4byte gPlayerAvatar + thumb_func_end sub_80E5C7C + + thumb_func_start sub_80E5CB8 +sub_80E5CB8: @ 80E5CB8 + push {r4,lr} + lsls r0, 24 + ldr r3, _080E5CF0 @ =gPlayerAvatar + ldr r2, [r3, 0x10] + lsls r2, 4 + movs r1, 0xF0 + lsls r1, 20 + ands r1, r0 + lsrs r1, 24 + orrs r2, r1 + str r2, [r3, 0x10] + movs r1, 0x7 + adds r4, r3, 0 + adds r3, 0x1C +_080E5CD4: + adds r2, r1, r3 + subs r1, 0x1 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080E5CD4 + movs r0, 0x1 + strb r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5CF0: .4byte gPlayerAvatar + thumb_func_end sub_80E5CB8 + + thumb_func_start sub_80E5CF4 +sub_80E5CF4: @ 80E5CF4 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080E5D08 + movs r0, 0x2 + b _080E5D2E +_080E5D08: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080E5D14 + movs r0, 0x1 + b _080E5D2E +_080E5D14: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080E5D20 + movs r0, 0x3 + b _080E5D2E +_080E5D20: + movs r0, 0x10 + ands r2, r0 + cmp r2, 0 + bne _080E5D2C + movs r0, 0 + b _080E5D2E +_080E5D2C: + movs r0, 0x4 +_080E5D2E: + pop {r1} + bx r1 + thumb_func_end sub_80E5CF4 + + thumb_func_start sub_80E5D34 +sub_80E5D34: @ 80E5D34 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _080E5D98 @ =gPlayerAvatar + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, _080E5D9C @ =gMapObjects + adds r4, r0 + ldrh r1, [r4, 0x10] + add r0, sp, 0x4 + strh r1, [r0] + ldrh r0, [r4, 0x12] + mov r5, sp + adds r5, 0x6 + strh r0, [r5] + adds r0, r6, 0 + add r1, sp, 0x4 + adds r2, r5, 0 + bl MoveCoords + add r0, sp, 0x4 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + add r1, sp, 0x4 + movs r3, 0 + ldrsh r1, [r1, r3] + movs r3, 0 + ldrsh r2, [r5, r3] + str r0, [sp] + adds r0, r4, 0 + adds r3, r6, 0 + bl sub_80E5DA0 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080E5D98: .4byte gPlayerAvatar +_080E5D9C: .4byte gMapObjects + thumb_func_end sub_80E5D34 + + thumb_func_start sub_80E5DA0 +sub_80E5DA0: @ 80E5DA0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r4, [sp, 0x10] + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + adds r5, r4, 0 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + str r5, [sp] + bl CheckForFieldObjectCollision + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bhi _080E5DE0 + cmp r4, 0 + bne _080E5DDC + adds r0, r5, 0 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + beq _080E5DD8 + movs r4, 0x2 +_080E5DD8: + cmp r4, 0 + beq _080E5DE0 +_080E5DDC: + bl sub_80E5E4C +_080E5DE0: + adds r0, r4, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5DA0 + + thumb_func_start sub_80E5DEC +sub_80E5DEC: @ 80E5DEC + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + bne _080E5E04 + ldr r0, _080E5E08 @ =gMapHeader + ldrb r0, [r0, 0x17] + cmp r0, 0x8 + bne _080E5E0C +_080E5E04: + movs r0, 0x1 + b _080E5E0E + .align 2, 0 +_080E5E08: .4byte gMapHeader +_080E5E0C: + movs r0, 0 +_080E5E0E: + pop {r1} + bx r1 + thumb_func_end sub_80E5DEC + + thumb_func_start IsRunningDisallowedByMetatile +IsRunningDisallowedByMetatile: @ 80E5E14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl MetatileBehavior_IsRunningDisallowed + lsls r0, 24 + cmp r0, 0 + bne _080E5E3E + adds r0, r4, 0 + bl MetatileBehavior_IsFortreeBridge + lsls r0, 24 + cmp r0, 0 + beq _080E5E42 + bl PlayerGetZCoord + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080E5E42 +_080E5E3E: + movs r0, 0x1 + b _080E5E44 +_080E5E42: + movs r0, 0 +_080E5E44: + pop {r4} + pop {r1} + bx r1 + thumb_func_end IsRunningDisallowedByMetatile + + thumb_func_start sub_80E5E4C +sub_80E5E4C: @ 80E5E4C + push {lr} + ldr r0, _080E5E68 @ =gUnknown_02039250 + ldrb r0, [r0] + cmp r0, 0 + beq _080E5E62 + ldr r1, _080E5E6C @ =gUnknown_02039251 + ldrb r0, [r1] + cmp r0, 0x63 + bhi _080E5E62 + adds r0, 0x1 + strb r0, [r1] +_080E5E62: + pop {r0} + bx r0 + .align 2, 0 +_080E5E68: .4byte gUnknown_02039250 +_080E5E6C: .4byte gUnknown_02039251 + thumb_func_end sub_80E5E4C + + thumb_func_start sub_80E5E70 +sub_80E5E70: @ 80E5E70 + push {r4,r5,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r5, r4, 0 + movs r1, 0xFD + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080E5E9A + adds r0, r4, 0 + bl MetatileBehavior_IsIsolatedVerticalRail + lsls r0, 24 + cmp r0, 0 + bne _080E5EB2 + adds r0, r4, 0 + bl MetatileBehavior_IsVerticalRail + b _080E5EAC +_080E5E9A: + adds r0, r5, 0 + bl MetatileBehavior_IsIsolatedHorizontalRail + lsls r0, 24 + cmp r0, 0 + bne _080E5EB2 + adds r0, r5, 0 + bl MetatileBehavior_IsHorizontalRail +_080E5EAC: + lsls r0, 24 + cmp r0, 0 + beq _080E5EB6 +_080E5EB2: + movs r0, 0 + b _080E5EB8 +_080E5EB6: + movs r0, 0x1 +_080E5EB8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80E5E70 + + thumb_func_start sub_80E5EC0 +sub_80E5EC0: @ 80E5EC0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + movs r3, 0xFF + lsls r3, 24 + adds r1, r3 + lsrs r1, 24 + cmp r1, 0x1 + bhi _080E5EE0 + cmp r0, 0xA + beq _080E5EE8 + cmp r0, 0xC + bne _080E5EEC + b _080E5EE8 +_080E5EE0: + cmp r2, 0xB + beq _080E5EE8 + cmp r2, 0xD + bne _080E5EEC +_080E5EE8: + movs r0, 0 + b _080E5EEE +_080E5EEC: + movs r0, 0x1 +_080E5EEE: + pop {r1} + bx r1 + thumb_func_end sub_80E5EC0 + + thumb_func_start sub_80E5EF4 +sub_80E5EF4: @ 80E5EF4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080E5F30 @ =gPlayerAvatar + ldrb r1, [r0] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + bne _080E5F34 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl IsRunningDisallowedByMetatile + lsls r0, 24 + cmp r0, 0 + bne _080E5F34 + movs r0, 0 + b _080E5F36 + .align 2, 0 +_080E5F30: .4byte gPlayerAvatar +_080E5F34: + movs r0, 0x1 +_080E5F36: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E5EF4 + + thumb_func_start player_should_look_direction_be_enforced_upon_movement +player_should_look_direction_be_enforced_upon_movement: @ 80E5F40 + push {lr} + movs r0, 0x4 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _080E5F74 + ldr r2, _080E5F6C @ =gMapObjects + ldr r0, _080E5F70 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1E] + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E5F74 + movs r0, 0 + b _080E5F76 + .align 2, 0 +_080E5F6C: .4byte gMapObjects +_080E5F70: .4byte gPlayerAvatar +_080E5F74: + movs r0, 0x1 +_080E5F76: + pop {r1} + bx r1 + thumb_func_end player_should_look_direction_be_enforced_upon_movement + + thumb_func_start GetOnOffBike +GetOnOffBike: @ 80E5F7C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080E5FA4 @ =gUnknown_0202E854 + movs r0, 0 + strb r0, [r1] + ldr r0, _080E5FA8 @ =gPlayerAvatar + ldrb r1, [r0] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _080E5FAC + movs r0, 0x1 + bl SetPlayerAvatarTransitionFlags + bl sav1_reset_battle_music_maybe + bl sub_8053E90 + b _080E5FC0 + .align 2, 0 +_080E5FA4: .4byte gUnknown_0202E854 +_080E5FA8: .4byte gPlayerAvatar +_080E5FAC: + adds r0, r2, 0 + bl SetPlayerAvatarTransitionFlags + ldr r4, _080E5FC8 @ =0x00000193 + adds r0, r4, 0 + bl sav1_set_battle_music_maybe + adds r0, r4, 0 + bl sub_8053FB0 +_080E5FC0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E5FC8: .4byte 0x00000193 + thumb_func_end GetOnOffBike + + thumb_func_start sub_80E5FCC +sub_80E5FCC: @ 80E5FCC + push {lr} + ldr r2, _080E6008 @ =gPlayerAvatar + movs r3, 0 + strb r3, [r2, 0x8] + strb r3, [r2, 0x9] + strb r3, [r2, 0xA] + strb r3, [r2, 0xB] + str r0, [r2, 0xC] + str r1, [r2, 0x10] + movs r1, 0 + adds r2, 0x14 +_080E5FE2: + adds r0, r1, r2 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _080E5FE2 + movs r1, 0 + ldr r3, _080E600C @ =gUnknown_0202E874 + movs r2, 0 +_080E5FF6: + adds r0, r1, r3 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _080E5FF6 + pop {r0} + bx r0 + .align 2, 0 +_080E6008: .4byte gPlayerAvatar +_080E600C: .4byte gUnknown_0202E874 + thumb_func_end sub_80E5FCC + + thumb_func_start sub_80E6010 +sub_80E6010: @ 80E6010 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E6020 @ =gPlayerAvatar + strb r0, [r2, 0xA] + lsrs r1, r0, 1 + adds r0, r1 + strb r0, [r2, 0xB] + bx lr + .align 2, 0 +_080E6020: .4byte gPlayerAvatar + thumb_func_end sub_80E6010 + + thumb_func_start sub_80E6024 +sub_80E6024: @ 80E6024 + ldr r1, _080E6030 @ =gPlayerAvatar + movs r0, 0 + strb r0, [r1, 0xA] + strb r0, [r1, 0xB] + bx lr + .align 2, 0 +_080E6030: .4byte gPlayerAvatar + thumb_func_end sub_80E6024 + + thumb_func_start sub_80E6034 +sub_80E6034: @ 80E6034 + push {lr} + sub sp, 0x8 + ldr r1, _080E605C @ =gUnknown_083DB600 + mov r0, sp + movs r2, 0x6 + bl memcpy + ldr r2, _080E6060 @ =gPlayerAvatar + ldrb r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E6064 + ldrb r0, [r2, 0xA] + lsls r0, 1 + add r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + b _080E607E + .align 2, 0 +_080E605C: .4byte gUnknown_083DB600 +_080E6060: .4byte gPlayerAvatar +_080E6064: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E6070 + movs r0, 0x3 + b _080E607E +_080E6070: + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _080E607C + movs r0, 0x1 + b _080E607E +_080E607C: + movs r0, 0x2 +_080E607E: + add sp, 0x8 + pop {r1} + bx r1 + thumb_func_end sub_80E6034 + + thumb_func_start sub_80E6084 +sub_80E6084: @ 80E6084 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080E60D4 @ =gPlayerAvatar + ldrb r1, [r5] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E60CC + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl MetatileBehavior_IsBumpySlope + lsls r0, 24 + cmp r0, 0 + beq _080E60CC + movs r0, 0x2 + strb r0, [r5, 0x8] + bl player_get_direction_upper_nybble + lsls r0, 24 + lsrs r0, 24 + bl sub_8059C94 +_080E60CC: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E60D4: .4byte gPlayerAvatar + thumb_func_end sub_80E6084 + + thumb_func_start sub_80E60D8 +sub_80E60D8: @ 80E60D8 + push {r4-r7,lr} + movs r4, 0x3 + ldr r0, _080E60F4 @ =gUnknown_0202E8CC + ldrh r1, [r0] + adds r7, r0, 0 + cmp r1, 0xD + bls _080E60E8 + b _080E6284 +_080E60E8: + lsls r0, r1, 2 + ldr r1, _080E60F8 @ =_080E60FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E60F4: .4byte gUnknown_0202E8CC +_080E60F8: .4byte _080E60FC + .align 2, 0 +_080E60FC: + .4byte _080E6134 + .4byte _080E613C + .4byte _080E6144 + .4byte _080E614C + .4byte _080E6154 + .4byte _080E619C + .4byte _080E616C + .4byte _080E61BC + .4byte _080E61E0 + .4byte _080E61FC + .4byte _080E6200 + .4byte _080E6214 + .4byte _080E623C + .4byte _080E6260 +_080E6134: + ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C + b _080E624C + .align 2, 0 +_080E6138: .4byte gSaveBlock1 + 0x2B1C +_080E613C: + ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 + b _080E6276 + .align 2, 0 +_080E6140: .4byte gSaveBlock1 + 0x2B28 +_080E6144: + ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 + b _080E624C + .align 2, 0 +_080E6148: .4byte gSaveBlock1 + 0x2B34 +_080E614C: + ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 + b _080E6276 + .align 2, 0 +_080E6150: .4byte gSaveBlock1 + 0x2B40 +_080E6154: + ldr r0, _080E6164 @ =gUnknown_0202E8CE + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C + adds r1, r0, r1 + b _080E624C + .align 2, 0 +_080E6164: .4byte gUnknown_0202E8CE +_080E6168: .4byte gSaveBlock1 + 0x2B4C +_080E616C: + ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + ldr r1, _080E6198 @ =sub_80546B8 + mov r12, r1 + adds r3, r0, 0 + adds r3, 0xE + adds r5, r0, 0x2 + adds r6, r3, 0 +_080E617C: + lsls r0, r2, 1 + adds r1, r3, r0 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080E617C + adds r1, r6, 0 + b _080E627A + .align 2, 0 +_080E6194: .4byte gSaveBlock1 + 0x2D94 +_080E6198: .4byte sub_80546B8 +_080E619C: + ldr r0, _080E61B0 @ =gUnknown_0202E8CE + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C + adds r1, r0, r1 + ldr r0, _080E61B8 @ =gUnknown_0202E8D0 + ldrb r4, [r0] + b _080E6276 + .align 2, 0 +_080E61B0: .4byte gUnknown_0202E8CE +_080E61B4: .4byte gSaveBlock1 + 0x273C +_080E61B8: .4byte gUnknown_0202E8D0 +_080E61BC: + ldr r0, _080E61D4 @ =gUnknown_0202E8CE + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 + adds r1, r0 + ldr r0, _080E61DC @ =gUnknown_0202E8D0 + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + b _080E624A + .align 2, 0 +_080E61D4: .4byte gUnknown_0202E8CE +_080E61D8: .4byte gSaveBlock1 + 0x2754 +_080E61DC: .4byte gUnknown_0202E8D0 +_080E61E0: + ldr r0, _080E61F4 @ =gUnknown_0202E8CE + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A + adds r1, r0, r1 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E61F4: .4byte gUnknown_0202E8CE +_080E61F8: .4byte gSaveBlock1 + 0x273A +_080E61FC: + movs r1, 0 + b _080E624C +_080E6200: + ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 + ldr r2, _080E6210 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + b _080E624A + .align 2, 0 +_080E620C: .4byte gSaveBlock1 + 0x2B16 +_080E6210: .4byte 0x0000ffff +_080E6214: + ldr r0, _080E6230 @ =gUnknown_0202E8CE + ldrh r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C + adds r1, r0 + ldr r0, _080E6238 @ =gUnknown_0202E8D0 + ldrh r0, [r0] + lsls r0, 1 + adds r1, r0 + movs r4, 0 + b _080E6276 + .align 2, 0 +_080E6230: .4byte gUnknown_0202E8CE +_080E6234: .4byte gSaveBlock1 + 0x273C +_080E6238: .4byte gUnknown_0202E8D0 +_080E623C: + ldr r0, _080E6254 @ =gUnknown_0202E8CE + ldrh r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 + adds r1, r0, r1 +_080E624A: + movs r4, 0x1 +_080E624C: + ldr r0, _080E625C @ =sub_80546B8 + mov r12, r0 + b _080E627A + .align 2, 0 +_080E6254: .4byte gUnknown_0202E8CE +_080E6258: .4byte gSaveBlock1 + 0x2750 +_080E625C: .4byte sub_80546B8 +_080E6260: + ldr r1, _080E628C @ =0x02001000 + ldr r0, _080E6290 @ =0x00009c7c + adds r2, r1, r0 + ldr r0, _080E6294 @ =0x0000ffff + strh r0, [r2] + ldr r0, _080E6298 @ =0x00009c7e + adds r1, r0 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + adds r1, r2, 0 +_080E6276: + ldr r2, _080E629C @ =sub_80546B8 + mov r12, r2 +_080E627A: + ldrb r0, [r7] + mov r2, r12 + adds r3, r4, 0 + bl sub_80E62A0 +_080E6284: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E628C: .4byte 0x02001000 +_080E6290: .4byte 0x00009c7c +_080E6294: .4byte 0x0000ffff +_080E6298: .4byte 0x00009c7e +_080E629C: .4byte sub_80546B8 + thumb_func_end sub_80E60D8 + + thumb_func_start sub_80E62A0 +sub_80E62A0: @ 80E62A0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080E62DC @ =0x02001000 + str r2, [r4] + str r1, [r4, 0x4] + strb r0, [r4, 0x8] + strb r3, [r4, 0xB] + cmp r0, 0x9 + bne _080E62D0 + ldr r0, _080E62E0 @ =0x00009c7c + adds r2, r4, r0 + str r2, [r4, 0x4] + ldr r0, _080E62E4 @ =gSaveBlock1 + ldr r3, _080E62E8 @ =0x00002dd8 + adds r1, r0, r3 + ldrh r1, [r1] + strh r1, [r2] + ldr r1, _080E62EC @ =0x00002dda + adds r0, r1 + ldrh r1, [r0] + ldr r2, _080E62F0 @ =0x00009c7e + adds r0, r4, r2 + strh r1, [r0] +_080E62D0: + ldr r0, _080E62F4 @ =sub_80E62F8 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E62DC: .4byte 0x02001000 +_080E62E0: .4byte 0x00009c7c +_080E62E4: .4byte gSaveBlock1 +_080E62E8: .4byte 0x00002dd8 +_080E62EC: .4byte 0x00002dda +_080E62F0: .4byte 0x00009c7e +_080E62F4: .4byte sub_80E62F8 + thumb_func_end sub_80E62A0 + + thumb_func_start sub_80E62F8 +sub_80E62F8: @ 80E62F8 + push {lr} + sub sp, 0x4 + ldr r0, _080E6314 @ =gMain + ldr r1, _080E6318 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _080E6344 + lsls r0, 2 + ldr r1, _080E631C @ =_080E6320 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6314: .4byte gMain +_080E6318: .4byte 0x0000043c +_080E631C: .4byte _080E6320 + .align 2, 0 +_080E6320: + .4byte _080E6344 + .4byte _080E6380 + .4byte _080E638C + .4byte _080E63A8 + .4byte _080E63AE + .4byte _080E63B4 + .4byte _080E63BE + .4byte _080E63D8 + .4byte _080E63EA +_080E6344: + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + movs r0, 0 + bl SetVBlankCallback + bl ResetPaletteFade + bl ResetSpriteData + bl dp12_8087EA4 + bl remove_some_task + bl sub_80EAD08 + ldr r2, _080E637C @ =gUnknown_083DB698 + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80895F8 + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _080E6402 + .align 2, 0 +_080E637C: .4byte gUnknown_083DB698 +_080E6380: + ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 + bl SetUpWindowConfig + b _080E6402 + .align 2, 0 +_080E6388: .4byte gWindowConfig_81E6DA8 +_080E638C: + ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 + bl InitMenuWindow + ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 + bl InitMenuWindow + bl MenuZeroFillScreen + b _080E6402 + .align 2, 0 +_080E63A0: .4byte gWindowConfig_81E6D54 +_080E63A4: .4byte gWindowConfig_81E6DA8 +_080E63A8: + bl sub_80E6424 + b _080E6402 +_080E63AE: + bl sub_80E8DD8 + b _080E6402 +_080E63B4: + bl sub_80E8218 + bl sub_80E8CEC + b _080E6402 +_080E63BE: + bl sub_80E69F8 + ldr r0, _080E63D0 @ =sub_80E6AA8 + bl sub_80E682C + ldr r0, _080E63D4 @ =sub_80E6A6C + bl SetVBlankCallback + b _080E6402 + .align 2, 0 +_080E63D0: .4byte sub_80E6AA8 +_080E63D4: .4byte sub_80E6A6C +_080E63D8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _080E6402 +_080E63EA: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E6414 @ =sub_80E6A88 + bl SetMainCallback2 + ldr r0, _080E6418 @ =0x00000805 + bl FlagSet +_080E6402: + ldr r1, _080E641C @ =gMain + ldr r0, _080E6420 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080E6414: .4byte sub_80E6A88 +_080E6418: .4byte 0x00000805 +_080E641C: .4byte gMain +_080E6420: .4byte 0x0000043c + thumb_func_end sub_80E62F8 + + thumb_func_start sub_80E6424 +sub_80E6424: @ 80E6424 + push {lr} + ldr r2, _080E6444 @ =0x02001000 + ldr r0, _080E6448 @ =gUnknown_083DB6A4 + ldrb r1, [r2, 0x8] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2, 0x9] + ldrb r0, [r2, 0x9] + adds r3, r2, 0 + cmp r0, 0x5 + bhi _080E6512 + lsls r0, 2 + ldr r1, _080E644C @ =_080E6450 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6444: .4byte 0x02001000 +_080E6448: .4byte gUnknown_083DB6A4 +_080E644C: .4byte _080E6450 + .align 2, 0 +_080E6450: + .4byte _080E64A0 + .4byte _080E64B8 + .4byte _080E64DA + .4byte _080E64F6 + .4byte _080E6468 + .4byte _080E6480 +_080E6468: + movs r2, 0x4 + strb r2, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + movs r1, 0x2 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x5 + b _080E64D0 +_080E6480: + movs r1, 0x4 + strb r1, [r3, 0xA] + adds r2, r3, 0 + adds r2, 0x83 + movs r0, 0x1 + strb r0, [r2] + adds r0, r3, 0 + adds r0, 0x84 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + b _080E6510 +_080E64A0: + movs r0, 0x6 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x84 + movs r2, 0x3 + strb r2, [r0] + adds r1, 0x5 + b _080E64CE +_080E64B8: + movs r2, 0 + movs r0, 0x9 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + movs r0, 0x2 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x5 + strb r0, [r1] + adds r1, 0x4 +_080E64CE: + movs r0, 0x4 +_080E64D0: + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0x8A + strh r2, [r0] + b _080E6512 +_080E64DA: + movs r1, 0x1 + strb r1, [r3, 0xA] + adds r0, r3, 0 + adds r0, 0x83 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + adds r1, r3, 0 + adds r1, 0x88 + movs r0, 0x10 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + b _080E6510 +_080E64F6: + movs r0, 0x2 + strb r0, [r3, 0xA] + adds r1, r3, 0 + adds r1, 0x83 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0x1 + strb r0, [r1] + adds r1, 0x4 + movs r0, 0x5 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x3 +_080E6510: + strh r0, [r1] +_080E6512: + adds r1, r3, 0 + adds r1, 0x86 + movs r0, 0 + strb r0, [r1] + subs r1, 0x1 + strb r0, [r1] + adds r1, 0x2 + strb r0, [r1] + subs r1, 0x61 + strb r0, [r1] + movs r2, 0xDD + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + movs r0, 0xDF + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80E6554 + bl sub_80EAECC + bl sub_80EB040 + bl sub_80E7E50 + bl sub_80E6630 + bl sub_80E6690 + pop {r0} + bx r0 + thumb_func_end sub_80E6424 + + thumb_func_start sub_80E6554 +sub_80E6554: @ 80E6554 + push {r4-r7,lr} + sub sp, 0x4 + movs r4, 0 + movs r7, 0 + ldr r0, _080E6564 @ =0x02001000 + mov r12, r0 + b _080E656E + .align 2, 0 +_080E6564: .4byte 0x02001000 +_080E6568: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080E656E: + movs r5, 0 + lsls r3, r7, 1 + mov r6, r12 + adds r6, 0x2A + adds r2, r3, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + beq _080E65A6 +_080E6586: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bhi _080E65A2 + adds r2, r5, r3 + adds r2, r6 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + strb r1, [r2] + cmp r4, 0x11 + bne _080E6586 +_080E65A2: + cmp r4, 0x11 + bne _080E6568 +_080E65A6: + movs r0, 0x11 + mov r1, r12 + strh r0, [r1, 0x28] + cmp r4, 0x15 + bhi _080E6612 + mov r6, r12 + adds r2, r6, 0 + adds r2, 0x78 +_080E65B6: + lsls r0, r4, 24 + lsrs r0, 24 + str r2, [sp] + bl sub_80EAD7C + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [sp] + cmp r1, 0 + beq _080E65FC + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E65DC + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + movs r5, 0 +_080E65DC: + lsls r0, r7, 1 + adds r0, r5, r0 + adds r1, r6, 0 + adds r1, 0x2A + adds r0, r1 + strb r4, [r0] + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + ldrh r0, [r6, 0x28] + adds r0, 0x1 + strh r0, [r6, 0x28] + mov r12, r6 + b _080E6608 +_080E65FC: + adds r0, r4, 0 + subs r0, 0x11 + adds r0, r2 + strb r1, [r0] + ldr r0, _080E662C @ =0x02001000 + mov r12, r0 +_080E6608: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x15 + bls _080E65B6 +_080E6612: + mov r1, r12 + ldrh r0, [r1, 0x28] + adds r0, 0x1 + asrs r0, 1 + movs r1, 0xDB + lsls r1, 1 + add r1, r12 + strb r0, [r1] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E662C: .4byte 0x02001000 + thumb_func_end sub_80E6554 + + thumb_func_start sub_80E6630 +sub_80E6630: @ 80E6630 + push {r4-r7,lr} + movs r1, 0 + ldr r0, _080E6664 @ =gUnknown_083DB6B2 + mov r12, r0 +_080E6638: + lsls r0, r1, 4 + mov r2, r12 + adds r5, r0, r2 + movs r3, 0 + ldrb r0, [r5] + adds r7, r1, 0x1 + cmp r0, 0xFF + beq _080E6680 + lsls r0, r1, 3 + subs r0, r1 + lsls r4, r0, 1 + ldr r6, _080E6668 @ =0x02001040 +_080E6650: + adds r0, r5, r3 + ldrb r1, [r0] + adds r2, r1, 0 + cmp r2, 0 + beq _080E666C + adds r0, r3, r4 + adds r0, r6 + adds r1, 0x46 + strb r1, [r0] + b _080E6672 + .align 2, 0 +_080E6664: .4byte gUnknown_083DB6B2 +_080E6668: .4byte 0x02001040 +_080E666C: + adds r0, r3, r4 + adds r0, r6 + strb r2, [r0] +_080E6672: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E6650 +_080E6680: + lsls r0, r7, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bls _080E6638 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E6630 + + thumb_func_start sub_80E6690 +sub_80E6690: @ 80E6690 + push {r4-r6,lr} + sub sp, 0x10 + mov r0, sp + ldr r1, _080E66E0 @ =gUnknown_083DB7DC + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldr r1, [r1] + str r1, [r0] + movs r5, 0 + ldr r6, _080E66E4 @ =gUnknown_083DB7C0 +_080E66A4: + ldr r0, _080E66E8 @ =0x02001000 + ldrb r0, [r0, 0x8] + lsls r0, 1 + adds r0, r5, r0 + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E66EC @ =gUnknown_083DB6F4 + adds r4, r0, r1 + lsls r0, r5, 3 + add r0, sp + ldr r0, [r0] + ldr r1, [r4] + bl StringCopy + adds r3, r0, 0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _080E66F0 + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r0, [r0] + ldr r1, [r4, 0x4] + bl StringCopy + b _080E670A + .align 2, 0 +_080E66E0: .4byte gUnknown_083DB7DC +_080E66E4: .4byte gUnknown_083DB7C0 +_080E66E8: .4byte 0x02001000 +_080E66EC: .4byte gUnknown_083DB6F4 +_080E66F0: + strb r0, [r3] + adds r3, 0x1 + ldr r1, [r4, 0x4] + adds r0, r3, 0 + bl StringCopy + lsls r0, r5, 1 + adds r0, 0x1 + lsls r0, 2 + add r0, sp + ldr r1, [r0] + movs r0, 0xFF + strb r0, [r1] +_080E670A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E66A4 + movs r5, 0 + ldr r3, _080E6758 @ =0x02001000 + ldr r0, _080E675C @ =0x00009da4 + adds r2, r3, r0 + movs r1, 0 +_080E671E: + adds r0, r5, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x23 + bls _080E671E + ldr r1, _080E675C @ =0x00009da4 + adds r0, r3, r1 + adds r0, r5, r0 + movs r4, 0x1 + negs r4, r4 + adds r2, r4, 0 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _080E6760 @ =0x00009f6e + adds r3, r0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x11 + strb r0, [r3, 0x1] + movs r0, 0xE0 + strb r0, [r3, 0x2] + strb r2, [r3, 0x3] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E6758: .4byte 0x02001000 +_080E675C: .4byte 0x00009da4 +_080E6760: .4byte 0x00009f6e + thumb_func_end sub_80E6690 + + thumb_func_start sub_80E6764 +sub_80E6764: @ 80E6764 + push {r4-r6,lr} + movs r3, 0 + ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C + ldr r2, _080E6810 @ =gUnknown_083DB7EC +_080E676C: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080E676C + movs r3, 0 + ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 + ldr r2, _080E6818 @ =gUnknown_083DB7F4 +_080E6786: + lsls r0, r3, 1 + adds r1, r0, r4 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E6786 + movs r3, 0 + ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 + ldr r0, _080E6820 @ =0x0000ffff + adds r4, r0, 0 + adds r6, r5, 0 + adds r6, 0xC +_080E67A6: + lsls r1, r3, 1 + adds r2, r1, r5 + ldrh r0, [r2] + orrs r0, r4 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080E67A6 + movs r3, 0 + ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C + ldr r0, _080E6820 @ =0x0000ffff + adds r5, r0, 0 +_080E67CA: + movs r2, 0 + lsls r0, r3, 3 + adds r0, r3 + lsls r4, r0, 2 +_080E67D2: + lsls r0, r2, 1 + adds r0, r4 + adds r0, r6 + ldrh r1, [r0] + orrs r1, r5 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x8 + bls _080E67D2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080E67CA + movs r3, 0 + ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C + movs r1, 0 +_080E67F8: + adds r0, r3, r2 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080E67F8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E680C: .4byte gSaveBlock1 + 0x2B1C +_080E6810: .4byte gUnknown_083DB7EC +_080E6814: .4byte gSaveBlock1 + 0x2B28 +_080E6818: .4byte gUnknown_083DB7F4 +_080E681C: .4byte gSaveBlock1 + 0x2B34 +_080E6820: .4byte 0x0000ffff +_080E6824: .4byte gSaveBlock1 + 0x2B4C +_080E6828: .4byte gSaveBlock1 + 0x2D8C + thumb_func_end sub_80E6764 + + thumb_func_start sub_80E682C +sub_80E682C: @ 80E682C + ldr r1, _080E6838 @ =0x02001000 + str r0, [r1, 0x20] + movs r0, 0 + strh r0, [r1, 0x24] + bx lr + .align 2, 0 +_080E6838: .4byte 0x02001000 + thumb_func_end sub_80E682C + + thumb_func_start sub_80E683C +sub_80E683C: @ 80E683C + push {r4,r5,lr} + ldr r1, _080E6890 @ =0x02001000 + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0 + bne _080E6898 + movs r1, 0 + movs r0, 0xDB + lsls r0, 1 + adds r3, r2, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + bge _080E6876 + movs r0, 0xD5 + lsls r0, 1 + adds r5, r2, r0 + movs r4, 0x2 +_080E6864: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r1, r0 + blt _080E6864 +_080E6876: + adds r0, r2, r1 + ldr r1, _080E6894 @ =0x000001a9 + adds r3, r0, r1 + ldrh r0, [r2, 0x28] + movs r1, 0x1 + ands r0, r1 + strb r0, [r3] + cmp r0, 0 + bne _080E68B8 + movs r0, 0x2 + strb r0, [r3] + b _080E68B8 + .align 2, 0 +_080E6890: .4byte 0x02001000 +_080E6894: .4byte 0x000001a9 +_080E6898: + movs r3, 0xD5 + lsls r3, 1 + adds r1, r2, r3 + movs r0, 0x7 + strb r0, [r1] + ldr r1, _080E68E0 @ =0x000001ab + adds r3, r2, r1 + movs r1, 0x6 + strb r1, [r3] + movs r3, 0xD6 + lsls r3, 1 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x1 + adds r1, r2, r3 + strb r0, [r1] +_080E68B8: + movs r0, 0xD4 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080E68E4 @ =0x000001a9 + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0xC + adds r1, r2, r3 + strb r0, [r1] + adds r3, 0x2 + adds r1, r2, r3 + strb r0, [r1] + bl sub_80E9A4C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E68E0: .4byte 0x000001ab +_080E68E4: .4byte 0x000001a9 + thumb_func_end sub_80E683C + + thumb_func_start sub_80E68E8 +sub_80E68E8: @ 80E68E8 + push {r4-r6,lr} + bl sub_80EB0B0 + ldr r3, _080E694C @ =0x02001000 + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E695C + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E6950 @ =0x00004178 + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E6954 @ =0x00009a28 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E693A + ldr r3, _080E6958 @ =0x000099a6 + adds r4, r5, r3 + movs r3, 0x2 +_080E6928: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E6928 +_080E693A: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E6958 @ =0x000099a6 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E6950 @ =0x00004178 + b _080E69AC + .align 2, 0 +_080E694C: .4byte 0x02001000 +_080E6950: .4byte 0x00004178 +_080E6954: .4byte 0x00009a28 +_080E6958: .4byte 0x000099a6 +_080E695C: + movs r1, 0xDC + lsls r1, 1 + adds r0, r3, r1 + ldrb r6, [r0] + lsls r0, r6, 1 + ldr r2, _080E69E0 @ =0x00004142 + adds r1, r3, r2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x1 + asrs r0, 1 + ldr r1, _080E69E4 @ =0x00009a28 + adds r2, r3, r1 + strb r0, [r2] + movs r1, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + adds r5, r3, 0 + cmp r1, r0 + bge _080E699C + ldr r3, _080E69E8 @ =0x000099a6 + adds r4, r5, r3 + movs r3, 0x2 +_080E698A: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r1, r0 + blt _080E698A +_080E699C: + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080E69E8 @ =0x000099a6 + adds r0, r5, r2 + adds r2, r1, r0 + lsls r0, r6, 1 + ldr r3, _080E69E0 @ =0x00004142 +_080E69AC: + adds r1, r5, r3 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + cmp r0, 0 + bne _080E69C0 + movs r0, 0x2 + strb r0, [r2] +_080E69C0: + ldr r1, _080E69EC @ =0x000099a4 + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080E69F0 @ =0x000099a5 + adds r0, r5, r2 + strb r1, [r0] + ldr r3, _080E69F4 @ =0x00009a29 + adds r0, r5, r3 + strb r1, [r0] + bl sub_80E9A4C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E69E0: .4byte 0x00004142 +_080E69E4: .4byte 0x00009a28 +_080E69E8: .4byte 0x000099a6 +_080E69EC: .4byte 0x000099a4 +_080E69F0: .4byte 0x000099a5 +_080E69F4: .4byte 0x00009a29 + thumb_func_end sub_80E68E8 + + thumb_func_start sub_80E69F8 +sub_80E69F8: @ 80E69F8 + push {r4,lr} + ldr r0, _080E6A10 @ =0x02001000 + ldrb r1, [r0, 0x8] + adds r4, r0, 0 + cmp r1, 0xD + bhi _080E6A50 + lsls r0, r1, 2 + ldr r1, _080E6A14 @ =_080E6A18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E6A10: .4byte 0x02001000 +_080E6A14: .4byte _080E6A18 + .align 2, 0 +_080E6A18: + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A58 + .4byte _080E6A50 +_080E6A50: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + b _080E6A66 +_080E6A58: + ldrb r0, [r4, 0x8] + bl sub_80E9368 + ldrb r0, [r4, 0xB] + ldrb r1, [r4, 0x9] + bl sub_80E8BF4 +_080E6A66: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E69F8 + + thumb_func_start sub_80E6A6C +sub_80E6A6C: @ 80E6A6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_80EAC5C + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80E6A6C + + thumb_func_start sub_80E6A88 +sub_80E6A88: @ 80E6A88 + push {lr} + ldr r0, _080E6AA4 @ =0x02001000 + ldr r0, [r0, 0x20] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl sub_80EAD08 + pop {r0} + bx r0 + .align 2, 0 +_080E6AA4: .4byte 0x02001000 + thumb_func_end sub_80E6A88 + + thumb_func_start sub_80E6AA8 +sub_80E6AA8: @ 80E6AA8 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E6ABA + ldr r0, _080E6AC0 @ =sub_80E6AC4 + bl sub_80E682C +_080E6ABA: + pop {r0} + bx r0 + .align 2, 0 +_080E6AC0: .4byte sub_80E6AC4 + thumb_func_end sub_80E6AA8 + + thumb_func_start sub_80E6AC4 +sub_80E6AC4: @ 80E6AC4 + push {lr} + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8398 + movs r0, 0 + bl sub_80E91D4 + ldr r0, _080E6AE0 @ =sub_80E6AE4 + bl sub_80E682C + pop {r0} + bx r0 + .align 2, 0 +_080E6AE0: .4byte sub_80E6AE4 + thumb_func_end sub_80E6AC4 + + thumb_func_start sub_80E6AE4 +sub_80E6AE4: @ 80E6AE4 + push {r4,r5,lr} + bl sub_80E75D8 + ldr r4, _080E6B44 @ =0x02001000 + adds r1, r4, 0 + adds r1, 0x87 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080E6AFE + movs r0, 0x5 + bl PlaySE +_080E6AFE: + ldr r2, _080E6B48 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + beq _080E6BA4 + movs r0, 0x5 + bl PlaySE + adds r1, r4, 0 + adds r1, 0x86 + adds r0, r4, 0 + adds r0, 0x84 + ldrb r2, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E6B78 + adds r0, r4, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080E6B60 + cmp r0, 0x1 + bgt _080E6B4C + cmp r0, 0 + beq _080E6B52 + b _080E6BA4 + .align 2, 0 +_080E6B44: .4byte 0x02001000 +_080E6B48: .4byte gMain +_080E6B4C: + cmp r0, 0x2 + beq _080E6B6C + b _080E6BA4 +_080E6B52: + ldr r0, _080E6B5C @ =sub_80E6BC0 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B5C: .4byte sub_80E6BC0 +_080E6B60: + ldr r0, _080E6B68 @ =sub_80E6C84 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B68: .4byte sub_80E6C84 +_080E6B6C: + ldr r0, _080E6B74 @ =sub_80E6D7C + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6B74: .4byte sub_80E6D7C +_080E6B78: + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + adds r1, r4, 0 + adds r1, 0x85 + adds r3, r0, 0 + muls r3, r2 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x27 + strb r0, [r1] + bl sub_80E7574 + ldr r0, _080E6BA0 @ =sub_80E6F68 + bl sub_80E682C + b _080E6BB4 + .align 2, 0 +_080E6BA0: .4byte sub_80E6F68 +_080E6BA4: + ldrh r1, [r5, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E6BB4 + ldr r0, _080E6BBC @ =sub_80E6C84 + bl sub_80E682C +_080E6BB4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E6BBC: .4byte sub_80E6C84 + thumb_func_end sub_80E6AE4 + + thumb_func_start sub_80E6BC0 +sub_80E6BC0: @ 80E6BC0 + push {r4,lr} + ldr r4, _080E6BD4 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6C12 + cmp r0, 0x1 + bgt _080E6BD8 + cmp r0, 0 + beq _080E6BE2 + b _080E6C76 + .align 2, 0 +_080E6BD4: .4byte 0x02001000 +_080E6BD8: + cmp r0, 0x2 + beq _080E6C54 + cmp r0, 0x64 + beq _080E6C64 + b _080E6C76 +_080E6BE2: + movs r0, 0x2 + bl sub_80E8398 + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6BFA + movs r0, 0x6 + bl sub_80E91D4 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6BFA: + movs r0, 0x2 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + b _080E6C3E +_080E6C12: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6C32 + cmp r1, 0 + bgt _080E6C2C + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6C46 + b _080E6C76 +_080E6C2C: + cmp r1, 0x1 + beq _080E6C46 + b _080E6C76 +_080E6C32: + bl sub_80E7D6C + bl sub_80E98C4 + bl sub_80E95A4 +_080E6C3E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6C76 +_080E6C46: + ldr r1, _080E6C50 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6C76 + .align 2, 0 +_080E6C50: .4byte 0x02001000 +_080E6C54: + bl sub_80E81FC + ldr r0, _080E6C60 @ =sub_80E6AC4 + bl sub_80E682C + b _080E6C76 + .align 2, 0 +_080E6C60: .4byte sub_80E6AC4 +_080E6C64: + ldr r0, _080E6C7C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6C76 + ldr r0, _080E6C80 @ =sub_80E6AC4 + bl sub_80E682C +_080E6C76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6C7C: .4byte gMain +_080E6C80: .4byte sub_80E6AC4 + thumb_func_end sub_80E6BC0 + + thumb_func_start sub_80E6C84 +sub_80E6C84: @ 80E6C84 + push {r4,lr} + ldr r4, _080E6C98 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0x1 + beq _080E6CF4 + cmp r0, 0x1 + bgt _080E6C9C + cmp r0, 0 + beq _080E6CA6 + b _080E6D72 + .align 2, 0 +_080E6C98: .4byte 0x02001000 +_080E6C9C: + cmp r0, 0x2 + beq _080E6D24 + cmp r0, 0xFF + beq _080E6D64 + b _080E6D72 +_080E6CA6: + movs r0, 0x2 + bl sub_80E8398 + movs r0, 0x3 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor + ldrb r0, [r4, 0x8] + cmp r0, 0x9 + beq _080E6CE8 + cmp r0, 0x4 + beq _080E6CE8 + cmp r0, 0x7 + beq _080E6CE8 + cmp r0, 0x8 + beq _080E6CE8 + cmp r0, 0xA + beq _080E6CE8 + cmp r0, 0xB + beq _080E6CE8 + cmp r0, 0xC + beq _080E6CE8 + cmp r0, 0x5 + beq _080E6CE8 + cmp r0, 0xD + bne _080E6D1C +_080E6CE8: + ldr r1, _080E6CF0 @ =0x02001000 + movs r0, 0x2 + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6CF0: .4byte 0x02001000 +_080E6CF4: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D06 + cmp r1, 0 + ble _080E6D34 + b _080E6D3E +_080E6D06: + movs r0, 0x4 + bl sub_80E91D4 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0x1 + bl MoveMenuCursor +_080E6D1C: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6D72 +_080E6D24: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080E6D44 + cmp r1, 0 + bgt _080E6D3E +_080E6D34: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080E6D58 + b _080E6D72 +_080E6D3E: + cmp r1, 0x1 + beq _080E6D58 + b _080E6D72 +_080E6D44: + ldr r0, _080E6D50 @ =gScriptResult + strh r1, [r0] + ldr r0, _080E6D54 @ =sub_80E752C + bl sub_80E682C + b _080E6D72 + .align 2, 0 +_080E6D50: .4byte gScriptResult +_080E6D54: .4byte sub_80E752C +_080E6D58: + ldr r1, _080E6D60 @ =0x02001000 + movs r0, 0xFF + strh r0, [r1, 0x24] + b _080E6D72 + .align 2, 0 +_080E6D60: .4byte 0x02001000 +_080E6D64: + bl sub_8072DEC + bl sub_80E81FC + ldr r0, _080E6D78 @ =sub_80E6AC4 + bl sub_80E682C +_080E6D72: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6D78: .4byte sub_80E6AC4 + thumb_func_end sub_80E6C84 + + thumb_func_start sub_80E6D7C +sub_80E6D7C: @ 80E6D7C + push {r4-r7,lr} + ldr r5, _080E6D98 @ =0x02001000 + ldrh r0, [r5, 0x24] + cmp r0, 0xA + bne _080E6D88 + b _080E6F06 +_080E6D88: + cmp r0, 0xA + bgt _080E6D9C + cmp r0, 0 + beq _080E6DB6 + cmp r0, 0x1 + beq _080E6E3C + b _080E6F5E + .align 2, 0 +_080E6D98: .4byte 0x02001000 +_080E6D9C: + cmp r0, 0x65 + bne _080E6DA2 + b _080E6F30 +_080E6DA2: + cmp r0, 0x65 + bgt _080E6DAE + cmp r0, 0x64 + bne _080E6DAC + b _080E6F24 +_080E6DAC: + b _080E6F5E +_080E6DAE: + cmp r0, 0x66 + bne _080E6DB4 + b _080E6F50 +_080E6DB4: + b _080E6F5E +_080E6DB6: + movs r0, 0x2 + bl sub_80E8398 + bl sub_80E8054 + lsls r0, 24 + cmp r0, 0 + beq _080E6DCA + movs r0, 0x5 + b _080E6DEE +_080E6DCA: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6DFC + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6DDE + movs r0, 0x8 + b _080E6DEE +_080E6DDE: + ldrh r0, [r5, 0xC] + ldr r1, _080E6DF8 @ =0x0000ffff + cmp r0, r1 + beq _080E6DEC + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6DFC +_080E6DEC: + movs r0, 0x9 +_080E6DEE: + bl sub_80E91D4 + movs r0, 0xA + strh r0, [r5, 0x24] + b _080E6F5E + .align 2, 0 +_080E6DF8: .4byte 0x0000ffff +_080E6DFC: + ldr r0, _080E6E18 @ =0x02001000 + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + bne _080E6E20 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + bne _080E6E20 + ldr r0, _080E6E1C @ =sub_80E6C84 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6E18: .4byte 0x02001000 +_080E6E1C: .4byte sub_80E6C84 +_080E6E20: + movs r0, 0x1 + bl sub_80E91D4 + bl sub_80E9744 + movs r0, 0x17 + movs r1, 0x8 + movs r2, 0 + bl DisplayYesNoMenu + movs r0, 0 + bl MoveMenuCursor + b _080E6F3C +_080E6E3C: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r6, r0, 24 + cmp r6, 0 + beq _080E6E5C + cmp r6, 0 + bgt _080E6E56 + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _080E6EDC + b _080E6F5E +_080E6E56: + cmp r6, 0x1 + beq _080E6EDC + b _080E6F5E +_080E6E5C: + ldr r7, _080E6EC8 @ =gScriptResult + bl sub_80E7FA8 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r0, 31 + strh r0, [r7] + bl sub_80E7D9C + ldrb r0, [r5, 0x8] + cmp r0, 0 + bne _080E6E82 + ldr r4, _080E6ECC @ =gUnknown_0202E8CC + bl sub_80E8094 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E82: + ldrb r0, [r5, 0x8] + cmp r0, 0x9 + bne _080E6E9C + bl sub_80E81C0 + ldr r4, _080E6ECC @ =gUnknown_0202E8CC + ldr r1, _080E6ED0 @ =0x00009c7c + adds r0, r5, r1 + bl sub_80FA364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6E9C: + ldrb r0, [r5, 0x8] + cmp r0, 0xD + bne _080E6EBE + ldrh r0, [r5, 0xC] + ldr r1, _080E6ED4 @ =0x0000ffff + cmp r0, r1 + beq _080E6EB0 + ldrh r0, [r5, 0xE] + cmp r0, r1 + bne _080E6EB2 +_080E6EB0: + strh r6, [r7] +_080E6EB2: + ldr r4, _080E6ECC @ =gUnknown_0202E8CC + bl sub_80E810C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] +_080E6EBE: + ldr r0, _080E6ED8 @ =sub_80E752C + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6EC8: .4byte gScriptResult +_080E6ECC: .4byte gUnknown_0202E8CC +_080E6ED0: .4byte 0x00009c7c +_080E6ED4: .4byte 0x0000ffff +_080E6ED8: .4byte sub_80E752C +_080E6EDC: + bl sub_8072DEC + bl sub_80E81FC + ldr r4, _080E6EFC @ =0x02001000 + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + bne _080E6F00 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6F00 + movs r0, 0x64 + strh r0, [r4, 0x24] + b _080E6F5E + .align 2, 0 +_080E6EFC: .4byte 0x02001000 +_080E6F00: + bl sub_80E95A4 + b _080E6F12 +_080E6F06: + ldr r0, _080E6F1C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F12: + ldr r0, _080E6F20 @ =sub_80E6AC4 + bl sub_80E682C + b _080E6F5E + .align 2, 0 +_080E6F1C: .4byte gMain +_080E6F20: .4byte sub_80E6AC4 +_080E6F24: + movs r0, 0x7 + bl sub_80E91D4 + ldrh r0, [r5, 0x24] + adds r0, 0x1 + strh r0, [r5, 0x24] +_080E6F30: + ldr r0, _080E6F48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E6F5E +_080E6F3C: + ldr r1, _080E6F4C @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E6F5E + .align 2, 0 +_080E6F48: .4byte gMain +_080E6F4C: .4byte 0x02001000 +_080E6F50: + bl sub_80E7E50 + bl sub_80E95A4 + ldr r0, _080E6F64 @ =sub_80E6AC4 + bl sub_80E682C +_080E6F5E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E6F64: .4byte sub_80E6AC4 + thumb_func_end sub_80E6D7C + + thumb_func_start sub_80E6F68 +sub_80E6F68: @ 80E6F68 + push {r4,lr} + ldr r4, _080E6F78 @ =0x02001000 + ldrh r0, [r4, 0x24] + cmp r0, 0 + beq _080E6F7C + cmp r0, 0x1 + beq _080E6F9C + b _080E6FBC + .align 2, 0 +_080E6F78: .4byte 0x02001000 +_080E6F7C: + movs r0, 0x1 + bl sub_80E8398 + movs r0, 0xA + bl sub_80E91D4 + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E6FBC +_080E6F9C: + bl sub_80E9EA8 + lsls r0, 24 + cmp r0, 0 + beq _080E6FBC + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E6FC4 @ =sub_80E6FC8 + bl sub_80E682C +_080E6FBC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E6FC4: .4byte sub_80E6FC8 + thumb_func_end sub_80E6F68 + + thumb_func_start sub_80E6FC8 +sub_80E6FC8: @ 80E6FC8 + push {r4,lr} + bl sub_80E77C8 + adds r1, r0, 0 + ldr r4, _080E7000 @ =0x02001000 + adds r0, r4, 0 + adds r0, 0x96 + strb r1, [r0] + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E700C + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E7004 @ =sub_80E6FC8 + str r1, [r0] + ldr r0, _080E7008 @ =sub_80E7458 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E7000: .4byte 0x02001000 +_080E7004: .4byte sub_80E6FC8 +_080E7008: .4byte sub_80E7458 +_080E700C: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E7018 + movs r0, 0x5 + bl PlaySE +_080E7018: + ldr r0, _080E7054 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E70E8 + ldr r2, _080E7058 @ =0x000001b7 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7090 + movs r0, 0x5 + bl PlaySE + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + beq _080E7070 + cmp r0, 0x2 + bgt _080E705C + cmp r0, 0x1 + beq _080E7062 + b _080E710A + .align 2, 0 +_080E7054: .4byte gMain +_080E7058: .4byte 0x000001b7 +_080E705C: + cmp r0, 0x3 + beq _080E70F0 + b _080E710A +_080E7062: + ldr r0, _080E706C @ =sub_80E718C + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E706C: .4byte sub_80E718C +_080E7070: + ldrb r0, [r4, 0x8] + cmp r0, 0x6 + beq _080E710A + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + ldr r1, _080E708C @ =0x0000ffff + bl sub_80E7F00 + bl sub_80E7574 + bl sub_80E95A4 + b _080E710A + .align 2, 0 +_080E708C: .4byte 0x0000ffff +_080E7090: + adds r0, r4, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + beq _080E70CA + ldr r2, _080E70DC @ =0x000001a9 + adds r0, r4, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r4, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r0, [r2] + lsls r0, 1 + ldr r2, _080E70E0 @ =0x00004142 + adds r1, r4, r2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080E710A +_080E70CA: + movs r0, 0x5 + bl PlaySE + bl sub_80E7AD4 + ldr r0, _080E70E4 @ =sub_80E7218 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70DC: .4byte 0x000001a9 +_080E70E0: .4byte 0x00004142 +_080E70E4: .4byte sub_80E7218 +_080E70E8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E70FC +_080E70F0: + ldr r0, _080E70F8 @ =sub_80E7114 + bl sub_80E682C + b _080E710A + .align 2, 0 +_080E70F8: .4byte sub_80E7114 +_080E70FC: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E710A + ldr r0, _080E7110 @ =sub_80E718C + bl sub_80E682C +_080E710A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7110: .4byte sub_80E718C + thumb_func_end sub_80E6FC8 + + thumb_func_start sub_80E7114 +sub_80E7114: @ 80E7114 + push {lr} + ldr r0, _080E712C @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E7182 + lsls r0, r1, 2 + ldr r1, _080E7130 @ =_080E7134 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E712C: .4byte 0x02001000 +_080E7130: .4byte _080E7134 + .align 2, 0 +_080E7134: + .4byte _080E7148 + .4byte _080E715C + .4byte _080E715C + .4byte _080E7164 + .4byte _080E717C +_080E7148: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + movs r0, 0 + bl sub_80E8D8C + b _080E716E +_080E715C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E7182 +_080E7164: + bl sub_80E9F50 + lsls r0, 24 + cmp r0, 0 + beq _080E7182 +_080E716E: + ldr r1, _080E7178 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7182 + .align 2, 0 +_080E7178: .4byte 0x02001000 +_080E717C: + ldr r0, _080E7188 @ =sub_80E6AC4 + bl sub_80E682C +_080E7182: + pop {r0} + bx r0 + .align 2, 0 +_080E7188: .4byte sub_80E6AC4 + thumb_func_end sub_80E7114 + + thumb_func_start sub_80E718C +sub_80E718C: @ 80E718C + push {r4,lr} + ldr r0, _080E71A4 @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r4, r0, 0 + cmp r1, 0x1 + beq _080E71C6 + cmp r1, 0x1 + bgt _080E71A8 + cmp r1, 0 + beq _080E71AE + b _080E71EC + .align 2, 0 +_080E71A4: .4byte 0x02001000 +_080E71A8: + cmp r1, 0x8 + beq _080E71F4 + b _080E71EC +_080E71AE: + bl sub_80E8504 + bl sub_80E9E98 + bl sub_80E88F0 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + bl sub_80E8D54 + b _080E720E +_080E71C6: + bl sub_80E9FD4 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + movs r2, 0 + adds r1, r4, 0 + adds r1, 0x26 + ldrb r0, [r1] + cmp r0, 0 + bne _080E71DE + movs r2, 0x1 +_080E71DE: + strb r2, [r1] + bl sub_80E683C + bl sub_80E9974 + bl sub_80E9E98 +_080E71EC: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E720E +_080E71F4: + bl sub_80EA014 + lsls r0, 24 + cmp r0, 0 + beq _080E720E + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 + ldr r0, _080E7214 @ =sub_80E6FC8 + bl sub_80E682C +_080E720E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7214: .4byte sub_80E6FC8 + thumb_func_end sub_80E718C + + thumb_func_start sub_80E7218 +sub_80E7218: @ 80E7218 + push {r4,lr} + ldr r4, _080E7230 @ =0x02001000 + ldrh r0, [r4, 0x24] + adds r1, r4, 0 + cmp r0, 0x9 + beq _080E7260 + cmp r0, 0x9 + bgt _080E7234 + cmp r0, 0x8 + beq _080E7244 + b _080E723C + .align 2, 0 +_080E7230: .4byte 0x02001000 +_080E7234: + cmp r0, 0xA + beq _080E7276 + cmp r0, 0xB + beq _080E7288 +_080E723C: + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E7288 +_080E7244: + movs r0, 0 + bl sub_80E8D8C + bl sub_80E8504 + bl sub_80E9AD4 + bl sub_80E68E8 + bl sub_80E88F0 + bl sub_80E9E98 + b _080E726E +_080E7260: + bl sub_80EA050 + lsls r0, 24 + cmp r0, 0 + beq _080E7288 + bl sub_80E9C94 +_080E726E: + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7288 +_080E7276: + movs r0, 0x1 + bl sub_80E87CC + movs r0, 0x1 + bl sub_80E8958 + ldr r0, _080E7290 @ =sub_80E7294 + bl sub_80E682C +_080E7288: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7290: .4byte sub_80E7294 + thumb_func_end sub_80E7218 + + thumb_func_start sub_80E7294 +sub_80E7294: @ 80E7294 + push {r4,lr} + bl sub_80E7B40 + adds r1, r0, 0 + ldr r4, _080E72CC @ =0x02001000 + ldr r2, _080E72D0 @ =0x000001b9 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x7 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E72DC + movs r0, 0x5 + bl PlaySE + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, _080E72D4 @ =sub_80E7294 + str r1, [r0] + ldr r0, _080E72D8 @ =sub_80E7458 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E72CC: .4byte 0x02001000 +_080E72D0: .4byte 0x000001b9 +_080E72D4: .4byte sub_80E7294 +_080E72D8: .4byte sub_80E7458 +_080E72DC: + lsls r0, r1, 24 + cmp r0, 0 + beq _080E72E8 + movs r0, 0x5 + bl PlaySE +_080E72E8: + ldr r0, _080E7304 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E730C + movs r0, 0x5 + bl PlaySE + ldr r0, _080E7308 @ =sub_80E7324 + bl sub_80E682C + b _080E731A + .align 2, 0 +_080E7304: .4byte gMain +_080E7308: .4byte sub_80E7324 +_080E730C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080E731A + ldr r0, _080E7320 @ =sub_80E73D0 + bl sub_80E682C +_080E731A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7320: .4byte sub_80E73D0 + thumb_func_end sub_80E7294 + + thumb_func_start sub_80E7324 +sub_80E7324: @ 80E7324 + push {lr} + ldr r0, _080E733C @ =0x02001000 + ldrh r1, [r0, 0x24] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E73C6 + lsls r0, r1, 2 + ldr r1, _080E7340 @ =_080E7344 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E733C: .4byte 0x02001000 +_080E7340: .4byte _080E7344 + .align 2, 0 +_080E7344: + .4byte _080E7358 + .4byte _080E737C + .4byte _080E7384 + .4byte _080E738A + .4byte _080E73A4 +_080E7358: + bl sub_80E7DD0 + lsls r0, 24 + cmp r0, 0 + bne _080E7370 + ldr r0, _080E736C @ =sub_80E7294 + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E736C: .4byte sub_80E7294 +_080E7370: + bl sub_80E88F0 + movs r0, 0 + bl sub_80E87CC + b _080E7394 +_080E737C: + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + b _080E73C6 +_080E7384: + bl sub_80E9E98 + b _080E7394 +_080E738A: + bl sub_80EA184 + lsls r0, 24 + cmp r0, 0 + beq _080E73C6 +_080E7394: + ldr r1, _080E73A0 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E73C6 + .align 2, 0 +_080E73A0: .4byte 0x02001000 +_080E73A4: + ldrb r0, [r2, 0x8] + cmp r0, 0x6 + bne _080E73C0 + bl sub_80E7FA8 + lsls r0, 24 + cmp r0, 0 + beq _080E73C0 + ldr r0, _080E73BC @ =sub_80E6D7C + bl sub_80E682C + b _080E73C6 + .align 2, 0 +_080E73BC: .4byte sub_80E6D7C +_080E73C0: + ldr r0, _080E73CC @ =sub_80E6AC4 + bl sub_80E682C +_080E73C6: + pop {r0} + bx r0 + .align 2, 0 +_080E73CC: .4byte sub_80E6AC4 + thumb_func_end sub_80E7324 + + thumb_func_start sub_80E73D0 +sub_80E73D0: @ 80E73D0 + push {lr} + ldr r0, _080E73E4 @ =0x02001000 + ldrh r0, [r0, 0x24] + cmp r0, 0x4 + bhi _080E744E + lsls r0, 2 + ldr r1, _080E73E8 @ =_080E73EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E73E4: .4byte 0x02001000 +_080E73E8: .4byte _080E73EC + .align 2, 0 +_080E73EC: + .4byte _080E7400 + .4byte _080E740C + .4byte _080E7416 + .4byte _080E742C + .4byte _080E7444 +_080E7400: + movs r0, 0 + bl sub_80E87CC + bl sub_80E88F0 + b _080E7436 +_080E740C: + bl sub_80E9AD4 + bl sub_80E9E98 + b _080E7436 +_080E7416: + bl sub_80EA0E4 + lsls r0, 24 + cmp r0, 0 + beq _080E744E + movs r0, 0x1 + bl sub_80E8D8C + bl sub_80E9A14 + b _080E7436 +_080E742C: + bl sub_80E8420 + movs r0, 0 + bl sub_80E8958 +_080E7436: + ldr r1, _080E7440 @ =0x02001000 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + b _080E744E + .align 2, 0 +_080E7440: .4byte 0x02001000 +_080E7444: + bl sub_80E9974 + ldr r0, _080E7454 @ =sub_80E6FC8 + bl sub_80E682C +_080E744E: + pop {r0} + bx r0 + .align 2, 0 +_080E7454: .4byte sub_80E6FC8 + thumb_func_end sub_80E73D0 + + thumb_func_start sub_80E7458 +sub_80E7458: @ 80E7458 + push {r4,r5,lr} + ldr r4, _080E7468 @ =0x02001000 + ldrh r5, [r4, 0x24] + cmp r5, 0 + beq _080E746C + cmp r5, 0x1 + beq _080E74A4 + b _080E7518 + .align 2, 0 +_080E7468: .4byte 0x02001000 +_080E746C: + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E7480 @ =sub_80E6FC8 + cmp r1, r0 + bne _080E7484 + bl sub_80E9D7C + b _080E7488 + .align 2, 0 +_080E7480: .4byte sub_80E6FC8 +_080E7484: + bl sub_80E9D00 +_080E7488: + ldr r4, _080E74A0 @ =0x02001000 + movs r2, 0xDF + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80E9E08 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E7518 + .align 2, 0 +_080E74A0: .4byte 0x02001000 +_080E74A4: + bl sub_80E9E54 + lsls r0, 24 + cmp r0, 0 + beq _080E7518 + movs r1, 0xE2 + lsls r1, 1 + adds r0, r4, r1 + ldr r1, [r0] + ldr r0, _080E74DC @ =sub_80E6FC8 + cmp r1, r0 + bne _080E74E4 + bl sub_80E9D7C + ldr r2, _080E74E0 @ =0x000001b5 + adds r1, r4, r2 + adds r2, 0xB + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7A98 + adds r0, r4, 0 + adds r0, 0x96 + b _080E74FE + .align 2, 0 +_080E74DC: .4byte sub_80E6FC8 +_080E74E0: .4byte 0x000001b5 +_080E74E4: + ldr r0, _080E7520 @ =0x00009a29 + adds r1, r4, r0 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + bl sub_80E7D30 + ldr r1, _080E7524 @ =0x000001b9 + adds r0, r4, r1 +_080E74FE: + strb r5, [r0] + ldr r1, _080E7528 @ =0x02001000 + movs r0, 0xDF + lsls r0, 1 + adds r2, r1, r0 + movs r0, 0x2 + strb r0, [r2] + movs r2, 0xE2 + lsls r2, 1 + adds r0, r1, r2 + ldr r0, [r0] + bl sub_80E682C +_080E7518: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7520: .4byte 0x00009a29 +_080E7524: .4byte 0x000001b9 +_080E7528: .4byte 0x02001000 + thumb_func_end sub_80E7458 + + thumb_func_start sub_80E752C +sub_80E752C: @ 80E752C + push {r4,lr} + sub sp, 0x4 + ldr r4, _080E7540 @ =0x02001000 + ldrh r1, [r4, 0x24] + cmp r1, 0 + beq _080E7544 + cmp r1, 0x1 + beq _080E755C + b _080E756C + .align 2, 0 +_080E7540: .4byte 0x02001000 +_080E7544: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x24] + adds r0, 0x1 + strh r0, [r4, 0x24] + b _080E756C +_080E755C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080E756C + ldr r0, [r4] + bl SetMainCallback2 +_080E756C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E752C + + thumb_func_start sub_80E7574 +sub_80E7574: @ 80E7574 + push {r4,r5,lr} + ldr r4, _080E75B8 @ =0x02001000 + ldrb r5, [r4, 0x8] + cmp r5, 0x1 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r4, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080E75BC + adds r0, r4, 0 + adds r0, 0x27 + ldrb r0, [r0] + lsls r0, 1 + subs r1, 0x72 + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + beq _080E75BC + adds r0, r4, 0 + adds r0, 0x7D + strb r5, [r0] + adds r1, r4, 0 + b _080E75C6 + .align 2, 0 +_080E75B8: .4byte 0x02001000 +_080E75BC: + ldr r1, _080E75D4 @ =0x02001000 + adds r2, r1, 0 + adds r2, 0x7D + movs r0, 0 + strb r0, [r2] +_080E75C6: + adds r1, 0x7D + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E75D4: .4byte 0x02001000 + thumb_func_end sub_80E7574 + + thumb_func_start sub_80E75D8 +sub_80E75D8: @ 80E75D8 + push {r4-r6,lr} + movs r4, 0 + ldr r2, _080E75FC @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7604 + ldr r1, _080E7600 @ =0x02001000 + adds r0, r1, 0 + adds r0, 0x84 + ldrb r0, [r0] + adds r2, r1, 0 + adds r2, 0x86 + strb r0, [r2] + adds r1, 0x85 + movs r0, 0x2 + b _080E768E + .align 2, 0 +_080E75FC: .4byte gMain +_080E7600: .4byte 0x02001000 +_080E7604: + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080E7630 + ldr r2, _080E762C @ =0x02001000 + adds r1, r2, 0 + adds r1, 0x86 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E765C + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + strb r0, [r1] + b _080E765C + .align 2, 0 +_080E762C: .4byte 0x02001000 +_080E7630: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080E7658 + ldr r0, _080E7684 @ =0x02001000 + adds r3, r0, 0 + adds r3, 0x86 + ldrb r1, [r3] + adds r1, 0x1 + strb r1, [r3] + adds r0, 0x84 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + ble _080E7656 + strb r4, [r3] +_080E7656: + movs r4, 0x1 +_080E7658: + cmp r4, 0 + beq _080E76EA +_080E765C: + ldr r2, _080E7684 @ =0x02001000 + ldrb r3, [r2, 0x9] + cmp r3, 0x2 + bne _080E7692 + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7688 + adds r0, r2, 0 + adds r0, 0x85 + strb r3, [r0] + b _080E77BC + .align 2, 0 +_080E7684: .4byte 0x02001000 +_080E7688: + adds r1, r2, 0 + adds r1, 0x85 + movs r0, 0 +_080E768E: + strb r0, [r1] + b _080E77BC +_080E7692: + movs r0, 0x85 + adds r0, r2 + mov r12, r0 + adds r4, r2, 0 + adds r4, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + ldrb r3, [r4] + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r1, r0 + blt _080E76B0 + subs r0, r3, 0x1 + mov r1, r12 + strb r0, [r1] +_080E76B0: + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r3, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + beq _080E77BC + ldrb r0, [r4] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, 0 + mov r5, r12 + ldrb r5, [r5] + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 + mov r6, r12 + strb r0, [r6] + b _080E77BC +_080E76EA: + ldrh r2, [r2, 0x30] + movs r0, 0x20 + ands r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080E7744 + ldr r2, _080E7728 @ =0x02001000 + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bge _080E77BC + adds r1, r2, 0 + adds r1, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + ldrb r4, [r1] + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E772C + movs r0, 0x2 + b _080E77BA + .align 2, 0 +_080E7728: .4byte 0x02001000 +_080E772C: + adds r0, r2, 0 + adds r0, 0x83 + ldrb r0, [r0] + subs r1, r0, 0x1 + strb r1, [r3] + adds r5, r4, 0 + muls r5, r0 + adds r0, r5, 0 + adds r1, r0 + lsls r1, 24 + lsrs r0, r1, 24 + b _080E77B2 +_080E7744: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080E77C0 + ldr r2, _080E777C @ =0x02001000 + adds r5, r2, 0 + adds r5, 0x86 + adds r0, r2, 0 + adds r0, 0x84 + movs r1, 0 + ldrsb r1, [r5, r1] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080E7780 + adds r1, r2, 0 + adds r1, 0x85 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + ble _080E77BC + strb r4, [r1] + b _080E77BC + .align 2, 0 +_080E777C: .4byte 0x02001000 +_080E7780: + adds r3, r2, 0 + adds r3, 0x85 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + movs r6, 0x83 + adds r6, r2 + mov r12, r6 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + blt _080E779E + strb r4, [r3] +_080E779E: + ldrb r1, [r5] + mov r4, r12 + ldrb r0, [r4] + adds r5, r0, 0 + muls r5, r1 + adds r0, r5, 0 + ldrb r6, [r3] + adds r0, r6 + lsls r0, 24 + lsrs r0, 24 +_080E77B2: + ldrb r1, [r2, 0xA] + cmp r0, r1 + bcc _080E77BC + subs r0, r1 +_080E77BA: + strb r0, [r3] +_080E77BC: + movs r0, 0x1 + b _080E77C2 +_080E77C0: + movs r0, 0 +_080E77C2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80E75D8 + + thumb_func_start sub_80E77C8 +sub_80E77C8: @ 80E77C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r1, _080E780C @ =0x02001000 + ldr r2, _080E7810 @ =0x000001b7 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r3, r1, 0 + cmp r0, 0 + beq _080E783E + ldr r1, _080E7814 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7818 + movs r4, 0xD4 + lsls r4, 1 + adds r1, r3, r4 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + ble _080E7806 + b _080E7948 +_080E7806: + movs r0, 0x3 + strb r0, [r1] + b _080E7948 + .align 2, 0 +_080E780C: .4byte 0x02001000 +_080E7810: .4byte 0x000001b7 +_080E7814: .4byte gMain +_080E7818: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + bne _080E7822 + b _080E7950 +_080E7822: + movs r5, 0xD4 + lsls r5, 1 + adds r1, r3, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bgt _080E7838 + b _080E7948 +_080E7838: + movs r0, 0x1 + strb r0, [r1] + b _080E7948 +_080E783E: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E789A + movs r4, 0 + ldr r1, _080E7870 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E7874 + movs r6, 0xD4 + lsls r6, 1 + adds r1, r3, r6 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080E7944 + movs r0, 0x3 + strb r0, [r1] + b _080E7944 + .align 2, 0 +_080E7870: .4byte gMain +_080E7874: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E7894 + movs r0, 0xD4 + lsls r0, 1 + adds r1, r3, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _080E7892 + strb r7, [r1] +_080E7892: + movs r4, 0x1 +_080E7894: + cmp r4, 0 + beq _080E7950 + b _080E7944 +_080E789A: + movs r4, 0 + movs r1, 0xE0 + lsls r1, 1 + adds r5, r3, r1 + strb r7, [r5] + ldr r1, _080E78E0 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + adds r6, r1, 0 + cmp r0, 0 + beq _080E78E8 + movs r2, 0xD4 + lsls r2, 1 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E78C4 + b _080E7A88 +_080E78C4: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E78E4 @ =0x000001b5 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7932 + movs r0, 0xFF + strb r0, [r5] + b _080E7932 + .align 2, 0 +_080E78E0: .4byte gMain +_080E78E4: .4byte 0x000001b5 +_080E78E8: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080E792E + movs r0, 0xD4 + lsls r0, 1 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + movs r4, 0xDB + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E790E + b _080E7A88 +_080E790E: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E794C @ =0x000001b5 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x3 + cmp r1, r0 + ble _080E792C + movs r0, 0x1 + strb r0, [r5] +_080E792C: + movs r4, 0x1 +_080E792E: + cmp r4, 0 + beq _080E7950 +_080E7932: + movs r4, 0xE0 + lsls r4, 1 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7944 + b _080E7A88 +_080E7944: + bl sub_80E7A98 +_080E7948: + movs r0, 0x1 + b _080E7A8A + .align 2, 0 +_080E794C: .4byte 0x000001b5 +_080E7950: + ldrh r1, [r6, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _080E7992 + ldr r5, _080E7974 @ =0x000001a9 + adds r2, r3, r5 + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + beq _080E7978 + subs r0, r1, 0x1 + strb r0, [r2] + b _080E79E6 + .align 2, 0 +_080E7974: .4byte 0x000001a9 +_080E7978: + movs r6, 0xD4 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + movs r4, 0xD5 + lsls r4, 1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + b _080E79E6 +_080E7992: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E79E2 + ldr r5, _080E79D4 @ =0x000001b7 + adds r0, r3, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E79CC + ldr r0, _080E79D8 @ =0x000001a9 + adds r4, r3, r0 + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD5 + lsls r2, 1 + adds r0, r3, r2 + adds r1, r0 + ldrb r5, [r4] + movs r2, 0 + ldrsb r2, [r4, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E79DC +_080E79CC: + ldr r4, _080E79D8 @ =0x000001a9 + adds r0, r3, r4 + strb r6, [r0] + b _080E79E0 + .align 2, 0 +_080E79D4: .4byte 0x000001b7 +_080E79D8: .4byte 0x000001a9 +_080E79DC: + adds r0, r5, 0x1 + strb r0, [r4] +_080E79E0: + movs r7, 0x1 +_080E79E2: + cmp r7, 0 + beq _080E7A88 +_080E79E6: + adds r2, r3, 0 + ldr r5, _080E7A48 @ =0x000001b7 + adds r7, r2, r5 + ldrb r6, [r7] + mov r9, r6 + movs r1, 0 + ldr r0, _080E7A4C @ =0x000001a9 + adds r0, r2 + mov r12, r0 + subs r5, 0xF + adds r4, r2, r5 + movs r0, 0 + ldrsb r0, [r4, r0] + movs r6, 0xD5 + lsls r6, 1 + adds r6, r2 + mov r8, r6 + add r0, r8 + mov r6, r12 + movs r5, 0 + ldrsb r5, [r6, r5] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E7A1C + movs r1, 0x1 +_080E7A1C: + strb r1, [r7] + cmp r1, 0 + beq _080E7A58 + ldr r0, _080E7A50 @ =0x000001b5 + adds r1, r2, r0 + ldrb r0, [r4] + ldrb r1, [r1] + subs r0, r1 + strb r0, [r4] + lsls r0, 24 + cmp r0, 0 + beq _080E7A36 + b _080E7948 +_080E7A36: + movs r0, 0x1 + strb r0, [r4] + ldr r1, _080E7A54 @ =0x000001ab + adds r0, r2, r1 + ldrb r0, [r0] + mov r2, r12 + strb r0, [r2] + b _080E7948 + .align 2, 0 +_080E7A48: .4byte 0x000001b7 +_080E7A4C: .4byte 0x000001a9 +_080E7A50: .4byte 0x000001b5 +_080E7A54: .4byte 0x000001ab +_080E7A58: + mov r6, r9 + cmp r6, 0 + bne _080E7A60 + b _080E7948 +_080E7A60: + ldr r1, _080E7A84 @ =0x000001b5 + adds r0, r3, r1 + ldrb r0, [r0] + ldrb r2, [r4] + adds r0, r2 + strb r0, [r4] + cmp r5, 0 + bne _080E7A72 + b _080E7948 +_080E7A72: + movs r0, 0 + ldrsb r0, [r4, r0] + add r0, r8 + ldrb r0, [r0] + subs r0, 0x1 + mov r4, r12 + strb r0, [r4] + b _080E7948 + .align 2, 0 +_080E7A84: .4byte 0x000001b5 +_080E7A88: + movs r0, 0 +_080E7A8A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E77C8 + + thumb_func_start sub_80E7A98 +sub_80E7A98: @ 80E7A98 + push {lr} + ldr r1, _080E7ACC @ =0x02001000 + ldr r0, _080E7AD0 @ =0x000001a9 + adds r3, r1, r0 + movs r2, 0xD4 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0x2 + adds r1, r2 + adds r0, r1 + movs r1, 0 + ldrsb r1, [r3, r1] + ldrb r2, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080E7AC6 + subs r0, r2, 0x1 + strb r0, [r3] +_080E7AC6: + pop {r0} + bx r0 + .align 2, 0 +_080E7ACC: .4byte 0x02001000 +_080E7AD0: .4byte 0x000001a9 + thumb_func_end sub_80E7A98 + + thumb_func_start sub_80E7AD4 +sub_80E7AD4: @ 80E7AD4 + push {lr} + ldr r3, _080E7B08 @ =0x02001000 + adds r0, r3, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E7B10 + ldr r1, _080E7B0C @ =0x000001a9 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0xD4 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x2A + adds r1, r0 + ldrb r1, [r1] + adds r2, 0x10 + b _080E7B34 + .align 2, 0 +_080E7B08: .4byte 0x02001000 +_080E7B0C: .4byte 0x000001a9 +_080E7B10: + ldr r1, _080E7B3C @ =0x000001a9 + adds r0, r3, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r1, 0x1 + adds r0, r3, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r2, r0 + adds r0, r3, 0 + adds r0, 0x40 + adds r2, r0 + ldrb r1, [r2] + movs r2, 0xDC + lsls r2, 1 +_080E7B34: + adds r0, r3, r2 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E7B3C: .4byte 0x000001a9 + thumb_func_end sub_80E7AD4 + + thumb_func_start sub_80E7B40 +sub_80E7B40: @ 80E7B40 + push {r4-r7,lr} + movs r5, 0 + ldr r2, _080E7B8C @ =0x02001000 + movs r0, 0xE0 + lsls r0, 1 + adds r6, r2, r0 + strb r5, [r6] + ldr r1, _080E7B90 @ =gMain + ldrh r4, [r1, 0x30] + movs r0, 0x40 + ands r0, r4 + adds r3, r2, 0 + adds r7, r1, 0 + cmp r0, 0 + beq _080E7B9C + ldr r2, _080E7B94 @ =0x000099a4 + adds r1, r3, r2 + ldrb r2, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _080E7B6E + b _080E7D1A +_080E7B6E: + subs r0, r2, 0x1 + strb r0, [r1] + ldr r4, _080E7B98 @ =0x00009a29 + adds r1, r3, r4 + lsls r0, 24 + asrs r0, 24 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + bge _080E7BF2 + movs r0, 0xFF + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7B8C: .4byte 0x02001000 +_080E7B90: .4byte gMain +_080E7B94: .4byte 0x000099a4 +_080E7B98: .4byte 0x00009a29 +_080E7B9C: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _080E7BEE + ldr r0, _080E7BE0 @ =0x000099a4 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r4, _080E7BE4 @ =0x00009a28 + adds r0, r3, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, 0x1 + cmp r1, r0 + blt _080E7BBE + b _080E7D1A +_080E7BBE: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r1, 0 + ldrsb r1, [r2, r1] + ldr r2, _080E7BE8 @ =0x00009a29 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + cmp r1, r0 + blt _080E7BEC + movs r0, 0x1 + strb r0, [r6] + b _080E7D1A + .align 2, 0 +_080E7BE0: .4byte 0x000099a4 +_080E7BE4: .4byte 0x00009a28 +_080E7BE8: .4byte 0x00009a29 +_080E7BEC: + movs r5, 0x1 +_080E7BEE: + cmp r5, 0 + beq _080E7BFA +_080E7BF2: + bl sub_80E7D30 +_080E7BF6: + movs r0, 0x1 + b _080E7D1C +_080E7BFA: + ldrh r1, [r7, 0x30] + movs r0, 0x20 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080E7C38 + ldr r4, _080E7C30 @ =0x000099a5 + adds r2, r3, r4 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + cmp r0, 0 + bge _080E7BF6 + ldr r6, _080E7C34 @ =0x000099a4 + adds r0, r3, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, 0x1 + adds r1, r3, r4 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r2] + b _080E7BF6 + .align 2, 0 +_080E7C30: .4byte 0x000099a5 +_080E7C34: .4byte 0x000099a4 +_080E7C38: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080E7C70 + ldr r6, _080E7C68 @ =0x000099a5 + adds r4, r3, r6 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r2, _080E7C6C @ =0x000099a4 + adds r1, r3, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + adds r6, 0x1 + adds r1, r3, r6 + adds r2, r1 + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r2, r1] + cmp r0, r1 + blt _080E7BF6 + strb r5, [r4] + b _080E7BF6 + .align 2, 0 +_080E7C68: .4byte 0x000099a5 +_080E7C6C: .4byte 0x000099a4 +_080E7C70: + ldrh r1, [r7, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080E7CC4 + ldr r1, _080E7CBC @ =0x00009a29 + adds r0, r3, r1 + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080E7CA2 + negs r0, r1 + movs r4, 0xE0 + lsls r4, 1 + adds r2, r3, r4 + strb r0, [r2] + lsls r0, 24 + asrs r0, 24 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _080E7CA2 + strb r1, [r2] +_080E7CA2: + ldr r6, _080E7CC0 @ =0x000099a4 + adds r1, r3, r6 + movs r2, 0xE0 + lsls r2, 1 + adds r0, r3, r2 + ldrb r0, [r0] + ldrb r4, [r1] + adds r0, r4 + strb r0, [r1] + movs r6, 0xDF + lsls r6, 1 + adds r1, r3, r6 + b _080E7D16 + .align 2, 0 +_080E7CBC: .4byte 0x00009a29 +_080E7CC0: .4byte 0x000099a4 +_080E7CC4: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080E7D1A + ldr r0, _080E7D24 @ =0x00009a29 + adds r4, r3, r0 + movs r1, 0 + ldrsb r1, [r4, r1] + ldr r6, _080E7D28 @ =0x00009a28 + adds r2, r3, r6 + movs r0, 0 + ldrsb r0, [r2, r0] + subs r0, 0x4 + cmp r1, r0 + bge _080E7CFE + ldrb r1, [r4] + adds r1, 0x4 + ldrb r0, [r2] + subs r0, r1 + movs r2, 0xE0 + lsls r2, 1 + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + ble _080E7CFE + movs r0, 0x4 + strb r0, [r1] +_080E7CFE: + ldr r4, _080E7D2C @ =0x000099a4 + adds r1, r3, r4 + movs r6, 0xE0 + lsls r6, 1 + adds r0, r3, r6 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + movs r4, 0xDF + lsls r4, 1 + adds r1, r3, r4 +_080E7D16: + movs r0, 0x4 + strb r0, [r1] +_080E7D1A: + movs r0, 0 +_080E7D1C: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E7D24: .4byte 0x00009a29 +_080E7D28: .4byte 0x00009a28 +_080E7D2C: .4byte 0x000099a4 + thumb_func_end sub_80E7B40 + + thumb_func_start sub_80E7D30 +sub_80E7D30: @ 80E7D30 + push {r4,lr} + ldr r0, _080E7D60 @ =0x02001000 + ldr r1, _080E7D64 @ =0x000099a5 + adds r4, r0, r1 + ldr r2, _080E7D68 @ =0x000099a4 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r2, 0x2 + adds r0, r2 + adds r1, r0 + movs r2, 0 + ldrsb r2, [r4, r2] + ldrb r3, [r1] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + blt _080E7D5A + subs r0, r3, 0x1 + strb r0, [r4] +_080E7D5A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E7D60: .4byte 0x02001000 +_080E7D64: .4byte 0x000099a5 +_080E7D68: .4byte 0x000099a4 + thumb_func_end sub_80E7D30 + + thumb_func_start sub_80E7D6C +sub_80E7D6C: @ 80E7D6C + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080E7D94 @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r4, r1 + bcs _080E7D8E + adds r5, r0, 0 +_080E7D7A: + adds r0, r4, 0 + ldr r1, _080E7D98 @ =0x0000ffff + bl sub_80E7F00 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r5, 0xA] + cmp r4, r0 + bcc _080E7D7A +_080E7D8E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7D94: .4byte 0x02001000 +_080E7D98: .4byte 0x0000ffff + thumb_func_end sub_80E7D6C + + thumb_func_start sub_80E7D9C +sub_80E7D9C: @ 80E7D9C + push {r4,r5,lr} + movs r2, 0 + ldr r0, _080E7DCC @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r2, r1 + bcs _080E7DC6 + adds r3, r0, 0 + ldr r4, [r3, 0x4] + adds r5, r3, 0 + adds r5, 0xC +_080E7DB0: + lsls r0, r2, 1 + adds r1, r0, r4 + adds r0, r5 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r0, [r3, 0xA] + cmp r2, r0 + bcc _080E7DB0 +_080E7DC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E7DCC: .4byte 0x02001000 + thumb_func_end sub_80E7D9C + + thumb_func_start sub_80E7DD0 +sub_80E7DD0: @ 80E7DD0 + push {r4,lr} + ldr r2, _080E7E28 @ =0x02001000 + ldr r1, _080E7E2C @ =0x000099a5 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + ldr r3, _080E7E30 @ =0x000099a4 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 2 + adds r1, r0 + adds r3, 0x86 + adds r0, r2, r3 + adds r1, r0 + ldrh r4, [r1] + adds r0, r2, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E7E34 + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r2, 0 + adds r1, 0x7E + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bls _080E7E34 + adds r0, r4, 0 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x7 + bne _080E7E34 + movs r0, 0 + b _080E7E46 + .align 2, 0 +_080E7E28: .4byte 0x02001000 +_080E7E2C: .4byte 0x000099a5 +_080E7E30: .4byte 0x000099a4 +_080E7E34: + ldr r0, _080E7E4C @ =0x02001000 + adds r0, 0x27 + ldrb r0, [r0] + adds r1, r4, 0 + bl sub_80E7F00 + bl sub_80E95A4 + movs r0, 0x1 +_080E7E46: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E7E4C: .4byte 0x02001000 + thumb_func_end sub_80E7DD0 + + thumb_func_start sub_80E7E50 +sub_80E7E50: @ 80E7E50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r5, 0 + movs r2, 0 + ldr r1, _080E7EF0 @ =0x02001000 + adds r3, r1, 0 + adds r3, 0x84 + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r2, r0 + bge _080E7EDE + mov r8, r1 + adds r0, r1, 0 + str r0, [sp] +_080E7E74: + mov r0, r8 + adds r0, 0x7E + adds r0, r2, r0 + movs r1, 0 + strb r1, [r0] + movs r3, 0 + ldr r6, _080E7EF4 @ =0x02001083 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r1, r2, 0x1 + str r1, [sp, 0x4] + cmp r3, r0 + bge _080E7ECE + ldr r6, [sp] + mov r12, r6 + movs r0, 0 + mov r10, r0 + ldr r1, _080E7EF4 @ =0x02001083 + mov r9, r1 + ldr r7, _080E7EF8 @ =0x0200100c + lsls r4, r2, 1 +_080E7E9E: + lsls r1, r5, 1 + adds r2, r1, r7 + mov r6, r12 + ldr r0, [r6, 0x4] + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + adds r0, r3, r4 + mov r1, r12 + adds r1, 0x8C + adds r0, r1 + mov r1, r10 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + mov r6, r9 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r3, r0 + blt _080E7E9E +_080E7ECE: + ldr r1, [sp, 0x4] + lsls r0, r1, 16 + lsrs r2, r0, 16 + ldr r6, _080E7EFC @ =0x02001084 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080E7E74 +_080E7EDE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7EF0: .4byte 0x02001000 +_080E7EF4: .4byte 0x02001083 +_080E7EF8: .4byte 0x0200100c +_080E7EFC: .4byte 0x02001084 + thumb_func_end sub_80E7E50 + + thumb_func_start sub_80E7F00 +sub_80E7F00: @ 80E7F00 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r7, _080E7F68 @ =0x02001000 + adds r0, r7, 0 + adds r0, 0x83 + movs r4, 0 + ldrsb r4, [r0, r4] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r6, 0 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r0, r6, 1 + adds r1, r7, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + bl sub_80EB2D4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r9 + bl sub_80EB2D4 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, 0x7 + bne _080E7F6C + cmp r3, 0x7 + beq _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + subs r0, 0x1 + b _080E7F7A + .align 2, 0 +_080E7F68: .4byte 0x02001000 +_080E7F6C: + cmp r3, 0x7 + bne _080E7F7C + adds r1, r7, 0 + adds r1, 0x7E + adds r1, r5, r1 + ldrb r0, [r1] + adds r0, 0x1 +_080E7F7A: + strb r0, [r1] +_080E7F7C: + movs r3, 0 + ldr r2, _080E7FA4 @ =0x02001000 + lsls r0, r5, 1 + add r0, r8 + adds r1, r2, 0 + adds r1, 0x8C + adds r0, r1 + strb r3, [r0] + lsls r0, r6, 1 + adds r2, 0xC + adds r0, r2 + mov r1, r9 + strh r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E7FA4: .4byte 0x02001000 + thumb_func_end sub_80E7F00 + + thumb_func_start sub_80E7FA8 +sub_80E7FA8: @ 80E7FA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r8, r0 + movs r5, 0 + ldr r0, _080E8040 @ =0x02001000 + ldrb r1, [r0, 0xA] + cmp r8, r1 + bcs _080E802E + ldr r3, _080E8044 @ =0x00009e14 + adds r6, r0, r3 + ldr r1, _080E8048 @ =0x00009e41 + adds r1, r0 + mov r9, r1 +_080E7FC8: + ldr r3, _080E804C @ =0xffff61ec + adds r7, r6, r3 + ldr r0, [r7, 0x4] + lsls r4, r5, 1 + adds r0, r4, r0 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r1, _080E8050 @ =0xffff61f8 + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + mov r0, r9 + movs r2, 0 + bl sub_80EB218 + adds r1, r6, 0 + mov r2, r9 + ldrb r0, [r1] + adds r4, r5, 0x1 + ldrb r3, [r2] + cmp r0, r3 + bne _080E8018 + adds r3, r7, 0 + cmp r0, 0xFF + beq _080E8010 +_080E8000: + adds r1, 0x1 + adds r2, 0x1 + ldrb r0, [r1] + ldrb r5, [r2] + cmp r0, r5 + bne _080E8018 + cmp r0, 0xFF + bne _080E8000 +_080E8010: + ldrb r0, [r1] + ldrb r2, [r2] + cmp r0, r2 + beq _080E8024 +_080E8018: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r3, _080E8040 @ =0x02001000 +_080E8024: + lsls r0, r4, 16 + lsrs r5, r0, 16 + ldrb r3, [r3, 0xA] + cmp r5, r3 + bcc _080E7FC8 +_080E802E: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080E8040: .4byte 0x02001000 +_080E8044: .4byte 0x00009e14 +_080E8048: .4byte 0x00009e41 +_080E804C: .4byte 0xffff61ec +_080E8050: .4byte 0xffff61f8 + thumb_func_end sub_80E7FA8 + + thumb_func_start sub_80E8054 +sub_80E8054: @ 80E8054 + push {r4,lr} + movs r1, 0 + ldr r2, _080E8078 @ =0x02001000 + ldrb r0, [r2, 0xA] + cmp r1, r0 + bcs _080E808A + adds r4, r2, 0 + adds r4, 0xC + ldr r3, _080E807C @ =0x0000ffff + adds r2, r0, 0 +_080E8068: + lsls r0, r1, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, r3 + beq _080E8080 + movs r0, 0 + b _080E808C + .align 2, 0 +_080E8078: .4byte 0x02001000 +_080E807C: .4byte 0x0000ffff +_080E8080: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080E8068 +_080E808A: + movs r0, 0x1 +_080E808C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E8054 + + thumb_func_start sub_80E8094 +sub_80E8094: @ 80E8094 + push {r4-r7,lr} + movs r5, 0 + ldr r6, _080E80C4 @ =0x0200ae14 + adds r7, r6, 0 + adds r7, 0x2D +_080E809E: + lsls r4, r5, 1 + ldr r1, _080E80C8 @ =0xffff61f8 + adds r0, r6, r1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + ldr r0, _080E80CC @ =gMysteryEventPhrase + adds r4, r0 + ldrh r1, [r4] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + adds r3, r6, 0 + adds r4, r7, 0 + b _080E80D8 + .align 2, 0 +_080E80C4: .4byte 0x0200ae14 +_080E80C8: .4byte 0xffff61f8 +_080E80CC: .4byte gMysteryEventPhrase +_080E80D0: + adds r4, 0x1 + adds r3, 0x1 + cmp r2, r1 + bne _080E80F4 +_080E80D8: + ldrb r2, [r3] + adds r0, r2, 0 + cmp r0, 0xFF + beq _080E80EE + ldrb r1, [r4] + adds r0, r1, 0 + cmp r0, 0xFF + bne _080E80D0 + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E80F4 +_080E80EE: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080E80F8 +_080E80F4: + movs r0, 0 + b _080E8104 +_080E80F8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080E809E + movs r0, 0x1 +_080E8104: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E8094 + + thumb_func_start sub_80E810C +sub_80E810C: @ 80E810C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r6, _080E8198 @ =0x0200ae6e + ldr r0, _080E819C @ =0xffff6192 + adds r0, r6 + mov r9, r0 + movs r1, 0 + mov r8, r1 + adds r7, r6, 0 + adds r7, 0x80 + ldr r2, _080E81A0 @ =gBerryMasterWifePhrases + mov r10, r2 +_080E812C: + mov r0, r9 + ldrh r1, [r0, 0xC] + adds r0, r6, 0 + movs r2, 0 + bl sub_80EB218 + mov r1, r8 + strb r1, [r0] + adds r0, 0x1 + mov r2, r9 + ldrh r1, [r2, 0xE] + movs r2, 0 + bl sub_80EB218 + lsls r4, r5, 2 + mov r1, r10 + adds r0, r4, r1 + ldrh r1, [r0] + adds r0, r7, 0 + movs r2, 0 + bl sub_80EB218 + mov r2, r8 + strb r2, [r0] + adds r0, 0x1 + ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + adds r0, r6, 0 + adds r3, r7, 0 + adds r4, r5, 0x1 +_080E8170: + ldrb r2, [r0] + cmp r2, 0xFF + beq _080E818A + ldrb r1, [r3] + cmp r1, 0xFF + beq _080E8184 + adds r3, 0x1 + adds r0, 0x1 + cmp r2, r1 + beq _080E8170 +_080E8184: + ldrb r0, [r0] + cmp r0, 0xFF + bne _080E81A8 +_080E818A: + ldrb r0, [r3] + cmp r0, 0xFF + bne _080E81A8 + lsls r0, r4, 24 + lsrs r0, 24 + b _080E81B2 + .align 2, 0 +_080E8198: .4byte 0x0200ae6e +_080E819C: .4byte 0xffff6192 +_080E81A0: .4byte gBerryMasterWifePhrases +_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 +_080E81A8: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _080E812C + movs r0, 0 +_080E81B2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E810C + + thumb_func_start sub_80E81C0 +sub_80E81C0: @ 80E81C0 + push {r4,lr} + ldr r0, _080E81EC @ =gStringVar2 + ldr r4, _080E81F0 @ =0x02001000 + ldr r2, _080E81F4 @ =0x00009c7c + adds r1, r4, r2 + ldrh r1, [r1] + movs r2, 0 + bl sub_80EB218 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + ldr r1, _080E81F8 @ =0x00009c7e + adds r4, r1 + ldrh r1, [r4] + movs r2, 0 + bl sub_80EB218 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E81EC: .4byte gStringVar2 +_080E81F0: .4byte 0x02001000 +_080E81F4: .4byte 0x00009c7c +_080E81F8: .4byte 0x00009c7e + thumb_func_end sub_80E81C0 + + thumb_func_start sub_80E81FC +sub_80E81FC: @ 80E81FC + push {lr} + movs r0, 0x5 + bl PlaySE + bl sub_80E95A4 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80E81FC + + thumb_func_start sub_80E8218 +sub_80E8218: @ 80E8218 + push {r4,r5,lr} + sub sp, 0x40 + mov r1, sp + ldr r0, _080E8260 @ =gSpriteSheets_Interview + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + ldr r0, [r0] + str r0, [r1] + add r4, sp, 0x28 + adds r1, r4, 0 + ldr r0, _080E8264 @ =gSpritePalettes_Interview + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + bl sub_80E8268 + bl sub_80E8818 + bl sub_80E8A7C + add sp, 0x40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8260: .4byte gSpriteSheets_Interview +_080E8264: .4byte gSpritePalettes_Interview + thumb_func_end sub_80E8218 + + thumb_func_start sub_80E8268 +sub_80E8268: @ 80E8268 + push {lr} + ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E82B4 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _080E82B8 @ =gUnknown_083DB694 + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x8A + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x8 + movs r2, 0 + strh r0, [r1, 0x22] + adds r0, r3, 0 + adds r0, 0x88 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x20] + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + adds r0, r3, 0 + adds r0, 0x98 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080E82B0: .4byte gSpriteTemplate_83DBBFC +_080E82B4: .4byte gSprites +_080E82B8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8268 + + thumb_func_start sub_80E82BC +sub_80E82BC: @ 80E82BC + push {r4-r7,lr} + adds r3, r0, 0 + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080E838C + ldr r0, _080E8334 @ =gUnknown_083DB694 + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x87 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _080E836C + adds r0, r2, 0 + adds r0, 0x86 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r2, 0 + adds r0, 0x85 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r4, r0, 16 + movs r7, 0 + movs r1, 0 + cmp r7, r4 + bcs _080E8316 + lsls r6, r5, 1 + adds r2, 0x8C +_080E8300: + adds r0, r1, r6 + adds r0, r2, r0 + ldrb r0, [r0] + adds r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r4 + bcc _080E8300 +_080E8316: + mov r0, r12 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r5, r0 + bne _080E8338 + movs r0, 0x60 + strh r0, [r3, 0x22] + lsls r0, r4, 3 + subs r0, r4 + adds r0, 0x3 + b _080E8356 + .align 2, 0 +_080E8334: .4byte gUnknown_083DB694 +_080E8338: + adds r1, r2, 0 + adds r1, 0x8A + lsls r0, r5, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 3 + adds r0, 0x8 + strh r0, [r3, 0x22] + adds r0, r2, 0 + adds r0, 0x88 + ldrh r0, [r0] + adds r0, r7 + movs r1, 0xB + muls r1, r4 + adds r0, r1 +_080E8356: + lsls r0, 3 + adds r0, 0x4 + strh r0, [r3, 0x20] + movs r1, 0 + ldr r0, _080E8368 @ =0x0000fffa + strh r0, [r3, 0x24] + strh r1, [r3, 0x2E] + b _080E838C + .align 2, 0 +_080E8368: .4byte 0x0000fffa +_080E836C: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E838C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x24] + adds r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E838C + ldr r0, _080E8394 @ =0x0000fffa + strh r0, [r3, 0x24] +_080E838C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8394: .4byte 0x0000fffa + thumb_func_end sub_80E82BC + + thumb_func_start sub_80E8398 +sub_80E8398: @ 80E8398 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + beq _080E83D4 + cmp r3, 0x1 + bgt _080E83AC + cmp r3, 0 + beq _080E83B2 + b _080E8416 +_080E83AC: + cmp r3, 0x2 + beq _080E83F8 + b _080E8416 +_080E83B2: + ldr r0, _080E83D0 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0x98 + ldr r1, [r0] + strh r3, [r1, 0x30] + ldr r1, [r0] + strh r3, [r1, 0x24] + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83D0: .4byte gUnknown_083DB694 +_080E83D4: + ldr r0, _080E83F4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0x98 + ldr r0, [r1] + movs r2, 0 + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r2, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _080E8414 + .align 2, 0 +_080E83F4: .4byte gUnknown_083DB694 +_080E83F8: + ldr r0, _080E841C @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0x98 + ldr r2, [r1] + movs r3, 0 + movs r0, 0x1 + strh r0, [r2, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_080E8414: + strb r0, [r1] +_080E8416: + pop {r0} + bx r0 + .align 2, 0 +_080E841C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8398 + + thumb_func_start sub_80E8420 +sub_80E8420: @ 80E8420 + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080E84E4 @ =gUnknown_083DB694 + ldr r7, [r1] + adds r5, r7, 0 + adds r5, 0x9C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r4, _080E84E8 @ =gSprites + adds r1, r4 + str r1, [r5] + ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C + str r0, [sp, 0x8] + ldr r0, _080E84F0 @ =sub_80E872C + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r6, r7, 0 + adds r6, 0xA0 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r6] + ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C + str r0, [sp, 0x8] + ldr r0, _080E84F8 @ =sub_80E8760 + str r0, [sp, 0x14] + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r2, r7, 0 + adds r2, 0xA4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + str r1, [r2] + ldr r0, [r5] + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r0, [r6] + strh r1, [r0, 0x2E] + ldr r0, [r2] + strh r1, [r0, 0x2E] + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 20 + ldr r2, _080E84FC @ =0x00000101 + adds r0, r2 + strh r0, [r1, 0x34] + bl sub_80E8534 + adds r1, r7, 0 + adds r1, 0x96 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080E8500 @ =REG_BLDCNT + movs r3, 0xFD + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E84E0: .4byte gSpriteTemplate_83DBCAC +_080E84E4: .4byte gUnknown_083DB694 +_080E84E8: .4byte gSprites +_080E84EC: .4byte gSpriteAnimTable_83DBC8C +_080E84F0: .4byte sub_80E872C +_080E84F4: .4byte gSpriteAnimTable_83DBC9C +_080E84F8: .4byte sub_80E8760 +_080E84FC: .4byte 0x00000101 +_080E8500: .4byte REG_BLDCNT + thumb_func_end sub_80E8420 + + thumb_func_start sub_80E8504 +sub_80E8504: @ 80E8504 + push {r4,lr} + ldr r0, _080E8530 @ =gUnknown_083DB694 + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x9C + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0 + adds r0, 0xA4 + ldr r0, [r0] + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8530: .4byte gUnknown_083DB694 + thumb_func_end sub_80E8504 + + thumb_func_start sub_80E8534 +sub_80E8534: @ 80E8534 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _080E8554 @ =gUnknown_083DB694 + ldr r3, [r1] + ldr r2, _080E8558 @ =0x000001b7 + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r4, r1, 0 + cmp r0, 0 + beq _080E8560 + ldr r1, _080E855C @ =gUnknown_020388AC + movs r0, 0x1 + b _080E8598 + .align 2, 0 +_080E8554: .4byte gUnknown_083DB694 +_080E8558: .4byte 0x000001b7 +_080E855C: .4byte gUnknown_020388AC +_080E8560: + adds r0, r3, 0 + adds r0, 0x26 + ldrb r2, [r0] + cmp r2, 0 + bne _080E8578 + ldr r0, _080E8574 @ =gUnknown_020388AC + strb r2, [r0] + adds r7, r0, 0 + b _080E859C + .align 2, 0 +_080E8574: .4byte gUnknown_020388AC +_080E8578: + movs r1, 0xD4 + lsls r1, 1 + adds r0, r3, r1 + ldrh r1, [r0] + movs r0, 0xC0 + lsls r0, 3 + cmp r1, r0 + bne _080E8594 + ldr r1, _080E8590 @ =gUnknown_020388AC + movs r0, 0x2 + b _080E8598 + .align 2, 0 +_080E8590: .4byte gUnknown_020388AC +_080E8594: + ldr r1, _080E85F4 @ =gUnknown_020388AC + movs r0, 0x3 +_080E8598: + strb r0, [r1] + adds r7, r1, 0 +_080E859C: + ldr r2, [r4] + adds r4, r2, 0 + adds r4, 0x9C + ldr r1, [r4] + ldrb r0, [r7] + movs r3, 0 + mov r8, r3 + strh r0, [r1, 0x32] + adds r5, r2, 0 + adds r5, 0xA0 + ldr r1, [r5] + ldrb r0, [r7] + strh r0, [r1, 0x32] + adds r6, r2, 0 + adds r6, 0xA4 + ldr r1, [r6] + ldrb r0, [r7] + strh r0, [r1, 0x32] + ldr r0, [r4] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r5] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r6] + ldrb r1, [r7] + bl StartSpriteAnim + ldr r0, [r4] + movs r1, 0x8 + strh r1, [r0, 0x38] + ldr r0, [r4] + strh r1, [r0, 0x3A] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x30] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E85F4: .4byte gUnknown_020388AC + thumb_func_end sub_80E8534 + + thumb_func_start sub_80E85F8 +sub_80E85F8: @ 80E85F8 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080E8624 + ldr r1, _080E8620 @ =gSineTable + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + adds r0, 0x8 + strh r0, [r5, 0x38] + b _080E863A + .align 2, 0 +_080E8620: .4byte gSineTable +_080E8624: + ldr r1, _080E8688 @ =gSineTable + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 21 + movs r0, 0x8 + subs r0, r1 + strh r0, [r5, 0x3A] +_080E863A: + ldrh r0, [r5, 0x30] + adds r0, 0x5 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x30] + ldr r2, _080E868C @ =REG_BLDALPHA + ldrh r0, [r5, 0x3A] + lsls r0, 8 + ldrh r1, [r5, 0x38] + orrs r0, r1 + strh r0, [r2] + ldr r0, _080E8690 @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E871A + bl sub_80E8534 + adds r1, r6, 0 + adds r1, 0x9C + ldr r0, [r1] + movs r2, 0x8 + strh r2, [r0, 0x38] + ldr r0, [r1] + strh r2, [r0, 0x3A] + ldr r1, [r1] + movs r0, 0 + strh r0, [r1, 0x30] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080E86C4 + cmp r0, 0x1 + bgt _080E8694 + cmp r0, 0 + beq _080E869E + b _080E871A + .align 2, 0 +_080E8688: .4byte gSineTable +_080E868C: .4byte REG_BLDALPHA +_080E8690: .4byte gUnknown_083DB694 +_080E8694: + cmp r0, 0x2 + beq _080E86D6 + cmp r0, 0x3 + beq _080E86DE + b _080E871A +_080E869E: + ldr r2, _080E86C0 @ =0x000001a9 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x20 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r2, 0xC + b _080E870A + .align 2, 0 +_080E86C0: .4byte 0x000001a9 +_080E86C4: + movs r0, 0xD8 + strh r0, [r5, 0x20] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _080E8714 +_080E86D6: + movs r0, 0x97 + strh r0, [r5, 0x20] + movs r0, 0x60 + b _080E8718 +_080E86DE: + ldr r4, _080E8720 @ =gUnknown_083DBCC4 + ldr r2, _080E8724 @ =0x000001a9 + adds r0, r6, r2 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xD4 + lsls r0, 1 + adds r3, r6, r0 + movs r2, 0 + ldrsb r2, [r3, r2] + lsls r0, r2, 3 + subs r0, r2 + adds r1, r0 + adds r1, r4 + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 3 + adds r0, 0x1F + strh r0, [r5, 0x20] + movs r0, 0 + ldrsb r0, [r3, r0] + ldr r2, _080E8728 @ =0x000001b5 +_080E870A: + adds r1, r6, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 +_080E8714: + lsls r0, 4 + adds r0, 0x60 +_080E8718: + strh r0, [r5, 0x22] +_080E871A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8720: .4byte gUnknown_083DBCC4 +_080E8724: .4byte 0x000001a9 +_080E8728: .4byte 0x000001b5 + thumb_func_end sub_80E85F8 + + thumb_func_start sub_80E872C +sub_80E872C: @ 80E872C + push {lr} + adds r2, r0, 0 + ldr r0, _080E875C @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8756 + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080E8756 + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E8756: + pop {r0} + bx r0 + .align 2, 0 +_080E875C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E872C + + thumb_func_start sub_80E8760 +sub_80E8760: @ 80E8760 + push {lr} + adds r2, r0, 0 + ldr r0, _080E8780 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x96 + ldrb r0, [r0] + cmp r0, 0 + beq _080E879E + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080E8784 + cmp r0, 0x2 + beq _080E878E + b _080E879E + .align 2, 0 +_080E8780: .4byte gUnknown_083DB694 +_080E8784: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x40 + b _080E8796 +_080E878E: + adds r1, 0x9C + ldr r0, [r1] + ldrh r0, [r0, 0x20] + adds r0, 0x15 +_080E8796: + strh r0, [r2, 0x20] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0x22] +_080E879E: + pop {r0} + bx r0 + thumb_func_end sub_80E8760 + + thumb_func_start sub_80E87A4 +sub_80E87A4: @ 80E87A4 + push {r4,lr} + lsls r0, 24 + ldr r1, _080E87C8 @ =gUnknown_083DB694 + ldr r1, [r1] + adds r2, r1, 0 + adds r2, 0xA8 + ldr r3, [r2] + movs r4, 0 + cmp r0, 0 + bne _080E87BA + movs r4, 0x1 +_080E87BA: + movs r1, 0 + strh r4, [r3, 0x30] + ldr r0, [r2] + strh r1, [r0, 0x24] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E87C8: .4byte gUnknown_083DB694 + thumb_func_end sub_80E87A4 + + thumb_func_start sub_80E87CC +sub_80E87CC: @ 80E87CC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E8810 @ =gUnknown_083DB694 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0xA8 + ldr r0, [r0] + movs r3, 0 + cmp r4, 0 + bne _080E87E6 + movs r3, 0x1 +_080E87E6: + adds r2, r0, 0 + adds r2, 0x3E + lsls r3, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + adds r0, r4, 0 + bl sub_80E87A4 + cmp r4, 0 + beq _080E880A + ldr r0, _080E8814 @ =0x000001b9 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080E880A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E8810: .4byte gUnknown_083DB694 +_080E8814: .4byte 0x000001b9 + thumb_func_end sub_80E87CC + + thumb_func_start sub_80E8818 +sub_80E8818: @ 80E8818 + push {lr} + ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080E8854 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x2E] + strh r0, [r1, 0x30] + ldr r0, _080E8858 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xA8 + str r1, [r0] + ldr r0, _080E885C @ =sub_80E8860 + str r0, [r1, 0x1C] + movs r0, 0 + bl sub_80E87CC + pop {r0} + bx r0 + .align 2, 0 +_080E8850: .4byte gSpriteTemplate_83DBBFC +_080E8854: .4byte gSprites +_080E8858: .4byte gUnknown_083DB694 +_080E885C: .4byte sub_80E8860 + thumb_func_end sub_80E8818 + + thumb_func_start sub_80E8860 +sub_80E8860: @ 80E8860 + push {r4,r5,lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r4, [r2, r0] + cmp r4, 0 + bne _080E88E4 + ldr r0, _080E88B0 @ =gUnknown_083DB694 + ldr r3, [r0] + ldr r1, _080E88B4 @ =0x000001b9 + adds r0, r3, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080E88C4 + ldr r5, _080E88B8 @ =0x000099a5 + adds r0, r3, r5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x58 + muls r0, r1 + adds r0, 0x2C + strh r0, [r2, 0x20] + ldr r1, _080E88BC @ =0x000099a4 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r5, 0x84 + adds r1, r3, r5 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r0, r1 + lsls r0, 4 + adds r0, 0x60 + strh r0, [r2, 0x22] + ldr r0, _080E88C0 @ =0x0000fffa + strh r0, [r2, 0x24] + strh r4, [r2, 0x2E] + b _080E88E4 + .align 2, 0 +_080E88B0: .4byte gUnknown_083DB694 +_080E88B4: .4byte 0x000001b9 +_080E88B8: .4byte 0x000099a5 +_080E88BC: .4byte 0x000099a4 +_080E88C0: .4byte 0x0000fffa +_080E88C4: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080E88E4 + strh r1, [r2, 0x2E] + ldrh r0, [r2, 0x24] + adds r0, 0x1 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080E88E4 + ldr r0, _080E88EC @ =0x0000fffa + strh r0, [r2, 0x24] +_080E88E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E88EC: .4byte 0x0000fffa + thumb_func_end sub_80E8860 + + thumb_func_start sub_80E88F0 +sub_80E88F0: @ 80E88F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r0, _080E8950 @ =gUnknown_083DB694 + mov r8, r0 + ldr r0, [r0] + movs r6, 0x4 + movs r5, 0 + movs r1, 0xB4 + adds r1, r0 + mov r12, r1 + adds r7, r0, 0 + adds r7, 0xAC +_080E890C: + lsls r2, r4, 2 + adds r3, r7, r2 + ldr r1, [r3] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r3] + strh r5, [r0, 0x30] + add r2, r12 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldr r0, [r2] + strh r5, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E890C + mov r1, r8 + ldr r0, [r1] + ldr r1, _080E8954 @ =0x00009c70 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8950: .4byte gUnknown_083DB694 +_080E8954: .4byte 0x00009c70 + thumb_func_end sub_80E88F0 + + thumb_func_start sub_80E8958 +sub_80E8958: @ 80E8958 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _080E89B4 + movs r0, 0x64 + mov r9, r0 + ldr r0, _080E8998 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r3, _080E899C @ =0x00009c6c + adds r1, r2, r3 + ldr r3, _080E89A0 @ =0x000001b5 + adds r0, r2, r3 + str r0, [r1] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E89A8 + movs r1, 0xDB + lsls r1, 1 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E89A4 @ =0x00009c71 + adds r1, r2, r3 + strb r0, [r1] + b _080E8A00 + .align 2, 0 +_080E8998: .4byte gUnknown_083DB694 +_080E899C: .4byte 0x00009c6c +_080E89A0: .4byte 0x000001b5 +_080E89A4: .4byte 0x00009c71 +_080E89A8: + ldr r1, _080E89B0 @ =0x00009c71 + adds r0, r2, r1 + strb r7, [r0] + b _080E8A00 + .align 2, 0 +_080E89B0: .4byte 0x00009c71 +_080E89B4: + movs r3, 0x78 + mov r9, r3 + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E8A68 @ =0x00009c6c + adds r1, r2, r0 + ldr r3, _080E8A6C @ =0x00009a29 + adds r0, r2, r3 + str r0, [r1] + ldr r1, _080E8A70 @ =0x00009a28 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x4 + ldr r3, _080E8A74 @ =0x00009c71 + adds r1, r2, r3 + strb r0, [r1] + movs r4, 0 + adds r5, r2, 0 + adds r5, 0xB4 + movs r0, 0x5 + negs r0, r0 + mov r12, r0 + movs r6, 0x1 +_080E89E2: + lsls r3, r4, 2 + adds r3, r5, r3 + ldr r1, [r3] + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldr r0, [r3] + strh r6, [r0, 0x30] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E89E2 +_080E8A00: + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r3, _080E8A74 @ =0x00009c71 + adds r1, r2, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E8A14 + movs r0, 0 + strb r0, [r1] +_080E8A14: + movs r4, 0 + adds r6, r2, 0 + adds r6, 0xAC + movs r0, 0x5 + negs r0, r0 + mov r8, r0 +_080E8A20: + lsls r2, r4, 2 + adds r2, r6, r2 + ldr r0, [r2] + mov r1, r9 + strh r1, [r0, 0x20] + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r8 + ands r0, r3 + strb r0, [r1] + ldr r0, [r2] + movs r5, 0x1 + strh r5, [r0, 0x30] + ldr r0, [r2] + adds r1, r7, 0 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E8A20 + ldr r0, _080E8A64 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E8A78 @ =0x00009c70 + adds r0, r1 + strb r5, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8A64: .4byte gUnknown_083DB694 +_080E8A68: .4byte 0x00009c6c +_080E8A6C: .4byte 0x00009a29 +_080E8A70: .4byte 0x00009a28 +_080E8A74: .4byte 0x00009c71 +_080E8A78: .4byte 0x00009c70 + thumb_func_end sub_80E8958 + + thumb_func_start sub_80E8A7C +sub_80E8A7C: @ 80E8A7C + push {r4-r7,lr} + sub sp, 0x18 + mov r1, sp + ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r5, 0 +_080E8A8E: + lsls r2, r5, 3 + adds r2, r5 + lsls r2, 19 + movs r0, 0xA8 + lsls r0, 15 + adds r2, r0 + asrs r2, 16 + mov r0, sp + movs r1, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C @ =gUnknown_083DB694 + ldr r2, [r0] + lsls r0, r5, 2 + adds r2, 0xAC + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 @ =gSprites + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + adds r3, 0x3F + movs r0, 0x1 + adds r2, r5, 0 + ands r2, r0 + lsls r2, 1 + ldrb r0, [r3] + movs r4, 0x3 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8A8E + mov r0, sp + movs r1, 0x3 + strh r1, [r0] + ldr r0, _080E8B74 @ =gUnknown_083DBD10 + str r0, [sp, 0x8] + movs r5, 0 + movs r7, 0x3F + movs r6, 0x40 +_080E8AF6: + lsls r4, r5, 2 + adds r1, r4, r5 + lsls r1, 19 + movs r0, 0x8E + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080E8B6C @ =gUnknown_083DB694 + ldr r2, [r0] + adds r2, 0xB4 + adds r2, r4 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8B70 @ =gSprites + adds r0, r1 + str r0, [r2] + strh r5, [r0, 0x2E] + ldr r3, [r2] + ldrb r1, [r3, 0x1] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x1] + ldr r3, [r2] + ldrb r1, [r3, 0x3] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r6 + strb r0, [r3, 0x3] + ldr r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080E8AF6 + movs r0, 0 + bl sub_80E8958 + bl sub_80E88F0 + add sp, 0x18 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8B68: .4byte gSpriteTemplate_83DBD18 +_080E8B6C: .4byte gUnknown_083DB694 +_080E8B70: .4byte gSprites +_080E8B74: .4byte gUnknown_083DBD10 + thumb_func_end sub_80E8A7C + + thumb_func_start sub_80E8B78 +sub_80E8B78: @ 80E8B78 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080E8BB0 @ =gUnknown_083DB694 + ldr r1, [r0] + ldr r2, _080E8BB4 @ =0x00009c70 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080E8BE8 + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + bne _080E8BBC + movs r4, 0 + ldr r2, _080E8BB8 @ =0x00009c6c + adds r0, r1, r2 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080E8BD6 + b _080E8BD4 + .align 2, 0 +_080E8BB0: .4byte gUnknown_083DB694 +_080E8BB4: .4byte 0x00009c70 +_080E8BB8: .4byte 0x00009c6c +_080E8BBC: + movs r4, 0 + ldr r2, _080E8BF0 @ =0x00009c6c + adds r0, r1, r2 + ldr r0, [r0] + adds r2, 0x5 + adds r1, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _080E8BD6 +_080E8BD4: + movs r4, 0x1 +_080E8BD6: + adds r2, r3, 0 + adds r2, 0x3E + lsls r3, r4, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080E8BE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E8BF0: .4byte 0x00009c6c + thumb_func_end sub_80E8B78 + + thumb_func_start sub_80E8BF4 +sub_80E8BF4: @ 80E8BF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r0, _080E8C28 @ =gUnknown_083DBD30 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + ldr r0, _080E8C2C @ =gUnknown_083DBD38 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0xC] + str r1, [sp, 0x10] + cmp r2, 0x2 + beq _080E8C20 + cmp r2, 0x5 + beq _080E8C30 +_080E8C20: + movs r4, 0x40 + movs r5, 0x28 + b _080E8C34 + .align 2, 0 +_080E8C28: .4byte gUnknown_083DBD30 +_080E8C2C: .4byte gUnknown_083DBD38 +_080E8C30: + movs r4, 0x24 + movs r5, 0x30 +_080E8C34: + cmp r3, 0 + beq _080E8C3C + cmp r3, 0x1 + beq _080E8C40 +_080E8C3C: + movs r0, 0x43 + b _080E8C42 +_080E8C40: + movs r0, 0x44 +_080E8C42: + mov r8, r0 + add r0, sp, 0x4 + bl LoadCompressedObjectPic + add r0, sp, 0xC + bl LoadSpritePalette + ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl CreateSprite + ldr r0, _080E8CE0 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + movs r1, 0x69 + cmp r0, 0 + bne _080E8C68 + movs r1, 0x64 +_080E8C68: + ldr r7, _080E8CE4 @ =SpriteCallbackDummy + adds r2, r4, 0 + subs r2, 0xC + movs r6, 0 + str r6, [sp] + adds r0, r1, 0 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8C9E + ldr r1, _080E8CE8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x3 + bl StartSpriteAnim +_080E8C9E: + adds r2, r4, 0 + adds r2, 0xC + str r6, [sp] + mov r0, r8 + adds r1, r7, 0 + adds r3, r5, 0 + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080E8CD0 + ldr r1, _080E8CE8 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + movs r1, 0x2 + bl StartSpriteAnim +_080E8CD0: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E8CDC: .4byte gSpriteTemplate_83DBD48 +_080E8CE0: .4byte gSaveBlock2 +_080E8CE4: .4byte SpriteCallbackDummy +_080E8CE8: .4byte gSprites + thumb_func_end sub_80E8BF4 + + thumb_func_start sub_80E8CEC +sub_80E8CEC: @ 80E8CEC + push {lr} + ldr r0, _080E8D24 @ =gUnknown_083DBD60 + bl LoadCompressedObjectPic + ldr r0, _080E8D28 @ =gUnknown_083DBD68 + bl LoadSpritePalette + ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 + movs r1, 0xE0 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080E8D3C + ldr r0, _080E8D30 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E8D34 @ =0x00009c74 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080E8D38 @ =gSprites + adds r0, r1 + str r0, [r2] + b _080E8D48 + .align 2, 0 +_080E8D24: .4byte gUnknown_083DBD60 +_080E8D28: .4byte gUnknown_083DBD68 +_080E8D2C: .4byte gSpriteTemplate_83DBDE4 +_080E8D30: .4byte gUnknown_083DB694 +_080E8D34: .4byte 0x00009c74 +_080E8D38: .4byte gSprites +_080E8D3C: + ldr r0, _080E8D4C @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E8D50 @ =0x00009c74 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_080E8D48: + pop {r0} + bx r0 + .align 2, 0 +_080E8D4C: .4byte gUnknown_083DB694 +_080E8D50: .4byte 0x00009c74 + thumb_func_end sub_80E8CEC + + thumb_func_start sub_80E8D54 +sub_80E8D54: @ 80E8D54 + push {lr} + ldr r0, _080E8D78 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r1, _080E8D7C @ =0x00009c74 + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8D88 + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8D80 + adds r0, r1, 0 + movs r1, 0x1 + bl StartSpriteAnim + b _080E8D88 + .align 2, 0 +_080E8D78: .4byte gUnknown_083DB694 +_080E8D7C: .4byte 0x00009c74 +_080E8D80: + adds r0, r1, 0 + movs r1, 0x2 + bl StartSpriteAnim +_080E8D88: + pop {r0} + bx r0 + thumb_func_end sub_80E8D54 + + thumb_func_start sub_80E8D8C +sub_80E8D8C: @ 80E8D8C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080E8DB8 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r1, _080E8DBC @ =0x00009c74 + adds r0, r2, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080E8DD2 + cmp r3, 0 + beq _080E8DCA + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E8DC0 + adds r0, r1, 0 + movs r1, 0x3 + bl StartSpriteAnim + b _080E8DD2 + .align 2, 0 +_080E8DB8: .4byte gUnknown_083DB694 +_080E8DBC: .4byte 0x00009c74 +_080E8DC0: + adds r0, r1, 0 + movs r1, 0x4 + bl StartSpriteAnim + b _080E8DD2 +_080E8DCA: + adds r0, r1, 0 + movs r1, 0x5 + bl StartSpriteAnim +_080E8DD2: + pop {r0} + bx r0 + thumb_func_end sub_80E8D8C + + thumb_func_start sub_80E8DD8 +sub_80E8DD8: @ 80E8DD8 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + ldr r0, _080E8F2C @ =REG_BG0HOFS + movs r6, 0 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + subs r0, 0x2 + strh r6, [r0] + adds r0, 0x4 + strh r6, [r0] + adds r0, 0x2 + strh r6, [r0] + ldr r1, _080E8F30 @ =REG_BG0CNT + movs r2, 0x8B + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080E8F34 @ =0x00000d09 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080E8F38 @ =gUnknown_08E945D0 + ldr r1, _080E8F3C @ =gUnknown_083DB694 + ldr r1, [r1] + mov r8, r1 + movs r4, 0xE4 + lsls r4, 1 + add r4, r8 + movs r5, 0xA0 + lsls r5, 2 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F40 @ =gUnknown_08E953D0 + movs r1, 0xD9 + lsls r1, 3 + add r1, r8 + bl LZ77UnCompWram + ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx + ldr r1, _080E8F48 @ =0x06008000 + bl LZ77UnCompVram + ldr r1, _080E8F4C @ =0x06006800 + adds r0, r4, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal + movs r1, 0x40 + movs r2, 0x40 + bl LoadPalette + ldr r1, _080E8F54 @ =REG_BG2CNT + ldr r2, _080E8F58 @ =0x00000e02 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F5C @ =0x06007000 + movs r5, 0x80 + lsls r5, 4 + mov r0, sp + strh r6, [r0] + ldr r4, _080E8F60 @ =0x040000d4 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r0, r5, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F64 @ =gUnknown_08E9AB00 + ldr r2, _080E8F68 @ =0x06006000 + str r0, [r4] + str r2, [r4, 0x4] + ldr r0, _080E8F6C @ =0x80000020 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F70 @ =gUnknown_08E9AB60 + bl LZ77UnCompVram + ldr r0, _080E8F74 @ =gUnknown_08E9AB40 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F78 @ =gUnknown_083DBDFC + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080E8F7C @ =REG_BG3CNT + ldr r2, _080E8F80 @ =0x00000f0f + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080E8F84 @ =0x06007800 + movs r0, 0 + mov r9, r0 + str r0, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r4] + str r1, [r4, 0x4] + lsrs r5, 2 + movs r0, 0x85 + lsls r0, 24 + orrs r5, r0 + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080E8F88 @ =gUnknown_083DBE40 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080E8F8C @ =gPlttBufferUnfaded + adds r1, r0, 0 + adds r1, 0x7E + ldr r3, _080E8F90 @ =0x00007fff + strh r3, [r1] + subs r1, 0x1C + ldr r2, _080E8F94 @ =0x00006f5b + strh r2, [r1] + adds r0, 0x70 + ldr r1, _080E8F98 @ =0x0000739c + strh r1, [r0] + ldr r0, _080E8F9C @ =gPlttBufferFaded + adds r4, r0, 0 + adds r4, 0x7E + strh r3, [r4] + adds r3, r0, 0 + adds r3, 0x62 + strh r2, [r3] + adds r0, 0x70 + strh r1, [r0] + movs r1, 0xBC + add r8, r1 + mov r2, r8 + strb r6, [r2] + bl sub_80E8FA4 + bl sub_80E948C + movs r0, 0xA + bl sub_80E9198 + movs r0, 0 + bl sub_80E91D4 + bl sub_80E95A4 + ldr r0, _080E8FA0 @ =REG_BLDCNT + mov r1, r9 + strh r1, [r0] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E8F2C: .4byte REG_BG0HOFS +_080E8F30: .4byte REG_BG0CNT +_080E8F34: .4byte 0x00000d09 +_080E8F38: .4byte gUnknown_08E945D0 +_080E8F3C: .4byte gUnknown_083DB694 +_080E8F40: .4byte gUnknown_08E953D0 +_080E8F44: .4byte gMenuWordGroupFrame_Gfx +_080E8F48: .4byte 0x06008000 +_080E8F4C: .4byte 0x06006800 +_080E8F50: .4byte gMenuWordGroupFrame1_Pal +_080E8F54: .4byte REG_BG2CNT +_080E8F58: .4byte 0x00000e02 +_080E8F5C: .4byte 0x06007000 +_080E8F60: .4byte 0x040000d4 +_080E8F64: .4byte gUnknown_08E9AB00 +_080E8F68: .4byte 0x06006000 +_080E8F6C: .4byte 0x80000020 +_080E8F70: .4byte gUnknown_08E9AB60 +_080E8F74: .4byte gUnknown_08E9AB40 +_080E8F78: .4byte gUnknown_083DBDFC +_080E8F7C: .4byte REG_BG3CNT +_080E8F80: .4byte 0x00000f0f +_080E8F84: .4byte 0x06007800 +_080E8F88: .4byte gUnknown_083DBE40 +_080E8F8C: .4byte gPlttBufferUnfaded +_080E8F90: .4byte 0x00007fff +_080E8F94: .4byte 0x00006f5b +_080E8F98: .4byte 0x0000739c +_080E8F9C: .4byte gPlttBufferFaded +_080E8FA0: .4byte REG_BLDCNT + thumb_func_end sub_80E8DD8 + + thumb_func_start sub_80E8FA4 +sub_80E8FA4: @ 80E8FA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x18 + str r1, [sp, 0x24] + add r2, sp, 0xC + mov r12, r2 +_080E8FBE: + mov r3, r9 + lsls r1, r3, 1 + ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2 + adds r0, r1, r4 + ldrh r2, [r0] + movs r0, 0x1F + ands r0, r2 + lsls r0, 8 + str r0, [sp] + ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8 + adds r1, r5 + ldrh r1, [r1] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0xC] + lsls r2, 16 + lsrs r0, r2, 21 + movs r3, 0x1F + ands r0, r3 + lsls r0, 8 + str r0, [sp, 0x4] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r3 + lsls r0, 8 + mov r4, r12 + str r0, [r4, 0x4] + lsrs r2, 26 + ands r2, r3 + lsls r2, 8 + str r2, [sp, 0x8] + lsrs r1, 26 + ands r1, r3 + lsls r1, 8 + str r1, [r4, 0x8] + movs r3, 0 + mov r5, r9 + lsls r5, 3 + mov r10, r5 + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x28] + ldr r4, [sp, 0x24] +_080E9016: + lsls r0, r3, 2 + adds r2, r4, r0 + mov r5, r12 + adds r1, r5, r0 + add r0, sp + ldr r1, [r1] + ldr r0, [r0] + subs r0, r1, r0 + cmp r0, 0 + bge _080E902C + adds r0, 0x7 +_080E902C: + asrs r0, 3 + str r0, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9016 + movs r4, 0 + ldr r0, _080E90FC @ =gUnknown_083DB694 + ldr r1, [r0] + mov r0, r10 + add r0, r9 + lsls r0, 1 + mov r8, r0 + movs r5, 0x1F + ldr r6, [sp, 0x24] + ldr r0, _080E9100 @ =0x00009c34 + adds r7, r1, r0 +_080E9050: + lsls r2, r4, 1 + add r2, r8 + adds r2, r7, r2 + ldr r1, [sp, 0x8] + asrs r1, 8 + ands r1, r5 + lsls r1, 10 + ldr r0, [sp, 0x4] + asrs r0, 8 + ands r0, r5 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp] + asrs r0, 8 + ands r0, r5 + orrs r1, r0 + strh r1, [r2] + movs r3, 0 + adds r4, 0x1 +_080E9076: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + adds r0, r6, r0 + ldr r1, [r2] + ldr r0, [r0] + adds r1, r0 + str r1, [r2] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080E9076 + lsls r0, r4, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080E9050 + ldr r2, _080E90FC @ =gUnknown_083DB694 + ldr r3, [r2] + mov r0, r10 + add r0, r9 + adds r0, r4 + lsls r0, 1 + ldr r4, _080E9100 @ =0x00009c34 + adds r2, r3, r4 + adds r2, r0 + mov r5, r12 + ldr r1, [r5, 0x8] + asrs r1, 8 + movs r0, 0x1F + ands r1, r0 + lsls r1, 10 + ldr r0, [r5, 0x4] + asrs r0, 8 + movs r4, 0x1F + ands r0, r4 + lsls r0, 5 + orrs r1, r0 + ldr r0, [sp, 0xC] + asrs r0, 8 + ands r0, r4 + orrs r1, r0 + strh r1, [r2] + ldr r5, [sp, 0x28] + lsls r0, r5, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x2 + bhi _080E90DA + b _080E8FBE +_080E90DA: + ldr r0, _080E9104 @ =0x00009c32 + adds r1, r3, r0 + movs r0, 0 + strb r0, [r1] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 +_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 +_080E90FC: .4byte gUnknown_083DB694 +_080E9100: .4byte 0x00009c34 +_080E9104: .4byte 0x00009c32 + thumb_func_end sub_80E8FA4 + + thumb_func_start sub_80E9108 +sub_80E9108: @ 80E9108 + push {r4-r7,lr} + lsls r0, 24 + ldr r1, _080E9164 @ =gUnknown_083DB694 + ldr r2, [r1] + ldr r3, _080E9168 @ =0x00009c32 + adds r1, r2, r3 + lsrs r0, 24 + ldrb r3, [r1] + adds r0, r3 + strb r0, [r1] + movs r4, 0 + ldr r0, _080E916C @ =gPlttBufferUnfaded + mov r12, r0 + adds r6, r1, 0 + ldr r3, _080E9170 @ =0x00009c34 + adds r5, r2, r3 + ldr r7, _080E9174 @ =gPlttBufferFaded +_080E912A: + adds r2, r4, 0 + adds r2, 0x51 + lsls r2, 1 + mov r0, r12 + adds r3, r2, r0 + ldrb r0, [r6] + lsls r0, 1 + lsls r1, r4, 3 + adds r1, r4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r3] + adds r2, r7 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080E912A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9164: .4byte gUnknown_083DB694 +_080E9168: .4byte 0x00009c32 +_080E916C: .4byte gPlttBufferUnfaded +_080E9170: .4byte 0x00009c34 +_080E9174: .4byte gPlttBufferFaded + thumb_func_end sub_80E9108 + + thumb_func_start sub_80E9178 +sub_80E9178: @ 80E9178 + push {lr} + ldr r0, _080E9190 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E9194 @ =0x00009c32 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0 + bl sub_80E9108 + pop {r0} + bx r0 + .align 2, 0 +_080E9190: .4byte gUnknown_083DB694 +_080E9194: .4byte 0x00009c32 + thumb_func_end sub_80E9178 + + thumb_func_start sub_80E9198 +sub_80E9198: @ 80E9198 + ldr r1, _080E91A0 @ =gUnknown_03000740 + strb r0, [r1] + bx lr + .align 2, 0 +_080E91A0: .4byte gUnknown_03000740 + thumb_func_end sub_80E9198 + + thumb_func_start sub_80E91A4 +sub_80E91A4: @ 80E91A4 + ldr r0, _080E91AC @ =gUnknown_03000740 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080E91AC: .4byte gUnknown_03000740 + thumb_func_end sub_80E91A4 + + thumb_func_start sub_80E91B0 +sub_80E91B0: @ 80E91B0 + push {lr} + sub sp, 0x8 + lsls r2, 24 + lsls r1, 27 + lsrs r1, 24 + lsrs r2, 21 + lsls r3, 27 + lsrs r3, 24 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + movs r3, 0xB0 + bl sub_8072AB0 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_80E91B0 + + thumb_func_start sub_80E91D4 +sub_80E91D4: @ 80E91D4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + cmp r4, 0xA + bne _080E9200 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0xA + bl sub_80E9198 + b _080E935C + .align 2, 0 +_080E91FC: .4byte gWindowConfig_81E6DA8 +_080E9200: + bl sub_80E91A4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _080E9218 + movs r0, 0x3 + movs r1, 0xE + movs r2, 0x1A + movs r3, 0x13 + bl MenuDrawTextWindow +_080E9218: + adds r0, r4, 0 + bl sub_80E9198 + cmp r4, 0x9 + bls _080E9224 + b _080E935C +_080E9224: + lsls r0, r4, 2 + ldr r1, _080E9230 @ =_080E9234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9230: .4byte _080E9234 + .align 2, 0 +_080E9234: + .4byte _080E925C + .4byte _080E9284 + .4byte _080E92AC + .4byte _080E92C4 + .4byte _080E92F0 + .4byte _080E9308 + .4byte _080E9310 + .4byte _080E9318 + .4byte _080E933C + .4byte _080E9350 +_080E925C: + ldr r0, _080E9278 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r1, _080E927C @ =0x00009c80 + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9280 @ =0x00009cc9 + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E9278: .4byte gUnknown_083DB694 +_080E927C: .4byte 0x00009c80 +_080E9280: .4byte 0x00009cc9 +_080E9284: + ldr r0, _080E92A0 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r1, _080E92A4 @ =0x00009d12 + adds r0, r4, r1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92A8 @ =0x00009d5b + adds r4, r0 + adds r0, r4, 0 + b _080E9326 + .align 2, 0 +_080E92A0: .4byte gUnknown_083DB694 +_080E92A4: .4byte 0x00009d12 +_080E92A8: .4byte 0x00009d5b +_080E92AC: + ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 + b _080E9326 + .align 2, 0 +_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 +_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 +_080E92C4: + ldr r0, _080E92D8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0x4 + beq _080E92E0 + cmp r0, 0x9 + bne _080E92E8 + ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo + b _080E933E + .align 2, 0 +_080E92D8: .4byte gUnknown_083DB694 +_080E92DC: .4byte gOtherText_QuitGivingInfo +_080E92E0: + ldr r0, _080E92E4 @ =gOtherText_StopGivingMail + b _080E933E + .align 2, 0 +_080E92E4: .4byte gOtherText_StopGivingMail +_080E92E8: + ldr r0, _080E92EC @ =gOtherText_QuitEditing + b _080E933E + .align 2, 0 +_080E92EC: .4byte gOtherText_QuitEditing +_080E92F0: + ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 + b _080E9326 + .align 2, 0 +_080E9300: .4byte gOtherText_EditedTextNoSavePage1 +_080E9304: .4byte gOtherText_EditedTextNoSavePage2 +_080E9308: + ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord + b _080E933E + .align 2, 0 +_080E930C: .4byte gOtherText_EnterAPhraseOrWord +_080E9310: + ldr r0, _080E9314 @ =gOtherText_TextNoDelete + b _080E933E + .align 2, 0 +_080E9314: .4byte gOtherText_TextNoDelete +_080E9318: + ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x2 + bl sub_80E91B0 + ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored +_080E9326: + movs r1, 0x4 + movs r2, 0x11 + movs r3, 0x2 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E9334: .4byte gOtherText_OnlyOnePhrase +_080E9338: .4byte gOtherText_OriginalSongRestored +_080E933C: + ldr r0, _080E934C @ =gOtherText_TrendyAlready +_080E933E: + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 + b _080E935C + .align 2, 0 +_080E934C: .4byte gOtherText_TrendyAlready +_080E9350: + ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases + movs r1, 0x4 + movs r2, 0xF + movs r3, 0x4 + bl sub_80E91B0 +_080E935C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9364: .4byte gOtherText_CombineTwoPhrases + thumb_func_end sub_80E91D4 + + thumb_func_start sub_80E9368 +sub_80E9368: @ 80E9368 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bhi _080E93F8 + lsls r0, 2 + ldr r1, _080E937C @ =_080E9380 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E937C: .4byte _080E9380 + .align 2, 0 +_080E9380: + .4byte _080E93B8 + .4byte _080E93C0 + .4byte _080E93C8 + .4byte _080E93D0 + .4byte _080E93F8 + .4byte _080E93E8 + .4byte _080E93D8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E0 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93E8 + .4byte _080E93F0 +_080E93B8: + ldr r4, _080E93BC @ =gOtherText_Profile + b _080E93FA + .align 2, 0 +_080E93BC: .4byte gOtherText_Profile +_080E93C0: + ldr r4, _080E93C4 @ =gOtherText_AtBattleStart + b _080E93FA + .align 2, 0 +_080E93C4: .4byte gOtherText_AtBattleStart +_080E93C8: + ldr r4, _080E93CC @ =gOtherText_UponWinningBattle + b _080E93FA + .align 2, 0 +_080E93CC: .4byte gOtherText_UponWinningBattle +_080E93D0: + ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle + b _080E93FA + .align 2, 0 +_080E93D4: .4byte gOtherText_UponLosingBattle +_080E93D8: + ldr r4, _080E93DC @ =gOtherText_TheBardsSong + b _080E93FA + .align 2, 0 +_080E93DC: .4byte gOtherText_TheBardsSong +_080E93E0: + ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening + b _080E93FA + .align 2, 0 +_080E93E4: .4byte gOtherText_WhatsHipHappening +_080E93E8: + ldr r4, _080E93EC @ =gOtherText_Interview + b _080E93FA + .align 2, 0 +_080E93EC: .4byte gOtherText_Interview +_080E93F0: + ldr r4, _080E93F4 @ =gOtherText_GoodSaying + b _080E93FA + .align 2, 0 +_080E93F4: .4byte gOtherText_GoodSaying +_080E93F8: + movs r4, 0 +_080E93FA: + ldr r0, _080E943C @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E9440 @ =gUnknown_083DB694 + ldr r2, [r0] + ldr r0, _080E9444 @ =0x00009f8e + adds r5, r2, r0 + movs r3, 0xFC + strb r3, [r5] + adds r0, 0x1 + adds r1, r2, r0 + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080E9448 @ =0x00009f90 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + cmp r4, 0 + beq _080E9450 + ldr r1, _080E944C @ =0x00009f91 + adds r0, r2, r1 + adds r1, r4, 0 + movs r2, 0xF0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + b _080E9476 + .align 2, 0 +_080E943C: .4byte gWindowConfig_81E6D8C +_080E9440: .4byte gUnknown_083DB694 +_080E9444: .4byte 0x00009f8e +_080E9448: .4byte 0x00009f90 +_080E944C: .4byte 0x00009f91 +_080E9450: + ldr r0, _080E9484 @ =0x00009f91 + adds r1, r2, r0 + strb r3, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0x1C + movs r2, 0 + bl MenuPrint +_080E9476: + ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9484: .4byte 0x00009f91 +_080E9488: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9368 + + thumb_func_start sub_80E948C +sub_80E948C: @ 80E948C + push {lr} + sub sp, 0x10 + ldr r0, _080E94A8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bls _080E949C + b _080E9594 +_080E949C: + lsls r0, 2 + ldr r1, _080E94AC @ =_080E94B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E94A8: .4byte gUnknown_083DB694 +_080E94AC: .4byte _080E94B0 + .align 2, 0 +_080E94B0: + .4byte _080E9508 + .4byte _080E9530 + .4byte _080E9554 + .4byte _080E9578 + .4byte _080E94C8 + .4byte _080E94E8 +_080E94C8: + ldr r0, _080E94E0 @ =0x06006800 + ldr r3, _080E94E4 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x1A + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x6 + str r1, [sp, 0xC] + movs r1, 0x3 + b _080E9568 + .align 2, 0 +_080E94E0: .4byte 0x06006800 +_080E94E4: .4byte gUnknown_08E94AD0 +_080E94E8: + ldr r0, _080E9500 @ =0x06006800 + ldr r3, _080E9504 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + movs r1, 0xD + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0xE + b _080E951E + .align 2, 0 +_080E9500: .4byte 0x06006800 +_080E9504: .4byte gUnknown_08E94AD0 +_080E9508: + ldr r0, _080E9528 @ =0x06006800 + ldr r3, _080E952C @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0xA + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0x8 + str r1, [sp, 0xC] + movs r1, 0x2 +_080E951E: + movs r2, 0x2 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9528: .4byte 0x06006800 +_080E952C: .4byte gUnknown_08E94AD0 +_080E9530: + ldr r0, _080E954C @ =0x06006800 + ldr r3, _080E9550 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x1A + str r1, [sp, 0x8] + movs r1, 0xA + str r1, [sp, 0xC] + movs r1, 0x2 + movs r2, 0 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E954C: .4byte 0x06006800 +_080E9550: .4byte gUnknown_08E94AD0 +_080E9554: + ldr r0, _080E9570 @ =0x06006800 + ldr r3, _080E9574 @ =gUnknown_08E94AD0 + movs r2, 0xD + str r2, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0xE +_080E9568: + movs r2, 0x3 + bl sub_809D104 + b _080E9594 + .align 2, 0 +_080E9570: .4byte 0x06006800 +_080E9574: .4byte gUnknown_08E94AD0 +_080E9578: + ldr r0, _080E959C @ =0x06006800 + ldr r3, _080E95A0 @ =gUnknown_08E94AD0 + movs r1, 0 + str r1, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x18 + str r1, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + movs r1, 0x3 + movs r2, 0x2 + bl sub_809D104 +_080E9594: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080E959C: .4byte 0x06006800 +_080E95A0: .4byte gUnknown_08E94AD0 + thumb_func_end sub_80E948C + + thumb_func_start sub_80E95A4 +sub_80E95A4: @ 80E95A4 + push {lr} + ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E95C4 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9612 + lsls r0, 2 + ldr r1, _080E95C8 @ =_080E95CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E95C0: .4byte gWindowConfig_81E6D8C +_080E95C4: .4byte gUnknown_083DB694 +_080E95C8: .4byte _080E95CC + .align 2, 0 +_080E95CC: + .4byte _080E95F2 + .4byte _080E95F6 + .4byte _080E9600 + .4byte _080E960A + .4byte _080E95E4 + .4byte _080E95EE +_080E95E4: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E9620 + b _080E9612 +_080E95EE: + movs r0, 0x2 + b _080E9602 +_080E95F2: + movs r0, 0x3 + b _080E95F8 +_080E95F6: + movs r0, 0 +_080E95F8: + movs r1, 0x5 + bl sub_80E9620 + b _080E9612 +_080E9600: + movs r0, 0x4 +_080E9602: + movs r1, 0x11 + bl sub_80E9620 + b _080E9612 +_080E960A: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E9620 +_080E9612: + ldr r0, _080E961C @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E961C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E95A4 + + thumb_func_start sub_80E9620 +sub_80E9620: @ 80E9620 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r1, 0 + mov r10, r1 + lsrs r7, r0, 16 + mov r9, r1 + ldr r0, _080E9644 @ =gUnknown_083DB694 + ldr r0, [r0] + b _080E971A + .align 2, 0 +_080E9644: .4byte gUnknown_083DB694 +_080E9648: + ldr r6, [sp, 0x14] + movs r2, 0 + mov r8, r2 + adds r0, r7, 0x2 + str r0, [sp, 0x1C] + mov r1, r9 + adds r1, 0x1 + str r1, [sp, 0x18] + b _080E96E4 +_080E965A: + mov r2, r10 + lsls r0, r2, 1 + adds r1, r5, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + ldr r2, _080E9690 @ =0x0000ffff + cmp r0, r2 + bne _080E969C + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + ldr r0, _080E9694 @ =0x06007000 + adds r1, r6, 0 + adds r2, r7, 0 + ldr r3, _080E9698 @ =gUnknown_083DBE1C + bl sub_8095C8C + adds r0, r6, 0 + adds r0, 0xB + b _080E96CC + .align 2, 0 +_080E9690: .4byte 0x0000ffff +_080E9694: .4byte 0x06007000 +_080E9698: .4byte gUnknown_083DBE1C +_080E969C: + ldr r0, _080E9738 @ =0x00009e14 + adds r4, r5, r0 + ldrh r1, [r1] + adds r0, r4, 0 + movs r2, 0xB + bl sub_80EB218 + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl MenuPrint + mov r1, r9 + lsls r0, r1, 1 + add r0, r8 + adds r1, r5, 0 + adds r1, 0x8C + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xB + ldrb r1, [r1] + adds r0, r1 +_080E96CC: + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080E96E4: + ldr r0, _080E973C @ =gUnknown_083DB694 + ldr r5, [r0] + adds r0, r5, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080E970A + ldrb r2, [r5, 0xA] + cmp r10, r2 + bcc _080E965A + lsls r1, r6, 24 + lsrs r1, 24 + lsls r2, r7, 24 + lsrs r2, 24 + ldr r0, _080E9740 @ =gUnknown_083DBEA8 + bl MenuPrint +_080E970A: + ldr r1, [sp, 0x1C] + lsls r0, r1, 16 + lsrs r7, r0, 16 + ldr r2, [sp, 0x18] + lsls r0, r2, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r5, 0 +_080E971A: + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r9, r0 + blt _080E9648 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9738: .4byte 0x00009e14 +_080E973C: .4byte gUnknown_083DB694 +_080E9740: .4byte gUnknown_083DBEA8 + thumb_func_end sub_80E9620 + + thumb_func_start sub_80E9744 +sub_80E9744: @ 80E9744 + push {lr} + ldr r0, _080E9760 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E9764 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E97B2 + lsls r0, 2 + ldr r1, _080E9768 @ =_080E976C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9760: .4byte gWindowConfig_81E6D8C +_080E9764: .4byte gUnknown_083DB694 +_080E9768: .4byte _080E976C + .align 2, 0 +_080E976C: + .4byte _080E9792 + .4byte _080E9796 + .4byte _080E97A0 + .4byte _080E97AA + .4byte _080E9784 + .4byte _080E978E +_080E9784: + movs r0, 0x4 + movs r1, 0x6 + bl sub_80E97C0 + b _080E97B2 +_080E978E: + movs r0, 0x2 + b _080E97A2 +_080E9792: + movs r0, 0x3 + b _080E9798 +_080E9796: + movs r0, 0 +_080E9798: + movs r1, 0x5 + bl sub_80E97C0 + b _080E97B2 +_080E97A0: + movs r0, 0x4 +_080E97A2: + movs r1, 0x11 + bl sub_80E97C0 + b _080E97B2 +_080E97AA: + movs r0, 0x3 + movs r1, 0x6 + bl sub_80E97C0 +_080E97B2: + ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow + pop {r0} + bx r0 + .align 2, 0 +_080E97BC: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E9744 + + thumb_func_start sub_80E97C0 +sub_80E97C0: @ 80E97C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r7, 0 + movs r3, 0 + ldr r1, _080E98B8 @ =gUnknown_083DB694 + ldr r0, [r1] + adds r0, 0x84 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080E98A6 +_080E97EA: + ldr r1, [r1] + ldr r0, _080E98BC @ =0x00009e6e + adds r2, r1, r0 + movs r6, 0 + adds r0, r1, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldr r4, [sp] + lsls r4, 24 + mov r8, r4 + lsls r4, r5, 24 + mov r9, r4 + adds r5, 0x2 + mov r10, r5 + adds r3, 0x1 + str r3, [sp, 0x4] + cmp r6, r0 + bge _080E985E + ldrb r1, [r1, 0xA] + cmp r7, r1 + bcs _080E985E + ldr r0, _080E98B8 @ =gUnknown_083DB694 + ldr r4, [r0] + ldr r5, _080E98C0 @ =0x0000ffff +_080E981E: + lsls r0, r7, 1 + adds r1, r4, 0 + adds r1, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, r5 + beq _080E983E + adds r1, r0, 0 + adds r0, r2, 0 + movs r2, 0 + bl sub_80EB218 + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 +_080E983E: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + adds r0, 0x83 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E985E + ldrb r0, [r4, 0xA] + cmp r7, r0 + bcc _080E981E +_080E985E: + ldr r1, _080E98B8 @ =gUnknown_083DB694 + ldr r4, [r1] + adds r0, r4, 0 + adds r0, 0x83 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0xB + muls r1, r0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x13 + strb r0, [r2, 0x1] + lsls r1, 3 + strb r1, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, _080E98BC @ =0x00009e6e + adds r0, r4, r2 + mov r3, r8 + lsrs r1, r3, 24 + mov r3, r9 + lsrs r2, r3, 24 + bl MenuPrint + mov r1, r10 + lsls r0, r1, 16 + lsrs r5, r0, 16 + ldr r2, [sp, 0x4] + lsls r0, r2, 24 + lsrs r3, r0, 24 + ldr r1, _080E98B8 @ =gUnknown_083DB694 + adds r4, 0x84 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r3, r0 + blt _080E97EA +_080E98A6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E98B8: .4byte gUnknown_083DB694 +_080E98BC: .4byte 0x00009e6e +_080E98C0: .4byte 0x0000ffff + thumb_func_end sub_80E97C0 + + thumb_func_start sub_80E98C4 +sub_80E98C4: @ 80E98C4 + push {lr} + ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C + bl BasicInitMenuWindow + ldr r0, _080E98E4 @ =gUnknown_083DB694 + ldr r0, [r0] + ldrb r0, [r0, 0x9] + cmp r0, 0x5 + bhi _080E9936 + lsls r0, 2 + ldr r1, _080E98E8 @ =_080E98EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E98E0: .4byte gWindowConfig_81E6D8C +_080E98E4: .4byte gUnknown_083DB694 +_080E98E8: .4byte _080E98EC + .align 2, 0 +_080E98EC: + .4byte _080E990A + .4byte _080E9910 + .4byte _080E9916 + .4byte _080E991A + .4byte _080E9904 + .4byte _080E990A +_080E9904: + movs r1, 0x4 + movs r3, 0x2 + b _080E991E +_080E990A: + movs r1, 0x3 + movs r3, 0x2 + b _080E991E +_080E9910: + movs r1, 0x1 + movs r3, 0x3 + b _080E991E +_080E9916: + movs r1, 0x4 + b _080E991C +_080E991A: + movs r1, 0x3 +_080E991C: + movs r3, 0x1 +_080E991E: + lsls r3, 1 + adds r3, r1, r3 + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + movs r2, 0x1B + bl MenuFillWindowRectWithBlankTile + ldr r0, _080E993C @ =gWindowConfig_81E6DA8 + bl BasicInitMenuWindow +_080E9936: + pop {r0} + bx r0 + .align 2, 0 +_080E993C: .4byte gWindowConfig_81E6DA8 + thumb_func_end sub_80E98C4 + + thumb_func_start sub_80E9940 +sub_80E9940: @ 80E9940 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r5, r1, 24 + lsrs r5, 24 + movs r4, 0x7 + ands r4, r5 + lsls r3, r4, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0x2 + movs r2, 0x1F + bl MenuFillWindowRectWithBlankTile + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80E9A7C + lsls r4, 1 + adds r0, r6, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl sub_80E9A60 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9940 + + thumb_func_start sub_80E9974 +sub_80E9974: @ 80E9974 + push {r4-r6,lr} + ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + ldr r0, _080E99C8 @ =gUnknown_083DB694 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E99D4 + ldr r1, _080E99CC @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 16 + lsrs r4, r1, 16 + adds r0, 0x4 + cmp r4, r0 + bge _080E9A08 + adds r5, r2, 0 + ldr r2, _080E99CC @ =0x000001b5 + adds r6, r5, r2 +_080E99A4: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E99D0 @ =0x00009dc9 + adds r0, r5, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, 0x4 + cmp r4, r0 + blt _080E99A4 + b _080E9A08 + .align 2, 0 +_080E99C4: .4byte gWindowConfig_81E6D54 +_080E99C8: .4byte gUnknown_083DB694 +_080E99CC: .4byte 0x000001b5 +_080E99D0: .4byte 0x00009dc9 +_080E99D4: + bl sub_80E9AD4 + ldr r4, _080E9A10 @ =gUnknown_083DBEAC + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_80E9A60 + adds r0, r4, 0 + adds r0, 0x20 + movs r1, 0x2 + movs r2, 0x2 + bl sub_80E9A60 + adds r0, r4, 0 + adds r0, 0x40 + movs r1, 0x2 + movs r2, 0x4 + bl sub_80E9A60 + adds r4, 0x60 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0x6 + bl sub_80E9A60 +_080E9A08: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9A10: .4byte gUnknown_083DBEAC + thumb_func_end sub_80E9974 + + thumb_func_start sub_80E9A14 +sub_80E9A14: @ 80E9A14 + push {lr} + bl sub_80E9A4C + ldr r0, _080E9A44 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x26 + ldrb r0, [r0] + cmp r0, 0 + bne _080E9A40 + movs r0, 0xDD + lsls r0, 1 + adds r2, r1, r0 + ldr r3, _080E9A48 @ =0x000001b5 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] +_080E9A40: + pop {r0} + bx r0 + .align 2, 0 +_080E9A44: .4byte gUnknown_083DB694 +_080E9A48: .4byte 0x000001b5 + thumb_func_end sub_80E9A14 + + thumb_func_start sub_80E9A4C +sub_80E9A4C: @ 80E9A4C + ldr r0, _080E9A5C @ =gUnknown_083DB694 + ldr r0, [r0] + movs r2, 0xDD + lsls r2, 1 + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080E9A5C: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A4C + + thumb_func_start sub_80E9A60 +sub_80E9A60: @ 80E9A60 + push {lr} + lsls r2, 16 + movs r3, 0xF0 + lsls r3, 12 + ands r3, r2 + lsls r1, 24 + lsrs r1, 24 + lsrs r3, 16 + adds r2, r3, 0 + bl MenuPrint + pop {r0} + bx r0 + thumb_func_end sub_80E9A60 + + thumb_func_start sub_80E9A7C +sub_80E9A7C: @ 80E9A7C + push {r4-r7,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r0, r7, 17 + lsrs r5, r0, 16 + movs r4, 0 + ldr r0, _080E9AD0 @ =gUnknown_083DB694 + ldr r6, [r0] +_080E9A8E: + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x12 + strb r0, [r2, 0x1] + movs r0, 0x58 + muls r0, r4 + strb r0, [r2, 0x2] + adds r2, 0x3 + lsls r1, r7, 1 + adds r1, r4, r1 + adds r0, r6, 0 + adds r0, 0x2A + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0xB + bl sub_80EAD64 + adds r2, r0, 0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r6, 0x28] + cmp r5, r0 + bcs _080E9ACA + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080E9A8E +_080E9ACA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9AD0: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9A7C + + thumb_func_start sub_80E9AD4 +sub_80E9AD4: @ 80E9AD4 + push {r4,lr} + ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + movs r4, 0 +_080E9ADE: + adds r0, r4, 0 + bl sub_80E9C74 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080E9ADE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080E9AF4: .4byte gWindowConfig_81E6D54 + thumb_func_end sub_80E9AD4 + + thumb_func_start sub_80E9AF8 +sub_80E9AF8: @ 80E9AF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r7, 0 + bl sub_80E9C74 + ldr r4, _080E9B7C @ =gUnknown_083DB694 + ldr r5, [r4] + ldr r0, _080E9B80 @ =0x00009e14 + adds r0, r5 + mov r8, r0 + movs r0, 0xFC + mov r1, r8 + strb r0, [r1] + movs r0, 0x11 + strb r0, [r1, 0x1] + movs r0, 0x10 + strb r0, [r1, 0x2] + ldr r2, _080E9B84 @ =0x00009e17 + adds r2, r5 + mov r8, r2 + adds r0, r5, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _080E9BF4 + movs r6, 0 + ldr r3, _080E9B88 @ =0x000099a6 + adds r0, r5, r3 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + blt _080E9B4A + b _080E9C52 +_080E9B4A: + lsls r0, r7, 2 + mov r9, r0 + ldr r1, _080E9B8C @ =0x00009a2a + adds r1, r5, r1 + str r1, [sp] + lsls r2, r7, 17 + mov r10, r2 +_080E9B58: + lsls r4, r6, 1 + mov r3, r9 + adds r0, r4, r3 + ldr r1, [sp] + adds r0, r1, r0 + ldrh r0, [r0] + bl sub_80EB2D4 + lsls r0, 16 + lsrs r0, 16 + adds r5, r4, 0 + cmp r0, 0x7 + bne _080E9B94 + ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 + bl BasicInitMenuWindow + b _080E9B9A + .align 2, 0 +_080E9B7C: .4byte gUnknown_083DB694 +_080E9B80: .4byte 0x00009e14 +_080E9B84: .4byte 0x00009e17 +_080E9B88: .4byte 0x000099a6 +_080E9B8C: .4byte 0x00009a2a +_080E9B90: .4byte gWindowConfig_81E6D70 +_080E9B94: + ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow +_080E9B9A: + ldr r2, _080E9BE4 @ =gUnknown_083DB694 + ldr r4, [r2] + mov r3, r9 + adds r1, r5, r3 + ldr r2, _080E9BE8 @ =0x00009a2a + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + ldr r3, _080E9BEC @ =0x00009e14 + adds r0, r4, r3 + movs r1, 0xB + muls r1, r6 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + mov r3, r10 + lsrs r2, r3, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080E9BF0 @ =0x000099a6 + adds r4, r0 + adds r4, r7 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r6, r0 + blt _080E9B58 + b _080E9C52 + .align 2, 0 +_080E9BE0: .4byte gWindowConfig_81E6D54 +_080E9BE4: .4byte gUnknown_083DB694 +_080E9BE8: .4byte 0x00009a2a +_080E9BEC: .4byte 0x00009e14 +_080E9BF0: .4byte 0x000099a6 +_080E9BF4: + ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + movs r6, 0 + ldr r1, _080E9C68 @ =0x000099a6 + adds r0, r5, r1 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r6, r0 + bge _080E9C52 + adds r4, r5, 0 + adds r0, r4, r1 + adds r0, r7 + mov r9, r0 + lsls r5, r7, 17 +_080E9C16: + lsls r1, r6, 1 + lsls r0, r7, 2 + adds r1, r0 + ldr r2, _080E9C6C @ =0x00009a2a + adds r0, r4, r2 + adds r0, r1 + ldrh r1, [r0] + mov r0, r8 + movs r2, 0x9 + bl sub_80EB218 + movs r0, 0xB + adds r1, r6, 0 + muls r1, r0 + adds r1, 0x4 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _080E9C70 @ =0x00009e14 + adds r0, r4, r3 + lsrs r2, r5, 16 + bl sub_80E9A60 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r9 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r6, r0 + blt _080E9C16 +_080E9C52: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9C64: .4byte gWindowConfig_81E6D54 +_080E9C68: .4byte 0x000099a6 +_080E9C6C: .4byte 0x00009a2a +_080E9C70: .4byte 0x00009e14 + thumb_func_end sub_80E9AF8 + + thumb_func_start sub_80E9C74 +sub_80E9C74: @ 80E9C74 + push {lr} + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 16 + lsls r3, r1, 1 + adds r1, r3, 0 + adds r3, 0x1 + movs r0, 0 + movs r2, 0x1D + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end sub_80E9C74 + + thumb_func_start sub_80E9C94 +sub_80E9C94: @ 80E9C94 + push {r4-r6,lr} + ldr r0, _080E9CAC @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r2, _080E9CB0 @ =0x00009a28 + adds r1, r0, r2 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x3 + bgt _080E9CB4 + lsls r0, 16 + lsrs r0, 16 + b _080E9CB6 + .align 2, 0 +_080E9CAC: .4byte gUnknown_083DB694 +_080E9CB0: .4byte 0x00009a28 +_080E9CB4: + movs r0, 0x4 +_080E9CB6: + adds r5, r0, 0 + movs r4, 0 + cmp r4, r5 + bcs _080E9CF4 + ldr r0, _080E9CE0 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080E9CE4 @ =0x00009a29 + adds r6, r0, r1 +_080E9CC6: + movs r0, 0 + ldrsb r0, [r6, r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl sub_80E9AF8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080E9CC6 + b _080E9CF4 + .align 2, 0 +_080E9CE0: .4byte gUnknown_083DB694 +_080E9CE4: .4byte 0x00009a29 +_080E9CE8: + adds r0, r4, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_80E9C74 +_080E9CF4: + cmp r4, 0x3 + bls _080E9CE8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E9C94 + + thumb_func_start sub_80E9D00 +sub_80E9D00: @ 80E9D00 + push {r4-r6,lr} + ldr r0, _080E9D28 @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + ble _080E9D30 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D2C @ =0x00009a29 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 + b _080E9D46 + .align 2, 0 +_080E9D28: .4byte gUnknown_083DB694 +_080E9D2C: .4byte 0x00009a29 +_080E9D30: + movs r0, 0 + ldrsb r0, [r1, r0] + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080E9D74 @ =0x00009a29 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r4 +_080E9D46: + lsls r0, 16 + lsrs r5, r0, 16 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080E9D78 @ =0x0000ffff + cmp r4, r0 + beq _080E9D6E + adds r6, r0, 0 +_080E9D58: + adds r0, r5, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r5, r1, 16 + bl sub_80E9AF8 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r6 + bne _080E9D58 +_080E9D6E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080E9D74: .4byte 0x00009a29 +_080E9D78: .4byte 0x0000ffff + thumb_func_end sub_80E9D00 + + thumb_func_start sub_80E9D7C +sub_80E9D7C: @ 80E9D7C + push {r4-r7,lr} + ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 + bl BasicInitMenuWindow + ldr r0, _080E9DB0 @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xE0 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _080E9DB8 + negs r0, r0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DB4 @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r0, r6 + b _080E9DCC + .align 2, 0 +_080E9DAC: .4byte gWindowConfig_81E6D54 +_080E9DB0: .4byte gUnknown_083DB694 +_080E9DB4: .4byte 0x000001b5 +_080E9DB8: + movs r0, 0 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080E9DFC @ =0x000001b5 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, 0x4 +_080E9DCC: + lsls r0, 16 + lsrs r4, r0, 16 + movs r5, 0 + cmp r5, r6 + bcs _080E9DF6 + ldr r0, _080E9E00 @ =gUnknown_083DB694 + ldr r7, [r0] +_080E9DDA: + lsls r1, r4, 24 + lsrs r1, 24 + ldr r2, _080E9E04 @ =0x00009dc9 + adds r0, r7, r2 + bl sub_80E9940 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r6 + bcc _080E9DDA +_080E9DF6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080E9DFC: .4byte 0x000001b5 +_080E9E00: .4byte gUnknown_083DB694 +_080E9E04: .4byte 0x00009dc9 + thumb_func_end sub_80E9D7C + + thumb_func_start sub_80E9E08 +sub_80E9E08: @ 80E9E08 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080E9E4C @ =gUnknown_083DB694 + ldr r3, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r3, r0 + movs r5, 0xE0 + lsls r5, 1 + adds r2, r3, r5 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 4 + ldrh r1, [r1] + adds r0, r1 + movs r1, 0x7F + ands r0, r1 + subs r5, 0x4 + adds r1, r3, r5 + strh r0, [r1] + adds r1, r4, 0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bge _080E9E3E + negs r1, r4 +_080E9E3E: + ldr r2, _080E9E50 @ =0x000001bf + adds r0, r3, r2 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080E9E4C: .4byte gUnknown_083DB694 +_080E9E50: .4byte 0x000001bf + thumb_func_end sub_80E9E08 + + thumb_func_start sub_80E9E54 +sub_80E9E54: @ 80E9E54 + push {r4,lr} + ldr r0, _080E9E8C @ =gUnknown_083DB694 + ldr r2, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r3, r2, r0 + ldr r1, _080E9E90 @ =0x000001bf + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r4, [r3] + adds r0, r4 + movs r1, 0x7F + ands r0, r1 + strh r0, [r3] + movs r3, 0 + movs r4, 0xDE + lsls r4, 1 + adds r1, r2, r4 + ldrh r1, [r1] + cmp r0, r1 + bne _080E9E84 + movs r3, 0x1 +_080E9E84: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080E9E8C: .4byte gUnknown_083DB694 +_080E9E90: .4byte 0x000001bf + thumb_func_end sub_80E9E54 + + thumb_func_start nullsub_23 +nullsub_23: @ 80E9E94 + bx lr + thumb_func_end nullsub_23 + + thumb_func_start sub_80E9E98 +sub_80E9E98: @ 80E9E98 + ldr r0, _080E9EA4 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080E9EA4: .4byte gUnknown_083DB694 + thumb_func_end sub_80E9E98 + + thumb_func_start sub_80E9EA8 +sub_80E9EA8: @ 80E9EA8 + push {lr} + ldr r1, _080E9EC4 @ =gUnknown_083DB694 + ldr r0, [r1] + adds r0, 0xBE + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _080E9F48 + lsls r0, 2 + ldr r1, _080E9EC8 @ =_080E9ECC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9EC4: .4byte gUnknown_083DB694 +_080E9EC8: .4byte _080E9ECC + .align 2, 0 +_080E9ECC: + .4byte _080E9EE4 + .4byte _080E9EF4 + .4byte _080E9F0C + .4byte _080E9F24 + .4byte _080E9F38 + .4byte _080E9F44 +_080E9EE4: + bl sub_80EA24C + ldr r0, _080E9F08 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9EF4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA4A4 + ldr r0, _080E9F08 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F08: .4byte gUnknown_083DB694 +_080E9F0C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + bl sub_80EA704 + ldr r0, _080E9F20 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F20: .4byte gUnknown_083DB694 +_080E9F24: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9F48 + ldr r0, _080E9F34 @ =gUnknown_083DB694 + ldr r1, [r0] + b _080E9F3A + .align 2, 0 +_080E9F34: .4byte gUnknown_083DB694 +_080E9F38: + ldr r1, [r2] +_080E9F3A: + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9F48 +_080E9F44: + movs r0, 0x1 + b _080E9F4A +_080E9F48: + movs r0, 0 +_080E9F4A: + pop {r1} + bx r1 + thumb_func_end sub_80E9EA8 + + thumb_func_start sub_80E9F50 +sub_80E9F50: @ 80E9F50 + push {lr} + ldr r0, _080E9F68 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x6 + bhi _080E9FCC + lsls r0, 2 + ldr r1, _080E9F6C @ =_080E9F70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080E9F68: .4byte gUnknown_083DB694 +_080E9F6C: .4byte _080E9F70 + .align 2, 0 +_080E9F70: + .4byte _080E9F8C + .4byte _080E9FAC + .4byte _080E9F96 + .4byte _080E9FAC + .4byte _080E9F9C + .4byte _080E9FAC + .4byte _080E9FC8 +_080E9F8C: + bl nullsub_23 + bl sub_80EA764 + b _080E9FA0 +_080E9F96: + bl sub_80EA5A0 + b _080E9FA0 +_080E9F9C: + bl sub_80EA348 +_080E9FA0: + ldr r0, _080E9FC4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080E9FAC: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080E9FCC + ldr r0, _080E9FC4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080E9FCC + .align 2, 0 +_080E9FC4: .4byte gUnknown_083DB694 +_080E9FC8: + movs r0, 0x1 + b _080E9FCE +_080E9FCC: + movs r0, 0 +_080E9FCE: + pop {r1} + bx r1 + thumb_func_end sub_80E9F50 + + thumb_func_start sub_80E9FD4 +sub_80E9FD4: @ 80E9FD4 + push {r4,lr} + ldr r0, _080E9FEC @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080E9FF0 + cmp r0, 0x1 + beq _080E9FFE + b _080EA00C + .align 2, 0 +_080E9FEC: .4byte gUnknown_083DB694 +_080E9FF0: + bl nullsub_23 + bl sub_80EA5A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080E9FFE: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA00C + movs r0, 0x1 + b _080EA00E +_080EA00C: + movs r0, 0 +_080EA00E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80E9FD4 + + thumb_func_start sub_80EA014 +sub_80EA014: @ 80EA014 + push {r4,lr} + ldr r0, _080EA02C @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0 + beq _080EA030 + cmp r0, 0x1 + beq _080EA03A + b _080EA048 + .align 2, 0 +_080EA02C: .4byte gUnknown_083DB694 +_080EA030: + bl sub_80EA4A4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA03A: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA048 + movs r0, 0x1 + b _080EA04A +_080EA048: + movs r0, 0 +_080EA04A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA014 + + thumb_func_start sub_80EA050 +sub_80EA050: @ 80EA050 + push {lr} + ldr r0, _080EA068 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA0DC + lsls r0, 2 + ldr r1, _080EA06C @ =_080EA070 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA068: .4byte gUnknown_083DB694 +_080EA06C: .4byte _080EA070 + .align 2, 0 +_080EA070: + .4byte _080EA084 + .4byte _080EA08E + .4byte _080EA09E + .4byte _080EA0B4 + .4byte _080EA0D8 +_080EA084: + bl nullsub_23 + bl sub_80EA764 + b _080EA0C4 +_080EA08E: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA7F4 + b _080EA0C4 +_080EA09E: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC + bl sub_80EA8BC + b _080EA0C4 +_080EA0B4: + movs r0, 0x1 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA0DC +_080EA0C4: + ldr r0, _080EA0D4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA0DC + .align 2, 0 +_080EA0D4: .4byte gUnknown_083DB694 +_080EA0D8: + movs r0, 0x1 + b _080EA0DE +_080EA0DC: + movs r0, 0 +_080EA0DE: + pop {r1} + bx r1 + thumb_func_end sub_80EA050 + + thumb_func_start sub_80EA0E4 +sub_80EA0E4: @ 80EA0E4 + push {lr} + ldr r0, _080EA0FC @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBE + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080EA17C + lsls r0, 2 + ldr r1, _080EA100 @ =_080EA104 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EA0FC: .4byte gUnknown_083DB694 +_080EA100: .4byte _080EA104 + .align 2, 0 +_080EA104: + .4byte _080EA118 + .4byte _080EA128 + .4byte _080EA144 + .4byte _080EA15C + .4byte _080EA178 +_080EA118: + bl sub_80EA948 + ldr r0, _080EA140 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EA128: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EAA44 + b _080EA166 + .align 2, 0 +_080EA140: .4byte gUnknown_083DB694 +_080EA144: + movs r0, 0x1 + negs r0, r0 + bl sub_80E9108 + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C + bl sub_80EA704 + b _080EA166 +_080EA15C: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA17C +_080EA166: + ldr r0, _080EA174 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA17C + .align 2, 0 +_080EA174: .4byte gUnknown_083DB694 +_080EA178: + movs r0, 0x1 + b _080EA17E +_080EA17C: + movs r0, 0 +_080EA17E: + pop {r1} + bx r1 + thumb_func_end sub_80EA0E4 + + thumb_func_start sub_80EA184 +sub_80EA184: @ 80EA184 + push {r4,lr} + ldr r0, _080EA1A0 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r4, r0, 0 + adds r4, 0xBE + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EA1B4 + cmp r0, 0x1 + bgt _080EA1A4 + cmp r0, 0 + beq _080EA1AA + b _080EA1D8 + .align 2, 0 +_080EA1A0: .4byte gUnknown_083DB694 +_080EA1A4: + cmp r0, 0x2 + beq _080EA1D0 + b _080EA1D8 +_080EA1AA: + bl sub_80EAAD4 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080EA1B4: + bl sub_80EA1E0 + lsls r0, 24 + cmp r0, 0 + beq _080EA1D8 + ldr r0, _080EA1CC @ =gUnknown_083DB694 + ldr r1, [r0] + adds r1, 0xBE + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EA1D8 + .align 2, 0 +_080EA1CC: .4byte gUnknown_083DB694 +_080EA1D0: + bl sub_80E9178 + movs r0, 0x1 + b _080EA1DA +_080EA1D8: + movs r0, 0 +_080EA1DA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EA184 + + thumb_func_start sub_80EA1E0 +sub_80EA1E0: @ 80EA1E0 + push {r4-r6,lr} + ldr r0, _080EA240 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xC4 + ldrh r0, [r0] + cmp r0, 0 + beq _080EA244 + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EA228 + adds r5, r1, 0 + adds r6, r0, 0 +_080EA200: + lsls r0, r4, 4 + adds r0, 0xC8 + adds r0, r5, r0 + bl sub_80EAC0C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + adds r0, r5, r0 + bl sub_80EAC48 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EA200 +_080EA228: + ldr r0, _080EA240 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r2, r1, 0 + adds r2, 0xBC + movs r0, 0x1 + strb r0, [r2] + adds r1, 0xC4 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080EA246 + .align 2, 0 +_080EA240: .4byte gUnknown_083DB694 +_080EA244: + movs r0, 0x1 +_080EA246: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EA1E0 + + thumb_func_start sub_80EA24C +sub_80EA24C: @ 80EA24C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA340 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + ldr r1, _080EA344 @ =0x0000fffe + mov r8, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0 + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r6, 0x10 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xD + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0xC + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x1E + movs r2, 0x9 + mov r3, r8 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA340: .4byte gUnknown_083DB694 +_080EA344: .4byte 0x0000fffe + thumb_func_end sub_80EA24C + + thumb_func_start sub_80EA348 +sub_80EA348: @ 80EA348 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA49C @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r5, 0xF + str r5, [sp] + movs r1, 0x2 + mov r9, r1 + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EA4A0 @ =0x0000fffe + mov r8, r1 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0x2 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r5, 0x10 + str r5, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r8 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0x2 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r6, r7, r1 + str r6, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r6, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xE + mov r3, r8 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA49C: .4byte gUnknown_083DB694 +_080EA4A0: .4byte 0x0000fffe + thumb_func_end sub_80EA348 + + thumb_func_start sub_80EA4A4 +sub_80EA4A4: @ 80EA4A4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA598 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + ldr r1, _080EA59C @ =0x0000ffff + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xE + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xE + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x10 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + movs r6, 0x1 + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x9 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xC2 + movs r1, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA598: .4byte gUnknown_083DB694 +_080EA59C: .4byte 0x0000ffff + thumb_func_end sub_80EA4A4 + + thumb_func_start sub_80EA5A0 +sub_80EA5A0: @ 80EA5A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EA6FC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0xF + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r1, 0x1 + mov r8, r1 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r2, 0xA + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0xC + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EA700 @ =0x0000ffff + str r6, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0xD + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r6, [sp, 0x10] + movs r1, 0xC + movs r2, 0xF + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + mov r1, r8 + str r1, [sp] + str r5, [sp, 0x4] + movs r1, 0x12 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x84 + lsls r1, 1 + adds r0, r7, r1 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + mov r1, r8 + str r1, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xBC + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x50 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xC2 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0x1 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x6 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x4 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA6FC: .4byte gUnknown_083DB694 +_080EA700: .4byte 0x0000ffff + thumb_func_end sub_80EA5A0 + + thumb_func_start sub_80EA704 +sub_80EA704: @ 80EA704 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA75C @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r1, 0x14 + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + ldr r3, _080EA760 @ =0x0000ffff + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x5 + movs r2, 0xA + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xC2 + strh r5, [r0] + adds r1, r6, 0 + adds r1, 0xC4 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA75C: .4byte gUnknown_083DB694 +_080EA760: .4byte 0x0000ffff + thumb_func_end sub_80EA704 + + thumb_func_start sub_80EA764 +sub_80EA764: @ 80EA764 + push {r4-r7,lr} + sub sp, 0x14 + ldr r0, _080EA7EC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EA7F0 @ =0x0000ffff + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xC + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1E + movs r2, 0xC + movs r3, 0x1F + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0x1E + movs r2, 0xC + adds r3, r5, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x6 + strh r0, [r1] + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA7EC: .4byte gUnknown_083DB694 +_080EA7F0: .4byte 0x0000ffff + thumb_func_end sub_80EA764 + + thumb_func_start sub_80EA7F4 +sub_80EA7F4: @ 80EA7F4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + ldr r0, _080EA8B4 @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r5, 0x1 + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x14 + movs r2, 0xA + movs r3, 0x19 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + ldr r3, _080EA8B8 @ =0x0000ffff + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r2, r7 + mov r8, r2 + str r2, [sp, 0x4] + movs r1, 0x19 + movs r2, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r7, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r2, r8 + str r2, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x3 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EA8B4: .4byte gUnknown_083DB694 +_080EA8B8: .4byte 0x0000ffff + thumb_func_end sub_80EA7F4 + + thumb_func_start sub_80EA8BC +sub_80EA8BC: @ 80EA8BC + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EA944 @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x4 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EA944: .4byte gUnknown_083DB694 + thumb_func_end sub_80EA8BC + + thumb_func_start sub_80EA948 +sub_80EA948: @ 80EA948 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EAA3C @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r6, 0x14 + str r6, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r5, _080EAA40 @ =0x0000ffff + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x2 + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x80 + adds r1, r7 + mov r9, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x3 + movs r2, 0xA + movs r3, 0x5 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x1A + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r9 + str r1, [sp, 0x4] + movs r1, 0x1A + movs r2, 0xA + adds r3, r5, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + str r6, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x19 + movs r2, 0xA + movs r3, 0x1A + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EAA3C: .4byte gUnknown_083DB694 +_080EAA40: .4byte 0x0000ffff + thumb_func_end sub_80EA948 + + thumb_func_start sub_80EAA44 +sub_80EAA44: @ 80EAA44 + push {r4-r6,lr} + sub sp, 0x14 + ldr r0, _080EAACC @ =gUnknown_083DB694 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0xC8 + movs r5, 0x14 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xE4 + lsls r2, 1 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x18 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r6, 0 + adds r0, 0xD8 + str r5, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, _080EAAD0 @ =0x0000ffff + str r1, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0x17 + movs r2, 0xA + movs r3, 0x18 + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r6, r1 + str r4, [sp] + movs r2, 0xD9 + lsls r2, 3 + adds r1, r6, r2 + str r1, [sp, 0x4] + movs r1, 0x1D + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r1, r6, 0 + adds r1, 0xC2 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + strh r0, [r1] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EAACC: .4byte gUnknown_083DB694 +_080EAAD0: .4byte 0x0000ffff + thumb_func_end sub_80EAA44 + + thumb_func_start sub_80EAAD4 +sub_80EAAD4: @ 80EAAD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EABCC @ =gUnknown_083DB694 + ldr r7, [r0] + adds r0, r7, 0 + adds r0, 0xC8 + movs r1, 0xF + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r5, 0x1 + str r5, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xA4 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + movs r1, 0xD9 + lsls r1, 3 + adds r1, r7 + mov r8, r1 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xD8 + movs r1, 0x14 + mov r9, r1 + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + ldr r6, _080EABD0 @ =0x0000ffff + str r6, [sp, 0x10] + movs r1, 0 + movs r2, 0xF + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xAA + lsls r1, 1 + adds r0, r7, r1 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xE8 + movs r1, 0xA + str r1, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r5, [sp, 0x10] + movs r1, 0 + movs r2, 0xA + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r7, r1 + str r4, [sp] + adds r1, 0x68 + adds r5, r7, r1 + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80EAC30 + adds r0, r7, 0 + adds r0, 0xF8 + mov r1, r9 + str r1, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + movs r2, 0x14 + movs r3, 0x1E + bl sub_80EABD4 + movs r1, 0xB6 + lsls r1, 1 + adds r0, r7, r1 + str r6, [sp] + str r5, [sp, 0x4] + movs r1, 0 + movs r2, 0x14 + movs r3, 0 + bl sub_80EAC30 + adds r1, r7, 0 + adds r1, 0xC2 + movs r0, 0x4 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x5 + strh r0, [r1] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EABCC: .4byte gUnknown_083DB694 +_080EABD0: .4byte 0x0000ffff + thumb_func_end sub_80EAAD4 + + thumb_func_start sub_80EABD4 +sub_80EABD4: @ 80EABD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, [sp, 0x1C] + ldr r6, [sp, 0x20] + ldr r4, [sp, 0x24] + mov r9, r4 + ldr r4, [sp, 0x28] + ldr r7, [sp, 0x2C] + mov r8, r7 + strh r1, [r0] + strh r3, [r0, 0x2] + strh r2, [r0, 0x4] + strh r5, [r0, 0x6] + strh r6, [r0, 0x8] + strh r4, [r0, 0xA] + mov r1, r9 + strh r1, [r0, 0xC] + mov r4, r8 + strh r4, [r0, 0xE] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EABD4 + + thumb_func_start sub_80EAC0C +sub_80EAC0C: @ 80EAC0C + ldrh r1, [r0, 0x8] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0xA] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + ldrh r1, [r0, 0xC] + ldrh r2, [r0, 0x4] + adds r1, r2 + strh r1, [r0, 0x4] + ldrh r1, [r0, 0xE] + ldrh r2, [r0, 0x6] + adds r1, r2 + strh r1, [r0, 0x6] + bx lr + thumb_func_end sub_80EAC0C + + thumb_func_start sub_80EAC30 +sub_80EAC30: @ 80EAC30 + push {r4,r5,lr} + ldr r4, [sp, 0xC] + ldr r5, [sp, 0x10] + strh r1, [r0] + strh r2, [r0, 0x2] + strh r3, [r0, 0x4] + strh r4, [r0, 0x6] + str r5, [r0, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EAC30 + + thumb_func_start sub_80EAC48 +sub_80EAC48: @ 80EAC48 + ldrh r1, [r0, 0x4] + ldrh r2, [r0] + adds r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0x6] + ldrh r2, [r0, 0x2] + adds r1, r2 + strh r1, [r0, 0x2] + bx lr + thumb_func_end sub_80EAC48 + + thumb_func_start sub_80EAC5C +sub_80EAC5C: @ 80EAC5C + push {r4-r6,lr} + ldr r0, _080EACB4 @ =gUnknown_083DB694 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xBC + ldrb r0, [r0] + cmp r0, 0 + beq _080EACAC + movs r4, 0 + adds r0, r1, 0 + adds r0, 0xC2 + ldrh r2, [r0] + cmp r4, r2 + bcs _080EACA2 + adds r5, r1, 0 + adds r6, r0, 0 +_080EAC7C: + lsls r1, r4, 4 + adds r1, 0xC8 + adds r1, r5, r1 + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 2 + movs r0, 0xA4 + lsls r0, 1 + adds r2, r0 + adds r2, r5, r2 + ldr r0, _080EACB8 @ =0x06006800 + bl sub_80EACBC + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrh r2, [r6] + cmp r4, r2 + bcc _080EAC7C +_080EACA2: + ldr r0, _080EACB4 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, 0xBC + movs r1, 0 + strb r1, [r0] +_080EACAC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EACB4: .4byte gUnknown_083DB694 +_080EACB8: .4byte 0x06006800 + thumb_func_end sub_80EAC5C + + thumb_func_start sub_80EACBC +sub_80EACBC: @ 80EACBC + push {r4-r7,lr} + sub sp, 0x10 + adds r7, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + ldrh r2, [r3, 0x2] + ldrh r0, [r3] + subs r2, r0 + ldrh r0, [r3, 0x6] + ldrh r1, [r3, 0x4] + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + lsls r6, r2, 16 + cmp r6, 0 + ble _080EACFE + lsls r5, r0, 16 + cmp r5, 0 + ble _080EACFE + ldrh r1, [r3] + ldrh r2, [r3, 0x4] + ldr r3, [r4, 0x8] + ldrh r0, [r4] + str r0, [sp] + ldrh r0, [r4, 0x2] + str r0, [sp, 0x4] + lsrs r0, r6, 16 + str r0, [sp, 0x8] + lsrs r0, r5, 16 + str r0, [sp, 0xC] + adds r0, r7, 0 + bl sub_809D104 +_080EACFE: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EACBC + + thumb_func_start sub_80EAD08 +sub_80EAD08: @ 80EAD08 + push {r4,r5,lr} + ldr r0, _080EAD58 @ =gUnknown_03004DC0 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, _080EAD5C @ =gUnknown_03004DE0 + adds r4, r0, r1 + adds r4, 0xB0 + ldr r0, _080EAD60 @ =gUnknown_083DB694 + ldr r1, [r0] + movs r0, 0xDD + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + adds r2, r0, 0 + subs r2, 0x58 + movs r0, 0xFF + ands r2, r0 + movs r3, 0 + movs r5, 0xFF +_080EAD32: + ldrh r0, [r1] + adds r0, r3 + cmp r0, 0x80 + bne _080EAD42 + negs r0, r3 + adds r2, r0, 0 + subs r2, 0x58 + ands r2, r5 +_080EAD42: + strh r2, [r4] + adds r4, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3F + bls _080EAD32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EAD58: .4byte gUnknown_03004DC0 +_080EAD5C: .4byte gUnknown_03004DE0 +_080EAD60: .4byte gUnknown_083DB694 + thumb_func_end sub_80EAD08 + + thumb_func_start sub_80EAD64 +sub_80EAD64: @ 80EAD64 + push {lr} + lsls r1, 24 + ldr r2, _080EAD78 @ =gEasyChatGroupNames + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r1} + bx r1 + .align 2, 0 +_080EAD78: .4byte gEasyChatGroupNames + thumb_func_end sub_80EAD64 + + thumb_func_start sub_80EAD7C +sub_80EAD7C: @ 80EAD7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x14 + beq _080EADA2 + cmp r0, 0x14 + bgt _080EAD9C + cmp r0, 0x11 + blt _080EADBA + ldr r0, _080EAD98 @ =0x00000804 + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EAD98: .4byte 0x00000804 +_080EAD9C: + cmp r1, 0x15 + beq _080EADB0 + b _080EADBA +_080EADA2: + ldr r0, _080EADAC @ =0x00000806 + bl FlagGet + b _080EADB4 + .align 2, 0 +_080EADAC: .4byte 0x00000806 +_080EADB0: + bl sub_80EB9C8 +_080EADB4: + lsls r0, 24 + lsrs r0, 24 + b _080EADBC +_080EADBA: + movs r0, 0x1 +_080EADBC: + pop {r1} + bx r1 + thumb_func_end sub_80EAD7C + + thumb_func_start sub_80EADC0 +sub_80EADC0: @ 80EADC0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + cmp r2, 0x15 + bhi _080EAE82 + lsls r0, r2, 2 + ldr r1, _080EADD8 @ =_080EADDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EADD8: .4byte _080EADDC + .align 2, 0 +_080EADDC: + .4byte _080EAE50 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE82 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE62 + .4byte _080EAE34 + .4byte _080EAE78 +_080EAE34: + ldr r0, _080EAE4C @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + beq _080EAE70 + lsls r0, r3, 24 + lsrs r0, 24 + bl sub_80EB868 + b _080EAE7C + .align 2, 0 +_080EAE4C: .4byte gUnknown_083DB694 +_080EAE50: + adds r0, r3, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + b _080EAE7C +_080EAE62: + ldr r0, _080EAE74 @ =gUnknown_083DB694 + ldr r0, [r0] + adds r0, r2 + adds r0, 0x67 + ldrb r0, [r0] + cmp r0, 0 + bne _080EAE82 +_080EAE70: + movs r0, 0 + b _080EAE84 + .align 2, 0 +_080EAE74: .4byte gUnknown_083DB694 +_080EAE78: + bl sub_80EB9C8 +_080EAE7C: + lsls r0, 24 + lsrs r0, 24 + b _080EAE84 +_080EAE82: + movs r0, 0x1 +_080EAE84: + pop {r1} + bx r1 + thumb_func_end sub_80EADC0 + + thumb_func_start sub_80EAE88 +sub_80EAE88: @ 80EAE88 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080EAEA6 + cmp r4, 0x14 + beq _080EAEB2 + adds r0, r4, 0 + bl sub_80EAD7C + lsls r0, 24 + cmp r0, 0 + bne _080EAEBC + movs r0, 0 + b _080EAEC2 +_080EAEA6: + movs r0, 0 + bl sub_8090F68 + lsls r0, 16 + lsrs r0, 16 + b _080EAEC2 +_080EAEB2: + bl sub_80EB8C0 + lsls r0, 24 + lsrs r0, 24 + b _080EAEC2 +_080EAEBC: + ldr r0, _080EAEC8 @ =gEasyChatGroupSizes + adds r0, r4, r0 + ldrb r0, [r0] +_080EAEC2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EAEC8: .4byte gEasyChatGroupSizes + thumb_func_end sub_80EAE88 + + thumb_func_start sub_80EAECC +sub_80EAECC: @ 80EAECC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r0, 0 + mov r8, r0 + ldr r1, _080EAF10 @ =gUnknown_083DB694 + ldr r0, [r1] + ldr r3, _080EAF14 @ =0x00004142 + adds r3, r0, r3 + str r3, [sp, 0x4] +_080EAEE6: + ldr r1, _080EAF18 @ =gEasyChatWordsByLetter + mov r7, r8 + lsls r2, r7, 1 + adds r0, r2, r1 + ldrh r4, [r0] + mov r3, r8 + adds r3, 0x1 + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x4] + adds r1, r0, r2 + movs r0, 0 + strh r0, [r1] + mov r9, r0 + adds r6, r4, 0 + mov r10, r2 + str r3, [sp, 0x8] + b _080EB00C + .align 2, 0 +_080EAF10: .4byte gUnknown_083DB694 +_080EAF14: .4byte 0x00004142 +_080EAF18: .4byte gEasyChatWordsByLetter +_080EAF1C: + ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized + adds r0, r6, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + adds r4, r1, 0 + ldr r0, _080EAFB4 @ =0x0000feff + cmp r1, r0 + bls _080EAFCC + movs r0, 0xFF + ands r1, r0 + movs r7, 0 + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r3, _080EAFB8 @ =0x0000ffff + cmp r5, r3 + beq _080EB00C + mov r1, r8 + lsls r0, r1, 8 + subs r0, r1 + lsls r3, r0, 1 +_080EAF4E: + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 1 + ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized + adds r1, r0 + ldrh r4, [r1] + lsrs r0, r4, 9 + ldr r1, _080EAFBC @ =0x000001ff + adds r2, r1, 0 + adds r1, r4, 0 + ands r1, r2 + str r3, [sp, 0xC] + bl sub_80EADC0 + lsls r0, 24 + ldr r3, [sp, 0xC] + cmp r0, 0 + beq _080EAFA2 + cmp r7, 0 + bne _080EAFA2 + ldr r7, _080EAFC0 @ =gUnknown_083DB694 + ldr r2, [r7] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 1 + adds r1, r3 + ldr r7, _080EAFC4 @ =0x00000b78 + adds r0, r2, r7 + adds r0, r1 + strh r4, [r0] + ldr r0, _080EAFC8 @ =0x00004142 + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + movs r7, 0x1 +_080EAFA2: + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080EAFB8 @ =0x0000ffff + cmp r5, r1 + bne _080EAF4E + b _080EB00C + .align 2, 0 +_080EAFB0: .4byte gEasyChatWordsAlphabetized +_080EAFB4: .4byte 0x0000feff +_080EAFB8: .4byte 0x0000ffff +_080EAFBC: .4byte 0x000001ff +_080EAFC0: .4byte gUnknown_083DB694 +_080EAFC4: .4byte 0x00000b78 +_080EAFC8: .4byte 0x00004142 +_080EAFCC: + lsrs r0, r4, 9 + ldr r3, _080EB030 @ =0x000001ff + adds r2, r3, 0 + adds r1, r4, 0 + ands r1, r2 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB00C + ldr r7, _080EB034 @ =gUnknown_083DB694 + ldr r2, [r7] + mov r1, r9 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r3, r8 + lsls r0, r3, 8 + subs r0, r3 + adds r0, r1 + lsls r0, 1 + ldr r7, _080EB038 @ =0x00000b78 + adds r1, r2, r7 + adds r1, r0 + strh r4, [r1] + ldr r0, _080EB03C @ =0x00004142 + adds r2, r0 + add r2, r10 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EB00C: + ldr r1, [sp] + cmp r6, r1 + bcc _080EAF1C + ldr r3, [sp, 0x8] + lsls r0, r3, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x1A + bhi _080EB020 + b _080EAEE6 +_080EB020: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB030: .4byte 0x000001ff +_080EB034: .4byte gUnknown_083DB694 +_080EB038: .4byte 0x00000b78 +_080EB03C: .4byte 0x00004142 + thumb_func_end sub_80EAECC + + thumb_func_start sub_80EB040 +sub_80EB040: @ 80EB040 + push {r4-r6,lr} + movs r3, 0 +_080EB044: + adds r6, r3, 0x1 + cmp r3, 0 + beq _080EB094 + cmp r3, 0x15 + beq _080EB094 + cmp r3, 0x12 + beq _080EB094 + cmp r3, 0x13 + beq _080EB094 + ldr r0, _080EB0A4 @ =gEasyChatGroupWords + lsls r1, r3, 2 + adds r1, r0 + ldr r2, [r1] + movs r4, 0 + ldrb r0, [r2] + cmp r0, 0xFF + beq _080EB094 + ldr r0, _080EB0A8 @ =gUnknown_083DB694 + ldr r0, [r0] + ldr r1, _080EB0AC @ =0x000041a4 + adds r5, r0, r1 +_080EB06E: + lsls r0, r4, 2 + lsls r1, r3, 10 + adds r0, r1 + adds r0, r5, r0 + str r2, [r0] + ldrb r0, [r2] + adds r1, r4, 0x1 + cmp r0, 0xFF + beq _080EB088 +_080EB080: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB080 +_080EB088: + adds r2, 0x1 + lsls r0, r1, 16 + lsrs r4, r0, 16 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080EB06E +_080EB094: + lsls r0, r6, 16 + lsrs r3, r0, 16 + cmp r3, 0x15 + bls _080EB044 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EB0A4: .4byte gEasyChatGroupWords +_080EB0A8: .4byte gUnknown_083DB694 +_080EB0AC: .4byte 0x000041a4 + thumb_func_end sub_80EB040 + + thumb_func_start sub_80EB0B0 +sub_80EB0B0: @ 80EB0B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r3, _080EB184 @ =gUnknown_083DB694 + ldr r4, [r3] + adds r0, r4, 0 + adds r0, 0x26 + ldrb r5, [r0] + cmp r5, 0 + bne _080EB19C + movs r0, 0xDC + lsls r0, 1 + adds r2, r4, r0 + ldrb r6, [r2] + lsls r1, r6, 1 + ldr r7, _080EB188 @ =0x00004178 + adds r0, r4, r7 + adds r0, r1 + strh r5, [r0] + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r1, _080EB18C @ =gEasyChatGroupOrders + lsls r0, r6, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp] + movs r1, 0 + mov r8, r1 + ldr r1, _080EB190 @ =gEasyChatGroupSizes + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB0FE + b _080EB1FA +_080EB0FE: + movs r2, 0xDC + lsls r2, 1 + adds r2, r4, r2 + str r2, [sp, 0x4] + lsls r5, r6, 24 + mov r10, r5 +_080EB10A: + mov r1, r8 + lsls r0, r1, 1 + ldr r2, [sp] + adds r5, r0, r2 + ldrh r1, [r5] + mov r2, r10 + lsrs r0, r2, 24 + bl sub_80EADC0 + lsls r0, 24 + cmp r0, 0 + beq _080EB16A + ldr r0, _080EB184 @ =gUnknown_083DB694 + ldr r3, [r0] + lsls r1, r7, 1 + mov r2, r9 + lsls r0, r2, 2 + adds r1, r0 + ldr r0, _080EB194 @ =0x00009a2a + adds r4, r3, r0 + adds r4, r1 + movs r0, 0x7F + ands r0, r6 + lsls r0, 9 + ldrh r1, [r5] + ldr r5, _080EB198 @ =0x000001ff + adds r2, r5, 0 + ands r1, r2 + orrs r0, r1 + strh r0, [r4] + lsls r0, r6, 1 + ldr r1, _080EB188 @ =0x00004178 + adds r3, r1 + adds r3, r0 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _080EB16A + movs r7, 0 + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 +_080EB16A: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080EB190 @ =gEasyChatGroupSizes + ldr r2, [sp, 0x4] + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r8, r0 + bcc _080EB10A + b _080EB1FA + .align 2, 0 +_080EB184: .4byte gUnknown_083DB694 +_080EB188: .4byte 0x00004178 +_080EB18C: .4byte gEasyChatGroupOrders +_080EB190: .4byte gEasyChatGroupSizes +_080EB194: .4byte 0x00009a2a +_080EB198: .4byte 0x000001ff +_080EB19C: + movs r5, 0xDC + lsls r5, 1 + adds r0, r4, r5 + ldrb r2, [r0] + movs r3, 0 + movs r6, 0 + movs r5, 0 + lsls r1, r2, 1 + ldr r7, _080EB20C @ =0x00004142 + adds r0, r4, r7 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r5, r0 + bcs _080EB1FA + ldr r7, _080EB210 @ =0x00009a2a + adds r7, r4 + mov r8, r7 + lsls r0, r2, 8 + subs r0, r2 + lsls r7, r0, 1 + ldr r0, _080EB214 @ =0x00000b78 + adds r2, r4, r0 + adds r4, r1, 0 +_080EB1CA: + lsls r1, r3, 1 + lsls r0, r6, 2 + adds r1, r0 + add r1, r8 + lsls r0, r5, 1 + adds r0, r7 + adds r0, r2, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _080EB1EE + movs r3, 0 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080EB1EE: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r1, [r4] + cmp r5, r1 + bcc _080EB1CA +_080EB1FA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EB20C: .4byte 0x00004142 +_080EB210: .4byte 0x00009a2a +_080EB214: .4byte 0x00000b78 + thumb_func_end sub_80EB0B0 + + thumb_func_start sub_80EB218 +sub_80EB218: @ 80EB218 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB240 + ldr r1, _080EB23C @ =gOtherText_ThreeQuestions + b _080EB2A2 + .align 2, 0 +_080EB23C: .4byte gOtherText_ThreeQuestions +_080EB240: + ldr r0, _080EB250 @ =0x0000ffff + cmp r4, r0 + bne _080EB254 + adds r1, r5, 0 + movs r0, 0xFF + strb r0, [r1] + b _080EB2AA + .align 2, 0 +_080EB250: .4byte 0x0000ffff +_080EB254: + lsrs r2, r6, 25 + ldr r1, _080EB268 @ =0x000001ff + ands r1, r7 + cmp r2, 0x13 + bgt _080EB26C + cmp r2, 0x12 + bge _080EB280 + cmp r2, 0 + beq _080EB270 + b _080EB290 + .align 2, 0 +_080EB268: .4byte 0x000001ff +_080EB26C: + cmp r2, 0x15 + bne _080EB290 +_080EB270: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB27C @ =gSpeciesNames + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB27C: .4byte gSpeciesNames +_080EB280: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB28C @ =gMoveNames + adds r1, r0 + b _080EB2A2 + .align 2, 0 +_080EB28C: .4byte gMoveNames +_080EB290: + ldr r0, _080EB2CC @ =gUnknown_083DB694 + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB2D0 @ =0x000041a4 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB2A2: + adds r0, r5, 0 + bl StringCopy + adds r1, r0, 0 +_080EB2AA: + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x13 + strb r0, [r1, 0x1] + mov r2, r8 + lsls r0, r2, 3 + strb r0, [r1, 0x2] + adds r1, 0x3 + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB2CC: .4byte gUnknown_083DB694 +_080EB2D0: .4byte 0x000041a4 + thumb_func_end sub_80EB218 + + thumb_func_start sub_80EB2D4 +sub_80EB2D4: @ 80EB2D4 + push {r4-r6,lr} + lsls r5, r0, 16 + lsrs r4, r5, 16 + adds r6, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB2F8 + ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions + bl StringLength + lsls r0, 16 + lsrs r0, 16 + b _080EB374 + .align 2, 0 +_080EB2F4: .4byte gOtherText_ThreeQuestions +_080EB2F8: + ldr r0, _080EB304 @ =0x0000ffff + cmp r4, r0 + bne _080EB308 + movs r0, 0 + b _080EB374 + .align 2, 0 +_080EB304: .4byte 0x0000ffff +_080EB308: + lsrs r2, r5, 25 + ldr r1, _080EB31C @ =0x000001ff + ands r1, r6 + cmp r2, 0x13 + bgt _080EB320 + cmp r2, 0x12 + bge _080EB334 + cmp r2, 0 + beq _080EB324 + b _080EB344 + .align 2, 0 +_080EB31C: .4byte 0x000001ff +_080EB320: + cmp r2, 0x15 + bne _080EB344 +_080EB324: + movs r0, 0xB + muls r1, r0 + ldr r0, _080EB330 @ =gSpeciesNames + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB330: .4byte gSpeciesNames +_080EB334: + movs r0, 0xD + muls r1, r0 + ldr r0, _080EB340 @ =gMoveNames + adds r1, r0 + b _080EB356 + .align 2, 0 +_080EB340: .4byte gMoveNames +_080EB344: + ldr r0, _080EB35C @ =gUnknown_083DB694 + ldr r0, [r0] + lsls r1, 2 + lsls r2, 10 + adds r1, r2 + ldr r2, _080EB360 @ =0x000041a4 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] +_080EB356: + movs r2, 0 + b _080EB36C + .align 2, 0 +_080EB35C: .4byte gUnknown_083DB694 +_080EB360: .4byte 0x000041a4 +_080EB364: + adds r1, 0x1 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080EB36C: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080EB364 + adds r0, r2, 0 +_080EB374: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80EB2D4 + + thumb_func_start sub_80EB37C +sub_80EB37C: @ 80EB37C + push {r4,r5,lr} + lsls r1, r0, 16 + lsrs r3, r1, 16 + ldr r0, _080EB3A0 @ =0x0000ffff + cmp r3, r0 + beq _080EB3EA + lsrs r2, r1, 25 + ldr r5, _080EB3A4 @ =0x000001ff + ands r5, r3 + cmp r2, 0x15 + bhi _080EB3F4 + cmp r2, 0x13 + bgt _080EB3A8 + cmp r2, 0x12 + bge _080EB3AC + cmp r2, 0 + beq _080EB3AC + b _080EB3E0 + .align 2, 0 +_080EB3A0: .4byte 0x0000ffff +_080EB3A4: .4byte 0x000001ff +_080EB3A8: + cmp r2, 0x15 + bne _080EB3E0 +_080EB3AC: + ldr r0, _080EB3D8 @ =gEasyChatGroupWords + lsls r1, r2, 2 + adds r1, r0 + ldr r4, [r1] + movs r3, 0 + ldr r0, _080EB3DC @ =gEasyChatGroupSizes + adds r0, r2, r0 + ldrb r0, [r0] + cmp r3, r0 + bcs _080EB3F4 + adds r1, r0, 0 +_080EB3C2: + lsls r0, r3, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r5, r0 + beq _080EB3EA + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _080EB3C2 + b _080EB3F4 + .align 2, 0 +_080EB3D8: .4byte gEasyChatGroupWords +_080EB3DC: .4byte gEasyChatGroupSizes +_080EB3E0: + ldr r0, _080EB3F0 @ =gEasyChatGroupSizes + adds r0, r2, r0 + ldrb r0, [r0] + cmp r5, r0 + bcs _080EB3F4 +_080EB3EA: + movs r0, 0 + b _080EB3F6 + .align 2, 0 +_080EB3F0: .4byte gEasyChatGroupSizes +_080EB3F4: + movs r0, 0x1 +_080EB3F6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80EB37C + + thumb_func_start sub_80EB3FC +sub_80EB3FC: @ 80EB3FC + push {r4-r7,lr} + adds r5, r0, 0 + lsls r6, r1, 16 + lsrs r4, r6, 16 + adds r7, r4, 0 + adds r0, r4, 0 + bl sub_80EB37C + lsls r0, 24 + cmp r0, 0 + beq _080EB420 + ldr r1, _080EB41C @ =gOtherText_ThreeQuestions + adds r0, r5, 0 + bl StringCopy + b _080EB4A6 + .align 2, 0 +_080EB41C: .4byte gOtherText_ThreeQuestions +_080EB420: + ldr r0, _080EB43C @ =0x0000ffff + cmp r4, r0 + beq _080EB4A0 + lsrs r1, r6, 25 + ldr r2, _080EB440 @ =0x000001ff + ands r2, r7 + cmp r1, 0x13 + bgt _080EB444 + cmp r1, 0x12 + bge _080EB458 + cmp r1, 0 + beq _080EB448 + b _080EB468 + .align 2, 0 +_080EB43C: .4byte 0x0000ffff +_080EB440: .4byte 0x000001ff +_080EB444: + cmp r1, 0x15 + bne _080EB468 +_080EB448: + movs r0, 0xB + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB454 @ =gSpeciesNames + adds r1, r0 + b _080EB498 + .align 2, 0 +_080EB454: .4byte gSpeciesNames +_080EB458: + movs r0, 0xD + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB464 @ =gMoveNames + adds r1, r0 + b _080EB498 + .align 2, 0 +_080EB464: .4byte gMoveNames +_080EB468: + ldr r0, _080EB4AC @ =gEasyChatGroupWords + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB4B0 @ =0x0000ffff + cmp r2, r0 + beq _080EB498 + adds r3, r0, 0 +_080EB47E: + ldrb r0, [r1] + adds r1, 0x1 + subs r2, 0x1 + cmp r0, 0xFF + beq _080EB490 +_080EB488: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0xFF + bne _080EB488 +_080EB490: + lsls r0, r2, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB47E +_080EB498: + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 +_080EB4A0: + movs r0, 0xFF + strb r0, [r5] + adds r0, r5, 0 +_080EB4A6: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB4AC: .4byte gEasyChatGroupWords +_080EB4B0: .4byte 0x0000ffff + thumb_func_end sub_80EB3FC + + thumb_func_start ConvertEasyChatWordsToString +ConvertEasyChatWordsToString: @ 80EB4B4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 16 + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + ldr r0, _080EB53C @ =0xffff0000 + adds r2, r0 + lsrs r7, r2, 16 + movs r0, 0 + cmp r0, r9 + bcs _080EB524 +_080EB4D6: + movs r6, 0 + adds r0, 0x1 + mov r8, r0 + cmp r6, r7 + bcs _080EB508 + ldr r2, _080EB540 @ =0x0000ffff +_080EB4E2: + ldrh r1, [r5] + adds r0, r4, 0 + str r2, [sp] + bl sub_80EB3FC + adds r4, r0, 0 + ldrh r0, [r5] + ldr r2, [sp] + cmp r0, r2 + beq _080EB4FC + movs r0, 0 + strb r0, [r4] + adds r4, 0x1 +_080EB4FC: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080EB4E2 +_080EB508: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r4, 0 + bl sub_80EB3FC + adds r4, r0, 0 + movs r0, 0xFE + strb r0, [r4] + adds r4, 0x1 + mov r1, r8 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r9 + bcc _080EB4D6 +_080EB524: + subs r4, 0x1 + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EB53C: .4byte 0xffff0000 +_080EB540: .4byte 0x0000ffff + thumb_func_end ConvertEasyChatWordsToString + + thumb_func_start sub_80EB544 +sub_80EB544: @ 80EB544 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 16 + lsls r3, 16 + lsrs r3, 16 + mov r10, r3 + ldr r0, _080EB5B0 @ =0xffff0000 + adds r2, r0 + lsrs r2, 16 + mov r8, r2 + movs r7, 0 + cmp r7, r10 + bcs _080EB5C8 +_080EB56A: + movs r6, 0 + adds r1, r7, 0x1 + mov r9, r1 + cmp r6, r8 + bcs _080EB59C + ldr r2, _080EB5B4 @ =0x0000ffff +_080EB576: + ldrh r1, [r5] + adds r0, r4, 0 + str r2, [sp] + bl sub_80EB3FC + adds r4, r0, 0 + ldrh r0, [r5] + ldr r2, [sp] + cmp r0, r2 + beq _080EB590 + movs r0, 0 + strb r0, [r4] + adds r4, 0x1 +_080EB590: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r8 + bcc _080EB576 +_080EB59C: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r4, 0 + bl sub_80EB3FC + adds r4, r0, 0 + cmp r7, 0 + bne _080EB5B8 + movs r0, 0xFE + b _080EB5BA + .align 2, 0 +_080EB5B0: .4byte 0xffff0000 +_080EB5B4: .4byte 0x0000ffff +_080EB5B8: + movs r0, 0xFA +_080EB5BA: + strb r0, [r4] + adds r4, 0x1 + mov r1, r9 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _080EB56A +_080EB5C8: + subs r4, 0x1 + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80EB544 + + thumb_func_start unref_sub_80EB5E0 +unref_sub_80EB5E0: @ 80EB5E0 + push {lr} + lsls r1, r0, 16 + lsrs r3, r1, 16 + ldr r0, _080EB5F0 @ =0x0000ffff + cmp r3, r0 + bne _080EB5F4 + movs r0, 0 + b _080EB67C + .align 2, 0 +_080EB5F0: .4byte 0x0000ffff +_080EB5F4: + lsrs r1, 25 + ldr r2, _080EB608 @ =0x000001ff + ands r2, r3 + cmp r1, 0x13 + bgt _080EB60C + cmp r1, 0x12 + bge _080EB620 + cmp r1, 0 + beq _080EB610 + b _080EB630 + .align 2, 0 +_080EB608: .4byte 0x000001ff +_080EB60C: + cmp r1, 0x15 + bne _080EB630 +_080EB610: + movs r0, 0xB + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB61C @ =gSpeciesNames + adds r1, r0 + b _080EB660 + .align 2, 0 +_080EB61C: .4byte gSpeciesNames +_080EB620: + movs r0, 0xD + adds r1, r2, 0 + muls r1, r0 + ldr r0, _080EB62C @ =gMoveNames + adds r1, r0 + b _080EB660 + .align 2, 0 +_080EB62C: .4byte gMoveNames +_080EB630: + ldr r0, _080EB664 @ =gEasyChatGroupWords + lsls r1, 2 + adds r1, r0 + ldr r1, [r1] + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB668 @ =0x0000ffff + cmp r2, r0 + beq _080EB660 + adds r3, r0, 0 +_080EB646: + ldrb r0, [r1] + adds r1, 0x1 + subs r2, 0x1 + cmp r0, 0xFF + beq _080EB658 +_080EB650: + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0xFF + bne _080EB650 +_080EB658: + lsls r0, r2, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB646 +_080EB660: + movs r2, 0 + b _080EB674 + .align 2, 0 +_080EB664: .4byte gEasyChatGroupWords +_080EB668: .4byte 0x0000ffff +_080EB66C: + adds r1, 0x1 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080EB674: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080EB66C + adds r0, r2, 0 +_080EB67C: + pop {r1} + bx r1 + thumb_func_end unref_sub_80EB5E0 + + thumb_func_start sub_80EB680 +sub_80EB680: @ 80EB680 + movs r0, 0 + bx lr + thumb_func_end sub_80EB680 + + thumb_func_start unref_sub_80EB684 +unref_sub_80EB684: @ 80EB684 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r0, 0x7 + beq _080EB6B4 + cmp r0, 0x7 + bgt _080EB69E + cmp r0, 0x5 + beq _080EB6A4 + b _080EB6EE +_080EB69E: + cmp r2, 0x8 + beq _080EB6C4 + b _080EB6EE +_080EB6A4: + movs r2, 0x6 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C + b _080EB6CE + .align 2, 0 +_080EB6B0: .4byte gSaveBlock1 + 0x273C +_080EB6B4: + movs r2, 0x2 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754 + b _080EB6CE + .align 2, 0 +_080EB6C0: .4byte gSaveBlock1 + 0x2754 +_080EB6C4: + movs r2, 0x1 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A +_080EB6CE: + adds r1, r0, r1 + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _080EB6F8 @ =0x0000ffff + cmp r2, r0 + beq _080EB6EE + adds r4, r0, 0 + adds r3, r0, 0 +_080EB6E0: + strh r4, [r1] + adds r1, 0x2 + subs r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bne _080EB6E0 +_080EB6EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EB6F4: .4byte gSaveBlock1 + 0x273A +_080EB6F8: .4byte 0x0000ffff + thumb_func_end unref_sub_80EB684 + + thumb_func_start sub_80EB6FC +sub_80EB6FC: @ 80EB6FC + push {lr} + adds r2, r0, 0 + lsls r1, 16 + ldr r0, _080EB724 @ =0xffff0000 + adds r1, r0 + lsrs r0, r1, 16 + ldr r1, _080EB728 @ =0x0000ffff + cmp r0, r1 + beq _080EB71E + adds r3, r1, 0 +_080EB710: + strh r3, [r2] + adds r2, 0x2 + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bne _080EB710 +_080EB71E: + pop {r0} + bx r0 + .align 2, 0 +_080EB724: .4byte 0xffff0000 +_080EB728: .4byte 0x0000ffff + thumb_func_end sub_80EB6FC + + thumb_func_start sub_80EB72C +sub_80EB72C: @ 80EB72C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080EB778 @ =gEasyChatGroupSizes + adds r1, r4, r1 + ldrb r1, [r1] + bl __modsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r4, 0 + beq _080EB758 + cmp r4, 0x15 + beq _080EB758 + cmp r4, 0x12 + beq _080EB758 + cmp r4, 0x13 + bne _080EB766 +_080EB758: + ldr r1, _080EB77C @ =gEasyChatGroupWords + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + lsls r0, r2, 1 + adds r0, r1 + ldrh r2, [r0] +_080EB766: + movs r0, 0x7F + ands r0, r4 + lsls r0, 9 + ldr r1, _080EB780 @ =0x000001ff + ands r2, r1 + orrs r0, r2 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EB778: .4byte gEasyChatGroupSizes +_080EB77C: .4byte gEasyChatGroupWords +_080EB780: .4byte 0x000001ff + thumb_func_end sub_80EB72C + + thumb_func_start sub_80EB784 +sub_80EB784: @ 80EB784 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80EAD7C + lsls r0, 24 + cmp r0, 0 + bne _080EB7A0 + ldr r0, _080EB79C @ =0x0000ffff + b _080EB7BE + .align 2, 0 +_080EB79C: .4byte 0x0000ffff +_080EB7A0: + cmp r4, 0 + beq _080EB7AE + cmp r4, 0x14 + bne _080EB7B4 + bl sub_80EB960 + b _080EB7BA +_080EB7AE: + bl sub_80EB9D8 + b _080EB7BA +_080EB7B4: + adds r0, r4, 0 + bl sub_80EB72C +_080EB7BA: + lsls r0, 16 + lsrs r0, 16 +_080EB7BE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EB784 + + thumb_func_start sub_80EB7C4 +sub_80EB7C4: @ 80EB7C4 + push {r4,r5,lr} + ldr r0, _080EB7D8 @ =gUnknown_0202E8CC + ldrh r0, [r0] + cmp r0, 0x1 + beq _080EB7F0 + cmp r0, 0x1 + bgt _080EB7DC + cmp r0, 0 + beq _080EB7E6 + b _080EB82E + .align 2, 0 +_080EB7D8: .4byte gUnknown_0202E8CC +_080EB7DC: + cmp r0, 0x2 + beq _080EB810 + cmp r0, 0x3 + beq _080EB818 + b _080EB82E +_080EB7E6: + ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C + movs r2, 0x2 + b _080EB81C + .align 2, 0 +_080EB7EC: .4byte gSaveBlock1 + 0x2B1C +_080EB7F0: + ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28 + adds r0, r5, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x14 + bl sub_80EB680 + lsls r0, 24 + cmp r0, 0 + beq _080EB81A + movs r2, 0x2 + movs r3, 0x3 + b _080EB81E + .align 2, 0 +_080EB80C: .4byte gSaveBlock1 + 0x2B28 +_080EB810: + ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34 + b _080EB81A + .align 2, 0 +_080EB814: .4byte gSaveBlock1 + 0x2B34 +_080EB818: + ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40 +_080EB81A: + movs r2, 0x3 +_080EB81C: + movs r3, 0x2 +_080EB81E: + ldr r4, _080EB838 @ =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl ConvertEasyChatWordsToString + adds r0, r4, 0 + bl ShowFieldAutoScrollMessage +_080EB82E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EB834: .4byte gSaveBlock1 + 0x2B40 +_080EB838: .4byte gStringVar4 + thumb_func_end sub_80EB7C4 + + thumb_func_start sub_80EB83C +sub_80EB83C: @ 80EB83C + push {lr} + bl Random + movs r1, 0x1 + ands r1, r0 + movs r0, 0xC + cmp r1, 0 + beq _080EB84E + movs r0, 0xD +_080EB84E: + bl sub_80EB784 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _080EB864 @ =gStringVar2 + bl sub_80EB3FC + pop {r0} + bx r0 + .align 2, 0 +_080EB864: .4byte gStringVar2 + thumb_func_end sub_80EB83C + + thumb_func_start sub_80EB868 +sub_80EB868: @ 80EB868 + lsls r0, 24 + lsrs r2, r0, 27 + movs r1, 0xE0 + lsls r1, 19 + ands r1, r0 + lsrs r1, 24 + ldr r0, _080EB888 @ =gSaveBlock1 + ldr r3, _080EB88C @ =0x00002d8c + adds r0, r3 + adds r2, r0 + ldrb r0, [r2] + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_080EB888: .4byte gSaveBlock1 +_080EB88C: .4byte 0x00002d8c + thumb_func_end sub_80EB868 + + thumb_func_start sub_80EB890 +sub_80EB890: @ 80EB890 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x20 + bhi _080EB8B2 + lsrs r2, r0, 27 + movs r1, 0x7 + ands r1, r3 + ldr r0, _080EB8B8 @ =gSaveBlock1 + ldr r3, _080EB8BC @ =0x00002d8c + adds r0, r3 + adds r2, r0 + movs r0, 0x1 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_080EB8B2: + pop {r0} + bx r0 + .align 2, 0 +_080EB8B8: .4byte gSaveBlock1 +_080EB8BC: .4byte 0x00002d8c + thumb_func_end sub_80EB890 + + thumb_func_start sub_80EB8C0 +sub_80EB8C0: @ 80EB8C0 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_080EB8C6: + adds r0, r4, 0 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + beq _080EB8D8 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080EB8D8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x20 + bls _080EB8C6 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80EB8C0 + + thumb_func_start sub_80EB8EC +sub_80EB8EC: @ 80EB8EC + push {r4-r6,lr} + bl sub_80EB8C0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x21 + bne _080EB918 + b _080EB952 +_080EB8FC: + adds r0, r5, 0 + bl sub_80EB890 + ldr r0, _080EB914 @ =0x000001ff + ands r4, r0 + movs r1, 0xA0 + lsls r1, 6 + adds r0, r1, 0 + orrs r4, r0 + adds r0, r4, 0 + b _080EB954 + .align 2, 0 +_080EB914: .4byte 0x000001ff +_080EB918: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x21 + subs r1, r4 + bl __modsi3 + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 +_080EB92E: + lsls r0, r4, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + bne _080EB948 + cmp r6, 0 + beq _080EB8FC + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080EB948: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x20 + bls _080EB92E +_080EB952: + ldr r0, _080EB95C @ =0x0000ffff +_080EB954: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080EB95C: .4byte 0x0000ffff + thumb_func_end sub_80EB8EC + + thumb_func_start sub_80EB960 +sub_80EB960: @ 80EB960 + push {r4,r5,lr} + bl sub_80EB8C0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080EB984 + b _080EB9BA +_080EB970: + ldr r0, _080EB980 @ =0x000001ff + ands r4, r0 + movs r1, 0xA0 + lsls r1, 6 + adds r0, r1, 0 + orrs r4, r0 + adds r0, r4, 0 + b _080EB9BC + .align 2, 0 +_080EB980: .4byte 0x000001ff +_080EB984: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r5, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0 +_080EB998: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80EB868 + lsls r0, 24 + cmp r0, 0 + beq _080EB9B0 + cmp r5, 0 + beq _080EB970 + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080EB9B0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x20 + bls _080EB998 +_080EB9BA: + ldr r0, _080EB9C4 @ =0x0000ffff +_080EB9BC: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080EB9C4: .4byte 0x0000ffff + thumb_func_end sub_80EB960 + + thumb_func_start sub_80EB9C8 +sub_80EB9C8: @ 80EB9C8 + push {lr} + bl sub_806912C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80EB9C8 + + thumb_func_start sub_80EB9D8 +sub_80EB9D8: @ 80EB9D8 + push {r4-r7,lr} + movs r0, 0 + bl sub_80EAE88 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + bne _080EB9F8 + b _080EBA46 +_080EB9EA: + ldrh r1, [r5] + ldr r0, _080EB9F4 @ =0x000001ff + ands r0, r1 + b _080EBA48 + .align 2, 0 +_080EB9F4: .4byte 0x000001ff +_080EB9F8: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080EBA50 @ =gEasyChatGroupWords + ldr r5, [r0] + movs r6, 0 + ldr r0, _080EBA54 @ =gEasyChatGroupSizes + ldrb r0, [r0] + cmp r6, r0 + bcs _080EBA46 + adds r7, r0, 0 +_080EBA1A: + ldrh r0, [r5] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _080EBA3A + cmp r4, 0 + beq _080EB9EA + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080EBA3A: + adds r5, 0x2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _080EBA1A +_080EBA46: + ldr r0, _080EBA58 @ =0x0000ffff +_080EBA48: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080EBA50: .4byte gEasyChatGroupWords +_080EBA54: .4byte gEasyChatGroupSizes +_080EBA58: .4byte 0x0000ffff + thumb_func_end sub_80EB9D8 + + thumb_func_start sub_80EBA5C +sub_80EBA5C: @ 80EBA5C + push {lr} + ldr r0, _080EBA74 @ =gMain + ldr r2, _080EBA78 @ =0x0000043c + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xE + bhi _080EBABC + lsls r0, 2 + ldr r1, _080EBA7C @ =_080EBA80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBA74: .4byte gMain +_080EBA78: .4byte 0x0000043c +_080EBA7C: .4byte _080EBA80 + .align 2, 0 +_080EBA80: + .4byte _080EBAC0 + .4byte _080EBB08 + .4byte _080EBB10 + .4byte _080EBB16 + .4byte _080EBB1C + .4byte _080EBB22 + .4byte _080EBB28 + .4byte _080EBB2E + .4byte _080EBB3E + .4byte _080EBB4C + .4byte _080EBB5C + .4byte _080EBB6C + .4byte _080EBB7C + .4byte _080EBB90 + .4byte _080EBBA0 +_080EBABC: + movs r0, 0 + strb r0, [r1] +_080EBAC0: + bl is_c1_link_related_active + ldr r3, _080EBAF0 @ =0x02000000 + ldr r2, _080EBAF4 @ =0x00006dac + adds r1, r3, r2 + strb r0, [r1] + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080EBBC0 + ldr r1, _080EBAF8 @ =0x00006dab + adds r0, r3, r1 + strb r2, [r0] + ldr r1, _080EBAFC @ =gMain + ldr r2, _080EBB00 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080EBB04 @ =sub_80EBBE8 + bl SetMainCallback2 + b _080EBBC0 + .align 2, 0 +_080EBAF0: .4byte 0x02000000 +_080EBAF4: .4byte 0x00006dac +_080EBAF8: .4byte 0x00006dab +_080EBAFC: .4byte gMain +_080EBB00: .4byte 0x0000043c +_080EBB04: .4byte sub_80EBBE8 +_080EBB08: + movs r0, 0 + bl SetVBlankCallback + b _080EBBC0 +_080EBB10: + bl ResetPaletteFade + b _080EBBC0 +_080EBB16: + bl ResetSpriteData + b _080EBBC0 +_080EBB1C: + bl FreeAllSpritePalettes + b _080EBBC0 +_080EBB22: + bl ResetTasks + b _080EBBC0 +_080EBB28: + bl remove_some_task + b _080EBBC0 +_080EBB2E: + bl sub_80F1A90 + ldr r1, _080EBB44 @ =gMain + ldr r0, _080EBB48 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB3E: + bl sub_80F1AC4 + b _080EBB80 + .align 2, 0 +_080EBB44: .4byte gMain +_080EBB48: .4byte 0x0000043c +_080EBB4C: + bl sub_80F2688 + ldr r1, _080EBB64 @ =gMain + ldr r2, _080EBB68 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB5C: + bl sub_80F26BC + b _080EBB80 + .align 2, 0 +_080EBB64: .4byte gMain +_080EBB68: .4byte 0x0000043c +_080EBB6C: + bl sub_80F36F0 + ldr r1, _080EBB88 @ =gMain + ldr r0, _080EBB8C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBB7C: + bl sub_80F3724 +_080EBB80: + lsls r0, 24 + cmp r0, 0 + bne _080EBBCC + b _080EBBC0 + .align 2, 0 +_080EBB88: .4byte gMain +_080EBB8C: .4byte 0x0000043c +_080EBB90: + bl sub_80EBC10 + ldr r0, _080EBB9C @ =sub_80EBDD8 + bl sub_80EBDBC + b _080EBBC0 + .align 2, 0 +_080EBB9C: .4byte sub_80EBDD8 +_080EBBA0: + ldr r0, _080EBBD0 @ =0x02000000 + ldr r1, _080EBBD4 @ =0x00006dab + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x6E + bl PlaySE + ldr r0, _080EBBD8 @ =sub_80EBD90 + bl SetMainCallback2 + ldr r0, _080EBBDC @ =sub_80EBD18 + bl SetVBlankCallback + bl sub_80F1A74 +_080EBBC0: + ldr r1, _080EBBE0 @ =gMain + ldr r2, _080EBBE4 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EBBCC: + pop {r0} + bx r0 + .align 2, 0 +_080EBBD0: .4byte 0x02000000 +_080EBBD4: .4byte 0x00006dab +_080EBBD8: .4byte sub_80EBD90 +_080EBBDC: .4byte sub_80EBD18 +_080EBBE0: .4byte gMain +_080EBBE4: .4byte 0x0000043c + thumb_func_end sub_80EBA5C + + thumb_func_start sub_80EBBE8 +sub_80EBBE8: @ 80EBBE8 + push {r4,lr} + ldr r0, _080EBC08 @ =0x02000000 + ldr r2, _080EBC0C @ =0x00006dab + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080EBC02 + adds r4, r1, 0 +_080EBBF8: + bl sub_80EBA5C + ldrb r0, [r4] + cmp r0, 0 + beq _080EBBF8 +_080EBC02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBC08: .4byte 0x02000000 +_080EBC0C: .4byte 0x00006dab + thumb_func_end sub_80EBBE8 + + thumb_func_start sub_80EBC10 +sub_80EBC10: @ 80EBC10 + push {r4-r7,lr} + ldr r1, _080EBC7C @ =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + bl CalculatePlayerPartyCount + ldr r2, _080EBC80 @ =0x02000000 + ldr r1, _080EBC84 @ =0x00008828 + adds r3, r2, r1 + movs r1, 0 + strb r0, [r3] + ldr r3, _080EBC88 @ =0x00006ddc + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC8C @ =0x00009344 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _080EBC90 @ =0x00008768 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080EBC94 @ =0x0000ced0 + adds r0, r2, r3 + str r1, [r0] + movs r3, 0 + ldr r0, _080EBC98 @ =0x00008fff + adds r7, r2, r0 + mov r12, r2 + movs r6, 0 + ldr r5, _080EBC9C @ =0x00009040 + movs r4, 0x9B +_080EBC4C: + adds r0, r3, r7 + strb r6, [r0] + lsls r1, r3, 2 + adds r1, r2 + adds r0, r1, r5 + strh r4, [r0] + ldr r0, _080EBCA0 @ =0x00009042 + adds r1, r0 + movs r0, 0x5B + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080EBC4C + ldr r1, _080EBCA4 @ =0x00006e95 + add r1, r12 + movs r0, 0 + strb r0, [r1] + bl sub_80EBCA8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EBC7C: .4byte gKeyRepeatStartDelay +_080EBC80: .4byte 0x02000000 +_080EBC84: .4byte 0x00008828 +_080EBC88: .4byte 0x00006ddc +_080EBC8C: .4byte 0x00009344 +_080EBC90: .4byte 0x00008768 +_080EBC94: .4byte 0x0000ced0 +_080EBC98: .4byte 0x00008fff +_080EBC9C: .4byte 0x00009040 +_080EBCA0: .4byte 0x00009042 +_080EBCA4: .4byte 0x00006e95 + thumb_func_end sub_80EBC10 + + thumb_func_start sub_80EBCA8 +sub_80EBCA8: @ 80EBCA8 + push {r4,lr} + ldr r4, _080EBCDC @ =0x02000000 + ldr r0, _080EBCE0 @ =0x00006db2 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EBCE4 @ =0x00006db3 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, _080EBCE8 @ =0x00006db4 + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + ldr r0, _080EBCEC @ =0x0000083b + bl FlagGet + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EBCF4 + ldr r0, _080EBCF0 @ =0x00006db5 + adds r1, r4, r0 + movs r0, 0x4 + strb r0, [r1] + b _080EBCFA + .align 2, 0 +_080EBCDC: .4byte 0x02000000 +_080EBCE0: .4byte 0x00006db2 +_080EBCE4: .4byte 0x00006db3 +_080EBCE8: .4byte 0x00006db4 +_080EBCEC: .4byte 0x0000083b +_080EBCF0: .4byte 0x00006db5 +_080EBCF4: + ldr r1, _080EBD0C @ =0x00006db5 + adds r0, r4, r1 + strb r2, [r0] +_080EBCFA: + ldr r0, _080EBD10 @ =0x02000000 + ldr r1, _080EBD14 @ =0x00006db6 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EBD0C: .4byte 0x00006db5 +_080EBD10: .4byte 0x02000000 +_080EBD14: .4byte 0x00006db6 + thumb_func_end sub_80EBCA8 + + thumb_func_start sub_80EBD18 +sub_80EBD18: @ 80EBD18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F1FF0 + pop {r0} + bx r0 + thumb_func_end sub_80EBD18 + + thumb_func_start sub_80EBD30 +sub_80EBD30: @ 80EBD30 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80FB260 + bl sub_80EFE7C + pop {r0} + bx r0 + thumb_func_end sub_80EBD30 + + thumb_func_start sub_80EBD4C +sub_80EBD4C: @ 80EBD4C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F5BF0 + bl sub_8089668 + pop {r0} + bx r0 + thumb_func_end sub_80EBD4C + + thumb_func_start sub_80EBD68 +sub_80EBD68: @ 80EBD68 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_80F6F64 + pop {r0} + bx r0 + thumb_func_end sub_80EBD68 + + thumb_func_start sub_80EBD80 +sub_80EBD80: @ 80EBD80 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + pop {r0} + bx r0 + thumb_func_end sub_80EBD80 + + thumb_func_start sub_80EBD90 +sub_80EBD90: @ 80EBD90 + push {lr} + ldr r0, _080EBDB8 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + bl sub_80F19FC + pop {r0} + bx r0 + .align 2, 0 +_080EBDB8: .4byte 0x02000000 + thumb_func_end sub_80EBD90 + + thumb_func_start sub_80EBDBC +sub_80EBDBC: @ 80EBDBC + ldr r2, _080EBDD4 @ =0x02000000 + movs r3, 0xC0 + lsls r3, 2 + adds r1, r2, r3 + str r0, [r1] + movs r0, 0xC1 + lsls r0, 2 + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080EBDD4: .4byte 0x02000000 + thumb_func_end sub_80EBDBC + + thumb_func_start sub_80EBDD8 +sub_80EBDD8: @ 80EBDD8 + push {lr} + sub sp, 0x4 + ldr r1, _080EBDF8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x11 + bls _080EBDEE + b _080EC000 +_080EBDEE: + lsls r0, 2 + ldr r1, _080EBDFC @ =_080EBE00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EBDF8: .4byte 0x02000000 +_080EBDFC: .4byte _080EBE00 + .align 2, 0 +_080EBE00: + .4byte _080EBE48 + .4byte _080EBE80 + .4byte _080EBE92 + .4byte _080EBEAC + .4byte _080EBEC0 + .4byte _080EBED2 + .4byte _080EBEF0 + .4byte _080EBF04 + .4byte _080EBF18 + .4byte _080EBF2C + .4byte _080EBF48 + .4byte _080EBF54 + .4byte _080EBF74 + .4byte _080EBF88 + .4byte _080EBFA0 + .4byte _080EBFB4 + .4byte _080EBFD0 + .4byte _080EBFE8 +_080EBE48: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _080EBE74 @ =0x02000000 + ldr r3, _080EBE78 @ =0x00006ddc + adds r0, r1, r3 + ldrb r2, [r0] + subs r3, 0x2F + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EBE7C @ =0x00006dae + adds r2, r1, r0 + movs r0, 0x5 + strb r0, [r2] + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBE74: .4byte 0x02000000 +_080EBE78: .4byte 0x00006ddc +_080EBE7C: .4byte 0x00006dae +_080EBE80: + bl sub_80F3FF0 + ldr r1, _080EBEA8 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBE92: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + beq _080EBE9E + b _080EC000 +_080EBE9E: + ldr r1, _080EBEA8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEA8: .4byte 0x02000000 +_080EBEAC: + bl sub_80F2598 + ldr r1, _080EBEBC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBEBC: .4byte 0x02000000 +_080EBEC0: + bl sub_80EEE20 + ldr r1, _080EBEEC @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBED2: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + beq _080EBEDE + b _080EC000 +_080EBEDE: + bl sub_80EEE08 + ldr r1, _080EBEEC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBEEC: .4byte 0x02000000 +_080EBEF0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EBF14 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF04: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EBF12 + b _080EC000 +_080EBF12: + b _080EBFD4 + .align 2, 0 +_080EBF14: .4byte 0x02000000 +_080EBF18: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EBF44 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBF2C: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBF44 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF44: .4byte 0x02000000 +_080EBF48: + ldr r0, _080EBF50 @ =sub_80EBD18 + bl SetVBlankCallback + b _080EBFD4 + .align 2, 0 +_080EBF50: .4byte sub_80EBD18 +_080EBF54: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _080EBF70 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EBFDC + .align 2, 0 +_080EBF70: .4byte 0x02000000 +_080EBF74: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EBF84 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBF84: .4byte 0x02000000 +_080EBF88: + ldr r0, _080EBF9C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r2, r3 + b _080EBFDC + .align 2, 0 +_080EBF9C: .4byte gPaletteFade +_080EBFA0: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EBFCC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EBFB4: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + ldr r1, _080EBFCC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EBFDC + .align 2, 0 +_080EBFCC: .4byte 0x02000000 +_080EBFD0: + bl sub_80F1DF0 +_080EBFD4: + ldr r1, _080EBFE4 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080EBFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC000 + .align 2, 0 +_080EBFE4: .4byte 0x02000000 +_080EBFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC000 + movs r0, 0 + movs r1, 0 + bl sub_80EF428 + ldr r0, _080EC008 @ =sub_80EC268 + bl sub_80EBDBC +_080EC000: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EC008: .4byte sub_80EC268 + thumb_func_end sub_80EBDD8 + + thumb_func_start sub_80EC00C +sub_80EC00C: @ 80EC00C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC02C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080EC022 + b _080EC1FA +_080EC022: + lsls r0, 2 + ldr r1, _080EC030 @ =_080EC034 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC02C: .4byte 0x02000000 +_080EC030: .4byte _080EC034 + .align 2, 0 +_080EC034: + .4byte _080EC06C + .4byte _080EC0C0 + .4byte _080EC0D4 + .4byte _080EC0F0 + .4byte _080EC104 + .4byte _080EC120 + .4byte _080EC12A + .4byte _080EC154 + .4byte _080EC168 + .4byte _080EC180 + .4byte _080EC194 + .4byte _080EC1A8 + .4byte _080EC1C4 + .4byte _080EC1DC +_080EC06C: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080EC078 + b _080EC1FA +_080EC078: + ldr r0, _080EC0AC @ =sub_80EBD80 + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080EC0B0 @ =0x02000000 + ldr r1, _080EC0B4 @ =0x00006ddc + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080EC0B8 @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080EC0BC @ =0x00006dae + adds r1, r4, r0 + movs r0, 0x5 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC1FA + .align 2, 0 +_080EC0AC: .4byte sub_80EBD80 +_080EC0B0: .4byte 0x02000000 +_080EC0B4: .4byte 0x00006ddc +_080EC0B8: .4byte 0x00006dad +_080EC0BC: .4byte 0x00006dae +_080EC0C0: + movs r0, 0 + bl sub_80EF248 + ldr r1, _080EC0EC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC0D4: + movs r0, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080EC0E2 + b _080EC1FA +_080EC0E2: + ldr r1, _080EC0EC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC0EC: .4byte 0x02000000 +_080EC0F0: + movs r0, 0 + bl sub_80F1B8C + ldr r1, _080EC11C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC104: + movs r0, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080EC112 + b _080EC1FA +_080EC112: + ldr r1, _080EC11C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC11C: .4byte 0x02000000 +_080EC120: + bl sub_8055870 + cmp r0, 0 + bne _080EC1FA + b _080EC1C8 +_080EC12A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EC150 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC150: .4byte sub_80EBD18 +_080EC154: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080EC164 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC164: .4byte 0x02000000 +_080EC168: + ldr r0, _080EC17C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC1FA + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC1D0 + .align 2, 0 +_080EC17C: .4byte gPaletteFade +_080EC180: + bl sub_80F2598 + ldr r1, _080EC190 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC190: .4byte 0x02000000 +_080EC194: + movs r0, 0 + bl sub_80F2C80 + ldr r1, _080EC1C0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC1A8: + movs r0, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r1, _080EC1C0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EC1D0 + .align 2, 0 +_080EC1C0: .4byte 0x02000000 +_080EC1C4: + bl sub_80F1DF0 +_080EC1C8: + ldr r1, _080EC1D8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080EC1D0: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC1FA + .align 2, 0 +_080EC1D8: .4byte 0x02000000 +_080EC1DC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EC1FA + ldr r0, _080EC204 @ =0x02000000 + ldr r1, _080EC208 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + ldr r0, _080EC20C @ =sub_80EC268 + bl sub_80EBDBC +_080EC1FA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC204: .4byte 0x02000000 +_080EC208: .4byte 0x00006dad +_080EC20C: .4byte sub_80EC268 + thumb_func_end sub_80EC00C + + thumb_func_start sub_80EC210 +sub_80EC210: @ 80EC210 + push {r4,r5,lr} + ldr r5, _080EC228 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC22C + cmp r0, 0x1 + beq _080EC24C + b _080EC25C + .align 2, 0 +_080EC228: .4byte 0x02000000 +_080EC22C: + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080EC248 @ =0x00006ddc + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC25C + .align 2, 0 +_080EC248: .4byte 0x00006ddc +_080EC24C: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC25C + ldr r0, _080EC264 @ =sub_80EC268 + bl sub_80EBDBC +_080EC25C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC264: .4byte sub_80EC268 + thumb_func_end sub_80EC210 + + thumb_func_start sub_80EC268 +sub_80EC268: @ 80EC268 + push {r4-r6,lr} + ldr r4, _080EC290 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r6, r4, r0 + ldrh r0, [r6] + cmp r0, 0x3 + bne _080EC27A + b _080EC3BE +_080EC27A: + cmp r0, 0x3 + bgt _080EC294 + cmp r0, 0x1 + bne _080EC284 + b _080EC3A2 +_080EC284: + cmp r0, 0x1 + ble _080EC28A + b _080EC3B4 +_080EC28A: + cmp r0, 0 + beq _080EC2AE + b _080EC492 + .align 2, 0 +_080EC290: .4byte 0x02000000 +_080EC294: + cmp r0, 0x6 + bne _080EC29A + b _080EC414 +_080EC29A: + cmp r0, 0x6 + bgt _080EC2A6 + cmp r0, 0x4 + bne _080EC2A4 + b _080EC3DC +_080EC2A4: + b _080EC492 +_080EC2A6: + cmp r0, 0xFF + bne _080EC2AC + b _080EC44C +_080EC2AC: + b _080EC492 +_080EC2AE: + bl sub_80EEC10 + lsls r0, 24 + cmp r0, 0 + beq _080EC2D4 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC2D0 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC2D0: .4byte 0x00006dad +_080EC2D4: + ldr r0, _080EC310 @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080EC394 + ldr r2, _080EC314 @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x2F + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + subs r2, 0x2A + adds r1, r4, r2 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x4 + bls _080EC304 + b _080EC492 +_080EC304: + lsls r0, 2 + ldr r1, _080EC318 @ =_080EC31C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC310: .4byte gMain +_080EC314: .4byte 0x00006dad +_080EC318: .4byte _080EC31C + .align 2, 0 +_080EC31C: + .4byte _080EC330 + .4byte _080EC344 + .4byte _080EC380 + .4byte _080EC36C + .4byte _080EC358 +_080EC330: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC340 @ =sub_80EC4A0 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC340: .4byte sub_80EC4A0 +_080EC344: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC354 @ =sub_80EC81C + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC354: .4byte sub_80EC81C +_080EC358: + ldr r0, _080EC368 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC368: .4byte 0x02000000 +_080EC36C: + ldr r0, _080EC37C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC37C: .4byte 0x02000000 +_080EC380: + ldr r0, _080EC390 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0] + b _080EC492 + .align 2, 0 +_080EC390: .4byte 0x02000000 +_080EC394: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080EC39E + b _080EC492 +_080EC39E: + strh r2, [r6] + b _080EC492 +_080EC3A2: + bl sub_80F208C + ldr r0, _080EC3B0 @ =sub_80EE96C + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC3B0: .4byte sub_80EE96C +_080EC3B4: + bl sub_80F6208 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] +_080EC3BE: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC3D8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC492 + .align 2, 0 +_080EC3D8: .4byte 0x02000000 +_080EC3DC: + bl sub_8055870 + cmp r0, 0 + bne _080EC492 + ldr r1, _080EC400 @ =0x00008fe8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080EC408 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC404 @ =sub_80EDB88 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC400: .4byte 0x00008fe8 +_080EC404: .4byte sub_80EDB88 +_080EC408: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x5 + b _080EC442 +_080EC414: + bl sub_80F6C20 + ldr r2, _080EC430 @ =0x0000d158 + adds r0, r4, r2 + ldrh r0, [r0] + cmp r0, 0 + beq _080EC438 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC434 @ =sub_80EE3D8 + bl sub_80EBDBC + b _080EC492 + .align 2, 0 +_080EC430: .4byte 0x0000d158 +_080EC434: .4byte sub_80EE3D8 +_080EC438: + movs r0, 0x20 + bl PlaySE + movs r0, 0 + movs r1, 0x6 +_080EC442: + bl sub_80EF428 + movs r0, 0xFF + strh r0, [r6] + b _080EC492 +_080EC44C: + bl sub_80EEC10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080EC478 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC474 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + movs r0, 0 + strh r0, [r6] + bl sub_80EED9C + b _080EC492 + .align 2, 0 +_080EC474: .4byte 0x00006dad +_080EC478: + ldr r0, _080EC498 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080EC492 + ldr r2, _080EC49C @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + movs r0, 0 + bl sub_80EF428 + strh r5, [r6] +_080EC492: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC498: .4byte gMain +_080EC49C: .4byte 0x00006dad + thumb_func_end sub_80EC268 + + thumb_func_start sub_80EC4A0 +sub_80EC4A0: @ 80EC4A0 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EC4C0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xE + bls _080EC4B6 + b _080EC66A +_080EC4B6: + lsls r0, 2 + ldr r1, _080EC4C4 @ =_080EC4C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC4C0: .4byte 0x02000000 +_080EC4C4: .4byte _080EC4C8 + .align 2, 0 +_080EC4C8: + .4byte _080EC504 + .4byte _080EC510 + .4byte _080EC544 + .4byte _080EC578 + .4byte _080EC594 + .4byte _080EC5A8 + .4byte _080EC5AE + .4byte _080EC5C0 + .4byte _080EC5D0 + .4byte _080EC5E4 + .4byte _080EC5F8 + .4byte _080EC614 + .4byte _080EC61E + .4byte _080EC63E + .4byte _080EC658 +_080EC504: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EC644 +_080EC510: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EC51C + b _080EC66A +_080EC51C: + ldr r0, _080EC53C @ =gSaveBlock2 + ldrb r1, [r0, 0x15] + movs r0, 0x8 + ands r0, r1 + movs r1, 0x8 + cmp r0, 0 + beq _080EC52C + movs r1, 0x7 +_080EC52C: + adds r0, r1, 0 + bl sub_80EEFBC + ldr r1, _080EC540 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC53C: .4byte gSaveBlock2 +_080EC540: .4byte 0x02000000 +_080EC544: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EC552 + b _080EC66A +_080EC552: + ldr r4, _080EC574 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C + .align 2, 0 +_080EC574: .4byte 0x02000000 +_080EC578: + ldr r0, _080EC590 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + b _080EC644 + .align 2, 0 +_080EC590: .4byte gPaletteFade +_080EC594: + bl sub_80F2620 + ldr r1, _080EC5A4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC5A4: .4byte 0x02000000 +_080EC5A8: + bl sub_80EF814 + b _080EC644 +_080EC5AE: + bl sub_80EF840 + ldr r1, _080EC5CC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5C0: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5CC: .4byte 0x02000000 +_080EC5D0: + movs r0, 0x4 + bl sub_80F2C80 + ldr r1, _080EC5F4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EC5E4: + movs r0, 0x4 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EC66A + b _080EC644 + .align 2, 0 +_080EC5F4: .4byte 0x02000000 +_080EC5F8: + bl sub_80F2DD8 + ldr r0, _080EC60C @ =sub_80EBD30 + bl SetVBlankCallback + ldr r1, _080EC610 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EC64C + .align 2, 0 +_080EC60C: .4byte sub_80EBD30 +_080EC610: .4byte 0x02000000 +_080EC614: + bl sub_8055870 + cmp r0, 0 + bne _080EC66A + b _080EC644 +_080EC61E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC64C +_080EC63E: + movs r0, 0x1 + bl sub_80EED2C +_080EC644: + ldr r1, _080EC654 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EC64C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC66A + .align 2, 0 +_080EC654: .4byte 0x02000000 +_080EC658: + ldr r0, _080EC674 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC66A + ldr r0, _080EC678 @ =sub_80EC67C + bl sub_80EBDBC +_080EC66A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC674: .4byte gPaletteFade +_080EC678: .4byte sub_80EC67C + thumb_func_end sub_80EC4A0 + + thumb_func_start sub_80EC67C +sub_80EC67C: @ 80EC67C + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080EC69C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x5 + bls _080EC692 + b _080EC800 +_080EC692: + lsls r0, 2 + ldr r1, _080EC6A0 @ =_080EC6A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EC69C: .4byte 0x02000000 +_080EC6A0: .4byte _080EC6A4 + .align 2, 0 +_080EC6A4: + .4byte _080EC6BC + .4byte _080EC718 + .4byte _080EC746 + .4byte _080EC77C + .4byte _080EC7A0 + .4byte _080EC7C4 +_080EC6BC: + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080EC6E2 + cmp r0, 0x3 + bgt _080EC6D2 + cmp r0, 0x1 + beq _080EC6DC + b _080EC800 +_080EC6D2: + cmp r0, 0x4 + beq _080EC6E8 + cmp r0, 0x5 + beq _080EC700 + b _080EC800 +_080EC6DC: + bl sub_80EED9C + b _080EC800 +_080EC6E2: + bl sub_80EF9F8 + b _080EC800 +_080EC6E8: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC6FC @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC6FC: .4byte 0x02000000 +_080EC700: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EC714 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0] + b _080EC800 + .align 2, 0 +_080EC714: .4byte 0x02000000 +_080EC718: + ldr r1, _080EC730 @ =0x00006e90 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EC734 + bl sub_80FAEC4 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EC7BC + .align 2, 0 +_080EC730: .4byte 0x00006e90 +_080EC734: + movs r0, 0x1 + bl sub_80EFBDC + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + bl sub_80FAEC4 + b _080EC7B6 +_080EC746: + bl sub_80FAFC0 + lsls r0, 24 + cmp r0, 0 + bne _080EC800 + ldr r5, _080EC76C @ =0x02000000 + ldr r1, _080EC770 @ =0x00006e90 + adds r0, r5, r1 + ldrb r4, [r0] + cmp r4, 0 + bne _080EC774 + bl sub_80EFBB0 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r5, r2 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC76C: .4byte 0x02000000 +_080EC770: .4byte 0x00006e90 +_080EC774: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 + b _080EC7BC +_080EC77C: + movs r0, 0 + bl sub_80EFBDC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EC800 + bl sub_80EFBB0 + ldr r0, _080EC79C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + strh r4, [r0] + b _080EC800 + .align 2, 0 +_080EC79C: .4byte 0x02000000 +_080EC7A0: + movs r2, 0xC2 + lsls r2, 2 + adds r0, r4, r2 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade +_080EC7B6: + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EC7BC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EC800 +_080EC7C4: + ldr r0, _080EC808 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EC800 + bl sub_80F2DF4 + movs r0, 0x4 + bl sub_80F2D04 + ldr r3, _080EC80C @ =gSaveBlock2 + movs r2, 0 + ldr r0, _080EC810 @ =0x02000000 + ldr r1, _080EC814 @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EC7EC + movs r2, 0x1 +_080EC7EC: + lsls r2, 3 + ldrb r1, [r3, 0x15] + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0x15] + ldr r0, _080EC818 @ =sub_80EC00C + bl sub_80EBDBC +_080EC800: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EC808: .4byte gPaletteFade +_080EC80C: .4byte gSaveBlock2 +_080EC810: .4byte 0x02000000 +_080EC814: .4byte 0x00006e90 +_080EC818: .4byte sub_80EC00C + thumb_func_end sub_80EC67C + + thumb_func_start sub_80EC81C +sub_80EC81C: @ 80EC81C + push {r4,lr} + ldr r0, _080EC834 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC838 + cmp r0, 0x1 + beq _080EC850 + b _080EC860 + .align 2, 0 +_080EC834: .4byte 0x02000000 +_080EC838: + movs r0, 0 + bl sub_80F2D04 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC860 +_080EC850: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC860 + ldr r0, _080EC868 @ =sub_80EC86C + bl sub_80EBDBC +_080EC860: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC868: .4byte sub_80EC86C + thumb_func_end sub_80EC81C + + thumb_func_start sub_80EC86C +sub_80EC86C: @ 80EC86C + push {r4-r6,lr} + ldr r4, _080EC884 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080EC888 + cmp r0, 0x1 + beq _080EC944 + b _080EC954 + .align 2, 0 +_080EC884: .4byte 0x02000000 +_080EC888: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080EC8B0 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC8AC @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + bl sub_80EED9C + b _080EC954 + .align 2, 0 +_080EC8AC: .4byte 0x00006dad +_080EC8B0: + ldr r0, _080EC8E4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EC918 + movs r0, 0x5 + bl PlaySE + ldr r2, _080EC8E8 @ =0x00006dad + adds r0, r4, r2 + ldrb r1, [r0] + adds r2, 0x43 + adds r0, r4, r2 + strb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080EC900 + cmp r0, 0x1 + bgt _080EC8EC + cmp r0, 0 + beq _080EC8F2 + b _080EC954 + .align 2, 0 +_080EC8E4: .4byte gMain +_080EC8E8: .4byte 0x00006dad +_080EC8EC: + cmp r0, 0x2 + beq _080EC90C + b _080EC954 +_080EC8F2: + ldr r0, _080EC8FC @ =sub_80ED620 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC8FC: .4byte sub_80ED620 +_080EC900: + ldr r0, _080EC908 @ =sub_80EC960 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC908: .4byte sub_80EC960 +_080EC90C: + ldr r0, _080EC914 @ =sub_80EC210 + bl sub_80EBDBC + b _080EC954 + .align 2, 0 +_080EC914: .4byte sub_80EC210 +_080EC918: + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EC954 + movs r0, 0x5 + bl PlaySE + ldr r1, _080EC93C @ =0x00006df0 + adds r0, r4, r1 + strb r6, [r0] + ldr r2, _080EC940 @ =0x00006dad + adds r0, r4, r2 + strb r6, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EC954 + .align 2, 0 +_080EC93C: .4byte 0x00006df0 +_080EC940: .4byte 0x00006dad +_080EC944: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080EC954 + ldr r0, _080EC95C @ =sub_80EC210 + bl sub_80EBDBC +_080EC954: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC95C: .4byte sub_80EC210 + thumb_func_end sub_80EC86C + + thumb_func_start sub_80EC960 +sub_80EC960: @ 80EC960 + push {r4,lr} + ldr r0, _080EC978 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC97C + cmp r0, 0x1 + beq _080EC98E + b _080EC99E + .align 2, 0 +_080EC978: .4byte 0x02000000 +_080EC97C: + movs r0, 0x2 + movs r1, 0 + movs r2, 0x5 + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EC99E +_080EC98E: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080EC99E + ldr r0, _080EC9A4 @ =sub_80ECC08 + bl sub_80EBDBC +_080EC99E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC9A4: .4byte sub_80ECC08 + thumb_func_end sub_80EC960 + + thumb_func_start sub_80EC9A8 +sub_80EC9A8: @ 80EC9A8 + push {r4,r5,lr} + ldr r5, _080EC9C0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + beq _080EC9C4 + cmp r0, 0x1 + beq _080EC9E4 + b _080ECA00 + .align 2, 0 +_080EC9C0: .4byte 0x02000000 +_080EC9C4: + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080EC9E0 @ =0x00006df0 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0xC + bl sub_80EE9C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECA00 + .align 2, 0 +_080EC9E0: .4byte 0x00006df0 +_080EC9E4: + bl sub_80EEA0C + lsls r0, 24 + cmp r0, 0 + bne _080ECA00 + ldr r0, _080ECA08 @ =sub_80EC86C + bl sub_80EBDBC + ldr r1, _080ECA0C @ =0x00006dad + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 +_080ECA00: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECA08: .4byte sub_80EC86C +_080ECA0C: .4byte 0x00006dad + thumb_func_end sub_80EC9A8 + + thumb_func_start sub_80ECA10 +sub_80ECA10: @ 80ECA10 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECA30 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xD + bls _080ECA26 + b _080ECBF2 +_080ECA26: + lsls r0, 2 + ldr r1, _080ECA34 @ =_080ECA38 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECA30: .4byte 0x02000000 +_080ECA34: .4byte _080ECA38 + .align 2, 0 +_080ECA38: + .4byte _080ECA70 + .4byte _080ECAC4 + .4byte _080ECAD8 + .4byte _080ECAF4 + .4byte _080ECB08 + .4byte _080ECB24 + .4byte _080ECB2E + .4byte _080ECB58 + .4byte _080ECB6C + .4byte _080ECB72 + .4byte _080ECB8C + .4byte _080ECBA0 + .4byte _080ECBBC + .4byte _080ECBD4 +_080ECA70: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECA7C + b _080ECBF2 +_080ECA7C: + ldr r0, _080ECAB0 @ =sub_80EBD80 + bl SetVBlankCallback + bl sub_80EED1C + ldr r4, _080ECAB4 @ =0x02000000 + ldr r1, _080ECAB8 @ =0x00006df0 + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECABC @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r0, _080ECAC0 @ =0x00006dae + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + bl sub_80EEE08 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ECBF2 + .align 2, 0 +_080ECAB0: .4byte sub_80EBD80 +_080ECAB4: .4byte 0x02000000 +_080ECAB8: .4byte 0x00006df0 +_080ECABC: .4byte 0x00006dad +_080ECAC0: .4byte 0x00006dae +_080ECAC4: + movs r0, 0x1 + bl sub_80EF248 + ldr r1, _080ECAF0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECAD8: + movs r0, 0x1 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECAE6 + b _080ECBF2 +_080ECAE6: + ldr r1, _080ECAF0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECAF0: .4byte 0x02000000 +_080ECAF4: + movs r0, 0x1 + bl sub_80F1B8C + ldr r1, _080ECB20 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECB08: + movs r0, 0x1 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECB20 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB20: .4byte 0x02000000 +_080ECB24: + bl sub_8055870 + cmp r0, 0 + bne _080ECBF2 + b _080ECBC0 +_080ECB2E: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECB54 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECBC8 + .align 2, 0 +_080ECB54: .4byte sub_80EBD18 +_080ECB58: + movs r0, 0 + bl sub_80EED2C + ldr r1, _080ECB68 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECB68: .4byte 0x02000000 +_080ECB6C: + bl sub_80F2598 + b _080ECBC0 +_080ECB72: + ldr r0, _080ECB88 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ECBF2 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECBC8 + .align 2, 0 +_080ECB88: .4byte gPaletteFade +_080ECB8C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECBB8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECBA0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r1, _080ECBB8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECBC8 + .align 2, 0 +_080ECBB8: .4byte 0x02000000 +_080ECBBC: + bl sub_80F1DF0 +_080ECBC0: + ldr r1, _080ECBD0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ECBC8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ECBF2 + .align 2, 0 +_080ECBD0: .4byte 0x02000000 +_080ECBD4: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ECBF2 + ldr r0, _080ECBFC @ =0x02000000 + ldr r1, _080ECC00 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl sub_80EF428 + ldr r0, _080ECC04 @ =sub_80EC86C + bl sub_80EBDBC +_080ECBF2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECBFC: .4byte 0x02000000 +_080ECC00: .4byte 0x00006dad +_080ECC04: .4byte sub_80EC86C + thumb_func_end sub_80ECA10 + + thumb_func_start sub_80ECC08 +sub_80ECC08: @ 80ECC08 + push {r4,r5,lr} + ldr r4, _080ECC20 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0 + beq _080ECC24 + cmp r0, 0x1 + bne _080ECC1E + b _080ECD64 +_080ECC1E: + b _080ECD74 + .align 2, 0 +_080ECC20: .4byte 0x02000000 +_080ECC24: + bl sub_80EEC90 + lsls r0, 24 + cmp r0, 0 + beq _080ECC4C + movs r0, 0x5 + bl PlaySE + ldr r1, _080ECC48 @ =0x00006dad + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + bl sub_80EED9C + b _080ECD74 + .align 2, 0 +_080ECC48: .4byte 0x00006dad +_080ECC4C: + ldr r0, _080ECC78 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080ECC5A + b _080ECD40 +_080ECC5A: + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECC7C @ =0x00006dad + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bhi _080ECD0C + lsls r0, 2 + ldr r1, _080ECC80 @ =_080ECC84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECC78: .4byte gMain +_080ECC7C: .4byte 0x00006dad +_080ECC80: .4byte _080ECC84 + .align 2, 0 +_080ECC84: + .4byte _080ECC9C + .4byte _080ECCB0 + .4byte _080ECCC4 + .4byte _080ECCD8 + .4byte _080ECCEC + .4byte _080ECD00 +_080ECC9C: + ldr r0, _080ECCA8 @ =0x02000000 + ldr r3, _080ECCAC @ =0x000087d8 + adds r0, r3 + movs r1, 0x16 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCA8: .4byte 0x02000000 +_080ECCAC: .4byte 0x000087d8 +_080ECCB0: + ldr r0, _080ECCBC @ =0x02000000 + ldr r1, _080ECCC0 @ =0x000087d8 + adds r0, r1 + movs r1, 0x17 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCBC: .4byte 0x02000000 +_080ECCC0: .4byte 0x000087d8 +_080ECCC4: + ldr r0, _080ECCD0 @ =0x02000000 + ldr r2, _080ECCD4 @ =0x000087d8 + adds r0, r2 + movs r1, 0x18 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCD0: .4byte 0x02000000 +_080ECCD4: .4byte 0x000087d8 +_080ECCD8: + ldr r0, _080ECCE4 @ =0x02000000 + ldr r3, _080ECCE8 @ =0x000087d8 + adds r0, r3 + movs r1, 0x21 + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCE4: .4byte 0x02000000 +_080ECCE8: .4byte 0x000087d8 +_080ECCEC: + ldr r0, _080ECCF8 @ =0x02000000 + ldr r1, _080ECCFC @ =0x000087d8 + adds r0, r1 + movs r1, 0x2F + strb r1, [r0] + b _080ECD0C + .align 2, 0 +_080ECCF8: .4byte 0x02000000 +_080ECCFC: .4byte 0x000087d8 +_080ECD00: + ldr r0, _080ECD08 @ =sub_80EC9A8 + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD08: .4byte sub_80EC9A8 +_080ECD0C: + ldr r1, _080ECD2C @ =0x02000000 + ldr r2, _080ECD30 @ =0x00006dad + adds r0, r1, r2 + ldrb r2, [r0] + ldr r3, _080ECD34 @ =0x00006dfc + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080ECD38 @ =0x000076aa + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080ECD3C @ =sub_80ED01C + bl sub_80EBDBC + b _080ECD74 + .align 2, 0 +_080ECD2C: .4byte 0x02000000 +_080ECD30: .4byte 0x00006dad +_080ECD34: .4byte 0x00006dfc +_080ECD38: .4byte 0x000076aa +_080ECD3C: .4byte sub_80ED01C +_080ECD40: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ECD74 + movs r0, 0x5 + bl PlaySE + ldr r2, _080ECD60 @ =0x00006dad + adds r1, r4, r2 + movs r0, 0x5 + strb r0, [r1] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080ECD74 + .align 2, 0 +_080ECD60: .4byte 0x00006dad +_080ECD64: + bl sub_80F1E6C + lsls r0, 24 + cmp r0, 0 + bne _080ECD74 + ldr r0, _080ECD7C @ =sub_80EC9A8 + bl sub_80EBDBC +_080ECD74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECD7C: .4byte sub_80EC9A8 + thumb_func_end sub_80ECC08 + + thumb_func_start sub_80ECD80 +sub_80ECD80: @ 80ECD80 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ECDA0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x14 + bls _080ECD96 + b _080ED006 +_080ECD96: + lsls r0, 2 + ldr r1, _080ECDA4 @ =_080ECDA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECDA0: .4byte 0x02000000 +_080ECDA4: .4byte _080ECDA8 + .align 2, 0 +_080ECDA8: + .4byte _080ECDFC + .4byte _080ECE1A + .4byte _080ECE34 + .4byte _080ECE4C + .4byte _080ECE64 + .4byte _080ECE78 + .4byte _080ECE80 + .4byte _080ECEAC + .4byte _080ECEC0 + .4byte _080ECED4 + .4byte _080ECEE8 + .4byte _080ECF04 + .4byte _080ECF10 + .4byte _080ECF3C + .4byte _080ECF44 + .4byte _080ECF58 + .4byte _080ECF70 + .4byte _080ECF84 + .4byte _080ECFB0 + .4byte _080ECFC4 + .4byte _080ECFE8 +_080ECDFC: + movs r3, 0xC2 + lsls r3, 2 + adds r0, r4, r3 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC +_080ECE1A: + ldr r0, _080ECE30 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ECE28 + b _080ED006 +_080ECE28: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECE30: .4byte gPaletteFade +_080ECE34: + bl sub_80EEF78 + lsls r0, 24 + cmp r0, 0 + beq _080ECE40 + b _080ED006 +_080ECE40: + ldr r0, _080ECE48 @ =sub_80EBD80 + bl SetVBlankCallback + b _080ECFD4 + .align 2, 0 +_080ECE48: .4byte sub_80EBD80 +_080ECE4C: + bl sub_80EED1C + bl sub_80F3130 + ldr r1, _080ECE60 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECE60: .4byte 0x02000000 +_080ECE64: + movs r0, 0x1 + bl sub_80F2D6C + ldr r1, _080ECE74 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECE74: .4byte 0x02000000 +_080ECE78: + movs r0, 0x5 + bl sub_80F2D6C + b _080ECFD4 +_080ECE80: + ldr r1, _080ECEA0 @ =0x00006dfc + adds r0, r4, r1 + ldrb r1, [r0] + ldr r2, _080ECEA4 @ =0x00006dad + adds r0, r4, r2 + strb r1, [r0] + ldr r3, _080ECEA8 @ =0x00006dae + adds r1, r4, r3 + movs r0, 0x6 + strb r0, [r1] + bl sub_80EEE08 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ECFDC + .align 2, 0 +_080ECEA0: .4byte 0x00006dfc +_080ECEA4: .4byte 0x00006dad +_080ECEA8: .4byte 0x00006dae +_080ECEAC: + movs r0, 0x2 + bl sub_80EF248 + ldr r1, _080ECED0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEC0: + movs r0, 0x2 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + beq _080ECECE + b _080ED006 +_080ECECE: + b _080ECFD4 + .align 2, 0 +_080ECED0: .4byte 0x02000000 +_080ECED4: + movs r0, 0x2 + bl sub_80F1B8C + ldr r1, _080ECF00 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECEE8: + movs r0, 0x2 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + beq _080ECEF6 + b _080ED006 +_080ECEF6: + ldr r1, _080ECF00 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ECFDC + .align 2, 0 +_080ECF00: .4byte 0x02000000 +_080ECF04: + bl sub_8055870 + cmp r0, 0 + beq _080ECF0E + b _080ED006 +_080ECF0E: + b _080ECFD4 +_080ECF10: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ECF38 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF38: .4byte sub_80EBD18 +_080ECF3C: + movs r0, 0 + bl sub_80EED2C + b _080ECFD4 +_080ECF44: + bl sub_80F2598 + ldr r1, _080ECF54 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ECFDC + .align 2, 0 +_080ECF54: .4byte 0x02000000 +_080ECF58: + ldr r0, _080ECF6C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED006 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ECFDC + .align 2, 0 +_080ECF6C: .4byte gPaletteFade +_080ECF70: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ECFA8 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECF84: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED006 + ldr r0, _080ECFA8 @ =0x02000000 + ldr r3, _080ECFAC @ =0x00000306 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED006 + .align 2, 0 +_080ECFA8: .4byte 0x02000000 +_080ECFAC: .4byte 0x00000306 +_080ECFB0: + movs r0, 0x5 + bl sub_80F2C80 + ldr r1, _080ECFE4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ECFC4: + movs r0, 0x5 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + bl sub_80F1DF0 +_080ECFD4: + ldr r1, _080ECFE4 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 +_080ECFDC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED006 + .align 2, 0 +_080ECFE4: .4byte 0x02000000 +_080ECFE8: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080ED006 + ldr r0, _080ED010 @ =0x02000000 + ldr r1, _080ED014 @ =0x00006dad + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + bl sub_80EF428 + ldr r0, _080ED018 @ =sub_80ECC08 + bl sub_80EBDBC +_080ED006: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED010: .4byte 0x02000000 +_080ED014: .4byte 0x00006dad +_080ED018: .4byte sub_80ECC08 + thumb_func_end sub_80ECD80 + + thumb_func_start sub_80ED01C +sub_80ED01C: @ 80ED01C + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED03C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x13 + bls _080ED032 + b _080ED308 +_080ED032: + lsls r0, 2 + ldr r1, _080ED040 @ =_080ED044 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED03C: .4byte 0x02000000 +_080ED040: .4byte _080ED044 + .align 2, 0 +_080ED044: + .4byte _080ED094 + .4byte _080ED0B4 + .4byte _080ED0D4 + .4byte _080ED108 + .4byte _080ED138 + .4byte _080ED14C + .4byte _080ED15E + .4byte _080ED18C + .4byte _080ED1AC + .4byte _080ED1C4 + .4byte _080ED1D8 + .4byte _080ED1F4 + .4byte _080ED208 + .4byte _080ED220 + .4byte _080ED24C + .4byte _080ED260 + .4byte _080ED28C + .4byte _080ED2A0 + .4byte _080ED2CC + .4byte _080ED2EA +_080ED094: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + movs r0, 0x5 + bl sub_80F2D04 + ldr r1, _080ED0B0 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED0B0: .4byte 0x02000000 +_080ED0B4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED0C0 + b _080ED308 +_080ED0C0: + movs r0, 0 + bl sub_80EEFBC + ldr r1, _080ED0D0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED0D0: .4byte 0x02000000 +_080ED0D4: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED0E2 + b _080ED308 +_080ED0E2: + ldr r4, _080ED104 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED104: .4byte 0x02000000 +_080ED108: + ldr r0, _080ED130 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED116 + b _080ED308 +_080ED116: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r1, _080ED134 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED130: .4byte gPaletteFade +_080ED134: .4byte 0x02000000 +_080ED138: + bl sub_80F2620 + ldr r1, _080ED148 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED148: .4byte 0x02000000 +_080ED14C: + bl sub_80F4D44 + ldr r1, _080ED178 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED15E: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080ED17C + ldr r1, _080ED178 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED178: .4byte 0x02000000 +_080ED17C: + ldr r1, _080ED188 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED188: .4byte 0x02000000 +_080ED18C: + bl sub_8055870 + cmp r0, 0 + beq _080ED196 + b _080ED308 +_080ED196: + ldr r1, _080ED1A8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED1A8: .4byte 0x02000000 +_080ED1AC: + bl sub_8055870 + cmp r0, 0 + beq _080ED1B6 + b _080ED308 +_080ED1B6: + ldr r1, _080ED1C0 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED1C0: .4byte 0x02000000 +_080ED1C4: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED1F0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED1D8: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + beq _080ED1E4 + b _080ED308 +_080ED1E4: + ldr r1, _080ED1F0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED27C + .align 2, 0 +_080ED1F0: .4byte 0x02000000 +_080ED1F4: + movs r0, 0 + bl sub_80F3008 + ldr r1, _080ED204 @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED204: .4byte 0x02000000 +_080ED208: + bl sub_8055870 + cmp r0, 0 + beq _080ED212 + b _080ED308 +_080ED212: + ldr r1, _080ED21C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED27C + .align 2, 0 +_080ED21C: .4byte 0x02000000 +_080ED220: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED248 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED27C + .align 2, 0 +_080ED248: .4byte sub_80EBD18 +_080ED24C: + movs r0, 0x4 + bl sub_80EED2C + ldr r1, _080ED25C @ =0x02000000 + movs r3, 0xC1 + lsls r3, 2 + adds r1, r3 + b _080ED27C + .align 2, 0 +_080ED25C: .4byte 0x02000000 +_080ED260: + ldr r0, _080ED284 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ED308 + ldr r2, _080ED288 @ =0x00000306 + adds r0, r4, r2 + strh r1, [r0] + movs r3, 0xC1 + lsls r3, 2 + adds r1, r4, r3 +_080ED27C: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED308 + .align 2, 0 +_080ED284: .4byte gPaletteFade +_080ED288: .4byte 0x00000306 +_080ED28C: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED2C4 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED2A0: + movs r0, 0x1 + bl sub_80F2CBC + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080ED308 + ldr r0, _080ED2C4 @ =0x02000000 + ldr r3, _080ED2C8 @ =0x00000306 + adds r1, r0, r3 + strh r2, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED308 + .align 2, 0 +_080ED2C4: .4byte 0x02000000 +_080ED2C8: .4byte 0x00000306 +_080ED2CC: + ldr r4, _080ED310 @ =0x02000000 + ldr r2, _080ED314 @ =0x00006dfc + adds r0, r4, r2 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2C80 + movs r3, 0xC1 + lsls r3, 2 + adds r4, r3 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080ED2EA: + ldr r0, _080ED310 @ =0x02000000 + ldr r1, _080ED314 @ =0x00006dfc + adds r0, r1 + ldrb r0, [r0] + adds r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED308 + ldr r0, _080ED318 @ =sub_80ED31C + bl sub_80EBDBC +_080ED308: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED310: .4byte 0x02000000 +_080ED314: .4byte 0x00006dfc +_080ED318: .4byte sub_80ED31C + thumb_func_end sub_80ED01C + + thumb_func_start sub_80ED31C +sub_80ED31C: @ 80ED31C + push {r4,lr} + ldr r0, _080ED338 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ED3A8 + cmp r0, 0x1 + bgt _080ED33C + cmp r0, 0 + beq _080ED342 + b _080ED3CA + .align 2, 0 +_080ED338: .4byte 0x02000000 +_080ED33C: + cmp r0, 0x2 + beq _080ED3C0 + b _080ED3CA +_080ED342: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080ED374 + cmp r0, 0x2 + beq _080ED380 + ldr r0, _080ED36C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080ED38C + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED370 @ =sub_80ED4D8 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED36C: .4byte gMain +_080ED370: .4byte sub_80ED4D8 +_080ED374: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080ED3CA +_080ED380: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED38C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ED3CA + movs r0, 0x5 + bl PlaySE + ldr r0, _080ED3A4 @ =sub_80ECD80 + bl sub_80EBDBC + b _080ED3CA + .align 2, 0 +_080ED3A4: .4byte sub_80ECD80 +_080ED3A8: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080ED3CA + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080ED3C8 +_080ED3C0: + bl sub_8055870 + cmp r0, 0 + bne _080ED3CA +_080ED3C8: + strh r0, [r4] +_080ED3CA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED31C + + thumb_func_start sub_80ED3D0 +sub_80ED3D0: @ 80ED3D0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080ED3EC @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080ED4C6 + lsls r0, 2 + ldr r1, _080ED3F0 @ =_080ED3F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED3EC: .4byte 0x02000000 +_080ED3F0: .4byte _080ED3F4 + .align 2, 0 +_080ED3F4: + .4byte _080ED418 + .4byte _080ED420 + .4byte _080ED42A + .4byte _080ED432 + .4byte _080ED446 + .4byte _080ED458 + .4byte _080ED462 + .4byte _080ED498 + .4byte _080ED4B4 +_080ED418: + movs r0, 0 + bl SetVBlankCallback + b _080ED49E +_080ED420: + bl sub_80EED0C + bl sub_80F6134 + b _080ED49E +_080ED42A: + movs r0, 0 + bl sub_80EEFBC + b _080ED49E +_080ED432: + movs r0, 0 + bl sub_80F0264 + ldr r1, _080ED454 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED446: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E + .align 2, 0 +_080ED454: .4byte 0x02000000 +_080ED458: + bl sub_8055870 + cmp r0, 0 + bne _080ED4C6 + b _080ED49E +_080ED462: + movs r0, 0 + bl sub_80F3008 + ldr r4, _080ED490 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED494 @ =sub_80EBD18 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080ED4A6 + .align 2, 0 +_080ED490: .4byte 0x02000000 +_080ED494: .4byte sub_80EBD18 +_080ED498: + movs r0, 0x4 + bl sub_80EED2C +_080ED49E: + ldr r1, _080ED4B0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED4A6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED4C6 + .align 2, 0 +_080ED4B0: .4byte 0x02000000 +_080ED4B4: + ldr r0, _080ED4D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED4C6 + ldr r0, _080ED4D4 @ =sub_80ED31C + bl sub_80EBDBC +_080ED4C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED4D0: .4byte gPaletteFade +_080ED4D4: .4byte sub_80ED31C + thumb_func_end sub_80ED3D0 + + thumb_func_start sub_80ED4D8 +sub_80ED4D8: @ 80ED4D8 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED4F8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080ED4EE + b _080ED60E +_080ED4EE: + lsls r0, 2 + ldr r1, _080ED4FC @ =_080ED500 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED4F8: .4byte 0x02000000 +_080ED4FC: .4byte _080ED500 + .align 2, 0 +_080ED500: + .4byte _080ED524 + .4byte _080ED542 + .4byte _080ED564 + .4byte _080ED57C + .4byte _080ED582 + .4byte _080ED594 + .4byte _080ED5A4 + .4byte _080ED5E0 + .4byte _080ED5FC +_080ED524: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE +_080ED542: + ldr r0, _080ED560 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + b _080ED5E6 + .align 2, 0 +_080ED560: .4byte gPaletteFade +_080ED564: + bl sub_8055870 + cmp r0, 0 + bne _080ED60E + ldr r1, _080ED578 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080ED5EE + .align 2, 0 +_080ED578: .4byte 0x02000000 +_080ED57C: + bl sub_80F4CF0 + b _080ED5E6 +_080ED582: + bl sub_80EFF34 + ldr r1, _080ED5A0 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED594: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080ED60E + b _080ED5E6 + .align 2, 0 +_080ED5A0: .4byte 0x02000000 +_080ED5A4: + bl sub_80F35B4 + movs r0, 0x2 + bl sub_80EEFBC + ldr r4, _080ED5D8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED5DC @ =sub_80EBD4C + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED5EE + .align 2, 0 +_080ED5D8: .4byte 0x02000000 +_080ED5DC: .4byte sub_80EBD4C +_080ED5E0: + movs r0, 0x2 + bl sub_80EED2C +_080ED5E6: + ldr r1, _080ED5F8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080ED5EE: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED60E + .align 2, 0 +_080ED5F8: .4byte 0x02000000 +_080ED5FC: + ldr r0, _080ED618 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED60E + ldr r0, _080ED61C @ =sub_80ED858 + bl sub_80EBDBC +_080ED60E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED618: .4byte gPaletteFade +_080ED61C: .4byte sub_80ED858 + thumb_func_end sub_80ED4D8 + + thumb_func_start sub_80ED620 +sub_80ED620: @ 80ED620 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080ED640 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x10 + bls _080ED636 + b _080ED846 +_080ED636: + lsls r0, 2 + ldr r1, _080ED644 @ =_080ED648 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED640: .4byte 0x02000000 +_080ED644: .4byte _080ED648 + .align 2, 0 +_080ED648: + .4byte _080ED68C + .4byte _080ED6A4 + .4byte _080ED6B8 + .4byte _080ED6EC + .4byte _080ED730 + .4byte _080ED736 + .4byte _080ED750 + .4byte _080ED762 + .4byte _080ED76C + .4byte _080ED784 + .4byte _080ED78A + .4byte _080ED7C0 + .4byte _080ED7D4 + .4byte _080ED7EC + .4byte _080ED800 + .4byte _080ED820 + .4byte _080ED834 +_080ED68C: + bl sub_80F1E84 + movs r0, 0x1 + bl sub_80F2D04 + ldr r1, _080ED6A0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED6A0: .4byte 0x02000000 +_080ED6A4: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080ED6B0 + b _080ED846 +_080ED6B0: + movs r0, 0x1 + bl sub_80EEFBC + b _080ED80C +_080ED6B8: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080ED6C6 + b _080ED846 +_080ED6C6: + ldr r4, _080ED6E8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED6E8: .4byte 0x02000000 +_080ED6EC: + ldr r0, _080ED724 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080ED6FE + b _080ED846 +_080ED6FE: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + ldr r0, _080ED728 @ =0x02000000 + ldr r2, _080ED72C @ =0x000076aa + adds r1, r0, r2 + strb r4, [r1] + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + b _080ED846 + .align 2, 0 +_080ED724: .4byte gPaletteFade +_080ED728: .4byte 0x02000000 +_080ED72C: .4byte 0x000076aa +_080ED730: + bl sub_80F2620 + b _080ED80C +_080ED736: + ldr r0, _080ED74C @ =0x0000d162 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + bl sub_80F4BD0 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED74C: .4byte 0x0000d162 +_080ED750: + bl sub_80EFF34 + ldr r1, _080ED768 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED762: + bl sub_80EFF68 + b _080ED806 + .align 2, 0 +_080ED768: .4byte 0x02000000 +_080ED76C: + bl sub_8055870 + cmp r0, 0 + bne _080ED846 + ldr r1, _080ED780 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED780: .4byte 0x02000000 +_080ED784: + bl sub_8055870 + b _080ED808 +_080ED78A: + bl sub_80F33A8 + ldr r4, _080ED7B8 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080ED7BC @ =sub_80EBD4C + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7B8: .4byte 0x02000000 +_080ED7BC: .4byte sub_80EBD4C +_080ED7C0: + movs r0, 0x2 + bl sub_80EED2C + ldr r1, _080ED7D0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080ED814 + .align 2, 0 +_080ED7D0: .4byte 0x02000000 +_080ED7D4: + ldr r0, _080ED7E8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED846 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080ED814 + .align 2, 0 +_080ED7E8: .4byte gPaletteFade +_080ED7EC: + movs r0, 0x1 + bl sub_80F2C80 + ldr r1, _080ED81C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED800: + movs r0, 0x1 + bl sub_80F2CBC +_080ED806: + lsls r0, 24 +_080ED808: + cmp r0, 0 + bne _080ED846 +_080ED80C: + ldr r1, _080ED81C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 +_080ED814: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ED846 + .align 2, 0 +_080ED81C: .4byte 0x02000000 +_080ED820: + movs r0, 0x6 + bl sub_80F2C80 + ldr r1, _080ED850 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080ED834: + movs r0, 0x6 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080ED846 + ldr r0, _080ED854 @ =sub_80ED858 + bl sub_80EBDBC +_080ED846: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED850: .4byte 0x02000000 +_080ED854: .4byte sub_80ED858 + thumb_func_end sub_80ED620 + + thumb_func_start sub_80ED858 +sub_80ED858: @ 80ED858 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _080ED878 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r5, r1, 0 + cmp r0, 0xB + bls _080ED86E + b _080EDB7A +_080ED86E: + lsls r0, 2 + ldr r1, _080ED87C @ =_080ED880 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED878: .4byte 0x02000000 +_080ED87C: .4byte _080ED880 + .align 2, 0 +_080ED880: + .4byte _080ED8B0 + .4byte _080ED8CC + .4byte _080ED8EC + .4byte _080ED904 + .4byte _080ED91A + .4byte _080EDA68 + .4byte _080EDA8C + .4byte _080EDAA4 + .4byte _080EDAC0 + .4byte _080EDAE8 + .4byte _080EDB7A + .4byte _080EDB28 +_080ED8B0: + bl sub_80F4F78 + bl sub_80F5B38 + ldr r0, _080ED8C8 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8C8: .4byte 0x02000000 +_080ED8CC: + bl sub_80F5B50 + lsls r0, 24 + cmp r0, 0 + beq _080ED8D8 + b _080EDB7A +_080ED8D8: + ldr r0, _080ED8E8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED8E8: .4byte 0x02000000 +_080ED8EC: + movs r0, 0x1 + bl sub_80F0174 + ldr r0, _080ED900 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED900: .4byte 0x02000000 +_080ED904: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + beq _080ED910 + b _080EDB7A +_080ED910: + bl sub_80F3C94 + bl sub_80F3D00 + b _080EDAD4 +_080ED91A: + ldr r2, _080ED960 @ =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080ED970 + ldr r1, _080ED964 @ =0x000087cb + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED970 + ldr r2, _080ED968 @ =0x000076aa + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED948 + ldr r4, _080ED96C @ =0x000087dc + adds r0, r5, r4 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080ED970 +_080ED948: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F5060 + bl move_anim_execute + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + b _080ED9B8 + .align 2, 0 +_080ED960: .4byte gMain +_080ED964: .4byte 0x000087cb +_080ED968: .4byte 0x000076aa +_080ED96C: .4byte 0x000087dc +_080ED970: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080ED9CC + ldr r4, _080ED9C0 @ =0x000087cb + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9CC + ldr r1, _080ED9C4 @ =0x000076aa + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080ED9A2 + ldr r2, _080ED9C8 @ =0x000087dc + adds r0, r5, r2 + subs r4, 0x57 + adds r1, r5, r4 + movs r4, 0 + ldrsh r2, [r0, r4] + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r2, r0 + bge _080ED9CC +_080ED9A2: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80F5060 + bl move_anim_execute + movs r0, 0xC1 + lsls r0, 2 + adds r1, r5, r0 +_080ED9B8: + movs r0, 0x5 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080ED9C0: .4byte 0x000087cb +_080ED9C4: .4byte 0x000076aa +_080ED9C8: .4byte 0x000087dc +_080ED9CC: + ldrh r2, [r3, 0x2E] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080ED9F8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4FDC + bl move_anim_execute + ldr r0, _080ED9F4 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x9 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080ED9F4: .4byte 0x02000000 +_080ED9F8: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080EDA02 + b _080EDB7A +_080EDA02: + adds r4, r5, 0 + ldr r2, _080EDA38 @ =0x000076aa + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDA44 + ldr r1, _080EDA3C @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r2, _080EDA40 @ =0x000087da + adds r0, r4, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + beq _080EDA26 + b _080EDB7A +_080EDA26: + movs r0, 0x5 + bl PlaySE + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + movs r0, 0x9 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA38: .4byte 0x000076aa +_080EDA3C: .4byte 0x000087dc +_080EDA40: .4byte 0x000087da +_080EDA44: + ldr r1, _080EDA64 @ =0x00006dac + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080EDA50 + b _080EDB7A +_080EDA50: + movs r0, 0x5 + bl PlaySE + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0x7 + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDA64: .4byte 0x00006dac +_080EDA68: + bl gpu_sync_bg_show + lsls r0, 24 + cmp r0, 0 + beq _080EDA74 + b _080EDB7A +_080EDA74: + bl sub_80F3D00 + ldr r0, _080EDA88 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 + movs r1, 0x6 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDA88: .4byte 0x02000000 +_080EDA8C: + bl sub_8055870 + cmp r0, 0 + bne _080EDB7A + ldr r0, _080EDAA0 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EDADC + .align 2, 0 +_080EDAA0: .4byte 0x02000000 +_080EDAA4: + movs r0, 0x3 + bl sub_80EEFBC + bl sub_80F3668 + ldr r0, _080EDABC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 + movs r1, 0x8 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDABC: .4byte 0x02000000 +_080EDAC0: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _080EDB7A + movs r0, 0x2 + bl sub_80EEFBC + bl sub_80F3698 +_080EDAD4: + ldr r0, _080EDAE4 @ =0x02000000 + movs r4, 0xC1 + lsls r4, 2 + adds r0, r4 +_080EDADC: + movs r1, 0x4 + strh r1, [r0] + b _080EDB7A + .align 2, 0 +_080EDAE4: .4byte 0x02000000 +_080EDAE8: + bl sub_80F5038 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EDB7A + movs r0, 0 + bl sub_80F0174 + bl sub_80F2F48 + ldr r5, _080EDB24 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r4, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r5, r2 + movs r0, 0xB + strh r0, [r1] + b _080EDB7A + .align 2, 0 +_080EDB24: .4byte 0x02000000 +_080EDB28: + ldr r0, _080EDB60 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDB7A + bl sub_80F3CE8 + bl sub_80F5BDC + ldr r0, _080EDB64 @ =0x02000000 + ldr r4, _080EDB68 @ =0x000076aa + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080EDB70 + bl sub_80F357C + movs r0, 0x1 + bl sub_80F2D6C + movs r0, 0x6 + bl sub_80F2D6C + ldr r0, _080EDB6C @ =sub_80ECA10 + bl sub_80EBDBC + b _080EDB7A + .align 2, 0 +_080EDB60: .4byte gPaletteFade +_080EDB64: .4byte 0x02000000 +_080EDB68: .4byte 0x000076aa +_080EDB6C: .4byte sub_80ECA10 +_080EDB70: + bl sub_80F3614 + ldr r0, _080EDB84 @ =sub_80ED3D0 + bl sub_80EBDBC +_080EDB7A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDB84: .4byte sub_80ED3D0 + thumb_func_end sub_80ED858 + + thumb_func_start sub_80EDB88 +sub_80EDB88: @ 80EDB88 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDBA8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EDB9E + b _080EDDAA +_080EDB9E: + lsls r0, 2 + ldr r1, _080EDBAC @ =_080EDBB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDBA8: .4byte 0x02000000 +_080EDBAC: .4byte _080EDBB0 + .align 2, 0 +_080EDBB0: + .4byte _080EDBF8 + .4byte _080EDC04 + .4byte _080EDC24 + .4byte _080EDC58 + .4byte _080EDC7C + .4byte _080EDC90 + .4byte _080EDCA2 + .4byte _080EDCC0 + .4byte _080EDCDC + .4byte _080EDCE6 + .4byte _080EDCFA + .4byte _080EDD0C + .4byte _080EDD20 + .4byte _080EDD34 + .4byte _080EDD48 + .4byte _080EDD52 + .4byte _080EDD7C + .4byte _080EDD98 +_080EDBF8: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EDD82 +_080EDC04: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EDC10 + b _080EDDAA +_080EDC10: + movs r0, 0x4 + bl sub_80EEFBC + ldr r1, _080EDC20 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC20: .4byte 0x02000000 +_080EDC24: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EDC32 + b _080EDDAA +_080EDC32: + ldr r4, _080EDC54 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDC54: .4byte 0x02000000 +_080EDC58: + ldr r0, _080EDC78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDC66 + b _080EDDAA +_080EDC66: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + b _080EDD82 + .align 2, 0 +_080EDC78: .4byte gPaletteFade +_080EDC7C: + bl sub_80F2620 + ldr r1, _080EDC8C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDC8C: .4byte 0x02000000 +_080EDC90: + bl sub_80F638C + ldr r1, _080EDCBC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCA2: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080EDD82 + ldr r1, _080EDCBC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCBC: .4byte 0x02000000 +_080EDCC0: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + ldr r1, _080EDCD8 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDCD8: .4byte 0x02000000 +_080EDCDC: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDCE6: + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EDD08 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDCFA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD08: .4byte 0x02000000 +_080EDD0C: + movs r0, 0x2 + bl sub_80F2C80 + ldr r1, _080EDD30 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDD20: + movs r0, 0x2 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 + .align 2, 0 +_080EDD30: .4byte 0x02000000 +_080EDD34: + movs r0, 0x1 + bl sub_80F3008 + ldr r1, _080EDD44 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EDD8A + .align 2, 0 +_080EDD44: .4byte 0x02000000 +_080EDD48: + bl sub_8055870 + cmp r0, 0 + bne _080EDDAA + b _080EDD82 +_080EDD52: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EDD78 @ =sub_80EBD18 + bl SetVBlankCallback + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EDD8A + .align 2, 0 +_080EDD78: .4byte sub_80EBD18 +_080EDD7C: + movs r0, 0x4 + bl sub_80EED2C +_080EDD82: + ldr r1, _080EDD94 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EDD8A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EDDAA + .align 2, 0 +_080EDD94: .4byte 0x02000000 +_080EDD98: + ldr r0, _080EDDB4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDDAA + ldr r0, _080EDDB8 @ =sub_80EDDBC + bl sub_80EBDBC +_080EDDAA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDDB4: .4byte gPaletteFade +_080EDDB8: .4byte sub_80EDDBC + thumb_func_end sub_80EDB88 + + thumb_func_start sub_80EDDBC +sub_80EDDBC: @ 80EDDBC + push {r4,lr} + ldr r0, _080EDDD8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EDE48 + cmp r0, 0x1 + bgt _080EDDDC + cmp r0, 0 + beq _080EDDE2 + b _080EDE6A + .align 2, 0 +_080EDDD8: .4byte 0x02000000 +_080EDDDC: + cmp r0, 0x2 + beq _080EDE60 + b _080EDE6A +_080EDDE2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EDE14 + cmp r0, 0x2 + beq _080EDE20 + ldr r0, _080EDE0C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EDE2C + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE10 @ =sub_80EDEE4 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE0C: .4byte gMain +_080EDE10: .4byte sub_80EDEE4 +_080EDE14: + movs r0, 0x5 + bl PlaySE + bl ShowMapNamePopUpWindow + b _080EDE6A +_080EDE20: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE2C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EDE6A + movs r0, 0x5 + bl PlaySE + ldr r0, _080EDE44 @ =sub_80EDE70 + bl sub_80EBDBC + b _080EDE6A + .align 2, 0 +_080EDE44: .4byte sub_80EDE70 +_080EDE48: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EDE6A + bl ShowMapNamePopUpWindow + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EDE68 +_080EDE60: + bl sub_8055870 + cmp r0, 0 + bne _080EDE6A +_080EDE68: + strh r0, [r4] +_080EDE6A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EDDBC + + thumb_func_start sub_80EDE70 +sub_80EDE70: @ 80EDE70 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EDE8C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EDEAE + cmp r2, 0x1 + bgt _080EDE90 + cmp r2, 0 + beq _080EDE96 + b _080EDED6 + .align 2, 0 +_080EDE8C: .4byte 0x02000000 +_080EDE90: + cmp r2, 0x2 + beq _080EDED0 + b _080EDED6 +_080EDE96: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EDEC4 +_080EDEAE: + ldr r0, _080EDECC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EDED6 + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C +_080EDEC4: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EDED6 + .align 2, 0 +_080EDECC: .4byte gPaletteFade +_080EDED0: + ldr r0, _080EDEE0 @ =sub_80EC00C + bl sub_80EBDBC +_080EDED6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDEE0: .4byte sub_80EC00C + thumb_func_end sub_80EDE70 + + thumb_func_start sub_80EDEE4 +sub_80EDEE4: @ 80EDEE4 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EDF04 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0xA + bls _080EDEFA + b _080EE060 +_080EDEFA: + lsls r0, 2 + ldr r1, _080EDF08 @ =_080EDF0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EDF04: .4byte 0x02000000 +_080EDF08: .4byte _080EDF0C + .align 2, 0 +_080EDF0C: + .4byte _080EDF38 + .4byte _080EDF50 + .4byte _080EDF80 + .4byte _080EDF98 + .4byte _080EDFB0 + .4byte _080EDFC8 + .4byte _080EDFE0 + .4byte _080EDFF8 + .4byte _080EE01C + .4byte _080EE030 + .4byte _080EE050 +_080EDF38: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE03C +_080EDF50: + ldr r0, _080EDF78 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EDF5E + b _080EE060 +_080EDF5E: + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3130 + ldr r1, _080EDF7C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDF78: .4byte gPaletteFade +_080EDF7C: .4byte 0x02000000 +_080EDF80: + bl sub_80F66E0 + bl sub_80EEE08 + ldr r1, _080EDF94 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDF94: .4byte 0x02000000 +_080EDF98: + bl sub_80F1080 + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFAC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFAC: .4byte 0x02000000 +_080EDFB0: + movs r0, 0x5 + bl sub_80EEFBC + bl sub_80F38B8 + ldr r1, _080EDFDC @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EDFC8: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFDC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EDFDC: .4byte 0x02000000 +_080EDFE0: + bl sub_8055870 + cmp r0, 0 + bne _080EE060 + ldr r1, _080EDFF4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE042 + .align 2, 0 +_080EDFF4: .4byte 0x02000000 +_080EDFF8: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE018 @ =sub_80EBD18 + bl SetVBlankCallback + b _080EE03C + .align 2, 0 +_080EE018: .4byte sub_80EBD18 +_080EE01C: + movs r0, 0x3 + bl sub_80EED2C + ldr r1, _080EE02C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE042 + .align 2, 0 +_080EE02C: .4byte 0x02000000 +_080EE030: + ldr r0, _080EE04C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE060 +_080EE03C: + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 +_080EE042: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE060 + .align 2, 0 +_080EE04C: .4byte gPaletteFade +_080EE050: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080EE060 + ldr r0, _080EE068 @ =sub_80EE06C + bl sub_80EBDBC +_080EE060: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE068: .4byte sub_80EE06C + thumb_func_end sub_80EDEE4 + + thumb_func_start sub_80EE06C +sub_80EE06C: @ 80EE06C + push {r4,r5,lr} + ldr r1, _080EE08C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE080 + b _080EE288 +_080EE080: + lsls r0, 2 + ldr r1, _080EE090 @ =_080EE094 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE08C: .4byte 0x02000000 +_080EE090: .4byte _080EE094 + .align 2, 0 +_080EE094: + .4byte _080EE0B8 + .4byte _080EE0CC + .4byte _080EE180 + .4byte _080EE19C + .4byte _080EE1B8 + .4byte _080EE1D0 + .4byte _080EE1F8 + .4byte _080EE250 + .4byte _080EE26C +_080EE0B8: + bl sub_80F15A8 + ldr r1, _080EE0C8 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 + b _080EE1C4 + .align 2, 0 +_080EE0C8: .4byte 0x02000000 +_080EE0CC: + ldr r2, _080EE0FC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE104 + ldr r1, _080EE100 @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE104 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F6A4C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE1C4 + .align 2, 0 +_080EE0FC: .4byte gMain +_080EE100: .4byte 0x000087dc +_080EE104: + ldrh r1, [r3, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE140 + ldr r1, _080EE138 @ =0x000087dc + adds r0, r4, r1 + ldr r2, _080EE13C @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE140 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F6A4C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE1C4 + .align 2, 0 +_080EE138: .4byte 0x000087dc +_080EE13C: .4byte 0x00008774 +_080EE140: + ldrh r2, [r3, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080EE164 + movs r0, 0x5 + bl PlaySE + movs r0, 0xB + bl sub_80EEFBC + ldr r0, _080EE160 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + b _080EE262 + .align 2, 0 +_080EE160: .4byte 0x02000000 +_080EE164: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _080EE16E + b _080EE288 +_080EE16E: + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE17C @ =sub_80EE294 + bl sub_80EBDBC + b _080EE288 + .align 2, 0 +_080EE17C: .4byte sub_80EE294 +_080EE180: + bl sub_80F6AF0 + lsls r0, 24 + cmp r0, 0 + beq _080EE18C + b _080EE288 +_080EE18C: + ldr r1, _080EE198 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE1C4 + .align 2, 0 +_080EE198: .4byte 0x02000000 +_080EE19C: + bl sub_8055870 + adds r1, r0, 0 + cmp r1, 0 + bne _080EE288 + ldr r0, _080EE1B4 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE1B4: .4byte 0x02000000 +_080EE1B8: + bl sub_80F3B00 + ldr r1, _080EE1CC @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE1C4: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE288 + .align 2, 0 +_080EE1CC: .4byte 0x02000000 +_080EE1D0: + bl sub_80F3B58 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + bl sub_80F1494 + ldr r1, _080EE1F4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + bl sub_80EED9C + b _080EE288 + .align 2, 0 +_080EE1F4: .4byte 0x02000000 +_080EE1F8: + bl sub_80F68E8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080EE224 + cmp r0, 0x1 + bne _080EE224 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE220 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + movs r1, 0x7 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE220: .4byte 0x02000000 +_080EE224: + ldr r0, _080EE248 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE288 + movs r0, 0x5 + bl PlaySE + bl sub_80F3B94 + ldr r0, _080EE24C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE248: .4byte gMain +_080EE24C: .4byte 0x02000000 +_080EE250: + bl sub_80F3BD4 + lsls r0, 24 + cmp r0, 0 + bne _080EE288 + ldr r0, _080EE268 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r2 +_080EE262: + movs r1, 0x4 + strh r1, [r0] + b _080EE288 + .align 2, 0 +_080EE268: .4byte 0x02000000 +_080EE26C: + bl sub_80F3BD4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080EE288 + movs r0, 0x5 + bl sub_80EEFBC + ldr r0, _080EE290 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r0, r5 + strh r4, [r0] +_080EE288: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE290: .4byte 0x02000000 + thumb_func_end sub_80EE06C + + thumb_func_start sub_80EE294 +sub_80EE294: @ 80EE294 + push {r4,lr} + sub sp, 0x4 + ldr r1, _080EE2B4 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bls _080EE2AA + b _080EE3C6 +_080EE2AA: + lsls r0, 2 + ldr r1, _080EE2B8 @ =_080EE2BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE2B4: .4byte 0x02000000 +_080EE2B8: .4byte _080EE2BC + .align 2, 0 +_080EE2BC: + .4byte _080EE2E0 + .4byte _080EE2FE + .4byte _080EE324 + .4byte _080EE33C + .4byte _080EE34C + .4byte _080EE370 + .4byte _080EE37A + .4byte _080EE39A + .4byte _080EE3B4 +_080EE2E0: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE2FE: + ldr r0, _080EE320 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80F3C2C + bl sub_80EEE08 + b _080EE3A0 + .align 2, 0 +_080EE320: .4byte gPaletteFade +_080EE324: + bl sub_80F6134 + movs r0, 0x1 + bl sub_80F0264 + ldr r1, _080EE348 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE33C: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 + .align 2, 0 +_080EE348: .4byte 0x02000000 +_080EE34C: + movs r0, 0x4 + bl sub_80EEFBC + movs r0, 0x1 + bl sub_80F3008 + ldr r0, _080EE368 @ =sub_80EBD18 + bl SetVBlankCallback + ldr r1, _080EE36C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE3A8 + .align 2, 0 +_080EE368: .4byte sub_80EBD18 +_080EE36C: .4byte 0x02000000 +_080EE370: + bl sub_8055870 + cmp r0, 0 + bne _080EE3C6 + b _080EE3A0 +_080EE37A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r2, 0xC1 + lsls r2, 2 + adds r1, r4, r2 + b _080EE3A8 +_080EE39A: + movs r0, 0x4 + bl sub_80EED2C +_080EE3A0: + ldr r1, _080EE3B0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE3A8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE3C6 + .align 2, 0 +_080EE3B0: .4byte 0x02000000 +_080EE3B4: + ldr r0, _080EE3D0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE3C6 + ldr r0, _080EE3D4 @ =sub_80EDDBC + bl sub_80EBDBC +_080EE3C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE3D0: .4byte gPaletteFade +_080EE3D4: .4byte sub_80EDDBC + thumb_func_end sub_80EE294 + + thumb_func_start sub_80EE3D8 +sub_80EE3D8: @ 80EE3D8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE3F8 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EE3EC + b _080EE57A +_080EE3EC: + lsls r0, 2 + ldr r1, _080EE3FC @ =_080EE400 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE3F8: .4byte 0x02000000 +_080EE3FC: .4byte _080EE400 + .align 2, 0 +_080EE400: + .4byte _080EE438 + .4byte _080EE444 + .4byte _080EE458 + .4byte _080EE48C + .4byte _080EE4B0 + .4byte _080EE4B6 + .4byte _080EE4CA + .4byte _080EE4DC + .4byte _080EE4F0 + .4byte _080EE504 + .4byte _080EE50C + .4byte _080EE516 + .4byte _080EE54C + .4byte _080EE568 +_080EE438: + bl sub_80F1E84 + movs r0, 0 + bl sub_80F2D04 + b _080EE552 +_080EE444: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EE450 + b _080EE57A +_080EE450: + movs r0, 0x9 + bl sub_80EEFBC + b _080EE552 +_080EE458: + bl sub_80EEF34 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080EE466 + b _080EE57A +_080EE466: + ldr r4, _080EE488 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE488: .4byte 0x02000000 +_080EE48C: + ldr r0, _080EE4AC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + movs r0, 0 + bl SetVBlankCallback + bl sub_80EED0C + bl sub_80EF814 + bl sub_80EEE08 + b _080EE552 + .align 2, 0 +_080EE4AC: .4byte gPaletteFade +_080EE4B0: + bl sub_80F2620 + b _080EE552 +_080EE4B6: + movs r0, 0x2 + bl sub_80F0264 + ldr r1, _080EE4D8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4CA: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE4D8: .4byte 0x02000000 +_080EE4DC: + movs r0, 0x3 + bl sub_80F2C80 + ldr r1, _080EE500 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE4F0: + movs r0, 0x3 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080EE57A + b _080EE552 + .align 2, 0 +_080EE500: .4byte 0x02000000 +_080EE504: + movs r0, 0x2 + bl sub_80F3008 + b _080EE552 +_080EE50C: + bl sub_8055870 + cmp r0, 0 + bne _080EE57A + b _080EE552 +_080EE516: + bl sub_80F6F10 + ldr r4, _080EE544 @ =0x02000000 + movs r1, 0xC2 + lsls r1, 2 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _080EE548 @ =sub_80EBD68 + bl SetVBlankCallback + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 + b _080EE55A + .align 2, 0 +_080EE544: .4byte 0x02000000 +_080EE548: .4byte sub_80EBD68 +_080EE54C: + movs r0, 0x5 + bl sub_80EED2C +_080EE552: + ldr r1, _080EE564 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 +_080EE55A: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE57A + .align 2, 0 +_080EE564: .4byte 0x02000000 +_080EE568: + ldr r0, _080EE584 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE57A + ldr r0, _080EE588 @ =sub_80EE58C + bl sub_80EBDBC +_080EE57A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE584: .4byte gPaletteFade +_080EE588: .4byte sub_80EE58C + thumb_func_end sub_80EE3D8 + + thumb_func_start sub_80EE58C +sub_80EE58C: @ 80EE58C + push {r4,r5,lr} + ldr r5, _080EE5A8 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080EE624 + cmp r0, 0x1 + bgt _080EE5AC + cmp r0, 0 + beq _080EE5B2 + b _080EE652 + .align 2, 0 +_080EE5A8: .4byte 0x02000000 +_080EE5AC: + cmp r0, 0x2 + beq _080EE648 + b _080EE652 +_080EE5B2: + bl sub_80F5DD4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080EE5E4 + cmp r0, 0x2 + beq _080EE5FC + ldr r0, _080EE5DC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EE608 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE5E0 @ =sub_80EE658 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE5DC: .4byte gMain +_080EE5E0: .4byte sub_80EE658 +_080EE5E4: + movs r0, 0x5 + bl PlaySE + ldr r1, _080EE5F8 @ =0x0000876e + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + b _080EE652 + .align 2, 0 +_080EE5F8: .4byte 0x0000876e +_080EE5FC: + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 +_080EE608: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE652 + movs r0, 0x5 + bl PlaySE + ldr r0, _080EE620 @ =sub_80EE8F4 + bl sub_80EBDBC + b _080EE652 + .align 2, 0 +_080EE620: .4byte sub_80EE8F4 +_080EE624: + bl sub_80F0718 + lsls r0, 24 + cmp r0, 0 + bne _080EE652 + ldr r1, _080EE644 @ =0x0000876e + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_80F0FFC + bl sub_80F3264 + ldrh r0, [r4] + adds r0, 0x1 + b _080EE650 + .align 2, 0 +_080EE644: .4byte 0x0000876e +_080EE648: + bl sub_8055870 + cmp r0, 0 + bne _080EE652 +_080EE650: + strh r0, [r4] +_080EE652: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EE58C + + thumb_func_start sub_80EE658 +sub_80EE658: @ 80EE658 + push {r4,r5,lr} + ldr r1, _080EE678 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r0, r1, r2 + ldrh r0, [r0] + adds r4, r1, 0 + cmp r0, 0x11 + bls _080EE66C + b _080EE8E8 +_080EE66C: + lsls r0, 2 + ldr r1, _080EE67C @ =_080EE680 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE678: .4byte 0x02000000 +_080EE67C: .4byte _080EE680 + .align 2, 0 +_080EE680: + .4byte _080EE6C8 + .4byte _080EE6DA + .4byte _080EE6F4 + .4byte _080EE708 + .4byte _080EE71C + .4byte _080EE730 + .4byte _080EE758 + .4byte _080EE76A + .4byte _080EE780 + .4byte _080EE820 + .4byte _080EE840 + .4byte _080EE854 + .4byte _080EE868 + .4byte _080EE86E + .4byte _080EE880 + .4byte _080EE898 + .4byte _080EE8B4 + .4byte _080EE8D4 +_080EE6C8: + movs r0, 0x1 + bl sub_80F3294 + movs r0, 0xA + bl sub_80EEFBC + bl sub_80F0B24 + b _080EE8BE +_080EE6DA: + bl sub_80F0B44 + lsls r0, 24 + cmp r0, 0 + beq _080EE6E6 + b _080EE8E8 +_080EE6E6: + ldr r1, _080EE6F0 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE6F0: .4byte 0x02000000 +_080EE6F4: + bl sub_80F0F64 + ldr r1, _080EE704 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE704: .4byte 0x02000000 +_080EE708: + bl sub_80F0FEC + lsls r0, 24 + cmp r0, 0 + beq _080EE714 + b _080EE8E8 +_080EE714: + movs r0, 0x1 + bl sub_80F6FB8 + b _080EE8BE +_080EE71C: + bl sub_80F6DB8 + ldr r1, _080EE72C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE72C: .4byte 0x02000000 +_080EE730: + ldr r4, _080EE750 @ =0x02008788 + adds r0, r4, 0 + subs r0, 0x1A + ldrh r1, [r0] + adds r0, r4, 0 + bl sub_80F700C + adds r0, r4, 0 + bl sub_80F42C4 + ldr r1, _080EE754 @ =0xffff7b7c + adds r4, r1 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE8E8 + .align 2, 0 +_080EE750: .4byte 0x02008788 +_080EE754: .4byte 0xffff7b7c +_080EE758: + bl sub_80F0CD8 + ldr r1, _080EE77C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE76A: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + beq _080EE776 + b _080EE8E8 +_080EE776: + bl sub_80F0D5C + b _080EE8B8 + .align 2, 0 +_080EE77C: .4byte 0x02000000 +_080EE780: + ldr r2, _080EE7B0 @ =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _080EE7B8 + ldr r1, _080EE7B4 @ =0x000087dc + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _080EE7B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl sub_80F708C + movs r5, 0xC1 + lsls r5, 2 + adds r1, r4, r5 + b _080EE7E8 + .align 2, 0 +_080EE7B0: .4byte gMain +_080EE7B4: .4byte 0x000087dc +_080EE7B8: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EE7F8 + ldr r1, _080EE7F0 @ =0x000087dc + adds r0, r4, r1 + ldr r2, _080EE7F4 @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bge _080EE7F8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_80F708C + movs r0, 0xC1 + lsls r0, 2 + adds r1, r4, r0 +_080EE7E8: + movs r0, 0x10 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE7F0: .4byte 0x000087dc +_080EE7F4: .4byte 0x00008774 +_080EE7F8: + ldrh r1, [r3, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080EE8E8 + movs r0, 0x5 + bl PlaySE + bl sub_80F4394 + bl sub_80F0EC0 + ldr r1, _080EE81C @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE81C: .4byte 0x02000000 +_080EE820: + bl sub_80F6ED4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + bl sub_80F0EF4 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + movs r0, 0 + bl sub_80F6FB8 + bl sub_80F2FB0 + b _080EE8BE +_080EE840: + bl sub_80F6134 + ldr r1, _080EE850 @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE850: .4byte 0x02000000 +_080EE854: + bl sub_80F0FA0 + ldr r1, _080EE864 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE864: .4byte 0x02000000 +_080EE868: + bl sub_80F0FEC + b _080EE8B8 +_080EE86E: + bl sub_80F0C28 + ldr r1, _080EE87C @ =0x02000000 + movs r0, 0xC1 + lsls r0, 2 + adds r1, r0 + b _080EE8C6 + .align 2, 0 +_080EE87C: .4byte 0x02000000 +_080EE880: + bl sub_80F0C48 + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 + ldr r1, _080EE894 @ =0x02000000 + movs r2, 0xC1 + lsls r2, 2 + adds r1, r2 + b _080EE8C6 + .align 2, 0 +_080EE894: .4byte 0x02000000 +_080EE898: + movs r0, 0x9 + bl sub_80EEFBC + movs r0, 0 + bl sub_80F3294 + ldr r0, _080EE8B0 @ =sub_80EE58C + bl sub_80EBDBC + bl sub_80EED9C + b _080EE8E8 + .align 2, 0 +_080EE8B0: .4byte sub_80EE58C +_080EE8B4: + bl sub_80F70FC +_080EE8B8: + lsls r0, 24 + cmp r0, 0 + bne _080EE8E8 +_080EE8BE: + ldr r1, _080EE8D0 @ =0x02000000 + movs r5, 0xC1 + lsls r5, 2 + adds r1, r5 +_080EE8C6: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080EE8E8 + .align 2, 0 +_080EE8D0: .4byte 0x02000000 +_080EE8D4: + bl sub_8055870 + cmp r0, 0 + bne _080EE8E8 + ldr r0, _080EE8F0 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0] +_080EE8E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE8F0: .4byte 0x02000000 + thumb_func_end sub_80EE658 + + thumb_func_start sub_80EE8F4 +sub_80EE8F4: @ 80EE8F4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080EE910 @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r4, r0, r1 + ldrh r2, [r4] + cmp r2, 0x1 + beq _080EE932 + cmp r2, 0x1 + bgt _080EE914 + cmp r2, 0 + beq _080EE91A + b _080EE95E + .align 2, 0 +_080EE910: .4byte 0x02000000 +_080EE914: + cmp r2, 0x2 + beq _080EE958 + b _080EE95E +_080EE91A: + movs r1, 0xC2 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080EE94C +_080EE932: + ldr r0, _080EE954 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE95E + bl sub_80F3130 + movs r0, 0x2 + bl sub_80F2D6C + bl sub_80F6FFC +_080EE94C: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080EE95E + .align 2, 0 +_080EE954: .4byte gPaletteFade +_080EE958: + ldr r0, _080EE968 @ =sub_80EC00C + bl sub_80EBDBC +_080EE95E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE968: .4byte sub_80EC00C + thumb_func_end sub_80EE8F4 + + thumb_func_start sub_80EE96C +sub_80EE96C: @ 80EE96C + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _080EE99C @ =0x02000000 + movs r1, 0xC1 + lsls r1, 2 + adds r5, r0, r1 + ldrh r4, [r5] + cmp r4, 0 + bne _080EE9A0 + movs r0, 0x6F + bl PlaySE + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EE9B4 + .align 2, 0 +_080EE99C: .4byte 0x02000000 +_080EE9A0: + ldr r0, _080EE9BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080EE9B4 + bl sub_80F5BDC + bl sub_805469C +_080EE9B4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE9BC: .4byte gPaletteFade + thumb_func_end sub_80EE96C + + thumb_func_start sub_80EE9C0 +sub_80EE9C0: @ 80EE9C0 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + bl sub_80F1E84 + ldr r1, _080EE9FC @ =0x02000000 + ldr r2, _080EEA00 @ =0x00006e14 + adds r0, r1, r2 + movs r2, 0 + strb r4, [r0] + ldr r3, _080EEA04 @ =0x00006e15 + adds r0, r1, r3 + strb r5, [r0] + adds r3, 0x1 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EEA08 @ =0x00006e17 + adds r1, r0 + strb r6, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE9FC: .4byte 0x02000000 +_080EEA00: .4byte 0x00006e14 +_080EEA04: .4byte 0x00006e15 +_080EEA08: .4byte 0x00006e17 + thumb_func_end sub_80EE9C0 + + thumb_func_start sub_80EEA0C +sub_80EEA0C: @ 80EEA0C + push {r4,lr} + ldr r1, _080EEA28 @ =0x02000000 + ldr r2, _080EEA2C @ =0x00006e16 + adds r0, r1, r2 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x8 + bls _080EEA1E + b _080EEBFA +_080EEA1E: + lsls r0, 2 + ldr r1, _080EEA30 @ =_080EEA34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEA28: .4byte 0x02000000 +_080EEA2C: .4byte 0x00006e16 +_080EEA30: .4byte _080EEA34 + .align 2, 0 +_080EEA34: + .4byte _080EEA58 + .4byte _080EEA98 + .4byte _080EEAAE + .4byte _080EEAD4 + .4byte _080EEB3E + .4byte _080EEB68 + .4byte _080EEB88 + .4byte _080EEBAC + .4byte _080EEBE4 +_080EEA58: + bl sub_80F1F10 + lsls r0, 24 + cmp r0, 0 + beq _080EEA64 + b _080EEC08 +_080EEA64: + ldr r1, _080EEA7C @ =0x02000000 + ldr r4, _080EEA80 @ =0x00006e17 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0xC + beq _080EEA88 + ldr r0, _080EEA84 @ =0x00006e16 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA7C: .4byte 0x02000000 +_080EEA80: .4byte 0x00006e17 +_080EEA84: .4byte 0x00006e16 +_080EEA88: + ldr r2, _080EEA94 @ =0x00006e16 + adds r1, r2 + movs r0, 0x3 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEA94: .4byte 0x00006e16 +_080EEA98: + ldr r4, _080EEAC8 @ =0x02000000 + ldr r1, _080EEACC @ =0x00006e17 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2C80 + ldr r2, _080EEAD0 @ =0x00006e16 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEAAE: + ldr r4, _080EEAC8 @ =0x02000000 + ldr r1, _080EEACC @ =0x00006e17 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + beq _080EEAC2 + b _080EEC08 +_080EEAC2: + ldr r2, _080EEAD0 @ =0x00006e16 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEAC8: .4byte 0x02000000 +_080EEACC: .4byte 0x00006e17 +_080EEAD0: .4byte 0x00006e16 +_080EEAD4: + adds r2, r3, 0 + ldr r4, _080EEAF8 @ =0x00006e15 + adds r0, r2, r4 + ldrb r1, [r0] + subs r4, 0x68 + adds r0, r2, r4 + strb r1, [r0] + ldr r1, _080EEAFC @ =0x00006e14 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080EEB14 + cmp r0, 0x1 + bgt _080EEB00 + cmp r0, 0 + beq _080EEB06 + b _080EEB28 + .align 2, 0 +_080EEAF8: .4byte 0x00006e15 +_080EEAFC: .4byte 0x00006e14 +_080EEB00: + cmp r0, 0x2 + beq _080EEB20 + b _080EEB28 +_080EEB06: + ldr r4, _080EEB10 @ =0x00006dae + adds r1, r2, r4 + movs r0, 0x5 + b _080EEB26 + .align 2, 0 +_080EEB10: .4byte 0x00006dae +_080EEB14: + ldr r0, _080EEB1C @ =0x00006dae + adds r1, r2, r0 + movs r0, 0x3 + b _080EEB26 + .align 2, 0 +_080EEB1C: .4byte 0x00006dae +_080EEB20: + ldr r2, _080EEB58 @ =0x00006dae + adds r1, r3, r2 + movs r0, 0x6 +_080EEB26: + strb r0, [r1] +_080EEB28: + ldr r4, _080EEB5C @ =0x02000000 + ldr r1, _080EEB60 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1B8C + ldr r2, _080EEB64 @ =0x00006e16 + adds r4, r2 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080EEB3E: + ldr r4, _080EEB5C @ =0x02000000 + ldr r1, _080EEB60 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r2, _080EEB64 @ =0x00006e16 + adds r1, r4, r2 + b _080EEB76 + .align 2, 0 +_080EEB58: .4byte 0x00006dae +_080EEB5C: .4byte 0x02000000 +_080EEB60: .4byte 0x00006e14 +_080EEB64: .4byte 0x00006e16 +_080EEB68: + bl sub_8055870 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEB80 @ =0x02000000 + ldr r4, _080EEB84 @ =0x00006e16 + adds r1, r4 +_080EEB76: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080EEC08 + .align 2, 0 +_080EEB80: .4byte 0x02000000 +_080EEB84: .4byte 0x00006e16 +_080EEB88: + bl sub_80F1DF0 + ldr r4, _080EEBA0 @ =0x02000000 + ldr r1, _080EEBA4 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_80EF490 + ldr r2, _080EEBA8 @ =0x00006e16 + adds r4, r2 + b _080EEBCC + .align 2, 0 +_080EEBA0: .4byte 0x02000000 +_080EEBA4: .4byte 0x00006e14 +_080EEBA8: .4byte 0x00006e16 +_080EEBAC: + bl sub_80F1E50 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r4, _080EEBD4 @ =0x02000000 + ldr r1, _080EEBD8 @ =0x00006e14 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080EEBDC @ =0x00006dad + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80EF428 + ldr r0, _080EEBE0 @ =0x00006e16 + adds r4, r0 +_080EEBCC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080EEC08 + .align 2, 0 +_080EEBD4: .4byte 0x02000000 +_080EEBD8: .4byte 0x00006e14 +_080EEBDC: .4byte 0x00006dad +_080EEBE0: .4byte 0x00006e16 +_080EEBE4: + bl sub_80EF4F8 + lsls r0, 24 + cmp r0, 0 + bne _080EEC08 + ldr r1, _080EEC00 @ =0x02000000 + ldr r2, _080EEC04 @ =0x00006e16 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EEBFA: + movs r0, 0 + b _080EEC0A + .align 2, 0 +_080EEC00: .4byte 0x02000000 +_080EEC04: .4byte 0x00006e16 +_080EEC08: + movs r0, 0x1 +_080EEC0A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEA0C + + thumb_func_start sub_80EEC10 +sub_80EEC10: @ 80EEC10 + push {r4,lr} + ldr r0, _080EEC48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080EEC50 + ldr r1, _080EEC4C @ =0x02006dad + adds r3, r1, 0x1 + adds r2, r1, 0x5 +_080EEC24: + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EEC36 + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r1] +_080EEC36: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC24 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC48: .4byte gMain +_080EEC4C: .4byte 0x02006dad +_080EEC50: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EEC88 + ldr r1, _080EEC84 @ =0x02006dad + movs r4, 0 + movs r2, 0x1 + ldrsb r2, [r1, r2] + adds r3, r1, 0x5 +_080EEC62: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, r2 + blt _080EEC72 + strb r4, [r1] +_080EEC72: + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EEC62 + movs r0, 0x1 + b _080EEC8A + .align 2, 0 +_080EEC84: .4byte 0x02006dad +_080EEC88: + movs r0, 0 +_080EEC8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC10 + + thumb_func_start sub_80EEC90 +sub_80EEC90: @ 80EEC90 + push {r4,lr} + ldr r0, _080EECC0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _080EECD0 + ldr r2, _080EECC4 @ =0x02000000 + ldr r0, _080EECC8 @ =0x00006dad + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bge _080EECF8 + ldr r3, _080EECCC @ =0x00006dae + adds r0, r2, r3 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r1] + b _080EECF8 + .align 2, 0 +_080EECC0: .4byte gMain +_080EECC4: .4byte 0x02000000 +_080EECC8: .4byte 0x00006dad +_080EECCC: .4byte 0x00006dae +_080EECD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080EED04 + ldr r0, _080EECFC @ =0x02000000 + ldr r4, _080EED00 @ =0x00006dad + adds r2, r0, r4 + ldrb r1, [r2] + adds r1, 0x1 + strb r1, [r2] + adds r4, 0x1 + adds r0, r4 + lsls r1, 24 + asrs r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + blt _080EECF8 + strb r3, [r2] +_080EECF8: + movs r0, 0x1 + b _080EED06 + .align 2, 0 +_080EECFC: .4byte 0x02000000 +_080EED00: .4byte 0x00006dad +_080EED04: + movs r0, 0 +_080EED06: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EEC90 + + thumb_func_start sub_80EED0C +sub_80EED0C: @ 80EED0C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED0C + + thumb_func_start sub_80EED1C +sub_80EED1C: @ 80EED1C + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x92 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_80EED1C + + thumb_func_start sub_80EED2C +sub_80EED2C: @ 80EED2C + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080EED98 + lsls r0, 2 + ldr r1, _080EED40 @ =_080EED44 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EED40: .4byte _080EED44 + .align 2, 0 +_080EED44: + .4byte _080EED5C + .4byte _080EED66 + .4byte _080EED7E + .4byte _080EED74 + .4byte _080EED74 + .4byte _080EED8C +_080EED5C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED66: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED70 @ =0x00001741 + b _080EED94 + .align 2, 0 +_080EED70: .4byte 0x00001741 +_080EED74: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + b _080EED94 +_080EED7E: + movs r1, 0x80 + lsls r1, 19 + ldr r2, _080EED88 @ =0x00007b40 + b _080EED94 + .align 2, 0 +_080EED88: .4byte 0x00007b40 +_080EED8C: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFD + lsls r2, 6 +_080EED94: + adds r0, r2, 0 + strh r0, [r1] +_080EED98: + pop {r0} + bx r0 + thumb_func_end sub_80EED2C + + thumb_func_start sub_80EED9C +sub_80EED9C: @ 80EED9C + push {lr} + ldr r2, _080EEDB8 @ =gUnknown_03000744 + ldr r0, _080EEDBC @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r1, _080EEDC0 @ =sub_80EEDC4 + str r1, [r0] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080EEDB8: .4byte gUnknown_03000744 +_080EEDBC: .4byte 0x02000000 +_080EEDC0: .4byte sub_80EEDC4 + thumb_func_end sub_80EED9C + + thumb_func_start sub_80EEDC4 +sub_80EEDC4: @ 80EEDC4 + push {lr} + bl sub_8055870 + cmp r0, 0x1 + beq _080EEDDC + ldr r0, _080EEDE0 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 2 + adds r0, r1 + ldr r1, _080EEDE4 @ =gUnknown_03000744 + ldr r1, [r1] + str r1, [r0] +_080EEDDC: + pop {r0} + bx r0 + .align 2, 0 +_080EEDE0: .4byte 0x02000000 +_080EEDE4: .4byte gUnknown_03000744 + thumb_func_end sub_80EEDC4 + + thumb_func_start sub_80EEDE8 +sub_80EEDE8: @ 80EEDE8 + ldr r0, _080EEE04 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE04: .4byte REG_BG0HOFS + thumb_func_end sub_80EEDE8 + + thumb_func_start sub_80EEE08 +sub_80EEE08: @ 80EEE08 + ldr r0, _080EEE18 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EEE1C @ =0x0000d160 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080EEE18: .4byte gUnknown_083DFEC4 +_080EEE1C: .4byte 0x0000d160 + thumb_func_end sub_80EEE08 + + thumb_func_start sub_80EEE20 +sub_80EEE20: @ 80EEE20 + push {lr} + ldr r0, _080EEE48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EEE4C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EEE50 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EEE42 +_080EEE38: + bl sub_80EEE54 + lsls r0, 24 + cmp r0, 0 + bne _080EEE38 +_080EEE42: + pop {r0} + bx r0 + .align 2, 0 +_080EEE48: .4byte gUnknown_083DFEC4 +_080EEE4C: .4byte 0x0000d160 +_080EEE50: .4byte 0x00006dac + thumb_func_end sub_80EEE20 + + thumb_func_start sub_80EEE54 +sub_80EEE54: @ 80EEE54 + push {lr} + ldr r1, _080EEE70 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080EEE74 @ =0x0000d160 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080EEF02 + lsls r0, 2 + ldr r1, _080EEE78 @ =_080EEE7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEE70: .4byte gUnknown_083DFEC4 +_080EEE74: .4byte 0x0000d160 +_080EEE78: .4byte _080EEE7C + .align 2, 0 +_080EEE7C: + .4byte _080EEE90 + .4byte _080EEEA4 + .4byte _080EEEB8 + .4byte _080EEEC8 + .4byte _080EEEDC +_080EEE90: + ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx + ldr r1, _080EEEA0 @ =0x0600c000 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx +_080EEEA0: .4byte 0x0600c000 +_080EEEA4: + ldr r0, _080EEEB0 @ =gUnknown_08E99FB0 + ldr r1, _080EEEB4 @ =0x0600d800 + bl LZ77UnCompVram + b _080EEF18 + .align 2, 0 +_080EEEB0: .4byte gUnknown_08E99FB0 +_080EEEB4: .4byte 0x0600d800 +_080EEEB8: + ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + b _080EEF18 + .align 2, 0 +_080EEEC4: .4byte gPokenavHoennMap1_Pal +_080EEEC8: + movs r0, 0 + bl sub_80EF58C + movs r0, 0x1 + bl sub_80EF58C + movs r0, 0x2 + bl sub_80EF58C + b _080EEF18 +_080EEEDC: + ldr r2, [r2] + movs r3, 0xC3 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + ldr r0, _080EEF08 @ =REG_BG1HOFS + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080EEF0C @ =REG_BG1CNT + ldr r3, _080EEF10 @ =0x00001b0c + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080EEF14 @ =0x0000d160 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080EEF02: + movs r0, 0 + b _080EEF28 + .align 2, 0 +_080EEF08: .4byte REG_BG1HOFS +_080EEF0C: .4byte REG_BG1CNT +_080EEF10: .4byte 0x00001b0c +_080EEF14: .4byte 0x0000d160 +_080EEF18: + ldr r0, _080EEF2C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EEF30 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080EEF28: + pop {r1} + bx r1 + .align 2, 0 +_080EEF2C: .4byte gUnknown_083DFEC4 +_080EEF30: .4byte 0x0000d160 + thumb_func_end sub_80EEE54 + + thumb_func_start sub_80EEF34 +sub_80EEF34: @ 80EEF34 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF50 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0x20 + bne _080EEF54 + movs r0, 0 + b _080EEF6E + .align 2, 0 +_080EEF50: .4byte gUnknown_083DFEC4 +_080EEF54: + adds r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + ble _080EEF66 + movs r0, 0x20 + strh r0, [r2] + movs r3, 0 +_080EEF66: + ldr r1, _080EEF74 @ =REG_BG1VOFS + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEF6E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEF74: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF34 + + thumb_func_start sub_80EEF78 +sub_80EEF78: @ 80EEF78 + push {r4,lr} + movs r3, 0x1 + ldr r0, _080EEF94 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r2, r0, r1 + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0 + bne _080EEF98 + movs r0, 0 + b _080EEFB0 + .align 2, 0 +_080EEF94: .4byte gUnknown_083DFEC4 +_080EEF98: + subs r0, r1, 0x2 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bgt _080EEFA8 + movs r0, 0 + strh r0, [r2] + movs r3, 0 +_080EEFA8: + ldr r1, _080EEFB8 @ =REG_BG1VOFS + ldrh r0, [r2] + strh r0, [r1] + adds r0, r3, 0 +_080EEFB0: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EEFB8: .4byte REG_BG1VOFS + thumb_func_end sub_80EEF78 + + thumb_func_start sub_80EEFBC +sub_80EEFBC: @ 80EEFBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EEFF4 @ =0x0600d800 + ldr r3, _080EEFF8 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0x11 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0x16 + bl sub_809D104 + cmp r4, 0xB + bls _080EEFE8 + b _080EF234 +_080EEFE8: + lsls r0, r4, 2 + ldr r1, _080EEFFC @ =_080EF000 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EEFF4: .4byte 0x0600d800 +_080EEFF8: .4byte gUnknown_08E9A100 +_080EEFFC: .4byte _080EF000 + .align 2, 0 +_080EF000: + .4byte _080EF030 + .4byte _080EF234 + .4byte _080EF08C + .4byte _080EF100 + .4byte _080EF13C + .4byte _080EF1D4 + .4byte _080EF234 + .4byte _080EF178 + .4byte _080EF190 + .4byte _080EF1D4 + .4byte _080EF218 + .4byte _080EF06C +_080EF030: + ldr r6, _080EF064 @ =0x0600d800 + ldr r0, _080EF068 @ =gUnknown_08E9A100 + mov r8, r0 + movs r0, 0x11 + str r0, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r5, 0x2 + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r4, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r5, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF064: .4byte 0x0600d800 +_080EF068: .4byte gUnknown_08E9A100 +_080EF06C: + ldr r0, _080EF084 @ =0x0600d800 + ldr r3, _080EF088 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + b _080EF0EE + .align 2, 0 +_080EF084: .4byte 0x0600d800 +_080EF088: .4byte gUnknown_08E9A100 +_080EF08C: + ldr r0, _080EF0C8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF0CC @ =0x00006dac + adds r0, r1 + ldrb r7, [r0] + cmp r7, 0 + bne _080EF0D8 + ldr r5, _080EF0D0 @ =0x0600d800 + ldr r6, _080EF0D4 @ =gUnknown_08E9A100 + movs r0, 0xA + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + str r7, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF0C8: .4byte gUnknown_083DFEC4 +_080EF0CC: .4byte 0x00006dac +_080EF0D0: .4byte 0x0600d800 +_080EF0D4: .4byte gUnknown_08E9A100 +_080EF0D8: + ldr r0, _080EF0F8 @ =0x0600d800 + ldr r3, _080EF0FC @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0xA +_080EF0EE: + movs r2, 0x16 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF0F8: .4byte 0x0600d800 +_080EF0FC: .4byte gUnknown_08E9A100 +_080EF100: + ldr r6, _080EF134 @ =0x0600d800 + ldr r0, _080EF138 @ =gUnknown_08E9A100 + mov r8, r0 + movs r5, 0 + str r5, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0xA + b _080EF204 + .align 2, 0 +_080EF134: .4byte 0x0600d800 +_080EF138: .4byte gUnknown_08E9A100 +_080EF13C: + ldr r5, _080EF170 @ =0x0600d800 + ldr r6, _080EF174 @ =gUnknown_08E9A100 + movs r0, 0x14 + str r0, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + b _080EF1C2 + .align 2, 0 +_080EF170: .4byte 0x0600d800 +_080EF174: .4byte gUnknown_08E9A100 +_080EF178: + ldr r5, _080EF188 @ =0x0600d800 + ldr r6, _080EF18C @ =gUnknown_08E9A100 + movs r1, 0xA + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r1, [sp, 0x8] + b _080EF1A0 + .align 2, 0 +_080EF188: .4byte 0x0600d800 +_080EF18C: .4byte gUnknown_08E9A100 +_080EF190: + ldr r5, _080EF1CC @ =0x0600d800 + ldr r6, _080EF1D0 @ =gUnknown_08E9A100 + movs r0, 0x14 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] +_080EF1A0: + movs r4, 0x2 + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x7 +_080EF1C2: + movs r2, 0x16 + adds r3, r6, 0 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF1CC: .4byte 0x0600d800 +_080EF1D0: .4byte gUnknown_08E9A100 +_080EF1D4: + ldr r6, _080EF210 @ =0x0600d800 + ldr r1, _080EF214 @ =gUnknown_08E9A100 + mov r8, r1 + movs r5, 0 + str r5, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0xA + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + str r5, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + movs r0, 0x7 + str r0, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x8 +_080EF204: + movs r2, 0x16 + mov r3, r8 + bl sub_809D104 + b _080EF234 + .align 2, 0 +_080EF210: .4byte 0x0600d800 +_080EF214: .4byte gUnknown_08E9A100 +_080EF218: + ldr r0, _080EF240 @ =0x0600d800 + ldr r3, _080EF244 @ =gUnknown_08E9A100 + movs r1, 0 + str r1, [sp] + movs r1, 0x6 + str r1, [sp, 0x4] + movs r1, 0x7 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x8 + movs r2, 0x16 + bl sub_809D104 +_080EF234: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EF240: .4byte 0x0600d800 +_080EF244: .4byte gUnknown_08E9A100 + thumb_func_end sub_80EEFBC + + thumb_func_start sub_80EF248 +sub_80EF248: @ 80EF248 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080EF278 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF27C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF280 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF270 +_080EF264: + adds r0, r4, 0 + bl sub_80EF284 + lsls r0, 24 + cmp r0, 0 + bne _080EF264 +_080EF270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF278: .4byte gUnknown_083DFEC4 +_080EF27C: .4byte 0x0000d160 +_080EF280: .4byte 0x00006dac + thumb_func_end sub_80EF248 + + thumb_func_start sub_80EF284 +sub_80EF284: @ 80EF284 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080EF2A8 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r3, _080EF2AC @ =0x0000d160 + adds r0, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0xB + bls _080EF29C + b _080EF3F6 +_080EF29C: + lsls r0, 2 + ldr r1, _080EF2B0 @ =_080EF2B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF2A8: .4byte gUnknown_083DFEC4 +_080EF2AC: .4byte 0x0000d160 +_080EF2B0: .4byte _080EF2B4 + .align 2, 0 +_080EF2B4: + .4byte _080EF2E4 + .4byte _080EF2EA + .4byte _080EF2F8 + .4byte _080EF304 + .4byte _080EF310 + .4byte _080EF330 + .4byte _080EF344 + .4byte _080EF368 + .4byte _080EF37C + .4byte _080EF390 + .4byte _080EF3A4 + .4byte _080EF3CC +_080EF2E4: + bl sub_80EEDE8 + b _080EF40C +_080EF2EA: + ldr r0, _080EF2F4 @ =gWindowConfig_81E7224 + bl SetUpWindowConfig + b _080EF40C + .align 2, 0 +_080EF2F4: .4byte gWindowConfig_81E7224 +_080EF2F8: + ldr r0, _080EF300 @ =gWindowConfig_81E7224 + bl MultistepInitMenuWindowBegin + b _080EF40C + .align 2, 0 +_080EF300: .4byte gWindowConfig_81E7224 +_080EF304: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080EF30E + b _080EF40C +_080EF30E: + b _080EF41A +_080EF310: + ldr r1, _080EF320 @ =gUnknown_083DFEEC + ldr r2, _080EF324 @ =0x06005000 + ldr r0, _080EF328 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF32C @ =0x80000050 + b _080EF350 + .align 2, 0 +_080EF320: .4byte gUnknown_083DFEEC +_080EF324: .4byte 0x06005000 +_080EF328: .4byte 0x040000d4 +_080EF32C: .4byte 0x80000050 +_080EF330: + ldr r0, _080EF33C @ =gUnknown_083DFF8C + ldr r1, _080EF340 @ =0x0600f800 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF33C: .4byte gUnknown_083DFF8C +_080EF340: .4byte 0x0600f800 +_080EF344: + ldr r1, _080EF358 @ =gUnknown_083E005C + ldr r2, _080EF35C @ =0x06008000 + ldr r0, _080EF360 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080EF364 @ =0x80000010 +_080EF350: + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080EF40C + .align 2, 0 +_080EF358: .4byte gUnknown_083E005C +_080EF35C: .4byte 0x06008000 +_080EF360: .4byte 0x040000d4 +_080EF364: .4byte 0x80000010 +_080EF368: + ldr r0, _080EF374 @ =gUnknown_083E007C + ldr r1, _080EF378 @ =0x0600e000 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF374: .4byte gUnknown_083E007C +_080EF378: .4byte 0x0600e000 +_080EF37C: + ldr r0, _080EF388 @ =gPokenavOutlineTilemap + ldr r1, _080EF38C @ =0x0600e800 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF388: .4byte gPokenavOutlineTilemap +_080EF38C: .4byte 0x0600e800 +_080EF390: + ldr r0, _080EF39C @ =gPokenavOutlineTiles + ldr r1, _080EF3A0 @ =0x06008020 + bl LZ77UnCompVram + b _080EF40C + .align 2, 0 +_080EF39C: .4byte gPokenavOutlineTiles +_080EF3A0: .4byte 0x06008020 +_080EF3A4: + adds r0, r2, 0 + bl sub_80EF54C + ldr r0, _080EF3C4 @ =gUnknown_083DFECC + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080EF3C8 @ =gPokenavOutlinePalette + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + bl sub_80EF7D4 + b _080EF40C + .align 2, 0 +_080EF3C4: .4byte gUnknown_083DFECC +_080EF3C8: .4byte gPokenavOutlinePalette +_080EF3CC: + ldr r1, _080EF3FC @ =REG_BG0CNT + ldr r2, _080EF400 @ =0x00001f01 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080EF404 @ =0x00001d0a + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r3] + ldr r3, _080EF408 @ =0x0000d160 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF3F6: + movs r0, 0 + b _080EF41C + .align 2, 0 +_080EF3FC: .4byte REG_BG0CNT +_080EF400: .4byte 0x00001f01 +_080EF404: .4byte 0x00001d0a +_080EF408: .4byte 0x0000d160 +_080EF40C: + ldr r0, _080EF420 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EF424 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF41A: + movs r0, 0x1 +_080EF41C: + pop {r1} + bx r1 + .align 2, 0 +_080EF420: .4byte gUnknown_083DFEC4 +_080EF424: .4byte 0x0000d160 + thumb_func_end sub_80EF284 + + thumb_func_start sub_80EF428 +sub_80EF428: @ 80EF428 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r2, r1, 24 + movs r1, 0 + cmp r0, 0x1 + beq _080EF454 + cmp r0, 0x1 + bgt _080EF444 + cmp r0, 0 + beq _080EF44A + b _080EF464 +_080EF444: + cmp r3, 0x2 + beq _080EF45C + b _080EF464 +_080EF44A: + ldr r1, _080EF450 @ =gUnknown_083E31B0 + b _080EF45E + .align 2, 0 +_080EF450: .4byte gUnknown_083E31B0 +_080EF454: + ldr r1, _080EF458 @ =gUnknown_083E31CC + b _080EF45E + .align 2, 0 +_080EF458: .4byte gUnknown_083E31CC +_080EF45C: + ldr r1, _080EF488 @ =gUnknown_083E31D8 +_080EF45E: + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] +_080EF464: + ldr r0, _080EF48C @ =gUnknown_083DFEC8 + ldr r4, [r0] + movs r0, 0x80 + lsls r0, 4 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0xC0 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0x3 + movs r2, 0x11 + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF488: .4byte gUnknown_083E31D8 +_080EF48C: .4byte gUnknown_083DFEC8 + thumb_func_end sub_80EF428 + + thumb_func_start sub_80EF490 +sub_80EF490: @ 80EF490 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF49C + movs r2, 0x1 +_080EF49C: + ldr r0, _080EF4C4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r2, r1, 1 + ldr r4, _080EF4C8 @ =0x0000ce4e + adds r0, r3, r4 + strh r2, [r0] + ldr r2, _080EF4CC @ =0x0000ce4c + adds r0, r3, r2 + ldrh r2, [r0] + lsls r1, 17 + lsrs r0, r1, 16 + cmp r2, r0 + bcs _080EF4D0 + adds r4, 0x2 + adds r1, r3, r4 + movs r0, 0x2 + b _080EF4EA + .align 2, 0 +_080EF4C4: .4byte gUnknown_083DFEC4 +_080EF4C8: .4byte 0x0000ce4e +_080EF4CC: .4byte 0x0000ce4c +_080EF4D0: + cmp r2, r0 + bls _080EF4E4 + ldr r0, _080EF4DC @ =0x0000ce50 + adds r1, r3, r0 + ldr r0, _080EF4E0 @ =0x0000fffe + b _080EF4EA + .align 2, 0 +_080EF4DC: .4byte 0x0000ce50 +_080EF4E0: .4byte 0x0000fffe +_080EF4E4: + ldr r2, _080EF4F4 @ =0x0000ce50 + adds r1, r3, r2 + movs r0, 0 +_080EF4EA: + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF4F4: .4byte 0x0000ce50 + thumb_func_end sub_80EF490 + + thumb_func_start sub_80EF4F8 +sub_80EF4F8: @ 80EF4F8 + push {r4,lr} + ldr r0, _080EF530 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EF534 @ =0x0000ce4c + adds r2, r1, r0 + ldr r3, _080EF538 @ =0x0000ce4e + adds r0, r1, r3 + ldrh r3, [r2] + ldrh r0, [r0] + cmp r3, r0 + beq _080EF544 + ldr r4, _080EF53C @ =0x0000ce50 + adds r0, r1, r4 + ldrh r0, [r0] + adds r0, r3, r0 + strh r0, [r2] + ldr r3, _080EF540 @ =0x0000ce52 + adds r0, r1, r3 + ldrh r1, [r2] + lsls r1, 1 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + movs r0, 0x1 + b _080EF546 + .align 2, 0 +_080EF530: .4byte gUnknown_083DFEC4 +_080EF534: .4byte 0x0000ce4c +_080EF538: .4byte 0x0000ce4e +_080EF53C: .4byte 0x0000ce50 +_080EF540: .4byte 0x0000ce52 +_080EF544: + movs r0, 0 +_080EF546: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80EF4F8 + + thumb_func_start sub_80EF54C +sub_80EF54C: @ 80EF54C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _080EF558 + movs r2, 0x1 +_080EF558: + ldr r0, _080EF580 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 1 + ldr r3, _080EF584 @ =0x0000ce4c + adds r2, r0, r3 + strh r1, [r2] + ldrh r1, [r2] + lsls r1, 1 + ldr r2, _080EF588 @ =0x0000ce52 + adds r1, r2 + adds r0, r1 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_080EF580: .4byte gUnknown_083DFEC4 +_080EF584: .4byte 0x0000ce4c +_080EF588: .4byte 0x0000ce52 + thumb_func_end sub_80EF54C + + thumb_func_start sub_80EF58C +sub_80EF58C: @ 80EF58C + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080EF5D0 + cmp r0, 0x1 + bgt _080EF5A4 + cmp r0, 0 + beq _080EF5AA + b _080EF610 +_080EF5A4: + cmp r1, 0x2 + beq _080EF5F8 + b _080EF610 +_080EF5AA: + movs r1, 0 + ldr r0, _080EF5C8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080EF5CC @ =0x0000ce52 + adds r2, r0, r3 + movs r3, 0 +_080EF5B6: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3D + bls _080EF5B6 + b _080EF610 + .align 2, 0 +_080EF5C8: .4byte gUnknown_083DFEC4 +_080EF5CC: .4byte 0x0000ce52 +_080EF5D0: + ldr r0, _080EF5EC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF5F0 @ =0x0000ce52 + adds r2, r0, r1 + ldr r1, _080EF5F4 @ =gUnknown_083E003C + adds r0, r1, 0x2 + adds r1, 0x6 + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 + b _080EF610 + .align 2, 0 +_080EF5EC: .4byte gUnknown_083DFEC4 +_080EF5F0: .4byte 0x0000ce52 +_080EF5F4: .4byte gUnknown_083E003C +_080EF5F8: + ldr r0, _080EF618 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080EF61C @ =0x0000ce8e + adds r2, r0, r3 + ldr r1, _080EF620 @ =gUnknown_083E003C + adds r0, r1, 0x6 + adds r1, 0xE + str r2, [sp] + movs r2, 0x10 + movs r3, 0x2 + bl sub_80EF624 +_080EF610: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080EF618: .4byte gUnknown_083DFEC4 +_080EF61C: .4byte 0x0000ce8e +_080EF620: .4byte gUnknown_083E003C + thumb_func_end sub_80EF58C + + thumb_func_start sub_80EF624 +sub_80EF624: @ 80EF624 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + str r0, [sp] + str r1, [sp, 0x4] + ldr r4, [sp, 0x58] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + lsls r0, r3, 16 + ldr r1, [sp, 0x10] + cmp r1, r3 + bcs _080EF72E + subs r2, 0x1 + str r2, [sp, 0x20] + str r0, [sp, 0x2C] +_080EF654: + ldr r2, [sp] + ldrh r1, [r2] + movs r0, 0x1F + ands r0, r1 + lsls r7, r0, 8 + lsls r1, 16 + lsrs r0, r1, 21 + movs r2, 0x1F + ands r0, r2 + lsls r6, r0, 8 + lsrs r1, 26 + ands r1, r2 + lsls r5, r1, 8 + ldr r0, [sp, 0x4] + ldrh r1, [r0] + movs r0, 0x1F + ands r0, r1 + lsls r0, 8 + str r0, [sp, 0x14] + lsls r1, 16 + lsrs r0, r1, 21 + ands r0, r2 + lsls r0, 8 + str r0, [sp, 0x18] + lsrs r1, 26 + ands r1, r2 + lsls r1, 8 + str r1, [sp, 0x1C] + ldr r1, [sp, 0x14] + subs r0, r1, r7 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r10, r0 + ldr r2, [sp, 0x18] + subs r0, r2, r6 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r9, r0 + ldr r1, [sp, 0x1C] + subs r0, r1, r5 + ldr r1, [sp, 0x8] + bl __divsi3 + mov r8, r0 + adds r3, r4, 0 + movs r4, 0 + ldr r2, [sp] + adds r2, 0x2 + str r2, [sp, 0x30] + ldr r0, [sp, 0x4] + adds r0, 0x2 + str r0, [sp, 0x34] + adds r1, r3, 0x2 + str r1, [sp, 0x24] + ldr r2, [sp, 0x10] + adds r2, 0x1 + str r2, [sp, 0x28] + ldr r0, [sp, 0x20] + cmp r4, r0 + bge _080EF700 + ldr r1, [sp, 0xC] + lsls r1, 1 + mov r12, r1 +_080EF6D6: + lsls r0, r7, 8 + lsrs r2, r0, 16 + lsls r0, r6, 8 + lsrs r1, r0, 16 + lsls r0, r5, 8 + lsrs r0, 16 + lsls r0, 10 + lsls r1, 5 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + add r3, r12 + add r7, r10 + add r6, r9 + add r5, r8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x20] + cmp r4, r2 + blt _080EF6D6 +_080EF700: + ldr r4, [sp, 0x14] + lsrs r2, r4, 8 + ldr r1, [sp, 0x1C] + lsls r0, r1, 2 + ldr r4, [sp, 0x18] + lsrs r1, r4, 3 + orrs r0, r1 + orrs r2, r0 + strh r2, [r3] + ldr r0, [sp, 0x30] + str r0, [sp] + ldr r1, [sp, 0x34] + str r1, [sp, 0x4] + ldr r4, [sp, 0x24] + ldr r2, [sp, 0x28] + lsls r0, r2, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + ldr r1, [sp, 0x2C] + lsrs r0, r1, 16 + ldr r2, [sp, 0x10] + cmp r2, r0 + bcc _080EF654 +_080EF72E: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EF624 + + thumb_func_start sub_80EF740 +sub_80EF740: @ 80EF740 + push {lr} + ldr r0, _080EF770 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080EF774 @ =0x00006da0 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r2] + cmp r0, 0 + beq _080EF762 + ldr r2, _080EF778 @ =0x00006da2 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF762: + ldr r0, _080EF77C @ =REG_BG3HOFS + ldr r2, _080EF778 @ =0x00006da2 + adds r1, r3, r2 + ldrh r1, [r1] + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080EF770: .4byte gUnknown_083DFEC4 +_080EF774: .4byte 0x00006da0 +_080EF778: .4byte 0x00006da2 +_080EF77C: .4byte REG_BG3HOFS + thumb_func_end sub_80EF740 + + thumb_func_start sub_80EF780 +sub_80EF780: @ 80EF780 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080EF7B0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080EF7AA + ldr r0, _080EF7B4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080EF7B8 @ =0x00006da2 + adds r2, r3, r0 + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080EF7BC +_080EF7AA: + bl sub_80EF740 + b _080EF7C8 + .align 2, 0 +_080EF7B0: .4byte gTasks +_080EF7B4: .4byte gUnknown_083DFEC4 +_080EF7B8: .4byte 0x00006da2 +_080EF7BC: + strh r1, [r2] + ldr r2, _080EF7CC @ =0x00006da0 + adds r0, r3, r2 + strh r1, [r0] + ldr r0, _080EF7D0 @ =REG_BG3HOFS + strh r1, [r0] +_080EF7C8: + pop {r0} + bx r0 + .align 2, 0 +_080EF7CC: .4byte 0x00006da0 +_080EF7D0: .4byte REG_BG3HOFS + thumb_func_end sub_80EF780 + + thumb_func_start sub_80EF7D4 +sub_80EF7D4: @ 80EF7D4 + push {r4,lr} + ldr r0, _080EF800 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080EF804 @ =0x00006da2 + adds r0, r4, r1 + movs r1, 0 + strh r1, [r0] + ldr r2, _080EF808 @ =0x00006da0 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _080EF80C @ =sub_80EF780 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080EF810 @ =0x00006da4 + adds r4, r1 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EF800: .4byte gUnknown_083DFEC4 +_080EF804: .4byte 0x00006da2 +_080EF808: .4byte 0x00006da0 +_080EF80C: .4byte sub_80EF780 +_080EF810: .4byte 0x00006da4 + thumb_func_end sub_80EF7D4 + + thumb_func_start sub_80EF814 +sub_80EF814: @ 80EF814 + push {lr} + ldr r0, _080EF834 @ =sub_80EF780 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080EF830 + ldr r0, _080EF838 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF83C @ =0x00006da4 + adds r0, r1 + ldrb r0, [r0] + bl DestroyTask +_080EF830: + pop {r0} + bx r0 + .align 2, 0 +_080EF834: .4byte sub_80EF780 +_080EF838: .4byte gUnknown_083DFEC4 +_080EF83C: .4byte 0x00006da4 + thumb_func_end sub_80EF814 + + thumb_func_start sub_80EF840 +sub_80EF840: @ 80EF840 + push {lr} + ldr r0, _080EF868 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF86C @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EF870 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF862 +_080EF858: + bl sub_80EF874 + lsls r0, 24 + cmp r0, 0 + bne _080EF858 +_080EF862: + pop {r0} + bx r0 + .align 2, 0 +_080EF868: .4byte gUnknown_083DFEC4 +_080EF86C: .4byte 0x0000d160 +_080EF870: .4byte 0x00006dac + thumb_func_end sub_80EF840 + + thumb_func_start sub_80EF874 +sub_80EF874: @ 80EF874 + push {lr} + ldr r0, _080EF890 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EF894 @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xB + bls _080EF886 + b _080EF9D8 +_080EF886: + lsls r0, 2 + ldr r1, _080EF898 @ =_080EF89C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EF890: .4byte gUnknown_083DFEC4 +_080EF894: .4byte 0x0000d160 +_080EF898: .4byte _080EF89C + .align 2, 0 +_080EF89C: + .4byte _080EF8CC + .4byte _080EF8D2 + .4byte _080EF8E0 + .4byte _080EF8EC + .4byte _080EF8F6 + .4byte _080EF8FC + .4byte _080EF920 + .4byte _080EF92C + .4byte _080EF940 + .4byte _080EF954 + .4byte _080EF960 + .4byte _080EF972 +_080EF8CC: + bl sub_80EEDE8 + b _080EF9DC +_080EF8D2: + ldr r0, _080EF8DC @ =gWindowConfig_81E7224 + bl SetUpWindowConfig + b _080EF9DC + .align 2, 0 +_080EF8DC: .4byte gWindowConfig_81E7224 +_080EF8E0: + ldr r0, _080EF8E8 @ =gWindowConfig_81E7224 + bl MultistepInitMenuWindowBegin + b _080EF9DC + .align 2, 0 +_080EF8E8: .4byte gWindowConfig_81E7224 +_080EF8EC: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _080EF9DC + b _080EF9EA +_080EF8F6: + bl MenuZeroFillScreen + b _080EF9DC +_080EF8FC: + ldr r0, _080EF914 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EF918 @ =0x00006e18 + adds r0, r2 + ldr r1, _080EF91C @ =gSaveBlock2 + ldrb r1, [r1, 0x15] + lsrs r1, 3 + movs r2, 0x1 + ands r1, r2 + bl sub_80FA904 + b _080EF9DC + .align 2, 0 +_080EF914: .4byte gUnknown_083DFEC4 +_080EF918: .4byte 0x00006e18 +_080EF91C: .4byte gSaveBlock2 +_080EF920: + bl sub_80FA940 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF92C: + ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx + ldr r1, _080EF93C @ =0x06005000 + bl LZ77UnCompVram + b _080EF9DC + .align 2, 0 +_080EF938: .4byte gPokenavHoennMapSquares_Gfx +_080EF93C: .4byte 0x06005000 +_080EF940: + ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + bl sub_80EFC3C + b _080EF9DC + .align 2, 0 +_080EF950: .4byte gPokenavHoennMapSquares_Pal +_080EF954: + bl sub_80EFC64 + lsls r0, 24 + cmp r0, 0 + beq _080EF9DC + b _080EF9EA +_080EF960: + movs r0, 0xD + movs r1, 0x3 + movs r2, 0x1D + movs r3, 0x11 + bl MenuDrawTextWindow + bl sub_80EF9F8 + b _080EF9DC +_080EF972: + ldr r0, _080EF990 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EF994 @ =0x00006e90 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080EF9A0 + ldr r2, _080EF998 @ =0x00007698 + adds r0, r1, r2 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080EF99C @ =REG_BG0VOFS + strh r1, [r0] + b _080EF9B0 + .align 2, 0 +_080EF990: .4byte gUnknown_083DFEC4 +_080EF994: .4byte 0x00006e90 +_080EF998: .4byte 0x00007698 +_080EF99C: .4byte REG_BG0VOFS +_080EF9A0: + ldr r0, _080EF9C8 @ =0x00007698 + adds r1, r0 + movs r2, 0 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r1] + ldr r0, _080EF9CC @ =REG_BG0VOFS + strh r2, [r0] +_080EF9B0: + ldr r2, _080EF9D0 @ =REG_BG0CNT + ldrh r0, [r2] + strh r0, [r2] + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080EF9D4 @ =REG_BLDCNT + movs r0, 0 + strh r0, [r1] + b _080EF9DC + .align 2, 0 +_080EF9C8: .4byte 0x00007698 +_080EF9CC: .4byte REG_BG0VOFS +_080EF9D0: .4byte REG_BG0CNT +_080EF9D4: .4byte REG_BLDCNT +_080EF9D8: + movs r0, 0 + b _080EF9EC +_080EF9DC: + ldr r0, _080EF9F0 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EF9F4 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EF9EA: + movs r0, 0x1 +_080EF9EC: + pop {r1} + bx r1 + .align 2, 0 +_080EF9F0: .4byte gUnknown_083DFEC4 +_080EF9F4: .4byte 0x0000d160 + thumb_func_end sub_80EF874 + + thumb_func_start sub_80EF9F8 +sub_80EF9F8: @ 80EF9F8 + push {r4-r6,lr} + sub sp, 0x14 + movs r5, 0x4 + ldr r0, _080EFA18 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFA1C @ =0x00006e2e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bls _080EFA0E + b _080EFB6A +_080EFA0E: + lsls r0, 2 + ldr r1, _080EFA20 @ =_080EFA24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFA18: .4byte gUnknown_083DFEC4 +_080EFA1C: .4byte 0x00006e2e +_080EFA20: .4byte _080EFA24 + .align 2, 0 +_080EFA24: + .4byte _080EFB6A + .4byte _080EFA38 + .4byte _080EFAC0 + .4byte _080EFB4C + .4byte _080EFA38 +_080EFA38: + ldr r0, _080EFA64 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFA68 @ =0x00006e18 + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080EFA6C @ =gLinkOpen + ldrb r0, [r0] + cmp r0, 0x1 + bne _080EFA70 + bl sub_80F1A80 + b _080EFB82 + .align 2, 0 +_080EFA64: .4byte gUnknown_083DFEC4 +_080EFA68: .4byte 0x00006e18 +_080EFA6C: .4byte gLinkOpen +_080EFA70: + movs r4, 0 + b _080EFA92 +_080EFA74: + lsls r2, r5, 19 + lsrs r2, 16 + movs r0, 0x1 + str r0, [sp] + adds r0, r1, 0 + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080EFA92: + cmp r4, 0x3 + bhi _080EFB6A + ldr r0, _080EFAB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFABC @ =0x00006e2c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_811A8CC + adds r1, r0, 0 + cmp r1, 0 + bne _080EFA74 + b _080EFB6A + .align 2, 0 +_080EFAB8: .4byte gUnknown_083DFEC4 +_080EFABC: .4byte 0x00006e2c +_080EFAC0: + ldr r0, _080EFB38 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080EFB3C @ =0x00006e18 + adds r0, r4, r1 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, _080EFB40 @ =0x00006e2c + adds r0, r4, r2 + ldrh r1, [r0] + adds r2, 0x3 + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 2 + lsls r1, 3 + adds r0, r1 + ldr r1, _080EFB44 @ =0x0000cdcc + adds r4, r1 + adds r6, r4, r0 + ldr r0, [r6] + cmp r0, 0 + beq _080EFB6A + lsls r4, r5, 24 + lsrs r4, 24 + movs r0, 0xE + adds r1, r4, 0 + movs r2, 0xF + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0x1A + adds r1, r4, 0 + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + ldr r0, _080EFB48 @ =0x0600f800 + ldr r3, [r6] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + movs r1, 0x10 + movs r2, 0x6 + bl sub_8095C8C + adds r0, r5, 0 + adds r0, 0xB + b _080EFB66 + .align 2, 0 +_080EFB38: .4byte gUnknown_083DFEC4 +_080EFB3C: .4byte 0x00006e18 +_080EFB40: .4byte 0x00006e2c +_080EFB44: .4byte 0x0000cdcc +_080EFB48: .4byte 0x0600f800 +_080EFB4C: + ldr r0, _080EFB98 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFB9C @ =0x00006e18 + adds r0, r2 + lsls r2, r5, 19 + lsrs r2, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + adds r0, r5, 0x2 +_080EFB66: + lsls r0, 16 + lsrs r5, r0, 16 +_080EFB6A: + movs r0, 0 + cmp r0, 0 + bne _080EFB82 + cmp r5, 0xF + bhi _080EFB82 + lsls r1, r5, 24 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile +_080EFB82: + ldr r0, _080EFB98 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFBA0 @ =0x00006e2e + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080EFBA4 + bl sub_80EFD74 + b _080EFBA8 + .align 2, 0 +_080EFB98: .4byte gUnknown_083DFEC4 +_080EFB9C: .4byte 0x00006e18 +_080EFBA0: .4byte 0x00006e2e +_080EFBA4: + bl sub_80EFDA0 +_080EFBA8: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80EF9F8 + + thumb_func_start sub_80EFBB0 +sub_80EFBB0: @ 80EFBB0 + push {lr} + ldr r0, _080EFBC8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFBCC @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFBD0 + movs r0, 0x8 + bl sub_80EEFBC + b _080EFBD6 + .align 2, 0 +_080EFBC8: .4byte gUnknown_083DFEC4 +_080EFBCC: .4byte 0x00006e90 +_080EFBD0: + movs r0, 0x7 + bl sub_80EEFBC +_080EFBD6: + pop {r0} + bx r0 + thumb_func_end sub_80EFBB0 + + thumb_func_start sub_80EFBDC +sub_80EFBDC: @ 80EFBDC + push {r4,lr} + lsls r0, 24 + movs r4, 0x1 + ldr r2, _080EFBFC @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080EFC00 @ =0x00007698 + adds r1, r3 + ldrh r3, [r1] + cmp r0, 0 + beq _080EFC08 + cmp r3, 0xA8 + bls _080EFC04 + adds r0, r3, 0 + subs r0, 0x8 + b _080EFC10 + .align 2, 0 +_080EFBFC: .4byte gUnknown_083DFEC4 +_080EFC00: .4byte 0x00007698 +_080EFC04: + movs r3, 0xA0 + b _080EFC1A +_080EFC08: + cmp r3, 0xF7 + bhi _080EFC16 + adds r0, r3, 0 + adds r0, 0x8 +_080EFC10: + lsls r0, 16 + lsrs r3, r0, 16 + b _080EFC1C +_080EFC16: + movs r3, 0x80 + lsls r3, 1 +_080EFC1A: + movs r4, 0 +_080EFC1C: + ldr r0, [r2] + ldr r1, _080EFC34 @ =0x00007698 + adds r0, r1 + strh r3, [r0] + ldr r1, _080EFC38 @ =REG_BG0VOFS + movs r0, 0xFF + ands r3, r0 + strh r3, [r1] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080EFC34: .4byte 0x00007698 +_080EFC38: .4byte REG_BG0VOFS + thumb_func_end sub_80EFBDC + + thumb_func_start sub_80EFC3C +sub_80EFC3C: @ 80EFC3C + push {lr} + ldr r0, _080EFC58 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFC5C @ =0x0000bc9a + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080EFC60 @ =0x0000bc9b + adds r0, r1 + strb r2, [r0] + bl sub_80EFD3C + pop {r0} + bx r0 + .align 2, 0 +_080EFC58: .4byte gUnknown_083DFEC4 +_080EFC5C: .4byte 0x0000bc9a +_080EFC60: .4byte 0x0000bc9b + thumb_func_end sub_80EFC3C + + thumb_func_start sub_80EFC64 +sub_80EFC64: @ 80EFC64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _080EFCD0 @ =gUnknown_083DFEC4 + ldr r2, [r4] + ldr r0, _080EFCD4 @ =0x0000bc9a + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xF + bhi _080EFD2C + ldrb r1, [r1] + mov r8, r1 + ldr r1, _080EFCD8 @ =0x0000bc9b + adds r0, r2, r1 + ldrb r7, [r0] + movs r2, 0 + ldr r0, _080EFCDC @ =gPokenavCityMaps + mov r9, r0 + adds r3, r4, 0 +_080EFC8E: + lsls r0, r2, 2 + mov r4, r8 + lsls r1, r4, 3 + adds r6, r0, r1 + mov r1, r9 + adds r0, r6, r1 + ldr r1, [r0] + cmp r1, 0 + beq _080EFCE8 + movs r0, 0xC8 + adds r5, r7, 0 + muls r5, r0 + ldr r4, _080EFCE0 @ =0x0000bc9c + adds r5, r4 + ldr r4, [r3] + adds r5, r4, r5 + adds r0, r1, 0 + adds r1, r5, 0 + str r2, [sp] + str r3, [sp, 0x4] + bl LZ77UnCompVram + ldr r0, _080EFCE4 @ =0x0000cdcc + adds r4, r0 + adds r4, r6 + str r5, [r4] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r2, [sp] + ldr r3, [sp, 0x4] + b _080EFCF2 + .align 2, 0 +_080EFCD0: .4byte gUnknown_083DFEC4 +_080EFCD4: .4byte 0x0000bc9a +_080EFCD8: .4byte 0x0000bc9b +_080EFCDC: .4byte gPokenavCityMaps +_080EFCE0: .4byte 0x0000bc9c +_080EFCE4: .4byte 0x0000cdcc +_080EFCE8: + ldr r0, [r3] + ldr r4, _080EFD1C @ =0x0000cdcc + adds r0, r4 + adds r0, r6 + str r1, [r0] +_080EFCF2: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _080EFC8E + ldr r0, _080EFD20 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFD24 @ =0x0000bc9a + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _080EFD2C + ldr r1, _080EFD28 @ =0x0000bc9b + adds r0, r2, r1 + strb r7, [r0] + movs r0, 0x1 + b _080EFD2E + .align 2, 0 +_080EFD1C: .4byte 0x0000cdcc +_080EFD20: .4byte gUnknown_083DFEC4 +_080EFD24: .4byte 0x0000bc9a +_080EFD28: .4byte 0x0000bc9b +_080EFD2C: + movs r0, 0 +_080EFD2E: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80EFC64 + + thumb_func_start sub_80EFD3C +sub_80EFD3C: @ 80EFD3C + ldr r0, _080EFD60 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFD64 @ =0x0000769e + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r0, _080EFD68 @ =0x0000769c + adds r3, r1, r0 + movs r0, 0x2F + strb r0, [r3] + ldr r3, _080EFD6C @ =0x0000769d + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080EFD70 @ =0x0000769a + adds r1, r0 + strh r2, [r1] + bx lr + .align 2, 0 +_080EFD60: .4byte gUnknown_083DFEC4 +_080EFD64: .4byte 0x0000769e +_080EFD68: .4byte 0x0000769c +_080EFD6C: .4byte 0x0000769d +_080EFD70: .4byte 0x0000769a + thumb_func_end sub_80EFD3C + + thumb_func_start sub_80EFD74 +sub_80EFD74: @ 80EFD74 + push {lr} + ldr r0, _080EFD94 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFD98 @ =0x0000769e + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080EFD9C @ =0x0000769d + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0x1 + bne _080EFD90 + movs r0, 0x2 + strb r0, [r2] +_080EFD90: + pop {r0} + bx r0 + .align 2, 0 +_080EFD94: .4byte gUnknown_083DFEC4 +_080EFD98: .4byte 0x0000769e +_080EFD9C: .4byte 0x0000769d + thumb_func_end sub_80EFD74 + + thumb_func_start sub_80EFDA0 +sub_80EFDA0: @ 80EFDA0 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFDD4 @ =0x0600f800 + ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xF + str r2, [sp, 0x8] + movs r1, 0x1 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + ldr r0, _080EFDDC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFDE0 @ =0x0000769e + adds r0, r1 + strb r4, [r0] + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EFDD4: .4byte 0x0600f800 +_080EFDD8: .4byte gUnknown_08E9AC2C +_080EFDDC: .4byte gUnknown_083DFEC4 +_080EFDE0: .4byte 0x0000769e + thumb_func_end sub_80EFDA0 + + thumb_func_start sub_80EFDE4 +sub_80EFDE4: @ 80EFDE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + ldr r0, _080EFE68 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080EFE6C @ =0x0000769c + adds r0, r1, r2 + ldrb r2, [r0] + movs r0, 0x3C + subs r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _080EFE06 + movs r4, 0xF +_080EFE06: + ldr r3, _080EFE70 @ =0x0000769e + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080EFE58 + ldr r0, _080EFE74 @ =0x0600f800 + mov r8, r0 + ldr r3, _080EFE78 @ =gUnknown_08E9ABB4 + mov r9, r3 + str r2, [sp] + movs r5, 0 + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r7, 0x1 + str r7, [sp, 0xC] + movs r6, 0x3C + str r6, [sp, 0x10] + movs r1, 0xE + movs r2, 0x10 + bl sub_8095C8C + cmp r4, 0xE + bhi _080EFE58 + adds r1, r4, 0 + adds r1, 0xE + lsls r1, 16 + lsrs r1, 16 + str r5, [sp] + str r5, [sp, 0x4] + movs r0, 0xF + subs r0, r4 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + str r7, [sp, 0xC] + str r6, [sp, 0x10] + mov r0, r8 + movs r2, 0x10 + mov r3, r9 + bl sub_8095C8C +_080EFE58: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EFE68: .4byte gUnknown_083DFEC4 +_080EFE6C: .4byte 0x0000769c +_080EFE70: .4byte 0x0000769e +_080EFE74: .4byte 0x0600f800 +_080EFE78: .4byte gUnknown_08E9ABB4 + thumb_func_end sub_80EFDE4 + + thumb_func_start sub_80EFE7C +sub_80EFE7C: @ 80EFE7C + push {r4,lr} + ldr r0, _080EFE98 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080EFE9C @ =0x0000769d + adds r4, r2, r0 + ldrb r1, [r4] + cmp r1, 0x1 + beq _080EFF08 + cmp r1, 0x1 + bgt _080EFEA0 + cmp r1, 0 + beq _080EFEA6 + b _080EFF2E + .align 2, 0 +_080EFE98: .4byte gUnknown_083DFEC4 +_080EFE9C: .4byte 0x0000769d +_080EFEA0: + cmp r1, 0x2 + beq _080EFF24 + b _080EFF2E +_080EFEA6: + ldr r0, _080EFED4 @ =0x0000769c + adds r4, r2, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3B + bls _080EFEBA + strb r1, [r4] +_080EFEBA: + ldr r1, _080EFED8 @ =0x0000769e + adds r0, r2, r1 + ldrb r0, [r0] + bl sub_80EFDE4 + ldrb r0, [r4] + cmp r0, 0xF + beq _080EFEE4 + cmp r0, 0xF + bgt _080EFEDC + cmp r0, 0 + beq _080EFEE4 + b _080EFF2E + .align 2, 0 +_080EFED4: .4byte 0x0000769c +_080EFED8: .4byte 0x0000769e +_080EFEDC: + cmp r0, 0x1E + beq _080EFEE4 + cmp r0, 0x2D + bne _080EFF2E +_080EFEE4: + ldr r0, _080EFEFC @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080EFF00 @ =0x0000769d + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x1 + strb r0, [r2] + ldr r0, _080EFF04 @ =0x0000769a + adds r1, r0 + strh r3, [r1] + b _080EFF2E + .align 2, 0 +_080EFEFC: .4byte gUnknown_083DFEC4 +_080EFF00: .4byte 0x0000769d +_080EFF04: .4byte 0x0000769a +_080EFF08: + ldr r0, _080EFF20 @ =0x0000769a + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x78 + bls _080EFF2E + movs r0, 0 + strh r0, [r1] + b _080EFF2C + .align 2, 0 +_080EFF20: .4byte 0x0000769a +_080EFF24: + movs r0, 0x1 + bl sub_80EFDE4 + movs r0, 0x1 +_080EFF2C: + strb r0, [r4] +_080EFF2E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EFE7C + + thumb_func_start sub_80EFF34 +sub_80EFF34: @ 80EFF34 + push {lr} + ldr r0, _080EFF5C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFF60 @ =0x0000d160 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080EFF64 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080EFF56 +_080EFF4C: + bl sub_80EFF68 + lsls r0, 24 + cmp r0, 0 + bne _080EFF4C +_080EFF56: + pop {r0} + bx r0 + .align 2, 0 +_080EFF5C: .4byte gUnknown_083DFEC4 +_080EFF60: .4byte 0x0000d160 +_080EFF64: .4byte 0x00006dac + thumb_func_end sub_80EFF34 + + thumb_func_start sub_80EFF68 +sub_80EFF68: @ 80EFF68 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080EFF88 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080EFF8C @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xD + bls _080EFF7C + b _080F0150 +_080EFF7C: + lsls r0, 2 + ldr r1, _080EFF90 @ =_080EFF94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EFF88: .4byte gUnknown_083DFEC4 +_080EFF8C: .4byte 0x0000d160 +_080EFF90: .4byte _080EFF94 + .align 2, 0 +_080EFF94: + .4byte _080EFFCC + .4byte _080EFFE8 + .4byte _080EFFF4 + .4byte _080F0000 + .4byte _080F000C + .4byte _080F0012 + .4byte _080F0018 + .4byte _080F0028 + .4byte _080F003C + .4byte _080F005C + .4byte _080F0098 + .4byte _080F00AC + .4byte _080F00F8 + .4byte _080F0118 +_080EFFCC: + bl sub_80EEDE8 + ldr r0, _080EFFE0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080EFFE4 @ =0x0000d162 + adds r0, r2 + movs r1, 0xB + strb r1, [r0] + b _080F0154 + .align 2, 0 +_080EFFE0: .4byte gUnknown_083DFEC4 +_080EFFE4: .4byte 0x0000d162 +_080EFFE8: + ldr r0, _080EFFF0 @ =gWindowConfig_81E7080 + bl SetUpWindowConfig + b _080F0154 + .align 2, 0 +_080EFFF0: .4byte gWindowConfig_81E7080 +_080EFFF4: + ldr r0, _080EFFFC @ =gWindowConfig_81E7080 + bl MultistepInitMenuWindowBegin + b _080F0154 + .align 2, 0 +_080EFFFC: .4byte gWindowConfig_81E7080 +_080F0000: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F000A + b _080F0154 +_080F000A: + b _080F0162 +_080F000C: + bl MenuZeroFillScreen + b _080F0154 +_080F0012: + bl sub_80F1614 + b _080F0154 +_080F0018: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F0026 + b _080F0154 +_080F0026: + b _080F0162 +_080F0028: + ldr r0, _080F0034 @ =gPokenavConditionView_Gfx + ldr r1, _080F0038 @ =0x06005000 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F0034: .4byte gPokenavConditionView_Gfx +_080F0038: .4byte 0x06005000 +_080F003C: + ldr r0, _080F0050 @ =gUnknown_08E9AC4C + ldr r1, _080F0054 @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F0154 + .align 2, 0 +_080F0050: .4byte gUnknown_08E9AC4C +_080F0054: .4byte 0x0600f000 +_080F0058: .4byte gPokenavConditionMenu2_Pal +_080F005C: + ldr r0, _080F0088 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F008C @ =0x000076aa + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0154 + ldr r0, _080F0090 @ =0x0600f000 + ldr r3, _080F0094 @ =gUnknown_083E01AC + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0154 + .align 2, 0 +_080F0088: .4byte gUnknown_083DFEC4 +_080F008C: .4byte 0x000076aa +_080F0090: .4byte 0x0600f000 +_080F0094: .4byte gUnknown_083E01AC +_080F0098: + ldr r0, _080F00A4 @ =gUnknown_08E9FEB4 + ldr r1, _080F00A8 @ =0x0600b800 + bl LZ77UnCompVram + b _080F0154 + .align 2, 0 +_080F00A4: .4byte gUnknown_08E9FEB4 +_080F00A8: .4byte 0x0600b800 +_080F00AC: + ldr r0, _080F00EC @ =gUnknown_083E0254 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F00F0 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F0154 + .align 2, 0 +_080F00EC: .4byte gUnknown_083E0254 +_080F00F0: .4byte gUnknownPalette_81E6692 +_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F00F8: + ldr r0, _080F0110 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0114 @ =0x00008fe9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F0154 + .align 2, 0 +_080F0110: .4byte gUnknown_083DFEC4 +_080F0114: .4byte 0x00008fe9 +_080F0118: + ldr r1, _080F013C @ =REG_BG3CNT + ldr r2, _080F0140 @ =0x00001e03 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F0144 @ =0x00001702 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F0148 @ =0x00000844 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F014C @ =0x0000040b + adds r0, r2, 0 + strh r0, [r1] + b _080F0154 + .align 2, 0 +_080F013C: .4byte REG_BG3CNT +_080F0140: .4byte 0x00001e03 +_080F0144: .4byte 0x00001702 +_080F0148: .4byte 0x00000844 +_080F014C: .4byte 0x0000040b +_080F0150: + movs r0, 0 + b _080F0164 +_080F0154: + ldr r0, _080F016C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0170 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0162: + movs r0, 0x1 +_080F0164: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F016C: .4byte gUnknown_083DFEC4 +_080F0170: .4byte 0x0000d160 + thumb_func_end sub_80EFF68 + + thumb_func_start sub_80F0174 +sub_80F0174: @ 80F0174 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080F018E + movs r0, 0x80 + lsls r0, 19 + ldrh r1, [r0] + movs r3, 0x80 + lsls r3, 3 + adds r2, r3, 0 + orrs r1, r2 + strh r1, [r0] + b _080F019A +_080F018E: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F01A0 @ =0x0000fbff + ands r0, r1 + strh r0, [r2] +_080F019A: + pop {r0} + bx r0 + .align 2, 0 +_080F01A0: .4byte 0x0000fbff + thumb_func_end sub_80F0174 + + thumb_func_start sub_80F01A4 +sub_80F01A4: @ 80F01A4 + ldr r1, _080F01CC @ =REG_WIN0H + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x9B + strh r0, [r1] + ldr r0, _080F01D0 @ =REG_WIN0V + ldr r2, _080F01D4 @ =0x00003879 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080F01D8 @ =REG_WININ + ldr r2, _080F01DC @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1B + strh r0, [r1] + bx lr + .align 2, 0 +_080F01CC: .4byte REG_WIN0H +_080F01D0: .4byte REG_WIN0V +_080F01D4: .4byte 0x00003879 +_080F01D8: .4byte REG_WININ +_080F01DC: .4byte 0x00003f3f + thumb_func_end sub_80F01A4 + + thumb_func_start sub_80F01E0 +sub_80F01E0: @ 80F01E0 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, _080F0248 @ =gUnknown_083DFEC4 + lsls r0, r4, 6 + ldr r2, _080F024C @ =0x00008829 + adds r0, r2 + ldr r5, [r1] + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r1, _080F0250 @ =0x000076aa + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0242 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r2, _080F0254 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + movs r1, 0xD + movs r2, 0x3 + bl MenuPrint + ldr r0, _080F0258 @ =0x00008788 + adds r4, r5, r0 + ldr r1, _080F025C @ =0x000087dc + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 2 + adds r0, r5, r0 + ldr r1, _080F0260 @ =0x0000893e + adds r0, r1 + ldrh r1, [r0] + lsls r1, 18 + lsrs r1, 23 + adds r0, r4, 0 + bl sub_80F443C + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F0242: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0248: .4byte gUnknown_083DFEC4 +_080F024C: .4byte 0x00008829 +_080F0250: .4byte 0x000076aa +_080F0254: .4byte 0x000088e9 +_080F0258: .4byte 0x00008788 +_080F025C: .4byte 0x000087dc +_080F0260: .4byte 0x0000893e + thumb_func_end sub_80F01E0 + + thumb_func_start sub_80F0264 +sub_80F0264: @ 80F0264 + push {lr} + ldr r1, _080F0290 @ =gUnknown_083DFEC4 + ldr r2, [r1] + ldr r1, _080F0294 @ =0x00000306 + adds r3, r2, r1 + movs r1, 0 + strh r1, [r3] + ldr r3, _080F0298 @ =0x000087ca + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _080F029C @ =0x00006dac + adds r2, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F028C +_080F0282: + bl sub_80F02A0 + lsls r0, 24 + cmp r0, 0 + bne _080F0282 +_080F028C: + pop {r0} + bx r0 + .align 2, 0 +_080F0290: .4byte gUnknown_083DFEC4 +_080F0294: .4byte 0x00000306 +_080F0298: .4byte 0x000087ca +_080F029C: .4byte 0x00006dac + thumb_func_end sub_80F0264 + + thumb_func_start sub_80F02A0 +sub_80F02A0: @ 80F02A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x18 + ldr r1, _080F02C4 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F02C8 @ =0x00000306 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F02BA + b _080F05FA +_080F02BA: + lsls r0, 2 + ldr r1, _080F02CC @ =_080F02D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F02C4: .4byte gUnknown_083DFEC4 +_080F02C8: .4byte 0x00000306 +_080F02CC: .4byte _080F02D0 + .align 2, 0 +_080F02D0: + .4byte _080F030C + .4byte _080F0344 + .4byte _080F0350 + .4byte _080F035C + .4byte _080F0368 + .4byte _080F036E + .4byte _080F0380 + .4byte _080F0394 + .4byte _080F04BC + .4byte _080F053C + .4byte _080F0550 + .4byte _080F0574 + .4byte _080F057A + .4byte _080F0586 + .4byte _080F05BC +_080F030C: + bl sub_80EEDE8 + ldr r0, _080F0334 @ =gUnknown_083DFEC4 + ldr r1, [r0] + movs r2, 0 + ldr r3, _080F0338 @ =0x000087ca + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F0322 + movs r2, 0x1 +_080F0322: + ldr r3, _080F033C @ =0x000087c8 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F0340 @ =0x0000d162 + adds r1, r0 + movs r0, 0xB + strb r0, [r1] + b _080F0618 + .align 2, 0 +_080F0334: .4byte gUnknown_083DFEC4 +_080F0338: .4byte 0x000087ca +_080F033C: .4byte 0x000087c8 +_080F0340: .4byte 0x0000d162 +_080F0344: + ldr r0, _080F034C @ =gWindowConfig_81E70D4 + bl SetUpWindowConfig + b _080F0618 + .align 2, 0 +_080F034C: .4byte gWindowConfig_81E70D4 +_080F0350: + ldr r0, _080F0358 @ =gWindowConfig_81E70D4 + bl MultistepInitMenuWindowBegin + b _080F0618 + .align 2, 0 +_080F0358: .4byte gWindowConfig_81E70D4 +_080F035C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F0366 + b _080F0618 +_080F0366: + b _080F0626 +_080F0368: + bl MenuZeroFillScreen + b _080F0618 +_080F036E: + ldr r0, _080F0378 @ =gUnknown_08E9FC64 + ldr r1, _080F037C @ =0x0600e800 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0378: .4byte gUnknown_08E9FC64 +_080F037C: .4byte 0x0600e800 +_080F0380: + ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx + ldr r1, _080F0390 @ =0x06008000 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F038C: .4byte gPokenavConditionSearch2_Gfx +_080F0390: .4byte 0x06008000 +_080F0394: + ldr r6, _080F03FC @ =gUnknown_083E02B4 + adds r0, r6, 0 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0400 @ =gUnknown_083E0334 + movs r1, 0x40 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F0404 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0408 @ =0x000087ca + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F0418 + ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F0410 @ =gPlttBufferUnfaded + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0414 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F03FC: .4byte gUnknown_083E02B4 +_080F0400: .4byte gUnknown_083E0334 +_080F0404: .4byte gUnknown_083DFEC4 +_080F0408: .4byte 0x000087ca +_080F040C: .4byte gPokenavConditionSearch2_Pal +_080F0410: .4byte gPlttBufferUnfaded +_080F0414: .4byte gUnknownPalette_81E6692 +_080F0418: + cmp r0, 0x1 + bne _080F0464 + ldr r4, _080F0458 @ =gUnknown_083E0274 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F045C @ =gPlttBufferUnfaded + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F0460 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0xA + adds r0, r4, 0 + movs r1, 0xBF + b _080F04A8 + .align 2, 0 +_080F0458: .4byte gUnknown_083E0274 +_080F045C: .4byte gPlttBufferUnfaded +_080F0460: .4byte gUnknownPalette_81E6692 +_080F0464: + ldr r4, _080F04B0 @ =gUnknown_08E9F9E8 + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r1, _080F04B4 @ =gPlttBufferUnfaded + adds r5, r4, 0 + adds r5, 0xA + ldrh r0, [r4, 0xA] + strh r0, [r1] + ldr r0, _080F04B8 @ =gUnknown_083E0314 + movs r1, 0x50 + movs r2, 0x20 + bl LoadPalette + adds r0, r6, 0x2 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r6, 0 + adds r0, 0x10 + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + adds r0, r5, 0 + movs r1, 0x5F +_080F04A8: + movs r2, 0x2 + bl LoadPalette + b _080F0618 + .align 2, 0 +_080F04B0: .4byte gUnknown_08E9F9E8 +_080F04B4: .4byte gPlttBufferUnfaded +_080F04B8: .4byte gUnknown_083E0314 +_080F04BC: + ldr r0, _080F04E8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F04EC @ =0x000087ca + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F04F8 + ldr r0, _080F04F0 @ =0x0600e800 + ldr r3, _080F04F4 @ =gUnknown_08E9FD1C + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x9 + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0x5 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F04E8: .4byte gUnknown_083DFEC4 +_080F04EC: .4byte 0x000087ca +_080F04F0: .4byte 0x0600e800 +_080F04F4: .4byte gUnknown_08E9FD1C +_080F04F8: + ldr r3, _080F0530 @ =0x0600e800 + mov r8, r3 + ldr r3, _080F0534 @ =gUnknown_08E9FE54 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r5, 0xC + str r5, [sp, 0x8] + movs r6, 0xA + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x4 + bl sub_8095C8C + ldr r3, _080F0538 @ =gUnknown_08E9FD64 + str r4, [sp] + str r4, [sp, 0x4] + str r5, [sp, 0x8] + str r6, [sp, 0xC] + str r5, [sp, 0x10] + mov r0, r8 + movs r1, 0 + movs r2, 0x8 + bl sub_8095C8C + b _080F0618 + .align 2, 0 +_080F0530: .4byte 0x0600e800 +_080F0534: .4byte gUnknown_08E9FE54 +_080F0538: .4byte gUnknown_08E9FD64 +_080F053C: + ldr r0, _080F0548 @ =gUnknown_083E0354 + ldr r1, _080F054C @ =0x06005000 + bl LZ77UnCompVram + b _080F0618 + .align 2, 0 +_080F0548: .4byte gUnknown_083E0354 +_080F054C: .4byte 0x06005000 +_080F0550: + ldr r2, _080F0568 @ =0x0600f800 + add r1, sp, 0x14 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F056C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F0570 @ =0x81000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F0618 + .align 2, 0 +_080F0568: .4byte 0x0600f800 +_080F056C: .4byte 0x040000d4 +_080F0570: .4byte 0x81000400 +_080F0574: + bl sub_80F0900 + b _080F0618 +_080F057A: + bl sub_80F0944 + lsls r0, 24 + cmp r0, 0 + beq _080F0618 + b _080F0626 +_080F0586: + ldr r0, _080F059C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F05A0 @ =0x000087ca + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080F05A4 + bl ShowMapNamePopUpWindow + b _080F0618 + .align 2, 0 +_080F059C: .4byte gUnknown_083DFEC4 +_080F05A0: .4byte 0x000087ca +_080F05A4: + movs r0, 0 + bl sub_80F081C + ldr r2, _080F05B8 @ =0x0000876e + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_80F0FFC + b _080F0618 + .align 2, 0 +_080F05B8: .4byte 0x0000876e +_080F05BC: + ldr r1, _080F0600 @ =REG_BG2CNT + ldr r3, _080F0604 @ =0x00001d0a + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + adds r3, 0xF9 + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x6 + adds r3, 0xFE + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x16 + movs r0, 0xF8 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F0608 @ =0x00008776 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xF8 + strh r0, [r2] + ldr r2, _080F060C @ =0x00008778 + adds r0, r1, r2 + strh r3, [r0] + ldr r0, _080F0610 @ =REG_BLDCNT + strh r3, [r0] + ldr r3, _080F0614 @ =0x0000d160 + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F05FA: + movs r0, 0 + b _080F0628 + .align 2, 0 +_080F0600: .4byte REG_BG2CNT +_080F0604: .4byte 0x00001d0a +_080F0608: .4byte 0x00008776 +_080F060C: .4byte 0x00008778 +_080F0610: .4byte REG_BLDCNT +_080F0614: .4byte 0x0000d160 +_080F0618: + ldr r0, _080F0634 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0638 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0626: + movs r0, 0x1 +_080F0628: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F0634: .4byte gUnknown_083DFEC4 +_080F0638: .4byte 0x00000306 + thumb_func_end sub_80F02A0 + + thumb_func_start sub_80F063C +sub_80F063C: @ 80F063C + push {r4-r7,lr} + lsls r0, 16 + ldr r3, _080F0664 @ =gUnknown_083DFEC4 + ldr r2, [r3] + lsrs r5, r0, 16 + asrs r4, r0, 16 + lsls r1, r4, 4 + ldr r6, _080F0668 @ =0x0000877c + adds r0, r2, r6 + strh r1, [r0] + adds r7, r3, 0 + cmp r4, 0x1 + beq _080F065E + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _080F066C +_080F065E: + movs r1, 0x4 + b _080F066E + .align 2, 0 +_080F0664: .4byte gUnknown_083DFEC4 +_080F0668: .4byte 0x0000877c +_080F066C: + movs r1, 0x8 +_080F066E: + ldr r3, _080F06C0 @ =0x0000877a + adds r0, r2, r3 + strh r1, [r0] + lsls r0, r5, 16 + asrs r3, r0, 16 + cmp r3, 0 + bge _080F06CC + ldr r4, [r7] + ldr r6, _080F06C0 @ =0x0000877a + adds r1, r4, r6 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1] + subs r6, 0x2 + adds r1, r4, r6 + lsls r0, r3, 1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r1, _080F06C4 @ =0x00008770 + adds r0, r4, r1 + ldrh r0, [r0] + adds r0, r3, r0 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080F06B8 + ldr r2, _080F06C8 @ =0x00008774 + adds r1, r4, r2 + adds r0, 0x1 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06B8: + negs r0, r3 + lsls r0, 16 + lsrs r5, r0, 16 + b _080F06E6 + .align 2, 0 +_080F06C0: .4byte 0x0000877a +_080F06C4: .4byte 0x00008770 +_080F06C8: .4byte 0x00008774 +_080F06CC: + ldr r1, [r7] + ldr r3, _080F070C @ =0x00008778 + adds r0, r1, r3 + ldrh r0, [r0] + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F0710 @ =0x00008772 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F06E6: + ldr r0, [r7] + ldr r1, _080F0714 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + ble _080F06FA + movs r2, 0 +_080F06FA: + movs r1, 0x1F + adds r0, r2, 0 + ands r1, r6 + adds r2, r5, 0 + bl sub_80F0954 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F070C: .4byte 0x00008778 +_080F0710: .4byte 0x00008772 +_080F0714: .4byte 0x00008774 + thumb_func_end sub_80F063C + + thumb_func_start sub_80F0718 +sub_80F0718: @ 80F0718 + push {r4,r5,lr} + bl sub_80F098C + lsls r0, 24 + cmp r0, 0 + bne _080F0790 + ldr r0, _080F073C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0740 @ =0x0000877c + adds r3, r4, r0 + ldrh r2, [r3] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0744 + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F073C: .4byte gUnknown_083DFEC4 +_080F0740: .4byte 0x0000877c +_080F0744: + ldr r0, _080F0780 @ =0x0000877a + adds r1, r4, r0 + ldrh r0, [r1] + subs r0, r2, r0 + strh r0, [r3] + ldr r0, _080F0784 @ =0x00008776 + adds r2, r4, r0 + ldrh r0, [r1] + ldrh r1, [r2] + adds r0, r1 + movs r5, 0xFF + ands r0, r5 + strh r0, [r2] + ldr r1, _080F0788 @ =REG_BG3VOFS + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080F0790 + movs r1, 0 + ldrsh r0, [r2, r1] + adds r0, 0x8 + ands r0, r5 + asrs r1, r0, 3 + ldr r2, _080F078C @ =0x00008778 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0 + b _080F0792 + .align 2, 0 +_080F0780: .4byte 0x0000877a +_080F0784: .4byte 0x00008776 +_080F0788: .4byte REG_BG3VOFS +_080F078C: .4byte 0x00008778 +_080F0790: + movs r0, 0x1 +_080F0792: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F0718 + + thumb_func_start ShowMapNamePopUpWindow +ShowMapNamePopUpWindow: @ 80F0798 + push {lr} + ldr r0, _080F07B0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F07B4 @ =0x000087ca + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F07B8 + cmp r0, 0x1 + beq _080F07E0 + b _080F080A + .align 2, 0 +_080F07B0: .4byte gUnknown_083DFEC4 +_080F07B4: .4byte 0x000087ca +_080F07B8: + ldr r3, _080F07D8 @ =0x00008788 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + movs r3, 0 + ldrsh r1, [r1, r3] + lsls r1, 2 + adds r1, r2, r1 + ldr r2, _080F07DC @ =0x0000893e + adds r1, r2 + ldrh r1, [r1] + lsls r1, 18 + lsrs r1, 23 + bl sub_80F443C + b _080F07F4 + .align 2, 0 +_080F07D8: .4byte 0x00008788 +_080F07DC: .4byte 0x0000893e +_080F07E0: + ldr r3, _080F0810 @ =0x00008788 + adds r0, r2, r3 + subs r3, 0x1A + adds r1, r2, r3 + ldrh r1, [r1] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F445C +_080F07F4: + ldr r0, _080F0814 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + ldr r0, _080F0818 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0810 @ =0x00008788 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x6 + bl MenuPrint +_080F080A: + pop {r0} + bx r0 + .align 2, 0 +_080F0810: .4byte 0x00008788 +_080F0814: .4byte gWindowConfig_81E710C +_080F0818: .4byte gUnknown_083DFEC4 + thumb_func_end ShowMapNamePopUpWindow + + thumb_func_start sub_80F081C +sub_80F081C: @ 80F081C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F0838 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + cmp r5, 0x4 + bhi _080F08C6 + lsls r0, r5, 2 + ldr r1, _080F083C @ =_080F0840 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0838: .4byte gWindowConfig_81E710C +_080F083C: .4byte _080F0840 + .align 2, 0 +_080F0840: + .4byte _080F0854 + .4byte _080F0854 + .4byte _080F0862 + .4byte _080F088C + .4byte _080F089A +_080F0854: + ldr r0, _080F08CC @ =gOtherText_NumberRegistered + movs r1, 0xA + movs r2, 0x9 + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F0862: + ldr r0, _080F08D0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F08D4 @ =0x00008788 + adds r4, r0, r1 + ldr r2, _080F08D8 @ =0x00008774 + adds r0, r2 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xB + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F088C: + ldr r0, _080F08DC @ =gOtherText_NumberBattles + movs r1, 0xA + movs r2, 0xD + bl sub_8072B4C + cmp r5, 0 + bne _080F08C6 +_080F089A: + movs r0, 0x9 + bl sub_8053108 + adds r1, r0, 0 + ldr r0, _080F08E0 @ =0x0001869f + cmp r1, r0 + bls _080F08AA + adds r1, r0, 0 +_080F08AA: + ldr r0, _080F08D0 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F08D4 @ =0x00008788 + adds r4, r0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0xF + bl sub_8072B4C +_080F08C6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F08CC: .4byte gOtherText_NumberRegistered +_080F08D0: .4byte gUnknown_083DFEC4 +_080F08D4: .4byte 0x00008788 +_080F08D8: .4byte 0x00008774 +_080F08DC: .4byte gOtherText_NumberBattles +_080F08E0: .4byte 0x0001869f + thumb_func_end sub_80F081C + + thumb_func_start sub_80F08E4 +sub_80F08E4: @ 80F08E4 + push {lr} + ldr r0, _080F08FC @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + movs r0, 0 + movs r1, 0x9 + movs r2, 0xB + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_080F08FC: .4byte gWindowConfig_81E710C + thumb_func_end sub_80F08E4 + + thumb_func_start sub_80F0900 +sub_80F0900: @ 80F0900 + push {r4,r5,lr} + ldr r0, _080F093C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0940 @ =0x00008772 + adds r1, r0, r2 + subs r2, 0x2 + adds r5, r0, r2 + ldrh r0, [r1] + ldrh r1, [r5] + subs r0, r1 + adds r0, 0x1 + lsls r4, r0, 16 + asrs r0, r4, 16 + cmp r0, 0x7 + bgt _080F092A + movs r0, 0xC + movs r1, 0x1 + movs r2, 0x1F + movs r3, 0xF + bl MenuZeroFillWindowRect +_080F092A: + ldrh r0, [r5] + lsrs r2, r4, 16 + movs r1, 0 + bl sub_80F0954 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F093C: .4byte gUnknown_083DFEC4 +_080F0940: .4byte 0x00008772 + thumb_func_end sub_80F0900 + + thumb_func_start sub_80F0944 +sub_80F0944: @ 80F0944 + push {lr} + bl sub_80F098C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0944 + + thumb_func_start sub_80F0954 +sub_80F0954: @ 80F0954 + push {r4,r5,lr} + ldr r3, _080F097C @ =gUnknown_083DFEC4 + ldr r3, [r3] + ldr r5, _080F0980 @ =0x0000877e + adds r4, r3, r5 + movs r5, 0 + strh r0, [r4] + ldr r4, _080F0984 @ =0x00008780 + adds r0, r3, r4 + strh r1, [r0] + ldr r1, _080F0988 @ =0x00008784 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x6 + adds r3, r4 + strh r5, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F097C: .4byte gUnknown_083DFEC4 +_080F0980: .4byte 0x0000877e +_080F0984: .4byte 0x00008780 +_080F0988: .4byte 0x00008784 + thumb_func_end sub_80F0954 + + thumb_func_start sub_80F098C +sub_80F098C: @ 80F098C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F09A4 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F09A8 @ =0x00008784 + adds r7, r6, r0 + ldrh r0, [r7] + cmp r0, 0 + bne _080F09AC +_080F09A0: + movs r0, 0 + b _080F0A02 + .align 2, 0 +_080F09A4: .4byte gUnknown_083DFEC4 +_080F09A8: .4byte 0x00008784 +_080F09AC: + movs r1, 0 + mov r8, r1 + ldr r1, _080F0A0C @ =gUnknown_083E3270 + ldr r2, _080F0A10 @ =0x000087ca + adds r0, r6, r2 + ldrb r2, [r0] + lsls r2, 2 + adds r2, r1 + ldr r0, _080F0A14 @ =0x0000877e + adds r4, r6, r0 + ldrh r0, [r4] + ldr r1, _080F0A18 @ =0x00008780 + adds r5, r6, r1 + ldrh r1, [r5] + ldr r2, [r2] + bl _call_via_r2 + ldrh r0, [r7] + subs r0, 0x1 + strh r0, [r7] + ldr r2, _080F0A1C @ =0x0000ffff + adds r1, r2, 0 + lsls r0, 16 + cmp r0, 0 + beq _080F09A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ands r0, r1 + ldr r2, _080F0A20 @ =0x00008774 + adds r1, r6, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + ble _080F09F6 + mov r0, r8 + strh r0, [r4] +_080F09F6: + ldrh r0, [r5] + adds r0, 0x2 + movs r1, 0x1F + ands r0, r1 + strh r0, [r5] + movs r0, 0x1 +_080F0A02: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F0A0C: .4byte gUnknown_083E3270 +_080F0A10: .4byte 0x000087ca +_080F0A14: .4byte 0x0000877e +_080F0A18: .4byte 0x00008780 +_080F0A1C: .4byte 0x0000ffff +_080F0A20: .4byte 0x00008774 + thumb_func_end sub_80F098C + + thumb_func_start sub_80F0A24 +sub_80F0A24: @ 80F0A24 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r0, _080F0A64 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F0A68 @ =0x000087c8 + adds r0, r4, r1 + ldrb r0, [r0] + movs r2, 0x1 + cmp r0, 0 + bne _080F0A40 + movs r2, 0x2 +_080F0A40: + ldr r0, _080F0A6C @ =0x00008788 + adds r4, r0 + adds r0, r4, 0 + adds r1, r3, 0 + bl sub_80F4428 + ldr r0, _080F0A70 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + lsls r2, r5, 24 + lsrs r2, 24 + adds r0, r4, 0 + movs r1, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0A64: .4byte gUnknown_083DFEC4 +_080F0A68: .4byte 0x000087c8 +_080F0A6C: .4byte 0x00008788 +_080F0A70: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0A24 + + thumb_func_start sub_80F0A74 +sub_80F0A74: @ 80F0A74 + push {r4-r7,lr} + sub sp, 0x14 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r7, r1, 16 + ldr r0, _080F0ADC @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F0AE0 @ =0x00008788 + adds r4, r5, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80F700C + movs r0, 0x1F + ands r7, r0 + ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + lsls r2, r7, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + ldr r1, _080F0AE8 @ =0x0000d158 + adds r0, r5, r1 + ldrh r0, [r0] + cmp r6, r0 + bcs _080F0AF8 + lsls r0, r6, 3 + adds r0, r5, r0 + ldr r1, _080F0AEC @ =0x0000ceed + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F0AF8 + ldr r0, _080F0AF0 @ =0x0600f000 + ldr r3, _080F0AF4 @ =gUnknown_083E039C + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C + b _080F0B14 + .align 2, 0 +_080F0ADC: .4byte gUnknown_083DFEC4 +_080F0AE0: .4byte 0x00008788 +_080F0AE4: .4byte gWindowConfig_81E70D4 +_080F0AE8: .4byte 0x0000d158 +_080F0AEC: .4byte 0x0000ceed +_080F0AF0: .4byte 0x0600f000 +_080F0AF4: .4byte gUnknown_083E039C +_080F0AF8: + ldr r0, _080F0B1C @ =0x0600f000 + ldr r3, _080F0B20 @ =gUnknown_083E03A0 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0x1 + str r2, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0x1D + adds r2, r7, 0 + bl sub_8095C8C +_080F0B14: + add sp, 0x14 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F0B1C: .4byte 0x0600f000 +_080F0B20: .4byte gUnknown_083E03A0 + thumb_func_end sub_80F0A74 + + thumb_func_start sub_80F0B24 +sub_80F0B24: @ 80F0B24 + ldr r0, _080F0B38 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0B3C @ =0x0000d15c + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0B40 @ =0x00000306 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0B38: .4byte gUnknown_083DFEC4 +_080F0B3C: .4byte 0x0000d15c +_080F0B40: .4byte 0x00000306 + thumb_func_end sub_80F0B24 + + thumb_func_start sub_80F0B44 +sub_80F0B44: @ 80F0B44 + push {r4-r6,lr} + ldr r0, _080F0B58 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F0B5C @ =0x0000d15c + adds r6, r5, r0 + ldrh r0, [r6] + cmp r0, 0x8 + bls _080F0B60 + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0B58: .4byte gUnknown_083DFEC4 +_080F0B5C: .4byte 0x0000d15c +_080F0B60: + ldr r0, _080F0BBC @ =0x00000306 + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0C20 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r6] + cmp r0, 0x7 + bhi _080F0BCC + ldr r0, _080F0BC0 @ =0x00008778 + adds r1, r5, r0 + ldrh r2, [r6] + lsls r0, r2, 1 + ldrh r1, [r1] + adds r4, r0, r1 + movs r0, 0x1F + ands r4, r0 + ldr r1, _080F0BC4 @ =0x0000876c + adds r0, r5, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r2, r0 + beq _080F0BAA + ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + adds r1, r4, 0 + adds r3, r1, 0x1 + movs r0, 0xC + movs r2, 0x1F + bl MenuZeroFillWindowRect +_080F0BAA: + ldrh r0, [r6] + cmp r0, 0 + bne _080F0BB4 + bl sub_80F08E4 +_080F0BB4: + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + b _080F0C20 + .align 2, 0 +_080F0BBC: .4byte 0x00000306 +_080F0BC0: .4byte 0x00008778 +_080F0BC4: .4byte 0x0000876c +_080F0BC8: .4byte gWindowConfig_81E70D4 +_080F0BCC: + ldr r0, _080F0C10 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r1, _080F0C14 @ =0x00008778 + adds r0, r5, r1 + ldrh r0, [r0] + adds r4, r0, 0 + adds r4, 0x10 + movs r0, 0x1F + ands r4, r0 + movs r5, 0 +_080F0BE2: + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + adds r4, 0x2 + movs r0, 0x1F + ands r4, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _080F0BE2 + ldr r0, _080F0C18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0C1C @ =0x0000d15c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080F0C22 + .align 2, 0 +_080F0C10: .4byte gWindowConfig_81E70D4 +_080F0C14: .4byte 0x00008778 +_080F0C18: .4byte gUnknown_083DFEC4 +_080F0C1C: .4byte 0x0000d15c +_080F0C20: + movs r0, 0x1 +_080F0C22: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0B44 + + thumb_func_start sub_80F0C28 +sub_80F0C28: @ 80F0C28 + ldr r0, _080F0C3C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0C40 @ =0x0000d15c + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _080F0C44 @ =0x00000306 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_080F0C3C: .4byte gUnknown_083DFEC4 +_080F0C40: .4byte 0x0000d15c +_080F0C44: .4byte 0x00000306 + thumb_func_end sub_80F0C28 + + thumb_func_start sub_80F0C48 +sub_80F0C48: @ 80F0C48 + push {r4-r6,lr} + ldr r0, _080F0C5C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0C60 @ =0x0000d15c + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bls _080F0C64 + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0C5C: .4byte gUnknown_083DFEC4 +_080F0C60: .4byte 0x0000d15c +_080F0C64: + ldr r2, _080F0CBC @ =0x00000306 + adds r1, r4, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r2, _080F0CC0 @ =0x0000ffff + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0CD0 + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r0, _080F0CC8 @ =0x00008770 + adds r1, r4, r0 + ldrh r0, [r5] + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080F0CCC @ =0x00008778 + adds r2, r4, r1 + ldrh r1, [r5] + lsls r1, 1 + ldrh r2, [r2] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + bl sub_80F0A74 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + ands r0, r6 + cmp r0, 0x7 + bls _080F0CD0 + movs r0, 0 + bl sub_80F081C + movs r0, 0 + b _080F0CD2 + .align 2, 0 +_080F0CBC: .4byte 0x00000306 +_080F0CC0: .4byte 0x0000ffff +_080F0CC4: .4byte gWindowConfig_81E70D4 +_080F0CC8: .4byte 0x00008770 +_080F0CCC: .4byte 0x00008778 +_080F0CD0: + movs r0, 0x1 +_080F0CD2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F0C48 + + thumb_func_start sub_80F0CD8 +sub_80F0CD8: @ 80F0CD8 + push {r4,r5,lr} + ldr r4, _080F0D40 @ =gUnknown_083DFEC4 + ldr r1, [r4] + ldr r2, _080F0D44 @ =0x00000306 + adds r0, r1, r2 + movs r2, 0 + strh r2, [r0] + ldr r3, _080F0D48 @ =0x0000d15c + adds r0, r1, r3 + strh r2, [r0] + ldr r2, _080F0D4C @ =0x0000876e + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 3 + adds r0, r1, r0 + ldr r2, _080F0D50 @ =0x0000ceec + adds r0, r2 + ldrb r0, [r0] + ldr r3, _080F0D54 @ =0x0000d110 + adds r1, r3 + ldr r2, _080F0D58 @ =gTrainerEyeDescriptions + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + adds r2, r0, 0 + movs r1, 0 + adds r5, r4, 0 + adds r4, r3, 0 +_080F0D14: + ldrb r0, [r2] + adds r3, r1, 0x1 + cmp r0, 0xFF + beq _080F0D24 +_080F0D1C: + adds r2, 0x1 + ldrb r0, [r2] + cmp r0, 0xFF + bne _080F0D1C +_080F0D24: + ldr r0, [r5] + lsls r1, r3, 2 + adds r0, r4 + adds r0, r1 + adds r2, 0x1 + str r2, [r0] + lsls r0, r3, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bls _080F0D14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F0D40: .4byte gUnknown_083DFEC4 +_080F0D44: .4byte 0x00000306 +_080F0D48: .4byte 0x0000d15c +_080F0D4C: .4byte 0x0000876e +_080F0D50: .4byte 0x0000ceec +_080F0D54: .4byte 0x0000d110 +_080F0D58: .4byte gTrainerEyeDescriptions + thumb_func_end sub_80F0CD8 + + thumb_func_start sub_80F0D5C +sub_80F0D5C: @ 80F0D5C + push {r4,r5,lr} + ldr r0, _080F0D70 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F0D74 @ =0x0000d15c + adds r5, r4, r0 + ldrh r0, [r5] + cmp r0, 0x7 + bne _080F0D78 +_080F0D6C: + movs r0, 0 + b _080F0EB0 + .align 2, 0 +_080F0D70: .4byte gUnknown_083DFEC4 +_080F0D74: .4byte 0x0000d15c +_080F0D78: + ldr r0, _080F0DB8 @ =0x00000306 + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080F0D8C + b _080F0EAE +_080F0D8C: + movs r0, 0 + strh r0, [r1] + ldr r0, _080F0DBC @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + ldr r0, _080F0DC0 @ =0x00008778 + adds r1, r4, r0 + ldrh r3, [r5] + lsls r0, r3, 1 + adds r0, 0x2 + ldrh r1, [r1] + adds r5, r0, r1 + movs r0, 0x1F + ands r5, r0 + cmp r3, 0x6 + bhi _080F0D6C + lsls r0, r3, 2 + ldr r1, _080F0DC4 @ =_080F0DC8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F0DB8: .4byte 0x00000306 +_080F0DBC: .4byte gWindowConfig_81E70D4 +_080F0DC0: .4byte 0x00008778 +_080F0DC4: .4byte _080F0DC8 + .align 2, 0 +_080F0DC8: + .4byte _080F0DE4 + .4byte _080F0DF0 + .4byte _080F0E08 + .4byte _080F0E14 + .4byte _080F0E2C + .4byte _080F0E38 + .4byte _080F0E6C +_080F0DE4: + ldr r0, _080F0DEC @ =gOtherText_Strategy + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0DEC: .4byte gOtherText_Strategy +_080F0DF0: + ldr r0, _080F0DFC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E00 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E04 @ =0x0000d110 + b _080F0E42 + .align 2, 0 +_080F0DFC: .4byte gUnknown_083DFEC4 +_080F0E00: .4byte 0x00008788 +_080F0E04: .4byte 0x0000d110 +_080F0E08: + ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E10: .4byte gOtherText_TrainersPokemon +_080F0E14: + ldr r0, _080F0E20 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E24 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E28 @ =0x0000d114 + b _080F0E42 + .align 2, 0 +_080F0E20: .4byte gUnknown_083DFEC4 +_080F0E24: .4byte 0x00008788 +_080F0E28: .4byte 0x0000d114 +_080F0E2C: + ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction + lsls r2, r5, 3 + b _080F0E54 + .align 2, 0 +_080F0E34: .4byte gOtherText_SelfIntroduction +_080F0E38: + ldr r0, _080F0E60 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E64 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E68 @ =0x0000d118 +_080F0E42: + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 +_080F0E54: + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + b _080F0EA0 + .align 2, 0 +_080F0E60: .4byte gUnknown_083DFEC4 +_080F0E64: .4byte 0x00008788 +_080F0E68: .4byte 0x0000d118 +_080F0E6C: + ldr r0, _080F0E94 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F0E98 @ =0x00008788 + adds r4, r0, r1 + ldr r1, _080F0E9C @ =0x0000d11c + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x88 + movs r3, 0 + bl sub_8072C74 + lsls r2, r5, 3 + adds r0, r4, 0 + movs r1, 0x61 + movs r3, 0 + bl MenuPrint_PixelCoords + b _080F0D6C + .align 2, 0 +_080F0E94: .4byte gUnknown_083DFEC4 +_080F0E98: .4byte 0x00008788 +_080F0E9C: .4byte 0x0000d11c +_080F0EA0: + ldr r0, _080F0EB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F0EBC @ =0x0000d15c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F0EAE: + movs r0, 0x1 +_080F0EB0: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0EB8: .4byte gUnknown_083DFEC4 +_080F0EBC: .4byte 0x0000d15c + thumb_func_end sub_80F0D5C + + thumb_func_start sub_80F0EC0 +sub_80F0EC0: @ 80F0EC0 + push {lr} + ldr r0, _080F0EE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F0EE8 @ =0x00000306 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r3, _080F0EEC @ =0x0000d15c + adds r1, r0, r3 + strh r2, [r1] + ldr r1, _080F0EF0 @ =0x00008788 + adds r0, r1 + movs r1, 0 + movs r2, 0x10 + bl StringFill + pop {r0} + bx r0 + .align 2, 0 +_080F0EE4: .4byte gUnknown_083DFEC4 +_080F0EE8: .4byte 0x00000306 +_080F0EEC: .4byte 0x0000d15c +_080F0EF0: .4byte 0x00008788 + thumb_func_end sub_80F0EC0 + + thumb_func_start sub_80F0EF4 +sub_80F0EF4: @ 80F0EF4 + push {r4,r5,lr} + ldr r0, _080F0F08 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F0F0C @ =0x0000d15c + adds r5, r2, r0 + ldrh r0, [r5] + cmp r0, 0x6 + bls _080F0F10 + movs r0, 0 + b _080F0F52 + .align 2, 0 +_080F0F08: .4byte gUnknown_083DFEC4 +_080F0F0C: .4byte 0x0000d15c +_080F0F10: + ldr r0, _080F0F58 @ =0x00000306 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080F0F50 + movs r0, 0 + strh r0, [r1] + ldr r1, _080F0F5C @ =0x00008778 + adds r0, r2, r1 + ldrh r4, [r5] + lsls r4, 1 + adds r4, 0x2 + ldrh r0, [r0] + adds r4, r0 + movs r0, 0x1F + ands r4, r0 + ldr r0, _080F0F60 @ =gWindowConfig_81E70D4 + bl BasicInitMenuWindow + adds r3, r4, 0x1 + movs r0, 0xC + adds r1, r4, 0 + movs r2, 0x1F + bl MenuZeroFillWindowRect + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F0F50: + movs r0, 0x1 +_080F0F52: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F0F58: .4byte 0x00000306 +_080F0F5C: .4byte 0x00008778 +_080F0F60: .4byte gWindowConfig_81E70D4 + thumb_func_end sub_80F0EF4 + + thumb_func_start sub_80F0F64 +sub_80F0F64: @ 80F0F64 + push {r4,lr} + ldr r0, _080F0F90 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F0F94 @ =0x0000876c + adds r0, r3, r1 + movs r4, 0 + ldrsh r2, [r0, r4] + lsls r1, r2, 4 + ldr r4, _080F0F98 @ =0x0000877c + adds r0, r3, r4 + strh r1, [r0] + movs r1, 0x8 + cmp r2, 0x1 + bne _080F0F82 + movs r1, 0x4 +_080F0F82: + ldr r2, _080F0F9C @ =0x0000877a + adds r0, r3, r2 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0F90: .4byte gUnknown_083DFEC4 +_080F0F94: .4byte 0x0000876c +_080F0F98: .4byte 0x0000877c +_080F0F9C: .4byte 0x0000877a + thumb_func_end sub_80F0F64 + + thumb_func_start sub_80F0FA0 +sub_80F0FA0: @ 80F0FA0 + push {r4,lr} + ldr r0, _080F0FDC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F0FE0 @ =0x0000876c + adds r0, r3, r1 + movs r4, 0 + ldrsh r0, [r0, r4] + negs r0, r0 + lsls r0, 16 + asrs r0, 16 + lsls r2, r0, 4 + ldr r4, _080F0FE4 @ =0x0000877c + adds r1, r3, r4 + strh r2, [r1] + movs r1, 0x1 + negs r1, r1 + movs r4, 0x8 + negs r4, r4 + adds r2, r4, 0 + cmp r0, r1 + bne _080F0FD0 + movs r0, 0x4 + negs r0, r0 + adds r2, r0, 0 +_080F0FD0: + ldr r1, _080F0FE8 @ =0x0000877a + adds r0, r3, r1 + strh r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F0FDC: .4byte gUnknown_083DFEC4 +_080F0FE0: .4byte 0x0000876c +_080F0FE4: .4byte 0x0000877c +_080F0FE8: .4byte 0x0000877a + thumb_func_end sub_80F0FA0 + + thumb_func_start sub_80F0FEC +sub_80F0FEC: @ 80F0FEC + push {lr} + bl sub_80F0718 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F0FEC + + thumb_func_start sub_80F0FFC +sub_80F0FFC: @ 80F0FFC + push {r4,r5,lr} + lsls r0, 24 + ldr r1, _080F1048 @ =gUnknown_083DFEC4 + ldr r4, [r1] + ldr r1, _080F104C @ =0x00008788 + adds r5, r4, r1 + lsrs r0, 21 + adds r0, r4, r0 + ldr r1, _080F1050 @ =0x0000ceea + adds r0, r1 + ldrh r1, [r0] + adds r0, r5, 0 + movs r2, 0 + bl sub_80FBFB4 + ldr r0, _080F1054 @ =gWindowConfig_81E710C + bl BasicInitMenuWindow + adds r0, r5, 0 + bl sub_80F19DC + ldr r0, _080F1058 @ =0x0000d138 + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x58 + movs r3, 0x2 + bl sub_8072C74 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1048: .4byte gUnknown_083DFEC4 +_080F104C: .4byte 0x00008788 +_080F1050: .4byte 0x0000ceea +_080F1054: .4byte gWindowConfig_81E710C +_080F1058: .4byte 0x0000d138 + thumb_func_end sub_80F0FFC + + thumb_func_start sub_80F105C +sub_80F105C: @ 80F105C + push {lr} + ldr r0, _080F1078 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F107C @ =0x0000876e + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, 0xA + adds r1, r2 + ldrh r1, [r1] + bl sub_80F0A74 + pop {r0} + bx r0 + .align 2, 0 +_080F1078: .4byte gUnknown_083DFEC4 +_080F107C: .4byte 0x0000876e + thumb_func_end sub_80F105C + + thumb_func_start sub_80F1080 +sub_80F1080: @ 80F1080 + push {r4,lr} + ldr r1, _080F10A0 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F10A4 @ =0x0000d160 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0xE + bls _080F1094 + b _080F1204 +_080F1094: + lsls r0, 2 + ldr r1, _080F10A8 @ =_080F10AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F10A0: .4byte gUnknown_083DFEC4 +_080F10A4: .4byte 0x0000d160 +_080F10A8: .4byte _080F10AC + .align 2, 0 +_080F10AC: + .4byte _080F10E8 + .4byte _080F1104 + .4byte _080F1110 + .4byte _080F111C + .4byte _080F1128 + .4byte _080F112E + .4byte _080F1134 + .4byte _080F1142 + .4byte _080F1160 + .4byte _080F1166 + .4byte _080F116C + .4byte _080F1180 + .4byte _080F1194 + .4byte _080F11DC + .4byte _080F11E2 +_080F10E8: + bl sub_80EEDE8 + ldr r0, _080F10FC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F1100 @ =0x0000d162 + adds r0, r3 + movs r1, 0xB + strb r1, [r0] + b _080F1218 + .align 2, 0 +_080F10FC: .4byte gUnknown_083DFEC4 +_080F1100: .4byte 0x0000d162 +_080F1104: + ldr r0, _080F110C @ =gWindowConfig_81E70B8 + bl SetUpWindowConfig + b _080F1218 + .align 2, 0 +_080F110C: .4byte gWindowConfig_81E70B8 +_080F1110: + ldr r0, _080F1118 @ =gWindowConfig_81E70B8 + bl MultistepInitMenuWindowBegin + b _080F1218 + .align 2, 0 +_080F1118: .4byte gWindowConfig_81E70B8 +_080F111C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F1126 + b _080F1218 +_080F1126: + b _080F1226 +_080F1128: + bl MenuZeroFillScreen + b _080F1218 +_080F112E: + bl sub_80F1614 + b _080F1218 +_080F1134: + movs r0, 0x1 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + beq _080F1218 + b _080F1226 +_080F1142: + ldr r0, _080F1154 @ =gUnknown_08E9FBA0 + ldr r1, _080F1158 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F115C @ =0x0000934c + adds r1, r2 + bl LZ77UnCompWram + b _080F1218 + .align 2, 0 +_080F1154: .4byte gUnknown_08E9FBA0 +_080F1158: .4byte gUnknown_083DFEC4 +_080F115C: .4byte 0x0000934c +_080F1160: + bl sub_80F1238 + b _080F1218 +_080F1166: + bl sub_80F13FC + b _080F1218 +_080F116C: + ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx + ldr r1, _080F117C @ =0x06008000 + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F1178: .4byte gPokenavRibbonView_Gfx +_080F117C: .4byte 0x06008000 +_080F1180: + ldr r0, _080F118C @ =gUnknown_083E040C + ldr r1, _080F1190 @ =0x06008200 + bl LZ77UnCompVram + b _080F1218 + .align 2, 0 +_080F118C: .4byte gUnknown_083E040C +_080F1190: .4byte 0x06008200 +_080F1194: + ldr r0, _080F11CC @ =gPokenavRibbonView_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F11D0 @ =gUnknown_083E03A8 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F11D4 @ =gUnknown_083E3C60 + movs r1, 0x30 + movs r2, 0xA0 + bl LoadPalette + ldr r0, _080F11D8 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + adds r4, 0x1E + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + b _080F1218 + .align 2, 0 +_080F11CC: .4byte gPokenavRibbonView_Pal +_080F11D0: .4byte gUnknown_083E03A8 +_080F11D4: .4byte gUnknown_083E3C60 +_080F11D8: .4byte gUnknownPalette_81E6692 +_080F11DC: + bl sub_80F1438 + b _080F1218 +_080F11E2: + ldr r1, _080F1208 @ =REG_BG2CNT + ldr r3, _080F120C @ =0x00001e02 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080F1210 @ =0x0000170b + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x42 + movs r0, 0 + strh r0, [r1] + ldr r1, [r2] + ldr r0, _080F1214 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1204: + movs r0, 0 + b _080F1228 + .align 2, 0 +_080F1208: .4byte REG_BG2CNT +_080F120C: .4byte 0x00001e02 +_080F1210: .4byte 0x0000170b +_080F1214: .4byte 0x0000d160 +_080F1218: + ldr r0, _080F1230 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1234 @ =0x0000d160 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1226: + movs r0, 0x1 +_080F1228: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F1230: .4byte gUnknown_083DFEC4 +_080F1234: .4byte 0x0000d160 + thumb_func_end sub_80F1080 + + thumb_func_start sub_80F1238 +sub_80F1238: @ 80F1238 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r6, 0x8B + ldr r0, _080F1318 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F131C @ =0x0000bc8e + adds r0, r2, r1 + ldr r3, _080F1320 @ =0x0000bc8f + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r7, 0 + mov r5, sp + adds r4, r2, 0 +_080F1264: + movs r1, 0x80 + lsls r1, 6 + adds r0, r1, 0 + strh r0, [r5] + lsls r1, r7, 5 + adds r1, r6, r1 + lsls r1, 1 + ldr r2, _080F1324 @ =0x0000934c + adds r1, r2 + adds r1, r4, r1 + mov r0, sp + ldr r2, _080F1328 @ =0x01000012 + bl CpuSet + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x7 + bls _080F1264 + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + movs r7, 0 + mov r9, r0 + cmp r0, 0 + beq _080F1342 + ldr r0, _080F1318 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r8, r0 + ldr r1, _080F132C @ =gUnknown_083E4698 + mov r10, r1 + ldr r5, _080F1324 @ =0x0000934c + add r5, r8 +_080F12A4: + ldr r0, _080F1330 @ =0x0000bc4c + add r0, r8 + adds r0, r7 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r10 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r10 + ldrh r0, [r1] + lsls r0, 25 + movs r3, 0x80 + lsls r3, 21 + adds r0, r3 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r4, r7, 0x1 + adds r0, r4, 0 + movs r1, 0x9 + bl __modsi3 + cmp r0, 0 + bne _080F1334 + adds r0, r6, 0 + adds r0, 0x30 + b _080F1336 + .align 2, 0 +_080F1318: .4byte gUnknown_083DFEC4 +_080F131C: .4byte 0x0000bc8e +_080F1320: .4byte 0x0000bc8f +_080F1324: .4byte 0x0000934c +_080F1328: .4byte 0x01000012 +_080F132C: .4byte gUnknown_083E4698 +_080F1330: .4byte 0x0000bc4c +_080F1334: + adds r0, r6, 0x2 +_080F1336: + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r4, 16 + lsrs r7, r0, 16 + cmp r0, r9 + bcc _080F12A4 +_080F1342: + ldr r6, _080F13E8 @ =0x0000014b + movs r7, 0 + ldr r1, _080F13EC @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F13F0 @ =0x0000bc8f + adds r1, r0, r2 + ldrb r3, [r1] + cmp r7, r3 + bcs _080F13D8 + subs r2, 0x43 + adds r2, r0 + mov r10, r2 + ldr r3, _080F13F4 @ =gUnknown_083E4698 + mov r8, r3 + ldr r2, _080F13F8 @ =0x0000934c + adds r5, r0, r2 + mov r9, r1 +_080F1364: + ldr r3, [sp, 0x4] + adds r0, r3, r7 + add r0, r10 + ldrb r1, [r0] + lsls r1, 2 + mov r0, r8 + adds r0, 0x2 + adds r0, r1, r0 + ldrb r2, [r0] + adds r2, 0x3 + lsls r2, 24 + add r1, r8 + ldrh r0, [r1] + lsls r0, 25 + movs r1, 0x80 + lsls r1, 21 + adds r0, r1 + lsrs r4, r0, 24 + lsls r1, r6, 1 + adds r1, r5, r1 + lsrs r2, 12 + adds r0, r2, 0 + orrs r0, r4 + strh r0, [r1] + adds r1, r6, 0x1 + lsls r1, 1 + adds r1, r5, r1 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + adds r3, r2, 0 + orrs r3, r0 + adds r0, r3, 0 + orrs r0, r4 + strh r0, [r1] + adds r0, r6, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r5, r0 + adds r1, r4, 0x1 + orrs r2, r1 + strh r2, [r0] + adds r0, r6, 0 + adds r0, 0x21 + lsls r0, 1 + adds r0, r5, r0 + orrs r3, r1 + strh r3, [r0] + adds r0, r6, 0x2 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r9 + ldrb r0, [r0] + cmp r7, r0 + bcc _080F1364 +_080F13D8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F13E8: .4byte 0x0000014b +_080F13EC: .4byte gUnknown_083DFEC4 +_080F13F0: .4byte 0x0000bc8f +_080F13F4: .4byte gUnknown_083E4698 +_080F13F8: .4byte 0x0000934c + thumb_func_end sub_80F1238 + + thumb_func_start sub_80F13FC +sub_80F13FC: @ 80F13FC + ldr r0, _080F141C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1420 @ =0x0000934c + adds r0, r1 + ldr r2, _080F1424 @ =0x0600b800 + ldr r1, _080F1428 @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F142C @ =0x84000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _080F1430 @ =gPlttBufferUnfaded + ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C + ldrh r0, [r0] + strh r0, [r1] + bx lr + .align 2, 0 +_080F141C: .4byte gUnknown_083DFEC4 +_080F1420: .4byte 0x0000934c +_080F1424: .4byte 0x0600b800 +_080F1428: .4byte 0x040000d4 +_080F142C: .4byte 0x84000140 +_080F1430: .4byte gPlttBufferUnfaded +_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C + thumb_func_end sub_80F13FC + + thumb_func_start sub_80F1438 +sub_80F1438: @ 80F1438 + push {r4,r5,lr} + ldr r0, _080F1470 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F1474 @ =0x00008829 + adds r0, r4, r1 + movs r1, 0xD + movs r2, 0x1 + bl MenuPrint + ldr r0, _080F1478 @ =0x00008788 + adds r5, r4, r0 + ldr r1, _080F147C @ =0x0000876e + adds r4, r1 + ldrh r1, [r4] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_80F445C + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x5 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1470: .4byte gUnknown_083DFEC4 +_080F1474: .4byte 0x00008829 +_080F1478: .4byte 0x00008788 +_080F147C: .4byte 0x0000876e + thumb_func_end sub_80F1438 + + thumb_func_start sub_80F1480 +sub_80F1480: @ 80F1480 + push {lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80F1480 + + thumb_func_start sub_80F1494 +sub_80F1494: @ 80F1494 + push {r4-r7,lr} + ldr r0, _080F14D4 @ =gUnknown_083DFEC8 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 4 + adds r6, r0, r1 + ldr r2, _080F14D8 @ =0x00000a98 + adds r7, r0, r2 + ldr r0, _080F14DC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F14E0 @ =0x0000bc91 + adds r1, r3, r4 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _080F14F0 + ldr r5, _080F14E4 @ =gUnknown_020388B4 + adds r1, r0, 0 + lsls r0, r1, 3 + subs r4, 0x1 + adds r2, r3, r4 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + strh r0, [r5] + ldr r1, _080F14E8 @ =0x0000bc4c + adds r0, r3, r1 + ldrh r2, [r5] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r5] + ldr r4, _080F14EC @ =gRibbonDescriptions + b _080F152E + .align 2, 0 +_080F14D4: .4byte gUnknown_083DFEC8 +_080F14D8: .4byte 0x00000a98 +_080F14DC: .4byte gUnknown_083DFEC4 +_080F14E0: .4byte 0x0000bc91 +_080F14E4: .4byte gUnknown_020388B4 +_080F14E8: .4byte 0x0000bc4c +_080F14EC: .4byte gRibbonDescriptions +_080F14F0: + ldr r5, _080F1558 @ =gUnknown_020388B4 + ldr r4, _080F155C @ =0x0000bc8e + adds r0, r3, r4 + ldrb r0, [r0] + ldr r2, _080F1560 @ =0x0000bc8f + adds r1, r3, r2 + ldrb r1, [r1] + subs r0, r1 + strh r0, [r5] + ldrh r1, [r5] + adds r4, 0x2 + adds r0, r3, r4 + ldrb r0, [r0] + adds r1, r0 + subs r2, 0x43 + adds r0, r3, r2 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r5] + ldr r0, _080F1564 @ =gSaveBlock1 + ldrh r1, [r5] + adds r0, r1 + ldr r4, _080F1568 @ =0x000030f7 + adds r0, r4 + ldrb r0, [r0] + strh r0, [r5] + cmp r0, 0 + beq _080F1570 + subs r0, 0x1 + strh r0, [r5] + ldr r4, _080F156C @ =gGiftRibbonDescriptions +_080F152E: + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + ldrh r0, [r5] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r7, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + b _080F158A + .align 2, 0 +_080F1558: .4byte gUnknown_020388B4 +_080F155C: .4byte 0x0000bc8e +_080F1560: .4byte 0x0000bc8f +_080F1564: .4byte gSaveBlock1 +_080F1568: .4byte 0x000030f7 +_080F156C: .4byte gGiftRibbonDescriptions +_080F1570: + ldr r4, _080F15A4 @ =gEmptyString_81E72B0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x80 + movs r3, 0 + bl sub_8072C74 +_080F158A: + adds r0, r6, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + adds r0, r7, 0 + movs r1, 0xC + movs r2, 0xF + bl MenuPrint + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F15A4: .4byte gEmptyString_81E72B0 + thumb_func_end sub_80F1494 + + thumb_func_start sub_80F15A8 +sub_80F15A8: @ 80F15A8 + push {r4,r5,lr} + movs r0, 0xC + movs r1, 0xD + movs r2, 0x1B + movs r3, 0x10 + bl MenuZeroFillWindowRect + ldr r0, _080F1600 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F1604 @ =0x00008788 + adds r5, r4, r0 + ldr r1, _080F1608 @ =gOtherText_Ribbons + adds r0, r5, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldr r1, _080F160C @ =0x000087dc + adds r0, r4, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 2 + adds r4, r0 + ldr r0, _080F1610 @ =0x0000893c + adds r4, r0 + ldrb r1, [r4] + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xFF + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0xC + movs r2, 0xD + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1600: .4byte gUnknown_083DFEC4 +_080F1604: .4byte 0x00008788 +_080F1608: .4byte gOtherText_Ribbons +_080F160C: .4byte 0x000087dc +_080F1610: .4byte 0x0000893c + thumb_func_end sub_80F15A8 + + thumb_func_start sub_80F1614 +sub_80F1614: @ 80F1614 + ldr r0, _080F1624 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1628 @ =0x00008764 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F1624: .4byte gUnknown_083DFEC4 +_080F1628: .4byte 0x00008764 + thumb_func_end sub_80F1614 + + thumb_func_start sub_80F162C +sub_80F162C: @ 80F162C + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F164C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1650 @ =0x00008764 + adds r0, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F165E + cmp r0, 0x1 + bgt _080F1654 + cmp r0, 0 + beq _080F16F0 + b _080F16D0 + .align 2, 0 +_080F164C: .4byte gUnknown_083DFEC4 +_080F1650: .4byte 0x00008764 +_080F1654: + cmp r0, 0x2 + beq _080F1670 + cmp r0, 0x3 + beq _080F1694 + b _080F16D0 +_080F165E: + ldr r0, _080F1668 @ =gUnknown_08E9FF58 + ldr r1, _080F166C @ =0x0600e800 + bl LZ77UnCompVram + b _080F16F0 + .align 2, 0 +_080F1668: .4byte gUnknown_08E9FF58 +_080F166C: .4byte 0x0600e800 +_080F1670: + ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx + ldr r2, _080F1688 @ =0x0600e000 + ldr r0, _080F168C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080F1690 @ =0x80000070 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080F16F0 + .align 2, 0 +_080F1684: .4byte gPokenavRibbonPokeView_Gfx +_080F1688: .4byte 0x0600e000 +_080F168C: .4byte 0x040000d4 +_080F1690: .4byte 0x80000070 +_080F1694: + cmp r1, 0 + bne _080F16A8 + ldr r0, _080F16A4 @ =gUnknown_083E0124 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + b _080F16B2 + .align 2, 0 +_080F16A4: .4byte gUnknown_083E0124 +_080F16A8: + ldr r0, _080F16D4 @ =gUnknown_083E0144 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette +_080F16B2: + ldr r0, _080F16D8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F16DC @ =0x00008766 + adds r2, r1, r3 + ldr r0, _080F16E0 @ =0x0000ffb0 + strh r0, [r2] + ldr r2, _080F16E4 @ =REG_BG0CNT + ldr r3, _080F16E8 @ =0x00001d0d + adds r0, r3, 0 + strh r0, [r2] + ldr r0, _080F16EC @ =0x00008764 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F16D0: + movs r0, 0 + b _080F1700 + .align 2, 0 +_080F16D4: .4byte gUnknown_083E0144 +_080F16D8: .4byte gUnknown_083DFEC4 +_080F16DC: .4byte 0x00008766 +_080F16E0: .4byte 0x0000ffb0 +_080F16E4: .4byte REG_BG0CNT +_080F16E8: .4byte 0x00001d0d +_080F16EC: .4byte 0x00008764 +_080F16F0: + ldr r0, _080F1704 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1708 @ =0x00008764 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1700: + pop {r1} + bx r1 + .align 2, 0 +_080F1704: .4byte gUnknown_083DFEC4 +_080F1708: .4byte 0x00008764 + thumb_func_end sub_80F162C + + thumb_func_start sub_80F170C +sub_80F170C: @ 80F170C + push {lr} + ldr r0, _080F1734 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1738 @ =0x00008766 + adds r1, r0, r2 + ldrh r0, [r1] + adds r0, 0x10 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + ble _080F1726 + movs r0, 0 + strh r0, [r1] +_080F1726: + movs r0, 0 + ldrsh r1, [r1, r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F1734: .4byte gUnknown_083DFEC4 +_080F1738: .4byte 0x00008766 + thumb_func_end sub_80F170C + + thumb_func_start sub_80F173C +sub_80F173C: @ 80F173C + push {lr} + ldr r0, _080F176C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F1770 @ =0x00008766 + adds r1, r0, r2 + ldrh r0, [r1] + subs r0, 0x10 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x50 + negs r2, r2 + cmp r0, r2 + bge _080F175C + ldr r0, _080F1774 @ =0x0000ffb0 + strh r0, [r1] +_080F175C: + movs r0, 0 + ldrsh r1, [r1, r0] + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r1} + bx r1 + .align 2, 0 +_080F176C: .4byte gUnknown_083DFEC4 +_080F1770: .4byte 0x00008766 +_080F1774: .4byte 0x0000ffb0 + thumb_func_end sub_80F173C + + thumb_func_start sub_80F1778 +sub_80F1778: @ 80F1778 + push {r4,lr} + sub sp, 0x14 + ldr r0, _080F1798 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F179C @ =0x0000d160 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x9 + bls _080F178C + b _080F1910 +_080F178C: + lsls r0, 2 + ldr r1, _080F17A0 @ =_080F17A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F1798: .4byte gUnknown_083DFEC4 +_080F179C: .4byte 0x0000d160 +_080F17A0: .4byte _080F17A4 + .align 2, 0 +_080F17A4: + .4byte _080F17CC + .4byte _080F17E8 + .4byte _080F17EE + .4byte _080F17FE + .4byte _080F1810 + .4byte _080F1830 + .4byte _080F1858 + .4byte _080F186C + .4byte _080F18B8 + .4byte _080F18D8 +_080F17CC: + bl sub_80EEDE8 + ldr r0, _080F17E0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F17E4 @ =0x0000d162 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0] + b _080F1914 + .align 2, 0 +_080F17E0: .4byte gUnknown_083DFEC4 +_080F17E4: .4byte 0x0000d162 +_080F17E8: + bl sub_80F1614 + b _080F1914 +_080F17EE: + movs r0, 0 + bl sub_80F162C + lsls r0, 24 + cmp r0, 0 + bne _080F17FC + b _080F1914 +_080F17FC: + b _080F1922 +_080F17FE: + ldr r0, _080F1808 @ =gPokenavConditionView_Gfx + ldr r1, _080F180C @ =0x06005000 + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1808: .4byte gPokenavConditionView_Gfx +_080F180C: .4byte 0x06005000 +_080F1810: + ldr r0, _080F1824 @ =gUnknown_08E9AC4C + ldr r1, _080F1828 @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + b _080F1914 + .align 2, 0 +_080F1824: .4byte gUnknown_08E9AC4C +_080F1828: .4byte 0x0600f000 +_080F182C: .4byte gPokenavConditionMenu2_Pal +_080F1830: + ldr r0, _080F1850 @ =0x0600f000 + ldr r3, _080F1854 @ =gUnknown_083E01F4 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r2, 0xC + str r2, [sp, 0x8] + movs r1, 0x4 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + movs r1, 0 + movs r2, 0xD + bl sub_8095C8C + b _080F1914 + .align 2, 0 +_080F1850: .4byte 0x0600f000 +_080F1854: .4byte gUnknown_083E01F4 +_080F1858: + ldr r0, _080F1864 @ =gUnknown_08E9FEB4 + ldr r1, _080F1868 @ =0x0600b800 + bl LZ77UnCompVram + b _080F1914 + .align 2, 0 +_080F1864: .4byte gUnknown_08E9FEB4 +_080F1868: .4byte 0x0600b800 +_080F186C: + ldr r0, _080F18AC @ =gUnknown_083E0254 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080F18B0 @ =gUnknownPalette_81E6692 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2 + adds r0, r4, 0 + movs r1, 0xB1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0xE + movs r1, 0xB5 + movs r2, 0x2 + bl LoadPalette + adds r4, 0x1C + adds r0, r4, 0 + movs r1, 0xBF + movs r2, 0x2 + bl LoadPalette + bl sub_80F01A4 + b _080F1914 + .align 2, 0 +_080F18AC: .4byte gUnknown_083E0254 +_080F18B0: .4byte gUnknownPalette_81E6692 +_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2 +_080F18B8: + ldr r0, _080F18D0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F18D4 @ =0x00008fe9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F1914 + .align 2, 0 +_080F18D0: .4byte gUnknown_083DFEC4 +_080F18D4: .4byte 0x00008fe9 +_080F18D8: + ldr r1, _080F18FC @ =REG_BG3CNT + ldr r2, _080F1900 @ =0x00001e03 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _080F1904 @ =0x00001702 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + ldr r2, _080F1908 @ =0x00000844 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F190C @ =0x0000040b + adds r0, r2, 0 + strh r0, [r1] + b _080F1914 + .align 2, 0 +_080F18FC: .4byte REG_BG3CNT +_080F1900: .4byte 0x00001e03 +_080F1904: .4byte 0x00001702 +_080F1908: .4byte 0x00000844 +_080F190C: .4byte 0x0000040b +_080F1910: + movs r0, 0 + b _080F1924 +_080F1914: + ldr r0, _080F192C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1930 @ =0x0000d160 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F1922: + movs r0, 0x1 +_080F1924: + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F192C: .4byte gUnknown_083DFEC4 +_080F1930: .4byte 0x0000d160 + thumb_func_end sub_80F1778 + + thumb_func_start sub_80F1934 +sub_80F1934: @ 80F1934 + push {r4,r5,lr} + ldr r0, _080F1990 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1994 @ =0x00008788 + adds r5, r1, r0 + ldr r3, _080F1998 @ =0x000087dc + adds r2, r1, r3 + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r1, r0 + ldr r0, _080F199C @ =0x0000893f + adds r1, r0 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + bge _080F19AC + ldrb r0, [r2] + bl sub_8137124 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F19A0 @ =gPlayerParty + adds r0, r1 + bl GetNature + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080F19A4 @ =gOtherText_Nature2 + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + ldr r0, _080F19A8 @ =gNatureNames + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 + b _080F19B8 + .align 2, 0 +_080F1990: .4byte gUnknown_083DFEC4 +_080F1994: .4byte 0x00008788 +_080F1998: .4byte 0x000087dc +_080F199C: .4byte 0x0000893f +_080F19A0: .4byte gPlayerParty +_080F19A4: .4byte gOtherText_Nature2 +_080F19A8: .4byte gNatureNames +_080F19AC: + ldr r1, _080F19D0 @ =gEmptyString_81E72B0 + adds r0, r5, 0 + movs r2, 0x57 + movs r3, 0 + bl sub_8072C74 +_080F19B8: + ldr r0, _080F19D4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F19D8 @ =0x00008788 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x70 + movs r3, 0x1 + bl MenuPrint_PixelCoords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F19D0: .4byte gEmptyString_81E72B0 +_080F19D4: .4byte gUnknown_083DFEC4 +_080F19D8: .4byte 0x00008788 + thumb_func_end sub_80F1934 + + thumb_func_start sub_80F19DC +sub_80F19DC: @ 80F19DC + push {lr} + adds r1, r0, 0 + b _080F19E4 +_080F19E2: + adds r1, 0x1 +_080F19E4: + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F19F8 + cmp r0, 0xFC + bne _080F19E2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _080F19E2 + movs r0, 0xFF + strb r0, [r1] +_080F19F8: + pop {r0} + bx r0 + thumb_func_end sub_80F19DC + + thumb_func_start sub_80F19FC +sub_80F19FC: @ 80F19FC + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _080F1A68 @ =gUnknown_020388B0 + ldrb r4, [r5] + cmp r4, 0x1 + bne _080F1A60 + ldr r0, _080F1A6C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1A70 @ =0x00006e2c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r1, [r1] + ldrb r2, [r5, 0x1] + bl sub_811A8CC + cmp r0, 0 + beq _080F1A46 + ldrb r2, [r5, 0x1] + lsls r2, 20 + movs r1, 0xC0 + lsls r1, 14 + adds r2, r1 + lsrs r2, 16 + str r4, [sp] + movs r1, 0x70 + movs r3, 0x78 + bl sub_8072A18 + ldrb r0, [r5, 0x1] + adds r0, 0x1 + strb r0, [r5, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080F1A60 +_080F1A46: + ldrb r1, [r5, 0x1] + lsls r1, 25 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + lsrs r1, 24 + movs r0, 0xE + movs r2, 0x1C + movs r3, 0xF + bl MenuFillWindowRectWithBlankTile + movs r0, 0 + strb r0, [r5] +_080F1A60: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F1A68: .4byte gUnknown_020388B0 +_080F1A6C: .4byte gUnknown_083DFEC4 +_080F1A70: .4byte 0x00006e2c + thumb_func_end sub_80F19FC + + thumb_func_start sub_80F1A74 +sub_80F1A74: @ 80F1A74 + ldr r1, _080F1A7C @ =gUnknown_020388B0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080F1A7C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A74 + + thumb_func_start sub_80F1A80 +sub_80F1A80: @ 80F1A80 + ldr r0, _080F1A8C @ =gUnknown_020388B0 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F1A8C: .4byte gUnknown_020388B0 + thumb_func_end sub_80F1A80 + + thumb_func_start sub_80F1A90 +sub_80F1A90: @ 80F1A90 + push {lr} + ldr r0, _080F1AB8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1ABC @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1AC0 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1AB2 +_080F1AA8: + bl sub_80F1AC4 + lsls r0, 24 + cmp r0, 0 + bne _080F1AA8 +_080F1AB2: + pop {r0} + bx r0 + .align 2, 0 +_080F1AB8: .4byte gUnknown_083DFEC4 +_080F1ABC: .4byte 0x00000306 +_080F1AC0: .4byte 0x00006dac + thumb_func_end sub_80F1A90 + + thumb_func_start sub_80F1AC4 +sub_80F1AC4: @ 80F1AC4 + push {r4,r5,lr} + ldr r0, _080F1AE0 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F1AE4 @ =0x00000306 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F1B34 + cmp r0, 0x1 + bgt _080F1AE8 + cmp r0, 0 + beq _080F1AF2 + b _080F1B6C + .align 2, 0 +_080F1AE0: .4byte gUnknown_083DFEC4 +_080F1AE4: .4byte 0x00000306 +_080F1AE8: + cmp r0, 0x2 + beq _080F1B40 + cmp r0, 0x3 + beq _080F1B54 + b _080F1B6C +_080F1AF2: + movs r0, 0 + movs r2, 0xC8 + lsls r2, 2 + adds r4, r1, r2 + movs r5, 0 +_080F1AFC: + movs r2, 0 + adds r1, r0, 0x1 + lsls r3, r0, 4 +_080F1B02: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r4, r0 + str r5, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F1B02 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x5 + bls _080F1AFC + ldr r0, _080F1B2C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1B30 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _080F1B6C + .align 2, 0 +_080F1B2C: .4byte gUnknown_083DFEC4 +_080F1B30: .4byte 0x00000311 +_080F1B34: + ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx + movs r2, 0xE2 + lsls r2, 2 + b _080F1B44 + .align 2, 0 +_080F1B3C: .4byte gPokenavMenuOptions_Gfx +_080F1B40: + ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx + ldr r2, _080F1B50 @ =0x00001788 +_080F1B44: + adds r1, r2 + bl LZ77UnCompWram + b _080F1B6C + .align 2, 0 +_080F1B4C: .4byte gPokenavConditionMenu_Gfx +_080F1B50: .4byte 0x00001788 +_080F1B54: + ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx + ldr r2, _080F1B68 @ =0x00002388 + adds r1, r2 + bl LZ77UnCompWram + movs r0, 0 + b _080F1B7C + .align 2, 0 +_080F1B64: .4byte gPokenavConditionSearch_Gfx +_080F1B68: .4byte 0x00002388 +_080F1B6C: + ldr r0, _080F1B84 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1B88 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1B7C: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F1B84: .4byte gUnknown_083DFEC4 +_080F1B88: .4byte 0x00000306 + thumb_func_end sub_80F1AC4 + + thumb_func_start sub_80F1B8C +sub_80F1B8C: @ 80F1B8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F1BBC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F1BC0 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F1BC4 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F1BB4 +_080F1BA8: + adds r0, r4, 0 + bl sub_80F1BC8 + lsls r0, 24 + cmp r0, 0 + bne _080F1BA8 +_080F1BB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F1BBC: .4byte gUnknown_083DFEC4 +_080F1BC0: .4byte 0x00000306 +_080F1BC4: .4byte 0x00006dac + thumb_func_end sub_80F1B8C + + thumb_func_start sub_80F1BC8 +sub_80F1BC8: @ 80F1BC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080F1BF4 @ =gUnknown_083DFEC4 + ldr r2, [r1] + ldr r3, _080F1BF8 @ =0x00000306 + adds r0, r2, r3 + ldrh r0, [r0] + adds r3, r1, 0 + cmp r0, 0x1 + beq _080F1C0A + cmp r0, 0x1 + bgt _080F1BFC + cmp r0, 0 + beq _080F1C02 + b _080F1DC4 + .align 2, 0 +_080F1BF4: .4byte gUnknown_083DFEC4 +_080F1BF8: .4byte 0x00000306 +_080F1BFC: + cmp r0, 0x2 + beq _080F1C12 + b _080F1DC4 +_080F1C02: + mov r0, r9 + bl sub_80F2458 + b _080F1DC8 +_080F1C0A: + mov r0, r9 + bl sub_80F2514 + b _080F1DC8 +_080F1C12: + mov r4, r9 + cmp r4, 0x1 + beq _080F1C40 + cmp r4, 0x1 + bgt _080F1C22 + cmp r4, 0 + beq _080F1C2A + b _080F1DC4 +_080F1C22: + mov r5, r9 + cmp r5, 0x2 + beq _080F1C54 + b _080F1DC4 +_080F1C2A: + movs r0, 0x2A + str r0, [sp, 0x4] + movs r1, 0x14 + str r1, [sp, 0x8] + ldr r4, _080F1C3C @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x5 + b _080F1C62 + .align 2, 0 +_080F1C3C: .4byte 0x0000030e +_080F1C40: + movs r5, 0x38 + str r5, [sp, 0x4] + movs r0, 0x14 + str r0, [sp, 0x8] + ldr r4, _080F1C50 @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x3 + b _080F1C62 + .align 2, 0 +_080F1C50: .4byte 0x0000030e +_080F1C54: + movs r5, 0x28 + str r5, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + ldr r4, _080F1CDC @ =0x0000030e + adds r1, r2, r4 + movs r0, 0x6 +_080F1C62: + strb r0, [r1] + movs r5, 0 + str r5, [sp] + mov r8, r5 + adds r1, r3, 0 + ldr r0, [r1] + ldr r2, _080F1CDC @ =0x0000030e + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + blt _080F1C7E + b _080F1DC8 +_080F1C7E: + ldr r4, [sp, 0x8] + mov r3, r8 + muls r3, r4 + ldr r5, [sp, 0x4] + adds r0, r5, r3 + subs r0, 0x8 + lsls r0, 16 + lsrs r0, 16 + ldr r4, [r1] + mov r2, r8 + lsls r1, r2, 1 + movs r5, 0xC5 + lsls r5, 2 + adds r2, r4, r5 + adds r2, r1 + lsls r1, r0, 8 + adds r0, 0x11 + orrs r1, r0 + strh r1, [r2] + mov r0, r9 + cmp r0, 0 + bne _080F1CF2 + ldr r1, _080F1CE0 @ =0x00006db2 + adds r0, r4, r1 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F1CE8 + movs r5, 0 + ldr r0, _080F1CE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r2, 4 + movs r3, 0xC8 + lsls r3, 2 + adds r1, r0, r3 + movs r3, 0 +_080F1CC8: + lsls r0, r5, 2 + adds r0, r2 + adds r0, r1, r0 + str r3, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CC8 + b _080F1D92 + .align 2, 0 +_080F1CDC: .4byte 0x0000030e +_080F1CE0: .4byte 0x00006db2 +_080F1CE4: .4byte gUnknown_083DFEC4 +_080F1CE8: + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 18 + lsrs r0, 16 + str r0, [sp] +_080F1CF2: + movs r5, 0 + ldr r4, [sp, 0x4] + adds r0, r4, r3 + lsls r0, 16 + mov r10, r0 +_080F1CFC: + lsls r6, r5, 5 + movs r0, 0x80 + lsls r0, 1 + adds r7, r6, r0 + lsls r1, r7, 16 + asrs r1, 16 + ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454 + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F1DC4 + ldr r0, _080F1DB8 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r1, r5, 2 + mov r4, r8 + lsls r0, r4, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r4, r2, r1 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F1DBC @ =gSprites + adds r0, r1 + str r0, [r4] + mov r1, r8 + strh r1, [r0, 0x2E] + ldr r0, [r4] + strh r5, [r0, 0x30] + ldr r1, [r4] + adds r0, r6, 0 + adds r0, 0x98 + strh r0, [r1, 0x32] + ldr r0, [r4] + strh r7, [r0, 0x34] + ldr r0, [r4] + ldr r1, [sp] + adds r2, r1, 0x1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + mov r2, r9 + cmp r2, 0x2 + beq _080F1D6E + cmp r2, 0 + bne _080F1D88 +_080F1D6E: + mov r3, r8 + cmp r3, 0x2 + bls _080F1D88 + movs r0, 0x1 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] +_080F1D88: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F1CFC +_080F1D92: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, _080F1DB8 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r4, _080F1DC0 @ =0x0000030e + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r8, r0 + bge _080F1DB0 + b _080F1C7E +_080F1DB0: + b _080F1DC8 + .align 2, 0 +_080F1DB4: .4byte gSpriteTemplate_83E4454 +_080F1DB8: .4byte gUnknown_083DFEC4 +_080F1DBC: .4byte gSprites +_080F1DC0: .4byte 0x0000030e +_080F1DC4: + movs r0, 0 + b _080F1DD8 +_080F1DC8: + ldr r0, _080F1DE8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r5, _080F1DEC @ =0x00000306 + adds r1, r5 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F1DD8: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F1DE8: .4byte gUnknown_083DFEC4 +_080F1DEC: .4byte 0x00000306 + thumb_func_end sub_80F1BC8 + + thumb_func_start sub_80F1DF0 +sub_80F1DF0: @ 80F1DF0 + push {r4-r6,lr} + movs r2, 0 + ldr r0, _080F1E44 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F1E48 @ =0x0000030e + adds r1, r3, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1E38 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r3, r0 + adds r6, r1, 0 + ldr r5, _080F1E4C @ =sub_80F2218 +_080F1E0E: + movs r1, 0 + adds r3, r2, 0x1 + lsls r2, 4 +_080F1E14: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1E22 + str r5, [r0, 0x1C] +_080F1E22: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1E14 + lsls r0, r3, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1E0E +_080F1E38: + movs r0, 0x6 + bl PlaySE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F1E44: .4byte gUnknown_083DFEC4 +_080F1E48: .4byte 0x0000030e +_080F1E4C: .4byte sub_80F2218 + thumb_func_end sub_80F1DF0 + + thumb_func_start sub_80F1E50 +sub_80F1E50: @ 80F1E50 + push {lr} + bl sub_80F22F8 + lsls r0, 24 + cmp r0, 0 + bne _080F1E60 + movs r0, 0x1 + b _080F1E66 +_080F1E60: + bl sub_80F2108 + movs r0, 0 +_080F1E66: + pop {r1} + bx r1 + thumb_func_end sub_80F1E50 + + thumb_func_start sub_80F1E6C +sub_80F1E6C: @ 80F1E6C + push {lr} + bl sub_80F22F8 + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _080F1E7C + movs r1, 0x1 +_080F1E7C: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80F1E6C + + thumb_func_start sub_80F1E84 +sub_80F1E84: @ 80F1E84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, _080F1EFC @ =gUnknown_083DFEC4 + ldr r4, [r5] + ldr r1, _080F1F00 @ =0x0000030f + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + bl sub_80F2148 + movs r2, 0 + ldr r3, _080F1F04 @ =0x0000030e + adds r1, r4, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bge _080F1EF2 + ldr r0, _080F1F08 @ =0x00006dad + adds r7, r4, r0 + adds r6, r1, 0 + mov r8, r5 + ldr r1, _080F1F0C @ =sub_80F2240 + mov r12, r1 +_080F1EB4: + movs r0, 0 + ldrsb r0, [r7, r0] + adds r5, r2, 0x1 + cmp r2, r0 + beq _080F1EE6 + movs r1, 0 + mov r3, r8 + ldr r0, [r3] + lsls r3, r2, 4 + movs r4, 0xC8 + lsls r4, 2 + adds r2, r0, r4 + mov r4, r12 +_080F1ECE: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F1EDC + str r4, [r0, 0x1C] +_080F1EDC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F1ECE +_080F1EE6: + lsls r0, r5, 16 + lsrs r2, r0, 16 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r2, r0 + blt _080F1EB4 +_080F1EF2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F1EFC: .4byte gUnknown_083DFEC4 +_080F1F00: .4byte 0x0000030f +_080F1F04: .4byte 0x0000030e +_080F1F08: .4byte 0x00006dad +_080F1F0C: .4byte sub_80F2240 + thumb_func_end sub_80F1E84 + + thumb_func_start sub_80F1F10 +sub_80F1F10: @ 80F1F10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080F1F2C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F1F30 @ =0x0000030f + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F1F34 + cmp r0, 0x1 + beq _080F1FC0 + b _080F1FE4 + .align 2, 0 +_080F1F2C: .4byte gUnknown_083DFEC4 +_080F1F30: .4byte 0x0000030f +_080F1F34: + bl sub_80F2360 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + movs r6, 0 + adds r7, r4, 0 + movs r0, 0xC8 + lsls r0, 2 + adds r0, r7 + mov r8, r0 +_080F1F4A: + lsls r5, r6, 2 + ldr r1, _080F1FAC @ =0x00006dad + adds r0, r7, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 4 + adds r0, r5, r0 + add r0, r8 + ldr r4, [r0] + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080F1FB0 @ =gUnknown_083E4450 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + subs r5, 0x6 + strh r5, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x36] + movs r1, 0x36 + ldrsh r0, [r4, r1] + lsls r0, 3 + strh r0, [r4, 0x38] + ldr r0, _080F1FB4 @ =sub_80F2240 + str r0, [r4, 0x1C] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _080F1F4A + bl sub_80F2170 + ldr r0, _080F1FB8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F1FBC @ =0x0000030f + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F1FE4 + .align 2, 0 +_080F1FAC: .4byte 0x00006dad +_080F1FB0: .4byte gUnknown_083E4450 +_080F1FB4: .4byte sub_80F2240 +_080F1FB8: .4byte gUnknown_083DFEC4 +_080F1FBC: .4byte 0x0000030f +_080F1FC0: + bl sub_80F23C8 + lsls r0, 24 + cmp r0, 0 + beq _080F1FE4 + bl sub_80F21F8 + movs r0, 0 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpritePaletteByTag + movs r0, 0x1 + bl FreeSpritePaletteByTag + movs r0, 0 + b _080F1FE6 +_080F1FE4: + movs r0, 0x1 +_080F1FE6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F1F10 + + thumb_func_start sub_80F1FF0 +sub_80F1FF0: @ 80F1FF0 + push {r4,lr} + ldr r0, _080F203C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F2040 @ =0x00000311 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F2058 + ldr r2, _080F2044 @ =REG_WIN0V + ldr r3, _080F2048 @ =0x00006dad + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r1, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r0, r4, r3 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _080F204C @ =REG_BLDY + ldr r1, _080F2050 @ =gSineTable + ldr r0, _080F2054 @ =0x00000312 + adds r2, r4, r0 + ldrh r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + strh r0, [r3] + ldrh r0, [r2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + b _080F2078 + .align 2, 0 +_080F203C: .4byte gUnknown_083DFEC4 +_080F2040: .4byte 0x00000311 +_080F2044: .4byte REG_WIN0V +_080F2048: .4byte 0x00006dad +_080F204C: .4byte REG_BLDY +_080F2050: .4byte gSineTable +_080F2054: .4byte 0x00000312 +_080F2058: + cmp r0, 0x2 + bne _080F2078 + ldr r2, _080F2080 @ =REG_BLDALPHA + ldr r1, _080F2084 @ =gUnknown_083E42F8 + ldr r0, _080F2088 @ =0x00000312 + adds r3, r4, r0 + ldrh r0, [r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r3] + cmp r0, 0xE + bhi _080F2078 + adds r0, 0x1 + strh r0, [r3] +_080F2078: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2080: .4byte REG_BLDALPHA +_080F2084: .4byte gUnknown_083E42F8 +_080F2088: .4byte 0x00000312 + thumb_func_end sub_80F1FF0 + + thumb_func_start sub_80F208C +sub_80F208C: @ 80F208C + push {lr} + bl sub_80F2148 + pop {r0} + bx r0 + thumb_func_end sub_80F208C + + thumb_func_start sub_80F2098 +sub_80F2098: @ 80F2098 + ldr r1, _080F20DC @ =REG_WIN0H + ldr r2, _080F20E0 @ =0x000077f0 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _080F20E4 @ =REG_WIN0V + ldr r0, _080F20E8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F20EC @ =0x00006dad + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + movs r3, 0xC5 + lsls r3, 2 + adds r1, r3 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + ldr r1, _080F20F0 @ =REG_WININ + movs r0, 0x3F + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1F + strh r0, [r1] + subs r2, 0x44 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F20DC: .4byte REG_WIN0H +_080F20E0: .4byte 0x000077f0 +_080F20E4: .4byte REG_WIN0V +_080F20E8: .4byte gUnknown_083DFEC4 +_080F20EC: .4byte 0x00006dad +_080F20F0: .4byte REG_WININ + thumb_func_end sub_80F2098 + + thumb_func_start sub_80F20F4 +sub_80F20F4: @ 80F20F4 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F2104 @ =0x0000dfff + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080F2104: .4byte 0x0000dfff + thumb_func_end sub_80F20F4 + + thumb_func_start sub_80F2108 +sub_80F2108: @ 80F2108 + push {lr} + ldr r0, _080F2134 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F2138 @ =0x00000311 + adds r1, r3, r0 + ldrb r2, [r1] + cmp r2, 0 + bne _080F2130 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080F213C @ =0x00000312 + adds r0, r3, r1 + strh r2, [r0] + ldr r1, _080F2140 @ =REG_BLDCNT + movs r0, 0x90 + strh r0, [r1] + ldr r0, _080F2144 @ =REG_BLDY + strh r2, [r0] + bl sub_80F2098 +_080F2130: + pop {r0} + bx r0 + .align 2, 0 +_080F2134: .4byte gUnknown_083DFEC4 +_080F2138: .4byte 0x00000311 +_080F213C: .4byte 0x00000312 +_080F2140: .4byte REG_BLDCNT +_080F2144: .4byte REG_BLDY + thumb_func_end sub_80F2108 + + thumb_func_start sub_80F2148 +sub_80F2148: @ 80F2148 + push {lr} + ldr r0, _080F2164 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2168 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F216C @ =REG_BLDCNT + strh r1, [r0] + bl sub_80F20F4 + pop {r0} + bx r0 + .align 2, 0 +_080F2164: .4byte gUnknown_083DFEC4 +_080F2168: .4byte 0x00000311 +_080F216C: .4byte REG_BLDCNT + thumb_func_end sub_80F2148 + + thumb_func_start sub_80F2170 +sub_80F2170: @ 80F2170 + push {r4-r7,lr} + ldr r7, _080F21E4 @ =gUnknown_083DFEC4 + ldr r4, [r7] + ldr r1, _080F21E8 @ =0x00000311 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F21DC + bl sub_80F20F4 + movs r3, 0 + ldr r2, _080F21EC @ =0x00006dad + adds r5, r4, r2 + movs r0, 0xC8 + lsls r0, 2 + adds r4, r0 + movs r1, 0xD + negs r1, r1 + mov r12, r1 + movs r6, 0x4 +_080F2198: + lsls r1, r3, 2 + movs r0, 0 + ldrsb r0, [r5, r0] + lsls r0, 4 + adds r1, r0 + adds r1, r4, r1 + ldr r2, [r1] + ldrb r1, [r2, 0x1] + mov r0, r12 + ands r0, r1 + orrs r0, r6 + strb r0, [r2, 0x1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F2198 + ldr r1, [r7] + ldr r0, _080F21E8 @ =0x00000311 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x2 + strb r0, [r2] + ldr r2, _080F21F0 @ =0x00000312 + adds r1, r2 + strh r3, [r1] + ldr r1, _080F21F4 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] +_080F21DC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F21E4: .4byte gUnknown_083DFEC4 +_080F21E8: .4byte 0x00000311 +_080F21EC: .4byte 0x00006dad +_080F21F0: .4byte 0x00000312 +_080F21F4: .4byte REG_BLDCNT + thumb_func_end sub_80F2170 + + thumb_func_start sub_80F21F8 +sub_80F21F8: @ 80F21F8 + ldr r0, _080F220C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2210 @ =0x00000311 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080F2214 @ =REG_BLDCNT + strh r1, [r0] + bx lr + .align 2, 0 +_080F220C: .4byte gUnknown_083DFEC4 +_080F2210: .4byte 0x00000311 +_080F2214: .4byte REG_BLDCNT + thumb_func_end sub_80F21F8 + + thumb_func_start sub_80F2218 +sub_80F2218: @ 80F2218 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r2, 0x32] + movs r4, 0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bgt _080F2236 + strh r3, [r2, 0x20] + ldr r0, _080F223C @ =sub_80F22B0 + str r0, [r2, 0x1C] +_080F2236: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F223C: .4byte sub_80F22B0 + thumb_func_end sub_80F2218 + + thumb_func_start sub_80F2240 +sub_80F2240: @ 80F2240 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _080F2288 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F228C @ =0x00006dad + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F2290 + ldrh r3, [r2, 0x38] + movs r4, 0x38 + ldrsh r0, [r2, r4] + cmp r0, 0 + beq _080F2270 + ldrh r0, [r2, 0x36] + ldrh r4, [r2, 0x20] + adds r1, r0, r4 + strh r1, [r2, 0x20] + subs r0, r3, r0 + strh r0, [r2, 0x38] +_080F2270: + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F22A8 + adds r0, r2, 0 + bl sub_80F240C + b _080F22A8 + .align 2, 0 +_080F2288: .4byte gUnknown_083DFEC4 +_080F228C: .4byte 0x00006dad +_080F2290: + ldrh r0, [r2, 0x20] + adds r0, 0x8 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _080F22A8 + adds r0, r2, 0 + bl sub_80F240C +_080F22A8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2240 + + thumb_func_start sub_80F22B0 +sub_80F22B0: @ 80F22B0 + push {lr} + adds r2, r0, 0 + ldr r0, _080F22DC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F22E0 @ =0x00006dad + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _080F22E4 + ldrh r3, [r2, 0x24] + movs r0, 0x24 + ldrsh r1, [r2, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + ble _080F22F2 + subs r0, r3, 0x4 + b _080F22F0 + .align 2, 0 +_080F22DC: .4byte gUnknown_083DFEC4 +_080F22E0: .4byte 0x00006dad +_080F22E4: + ldrh r1, [r2, 0x24] + movs r3, 0x24 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _080F22F2 + adds r0, r1, 0x4 +_080F22F0: + strh r0, [r2, 0x24] +_080F22F2: + pop {r0} + bx r0 + thumb_func_end sub_80F22B0 + + thumb_func_start sub_80F22F8 +sub_80F22F8: @ 80F22F8 + push {r4-r7,lr} + movs r3, 0 + ldr r0, _080F233C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F2340 @ =0x00006dae + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r3, r0 + bge _080F2358 + movs r7, 0xC8 + lsls r7, 2 + adds r4, r1, r7 + movs r5, 0x10 + negs r5, r5 + adds r6, r0, 0 +_080F231A: + movs r1, 0 + lsls r2, r3, 4 +_080F231E: + lsls r0, r1, 2 + adds r0, r2 + adds r0, r4, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F2358 + movs r7, 0x24 + ldrsh r0, [r0, r7] + cmp r0, 0 + beq _080F2344 + cmp r0, r5 + beq _080F2344 + movs r0, 0 + b _080F235A + .align 2, 0 +_080F233C: .4byte gUnknown_083DFEC4 +_080F2340: .4byte 0x00006dae +_080F2344: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F231E + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r6 + blt _080F231A +_080F2358: + movs r0, 0x1 +_080F235A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F22F8 + + thumb_func_start sub_80F2360 +sub_80F2360: @ 80F2360 + push {r4-r7,lr} + movs r4, 0 + ldr r0, _080F23A0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F23A4 @ =0x0000030e + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r4, r1 + bge _080F23C0 + ldr r3, _080F23A8 @ =0x00006dad + adds r0, r2, r3 + movs r6, 0 + ldrsb r6, [r0, r6] + adds r5, r1, 0 +_080F237E: + cmp r4, r6 + beq _080F23B6 + movs r1, 0 + ldr r0, _080F23A0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r3, r4, 4 + movs r7, 0xC8 + lsls r7, 2 + adds r2, r0, r7 +_080F2390: + lsls r0, r1, 2 + adds r0, r3 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23AC + movs r0, 0 + b _080F23C2 + .align 2, 0 +_080F23A0: .4byte gUnknown_083DFEC4 +_080F23A4: .4byte 0x0000030e +_080F23A8: .4byte 0x00006dad +_080F23AC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080F2390 +_080F23B6: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + blt _080F237E +_080F23C0: + movs r0, 0x1 +_080F23C2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F2360 + + thumb_func_start sub_80F23C8 +sub_80F23C8: @ 80F23C8 + push {lr} + movs r2, 0 + ldr r0, _080F23F4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F23F8 @ =0x00006dad + adds r0, r1, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r3, r0, 4 + movs r0, 0xC8 + lsls r0, 2 + adds r1, r0 +_080F23E2: + lsls r0, r2, 2 + adds r0, r3 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F23FC + movs r0, 0 + b _080F2408 + .align 2, 0 +_080F23F4: .4byte gUnknown_083DFEC4 +_080F23F8: .4byte 0x00006dad +_080F23FC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F23E2 + movs r0, 0x1 +_080F2408: + pop {r1} + bx r1 + thumb_func_end sub_80F23C8 + + thumb_func_start sub_80F240C +sub_80F240C: @ 80F240C + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F2454 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r4, r0] + lsls r1, 2 + movs r3, 0x2E + ldrsh r0, [r4, r3] + lsls r0, 4 + adds r1, r0 + movs r0, 0xC8 + lsls r0, 2 + adds r2, r0 + adds r2, r1 + movs r0, 0 + str r0, [r2] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F2446 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080F2446: + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2454: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F240C + + thumb_func_start sub_80F2458 +sub_80F2458: @ 80F2458 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + beq _080F24A0 + cmp r4, 0x1 + bgt _080F246C + cmp r4, 0 + beq _080F2472 + b _080F2502 +_080F246C: + cmp r4, 0x2 + beq _080F24D0 + b _080F2502 +_080F2472: + ldr r2, _080F2498 @ =gUnknown_083DFEC4 + ldr r3, [r2] + movs r0, 0xE0 + lsls r0, 2 + adds r1, r3, r0 + movs r5, 0xE2 + lsls r5, 2 + adds r0, r3, r5 + str r0, [r1] + movs r0, 0xE1 + lsls r0, 2 + adds r1, r3, r0 + movs r0, 0xA0 + lsls r0, 5 + strh r0, [r1] + ldr r1, _080F249C @ =0x00000386 + adds r0, r3, r1 + strh r4, [r0] + b _080F24F6 + .align 2, 0 +_080F2498: .4byte gUnknown_083DFEC4 +_080F249C: .4byte 0x00000386 +_080F24A0: + ldr r4, _080F24C4 @ =gUnknown_083DFEC4 + ldr r1, [r4] + movs r3, 0xE0 + lsls r3, 2 + adds r2, r1, r3 + ldr r5, _080F24C8 @ =0x00001788 + adds r0, r1, r5 + str r0, [r2] + movs r0, 0xE1 + lsls r0, 2 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 4 + strh r0, [r2] + ldr r5, _080F24CC @ =0x00000386 + adds r1, r5 + b _080F24F2 + .align 2, 0 +_080F24C4: .4byte gUnknown_083DFEC4 +_080F24C8: .4byte 0x00001788 +_080F24CC: .4byte 0x00000386 +_080F24D0: + ldr r4, _080F2508 @ =gUnknown_083DFEC4 + ldr r1, [r4] + movs r0, 0xE0 + lsls r0, 2 + adds r2, r1, r0 + ldr r3, _080F250C @ =0x00002388 + adds r0, r1, r3 + str r0, [r2] + movs r5, 0xE1 + lsls r5, 2 + adds r2, r1, r5 + movs r3, 0 + movs r0, 0xC0 + lsls r0, 5 + strh r0, [r2] + ldr r0, _080F2510 @ =0x00000386 + adds r1, r0 +_080F24F2: + strh r3, [r1] + adds r2, r4, 0 +_080F24F6: + ldr r0, [r2] + movs r1, 0xE0 + lsls r1, 2 + adds r0, r1 + bl LoadSpriteSheet +_080F2502: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2508: .4byte gUnknown_083DFEC4 +_080F250C: .4byte 0x00002388 +_080F2510: .4byte 0x00000386 + thumb_func_end sub_80F2458 + + thumb_func_start sub_80F2514 +sub_80F2514: @ 80F2514 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080F2558 + cmp r0, 0x1 + bgt _080F252C + cmp r0, 0 + beq _080F2532 + b _080F2586 +_080F252C: + cmp r1, 0x2 + beq _080F2568 + b _080F2586 +_080F2532: + ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal + str r0, [sp] + ldr r1, _080F2550 @ =0xffff0000 + mov r4, sp + ldr r0, [sp, 0x4] + ands r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal + b _080F257A + .align 2, 0 +_080F254C: .4byte gPokenavMenuOptions1_Pal +_080F2550: .4byte 0xffff0000 +_080F2554: .4byte gPokenavMenuOptions2_Pal +_080F2558: + ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal + str r0, [sp] + mov r1, sp + movs r0, 0 + strh r0, [r1, 0x4] + b _080F2580 + .align 2, 0 +_080F2564: .4byte gPokenavConditionMenu_Pal +_080F2568: + ldr r0, _080F2590 @ =gPokenavCondition6_Pal + str r0, [sp] + mov r4, sp + movs r0, 0 + strh r0, [r4, 0x4] + mov r0, sp + bl LoadSpritePalette + ldr r0, _080F2594 @ =gPokenavCondition7_Pal +_080F257A: + str r0, [sp] + movs r0, 0x1 + strh r0, [r4, 0x4] +_080F2580: + mov r0, sp + bl LoadSpritePalette +_080F2586: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2590: .4byte gPokenavCondition6_Pal +_080F2594: .4byte gPokenavCondition7_Pal + thumb_func_end sub_80F2514 + + thumb_func_start sub_80F2598 +sub_80F2598: @ 80F2598 + push {r4,lr} + ldr r0, _080F25F0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F25F4 @ =0x00006d9c + adds r4, r0, r1 + movs r0, 0 + str r0, [r4] + ldr r1, _080F25F8 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl sub_8082C0C + cmp r0, 0x1 + bne _080F2618 + ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight + bl LoadSpriteSheet + ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight + bl LoadSpritePalette + ldr r0, _080F2604 @ =gSpriteTemplate_83E4484 + movs r1, 0xC + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F260C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2608 @ =gSprites + adds r0, r1 + str r0, [r4] + b _080F2618 + .align 2, 0 +_080F25F0: .4byte gUnknown_083DFEC4 +_080F25F4: .4byte 0x00006d9c +_080F25F8: .4byte gSaveBlock1 +_080F25FC: .4byte gSpriteSheet_PokenavBlueLight +_080F2600: .4byte gSpritePalette_PokenavBlueLight +_080F2604: .4byte gSpriteTemplate_83E4484 +_080F2608: .4byte gSprites +_080F260C: + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag +_080F2618: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2598 + + thumb_func_start sub_80F2620 +sub_80F2620: @ 80F2620 + push {r4,lr} + ldr r0, _080F264C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2650 @ =0x00006d9c + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2644 + bl DestroySprite + movs r0, 0x19 + bl FreeSpriteTilesByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2644: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F264C: .4byte gUnknown_083DFEC4 +_080F2650: .4byte 0x00006d9c + thumb_func_end sub_80F2620 + + thumb_func_start sub_80F2654 +sub_80F2654: @ 80F2654 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080F2682 + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080F2682: + pop {r0} + bx r0 + thumb_func_end sub_80F2654 + + thumb_func_start sub_80F2688 +sub_80F2688: @ 80F2688 + push {lr} + ldr r0, _080F26B0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F26B4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F26B8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F26AA +_080F26A0: + bl sub_80F26BC + lsls r0, 24 + cmp r0, 0 + bne _080F26A0 +_080F26AA: + pop {r0} + bx r0 + .align 2, 0 +_080F26B0: .4byte gUnknown_083DFEC4 +_080F26B4: .4byte 0x00000306 +_080F26B8: .4byte 0x00006dac + thumb_func_end sub_80F2688 + + thumb_func_start sub_80F26BC +sub_80F26BC: @ 80F26BC + push {lr} + ldr r0, _080F26D8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F26DC @ =0x00000306 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x7 + bls _080F26CE + b _080F27BC +_080F26CE: + lsls r0, 2 + ldr r1, _080F26E0 @ =_080F26E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F26D8: .4byte gUnknown_083DFEC4 +_080F26DC: .4byte 0x00000306 +_080F26E0: .4byte _080F26E4 + .align 2, 0 +_080F26E4: + .4byte _080F2704 + .4byte _080F271C + .4byte _080F2734 + .4byte _080F274C + .4byte _080F2764 + .4byte _080F277C + .4byte _080F2794 + .4byte _080F27B0 +_080F2704: + ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx + ldr r1, _080F2714 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2718 @ =0x00003b98 + b _080F279C + .align 2, 0 +_080F2710: .4byte gPokenavMainMenu_Gfx +_080F2714: .4byte gUnknown_083DFEC4 +_080F2718: .4byte 0x00003b98 +_080F271C: + ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx + ldr r1, _080F272C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2730 @ =0x00004198 + b _080F279C + .align 2, 0 +_080F2728: .4byte gPokenavConditionMenuHeader_Gfx +_080F272C: .4byte gUnknown_083DFEC4 +_080F2730: .4byte 0x00004198 +_080F2734: + ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx + ldr r1, _080F2744 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2748 @ =0x00004d98 + b _080F279C + .align 2, 0 +_080F2740: .4byte gPokenavRibbonsHeader_Gfx +_080F2744: .4byte gUnknown_083DFEC4 +_080F2748: .4byte 0x00004d98 +_080F274C: + ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx + ldr r1, _080F275C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2760 @ =0x00005398 + b _080F279C + .align 2, 0 +_080F2758: .4byte gPokenavHoennMapHeader_Gfx +_080F275C: .4byte gUnknown_083DFEC4 +_080F2760: .4byte 0x00005398 +_080F2764: + ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx + ldr r1, _080F2774 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2778 @ =0x00005f98 + b _080F279C + .align 2, 0 +_080F2770: .4byte gPokenavConditionMenuOptions_Gfx +_080F2774: .4byte gUnknown_083DFEC4 +_080F2778: .4byte 0x00005f98 +_080F277C: + ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx + ldr r1, _080F278C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2790 @ =0x00006798 + b _080F279C + .align 2, 0 +_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx +_080F278C: .4byte gUnknown_083DFEC4 +_080F2790: .4byte 0x00006798 +_080F2794: + ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx + ldr r1, _080F27A8 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F27AC @ =0x00004798 +_080F279C: + adds r1, r2 + bl LZ77UnCompWram + b _080F27C0 + .align 2, 0 +_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx +_080F27A8: .4byte gUnknown_083DFEC4 +_080F27AC: .4byte 0x00004798 +_080F27B0: + ldr r0, _080F27B8 @ =gUnknown_083E449C + bl LoadSpritePalettes + b _080F27C0 + .align 2, 0 +_080F27B8: .4byte gUnknown_083E449C +_080F27BC: + movs r0, 0 + b _080F27D0 +_080F27C0: + ldr r0, _080F27D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F27D8 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F27D0: + pop {r1} + bx r1 + .align 2, 0 +_080F27D4: .4byte gUnknown_083DFEC4 +_080F27D8: .4byte 0x00000306 + thumb_func_end sub_80F26BC + + thumb_func_start sub_80F27DC +sub_80F27DC: @ 80F27DC + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bls _080F27EA + b _080F29A0 +_080F27EA: + lsls r0, 2 + ldr r1, _080F27F4 @ =_080F27F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F27F4: .4byte _080F27F8 + .align 2, 0 +_080F27F8: + .4byte _080F2828 + .4byte _080F2858 + .4byte _080F28B8 + .4byte _080F2888 + .4byte _080F28E8 + .4byte _080F2918 + .4byte _080F2928 + .4byte _080F2978 + .4byte _080F2938 + .4byte _080F2948 + .4byte _080F2968 + .4byte _080F2958 +_080F2828: + ldr r0, _080F2848 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F284C @ =0x00003b98 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2850 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2854 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2848: .4byte gUnknown_083DFEC4 +_080F284C: .4byte 0x00003b98 +_080F2850: .4byte 0xffff0000 +_080F2854: .4byte 0x0000ffff +_080F2858: + ldr r0, _080F2878 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F287C @ =0x00004198 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2880 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F2884 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2878: .4byte gUnknown_083DFEC4 +_080F287C: .4byte 0x00004198 +_080F2880: .4byte 0xffff0000 +_080F2884: .4byte 0x0000ffff +_080F2888: + ldr r0, _080F28A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F28AC @ =0x00004798 + adds r0, r1 + str r0, [sp] + ldr r1, _080F28B0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28B4 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28A8: .4byte gUnknown_083DFEC4 +_080F28AC: .4byte 0x00004798 +_080F28B0: .4byte 0xffff0000 +_080F28B4: .4byte 0x0000ffff +_080F28B8: + ldr r0, _080F28D8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F28DC @ =0x00004d98 + adds r0, r1 + str r0, [sp] + ldr r1, _080F28E0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + ldr r1, _080F28E4 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F28D8: .4byte gUnknown_083DFEC4 +_080F28DC: .4byte 0x00004d98 +_080F28E0: .4byte 0xffff0000 +_080F28E4: .4byte 0x0000ffff +_080F28E8: + ldr r0, _080F2908 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F290C @ =0x00005398 + adds r0, r1 + str r0, [sp] + ldr r1, _080F2910 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + ldr r1, _080F2914 @ =0x0000ffff + ands r0, r1 + adds r1, 0x1 + b _080F2996 + .align 2, 0 +_080F2908: .4byte gUnknown_083DFEC4 +_080F290C: .4byte 0x00005398 +_080F2910: .4byte 0xffff0000 +_080F2914: .4byte 0x0000ffff +_080F2918: + ldr r0, _080F2920 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2924 @ =0x00005f98 + b _080F297E + .align 2, 0 +_080F2920: .4byte gUnknown_083DFEC4 +_080F2924: .4byte 0x00005f98 +_080F2928: + ldr r0, _080F2930 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2934 @ =0x00006198 + b _080F297E + .align 2, 0 +_080F2930: .4byte gUnknown_083DFEC4 +_080F2934: .4byte 0x00006198 +_080F2938: + ldr r0, _080F2940 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2944 @ =0x00006398 + b _080F297E + .align 2, 0 +_080F2940: .4byte gUnknown_083DFEC4 +_080F2944: .4byte 0x00006398 +_080F2948: + ldr r0, _080F2950 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2954 @ =0x00006598 + b _080F297E + .align 2, 0 +_080F2950: .4byte gUnknown_083DFEC4 +_080F2954: .4byte 0x00006598 +_080F2958: + ldr r0, _080F2960 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2964 @ =0x00006998 + b _080F297E + .align 2, 0 +_080F2960: .4byte gUnknown_083DFEC4 +_080F2964: .4byte 0x00006998 +_080F2968: + ldr r0, _080F2970 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2974 @ =0x00006798 + b _080F297E + .align 2, 0 +_080F2970: .4byte gUnknown_083DFEC4 +_080F2974: .4byte 0x00006798 +_080F2978: + ldr r0, _080F29A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F29AC @ =0x00006b98 +_080F297E: + adds r0, r1 + str r0, [sp] + ldr r1, _080F29B0 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + ldr r1, _080F29B4 @ =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 10 +_080F2996: + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet +_080F29A0: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080F29A8: .4byte gUnknown_083DFEC4 +_080F29AC: .4byte 0x00006b98 +_080F29B0: .4byte 0xffff0000 +_080F29B4: .4byte 0x0000ffff + thumb_func_end sub_80F27DC + + thumb_func_start sub_80F29B8 +sub_80F29B8: @ 80F29B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + cmp r7, 0xB + bls _080F29D2 + b _080F2BA6 +_080F29D2: + lsls r0, r7, 2 + ldr r1, _080F29DC @ =_080F29E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F29DC: .4byte _080F29E0 + .align 2, 0 +_080F29E0: + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A10 + .4byte _080F2A58 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A94 + .4byte _080F2A94 + .4byte _080F2A98 + .4byte _080F2A98 +_080F2A10: + ldr r3, _080F2A44 @ =0x0000ffa0 + ldr r0, _080F2A48 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r4, 0x8 + str r4, [sp] + movs r1, 0x20 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A4C @ =0x00003b88 + adds r4, r2 + mov r9, r4 + ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8 + mov r8, r2 + cmp r7, 0x3 + beq _080F2AC8 + ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0 + mov r8, r4 + b _080F2AC8 + .align 2, 0 +_080F2A44: .4byte 0x0000ffa0 +_080F2A48: .4byte gUnknown_083DFEC4 +_080F2A4C: .4byte 0x00003b88 +_080F2A50: .4byte gSpriteTemplate_83E44F8 +_080F2A54: .4byte gSpriteTemplate_83E44E0 +_080F2A58: + movs r3, 0x88 + lsls r3, 1 + ldr r0, _080F2A84 @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r2, r1 + ldrh r1, [r0] + movs r0, 0x31 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r4, _080F2A88 @ =0x0000fff8 + str r4, [sp] + movs r1, 0x98 + str r1, [sp, 0x4] + movs r1, 0x40 + ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0 + mov r8, r4 + ldr r4, _080F2A90 @ =0x00003b88 + b _080F2AC4 + .align 2, 0 +_080F2A84: .4byte gUnknown_083DFEC4 +_080F2A88: .4byte 0x0000fff8 +_080F2A8C: .4byte gSpriteTemplate_83E44E0 +_080F2A90: .4byte 0x00003b88 +_080F2A94: + ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530 + mov r8, r0 +_080F2A98: + mov r1, r8 + cmp r1, 0 + bne _080F2AA2 + ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548 + mov r8, r2 +_080F2AA2: + ldr r3, _080F2B48 @ =0x0000ffa0 + ldr r0, _080F2B4C @ =gUnknown_083DFEC4 + ldr r2, [r0] + movs r4, 0xC3 + lsls r4, 2 + adds r0, r2, r4 + ldrh r1, [r0] + movs r0, 0x44 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x8 + str r1, [sp] + movs r4, 0x10 + str r4, [sp, 0x4] + movs r1, 0x20 + ldr r4, _080F2B50 @ =0x00003b90 +_080F2AC4: + adds r4, r2 + mov r9, r4 +_080F2AC8: + movs r6, 0 + lsls r1, 16 + str r1, [sp, 0x10] + lsls r3, 16 + str r3, [sp, 0x8] + lsls r0, 16 + str r0, [sp, 0xC] + ldr r0, _080F2B54 @ =gSprites + mov r10, r0 +_080F2ADA: + ldr r1, [sp, 0x10] + asrs r0, r1, 16 + adds r5, r6, 0 + muls r5, r0 + ldr r2, [sp, 0x8] + asrs r1, r2, 16 + adds r1, r5 + lsls r1, 16 + asrs r1, 16 + mov r0, r8 + ldr r3, [sp, 0xC] + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x40 + beq _080F2B9C + lsls r0, r4, 4 + adds r1, r0, r4 + lsls r1, 2 + mov r2, r10 + adds r3, r1, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r3, 0x2E] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + strh r1, [r3, 0x30] + strh r6, [r3, 0x32] + strh r7, [r3, 0x34] + adds r5, r0, 0 + cmp r7, 0x4 + bne _080F2B5C + cmp r6, 0x1 + bne _080F2B5C + ldr r0, _080F2B4C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2B58 @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2B36 + movs r1, 0x1 +_080F2B36: + adds r0, r3, 0 + bl StartSpriteAnim + b _080F2B6A + .align 2, 0 +_080F2B40: .4byte gSpriteTemplate_83E4530 +_080F2B44: .4byte gSpriteTemplate_83E4548 +_080F2B48: .4byte 0x0000ffa0 +_080F2B4C: .4byte gUnknown_083DFEC4 +_080F2B50: .4byte 0x00003b90 +_080F2B54: .4byte gSprites +_080F2B58: .4byte 0x00006e90 +_080F2B5C: + adds r0, r5, r4 + lsls r0, 2 + add r0, r10 + lsls r1, r6, 24 + lsrs r1, 24 + bl StartSpriteAnim +_080F2B6A: + ldr r2, _080F2BB8 @ =gSprites + mov r12, r2 + cmp r7, 0x3 + bhi _080F2B90 + cmp r6, 0x1 + bne _080F2B90 + adds r2, r5, r4 + lsls r2, 2 + add r2, r10 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] +_080F2B90: + lsls r1, r6, 2 + add r1, r9 + adds r0, r5, r4 + lsls r0, 2 + add r0, r12 + str r0, [r1] +_080F2B9C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _080F2ADA +_080F2BA6: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2BB8: .4byte gSprites + thumb_func_end sub_80F29B8 + + thumb_func_start sub_80F2BBC +sub_80F2BBC: @ 80F2BBC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + ldrh r1, [r2, 0x2E] + adds r3, r0, r1 + strh r3, [r2, 0x20] + lsls r0, 16 + asrs r4, r0, 16 + movs r0, 0x30 + ldrsh r1, [r2, r0] + cmp r4, r1 + bgt _080F2BE0 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bge _080F2BE8 + cmp r4, r1 + blt _080F2C08 +_080F2BE0: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r1 + bgt _080F2C08 +_080F2BE8: + ldrh r0, [r2, 0x30] + strh r0, [r2, 0x20] + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bne _080F2C04 + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F2C04 + ldr r0, _080F2C00 @ =sub_80F2C58 + b _080F2C06 + .align 2, 0 +_080F2C00: .4byte sub_80F2C58 +_080F2C04: + ldr r0, _080F2C10 @ =SpriteCallbackDummy +_080F2C06: + str r0, [r2, 0x1C] +_080F2C08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2C10: .4byte SpriteCallbackDummy + thumb_func_end sub_80F2BBC + + thumb_func_start sub_80F2C14 +sub_80F2C14: @ 80F2C14 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + ldrh r1, [r4, 0x2E] + subs r0, r1 + strh r0, [r4, 0x20] + adds r0, 0x20 + lsls r0, 16 + movs r1, 0x98 + lsls r1, 17 + cmp r0, r1 + bls _080F2C50 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080F2C4A + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bgt _080F2C44 + movs r0, 0x1 + bl FreeSpriteTilesByTag + b _080F2C4A +_080F2C44: + movs r0, 0x2 + bl FreeSpriteTilesByTag +_080F2C4A: + adds r0, r4, 0 + bl DestroySprite +_080F2C50: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F2C14 + + thumb_func_start sub_80F2C58 +sub_80F2C58: @ 80F2C58 + push {lr} + adds r2, r0, 0 + ldr r0, _080F2C78 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2C7C @ =0x00006e90 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0 + bne _080F2C6E + movs r1, 0x1 +_080F2C6E: + adds r0, r2, 0 + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F2C78: .4byte gUnknown_083DFEC4 +_080F2C7C: .4byte 0x00006e90 + thumb_func_end sub_80F2C58 + + thumb_func_start sub_80F2C80 +sub_80F2C80: @ 80F2C80 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F2CB0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2CB4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F2CB8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F2CA8 +_080F2C9C: + adds r0, r4, 0 + bl sub_80F2CBC + lsls r0, 24 + cmp r0, 0 + bne _080F2C9C +_080F2CA8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2CB0: .4byte gUnknown_083DFEC4 +_080F2CB4: .4byte 0x00000306 +_080F2CB8: .4byte 0x00006dac + thumb_func_end sub_80F2C80 + + thumb_func_start sub_80F2CBC +sub_80F2CBC: @ 80F2CBC + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F2CD8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F2CDC @ =0x00000306 + adds r4, r0, r2 + ldrh r0, [r4] + cmp r0, 0 + beq _080F2CE0 + cmp r0, 0x1 + beq _080F2CF0 + b _080F2CFC + .align 2, 0 +_080F2CD8: .4byte gUnknown_083DFEC4 +_080F2CDC: .4byte 0x00000306 +_080F2CE0: + adds r0, r1, 0 + bl sub_80F27DC + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0x1 + b _080F2CFE +_080F2CF0: + adds r0, r1, 0 + bl sub_80F29B8 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F2CFC: + movs r0, 0 +_080F2CFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F2CBC + + thumb_func_start sub_80F2D04 +sub_80F2D04: @ 80F2D04 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2D3C + movs r1, 0 + ldr r0, _080F2D30 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F2D34 @ =0x00003b88 + adds r2, r0, r3 + ldr r3, _080F2D38 @ =sub_80F2C14 +_080F2D1A: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D1A + b _080F2D5A + .align 2, 0 +_080F2D30: .4byte gUnknown_083DFEC4 +_080F2D34: .4byte 0x00003b88 +_080F2D38: .4byte sub_80F2C14 +_080F2D3C: + movs r1, 0 + ldr r0, _080F2D60 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F2D64 @ =0x00003b90 + adds r2, r0, r3 + ldr r3, _080F2D68 @ =sub_80F2C14 +_080F2D48: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + str r3, [r0, 0x1C] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F2D48 +_080F2D5A: + pop {r0} + bx r0 + .align 2, 0 +_080F2D60: .4byte gUnknown_083DFEC4 +_080F2D64: .4byte 0x00003b90 +_080F2D68: .4byte sub_80F2C14 + thumb_func_end sub_80F2D04 + + thumb_func_start sub_80F2D6C +sub_80F2D6C: @ 80F2D6C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F2DA4 + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2D9C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2DA0 @ =0x00003b88 + adds r5, r0, r1 +_080F2D86: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2D86 + b _080F2DC8 + .align 2, 0 +_080F2D9C: .4byte gUnknown_083DFEC4 +_080F2DA0: .4byte 0x00003b88 +_080F2DA4: + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r4, 0 + ldr r0, _080F2DD0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2DD4 @ =0x00003b90 + adds r5, r0, r1 +_080F2DB4: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F2DB4 +_080F2DC8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2DD0: .4byte gUnknown_083DFEC4 +_080F2DD4: .4byte 0x00003b90 + thumb_func_end sub_80F2D6C + + thumb_func_start sub_80F2DD8 +sub_80F2DD8: @ 80F2DD8 + push {lr} + movs r0, 0x7 + movs r1, 0x7 + bl sub_80FBB3C + movs r0, 0x8 + movs r1, 0x8 + bl sub_80FBCF0 + bl sub_80FBF94 + pop {r0} + bx r0 + thumb_func_end sub_80F2DD8 + + thumb_func_start sub_80F2DF4 +sub_80F2DF4: @ 80F2DF4 + push {lr} + bl sub_80FAB10 + pop {r0} + bx r0 + thumb_func_end sub_80F2DF4 + + thumb_func_start sub_80F2E00 +sub_80F2E00: @ 80F2E00 + ldr r1, _080F2E10 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F2E14 @ =0x00008766 + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x26 + strh r1, [r0, 0x20] + bx lr + .align 2, 0 +_080F2E10: .4byte gUnknown_083DFEC4 +_080F2E14: .4byte 0x00008766 + thumb_func_end sub_80F2E00 + + thumb_func_start sub_80F2E18 +sub_80F2E18: @ 80F2E18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080F2EA8 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F2EAC @ =0x00008768 + adds r7, r4, r0 + ldr r1, [r7] + mov r8, r1 + cmp r1, 0 + bne _080F2EFC + ldr r0, _080F2EB0 @ =gUnknown_083E4568 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldr r0, _080F2EB8 @ =gUnknown_083E4588 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + lsls r0, r3, 13 + ldr r1, _080F2EBC @ =0x0000d1e4 + adds r0, r1 + adds r0, r4, r0 + str r0, [sp, 0x20] + lsls r0, r3, 7 + adds r0, r4, r0 + str r0, [sp, 0x18] + add r0, sp, 0x18 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F2EC0 @ =0x0000d1dc + adds r5, r4, r2 + strh r0, [r5] + add r0, sp, 0x20 + bl LoadSpriteSheet + ldr r1, _080F2EC4 @ =0x0000d1de + adds r6, r4, r1 + strh r0, [r6] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F2EC8 + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + mov r2, r8 + str r2, [r7] + b _080F2F26 + .align 2, 0 +_080F2EA8: .4byte gUnknown_083DFEC4 +_080F2EAC: .4byte 0x00008768 +_080F2EB0: .4byte gUnknown_083E4568 +_080F2EB4: .4byte gSpriteTemplate_83E4570 +_080F2EB8: .4byte gUnknown_083E4588 +_080F2EBC: .4byte 0x0000d1e4 +_080F2EC0: .4byte 0x0000d1dc +_080F2EC4: .4byte 0x0000d1de +_080F2EC8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F2EF0 @ =gSprites + adds r0, r1 + str r0, [r7] + ldr r0, _080F2EF4 @ =0x0000d1e0 + adds r1, r4, r0 + ldrh r0, [r6] + lsls r0, 5 + ldr r2, _080F2EF8 @ =0x06010000 + adds r0, r2 + str r0, [r1] + ldrh r0, [r5] + lsls r0, 4 + movs r6, 0x80 + lsls r6, 1 + adds r0, r6 + strh r0, [r5] + b _080F2F26 + .align 2, 0 +_080F2EF0: .4byte gSprites +_080F2EF4: .4byte 0x0000d1e0 +_080F2EF8: .4byte 0x06010000 +_080F2EFC: + lsls r0, r3, 13 + ldr r1, _080F2F34 @ =0x0000d1e4 + adds r0, r1 + adds r0, r4, r0 + ldr r2, _080F2F38 @ =0x0000d1e0 + adds r1, r4, r2 + ldr r2, [r1] + ldr r1, _080F2F3C @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080F2F40 @ =0x80000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + lsls r0, r3, 7 + adds r0, r4, r0 + ldr r5, _080F2F44 @ =0x0000d1dc + adds r1, r4, r5 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_080F2F26: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F2F34: .4byte 0x0000d1e4 +_080F2F38: .4byte 0x0000d1e0 +_080F2F3C: .4byte 0x040000d4 +_080F2F40: .4byte 0x80000400 +_080F2F44: .4byte 0x0000d1dc + thumb_func_end sub_80F2E18 + + thumb_func_start sub_80F2F48 +sub_80F2F48: @ 80F2F48 + push {r4,lr} + ldr r0, _080F2F74 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2F78 @ =0x00008768 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F2F6C + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F2F6C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F2F74: .4byte gUnknown_083DFEC4 +_080F2F78: .4byte 0x00008768 + thumb_func_end sub_80F2F48 + + thumb_func_start sub_80F2F7C +sub_80F2F7C: @ 80F2F7C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80F2E18 + ldr r0, _080F2FA0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F2FA4 @ =0x0000ced0 + adds r2, r0, r1 + ldr r1, _080F2FA8 @ =0x00008768 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + ldr r0, _080F2FAC @ =sub_80F2FEC + str r0, [r1, 0x1C] + pop {r0} + bx r0 + .align 2, 0 +_080F2FA0: .4byte gUnknown_083DFEC4 +_080F2FA4: .4byte 0x0000ced0 +_080F2FA8: .4byte 0x00008768 +_080F2FAC: .4byte sub_80F2FEC + thumb_func_end sub_80F2F7C + + thumb_func_start sub_80F2FB0 +sub_80F2FB0: @ 80F2FB0 + push {r4,r5,lr} + ldr r0, _080F2FE0 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r0, _080F2FE4 @ =0x0000ced0 + adds r4, r5, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F2FDA + bl DestroySprite + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r1, 0 + str r1, [r4] + ldr r2, _080F2FE8 @ =0x00008768 + adds r0, r5, r2 + str r1, [r0] +_080F2FDA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F2FE0: .4byte gUnknown_083DFEC4 +_080F2FE4: .4byte 0x0000ced0 +_080F2FE8: .4byte 0x00008768 + thumb_func_end sub_80F2FB0 + + thumb_func_start sub_80F2FEC +sub_80F2FEC: @ 80F2FEC + ldr r1, _080F3000 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F3004 @ =0x0000d15a + adds r1, r2 + ldrh r1, [r1] + adds r1, 0x28 + strh r1, [r0, 0x20] + movs r1, 0x68 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F3000: .4byte gUnknown_083DFEC4 +_080F3004: .4byte 0x0000d15a + thumb_func_end sub_80F2FEC + + thumb_func_start sub_80F3008 +sub_80F3008: @ 80F3008 + push {r4,r5,lr} + sub sp, 0x20 + lsls r0, 24 + lsrs r2, r0, 24 + mov r1, sp + ldr r0, _080F3060 @ =gUnknown_083E4590 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, _080F3064 @ =gUnknown_083E45A8 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + cmp r2, 0x2 + bgt _080F3032 + cmp r2, 0x1 + blt _080F3032 + ldr r0, _080F3068 @ =gUnknown_08E9F988 + str r0, [sp, 0x18] +_080F3032: + mov r0, sp + bl LoadSpriteSheets + add r0, sp, 0x18 + bl LoadSpritePalette + ldr r0, _080F306C @ =gSpriteTemplate_83E45B8 + movs r1, 0x5F + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3078 + ldr r0, _080F3070 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3074 @ =0x000087cc + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F3120 + .align 2, 0 +_080F3060: .4byte gUnknown_083E4590 +_080F3064: .4byte gUnknown_083E45A8 +_080F3068: .4byte gUnknown_08E9F988 +_080F306C: .4byte gSpriteTemplate_83E45B8 +_080F3070: .4byte gUnknown_083DFEC4 +_080F3074: .4byte 0x000087cc +_080F3078: + ldr r0, _080F30F4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F30F8 @ =0x000087cc + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC @ =gSprites + adds r0, r1 + str r0, [r2] + movs r4, 0 + movs r5, 0 +_080F3090: + lsls r2, r4, 7 + adds r2, 0x8 + lsls r2, 16 + asrs r2, 16 + ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0 + movs r1, 0xA8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3108 + ldr r0, _080F30F4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r0, r4, 2 + ldr r3, _080F3104 @ =0x000087d0 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F30FC @ =gSprites + adds r3, r0, r1 + str r3, [r2] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + strh r5, [r3, 0x2E] + strh r5, [r3, 0x30] + movs r0, 0x1 + cmp r4, 0 + bne _080F30DE + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_080F30DE: + strh r0, [r3, 0x32] + strh r4, [r3, 0x34] + movs r0, 0x1 + strh r0, [r3, 0x36] + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r3, 0 + bl StartSpriteAnim + b _080F3116 + .align 2, 0 +_080F30F4: .4byte gUnknown_083DFEC4 +_080F30F8: .4byte 0x000087cc +_080F30FC: .4byte gSprites +_080F3100: .4byte gSpriteTemplate_83E45F0 +_080F3104: .4byte 0x000087d0 +_080F3108: + ldr r0, _080F3128 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F312C @ =0x000087d0 + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080F3116: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F3090 +_080F3120: + add sp, 0x20 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3128: .4byte gUnknown_083DFEC4 +_080F312C: .4byte 0x000087d0 + thumb_func_end sub_80F3008 + + thumb_func_start sub_80F3130 +sub_80F3130: @ 80F3130 + push {r4-r6,lr} + ldr r0, _080F3184 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F3188 @ =0x000087cc + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3154 + bl DestroySprite + movs r0, 0x9 + bl FreeSpriteTilesByTag + movs r0, 0x9 + bl FreeSpritePaletteByTag + movs r0, 0 + str r0, [r4] +_080F3154: + movs r5, 0 + ldr r0, _080F318C @ =0x000087d0 + adds r6, r0 +_080F315A: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F316C + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F316C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F315A + movs r0, 0xA + bl FreeSpriteTilesByTag + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3184: .4byte gUnknown_083DFEC4 +_080F3188: .4byte 0x000087cc +_080F318C: .4byte 0x000087d0 + thumb_func_end sub_80F3130 + + thumb_func_start sub_80F3190 +sub_80F3190: @ 80F3190 + ldr r1, _080F31A4 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r2, _080F31A8 @ =0x0000876c + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 4 + adds r1, 0x10 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F31A4: .4byte gUnknown_083DFEC4 +_080F31A8: .4byte 0x0000876c + thumb_func_end sub_80F3190 + + thumb_func_start sub_80F31AC +sub_80F31AC: @ 80F31AC + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F31E8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F31EC @ =0x000087c9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F325C + movs r4, 0x36 + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _080F3226 + movs r5, 0x34 + ldrsh r0, [r3, r5] + cmp r0, 0 + bne _080F31F4 + movs r2, 0 + ldr r4, _080F31F0 @ =0x00008770 + adds r0, r1, r4 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F31DE + movs r2, 0x1 +_080F31DE: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, 2 + b _080F3214 + .align 2, 0 +_080F31E8: .4byte gUnknown_083DFEC4 +_080F31EC: .4byte 0x000087c9 +_080F31F0: .4byte 0x00008770 +_080F31F4: + movs r4, 0 + ldr r2, _080F3250 @ =0x00008772 + adds r0, r1, r2 + ldr r5, _080F3254 @ =0x00008774 + adds r1, r5 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r2, r0 + bne _080F320C + movs r4, 0x1 +_080F320C: + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + lsls r2, r4, 2 +_080F3214: + ldrb r1, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r2 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + strh r0, [r3, 0x36] +_080F3226: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080F325C + strh r1, [r3, 0x2E] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080F3258 + ldrh r0, [r3, 0x32] + ldrh r2, [r3, 0x26] + adds r0, r2 + strh r0, [r3, 0x26] + b _080F325C + .align 2, 0 +_080F3250: .4byte 0x00008772 +_080F3254: .4byte 0x00008774 +_080F3258: + strh r1, [r3, 0x30] + strh r1, [r3, 0x26] +_080F325C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F31AC + + thumb_func_start sub_80F3264 +sub_80F3264: @ 80F3264 + push {lr} + movs r1, 0 + ldr r0, _080F328C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F3290 @ =0x000087d0 + adds r2, r0, r3 + movs r3, 0x1 +_080F3272: + lsls r0, r1, 2 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F327E + strh r3, [r0, 0x36] +_080F327E: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _080F3272 + pop {r0} + bx r0 + .align 2, 0 +_080F328C: .4byte gUnknown_083DFEC4 +_080F3290: .4byte 0x000087d0 + thumb_func_end sub_80F3264 + + thumb_func_start sub_80F3294 +sub_80F3294: @ 80F3294 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080F32F4 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F32F8 @ =0x000087cc + adds r0, r4, r1 + ldr r2, [r0] + adds r2, 0x3E + movs r0, 0x1 + adds r1, r6, 0 + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r5, 0x5 + negs r5, r5 + adds r0, r5, 0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r2, _080F32FC @ =0x000087c9 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F331A + cmp r6, 0x1 + bne _080F3308 + ldr r1, _080F3300 @ =0x000087d0 + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, _080F3304 @ =0x000087d4 + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1] + b _080F331A + .align 2, 0 +_080F32F4: .4byte gUnknown_083DFEC4 +_080F32F8: .4byte 0x000087cc +_080F32FC: .4byte 0x000087c9 +_080F3300: .4byte 0x000087d0 +_080F3304: .4byte 0x000087d4 +_080F3308: + ldr r1, _080F3320 @ =0x000087d0 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x1 + strh r1, [r0, 0x36] + ldr r2, _080F3324 @ =0x000087d4 + adds r0, r4, r2 + ldr r0, [r0] + strh r1, [r0, 0x36] +_080F331A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3320: .4byte 0x000087d0 +_080F3324: .4byte 0x000087d4 + thumb_func_end sub_80F3294 + + thumb_func_start sub_80F3328 +sub_80F3328: @ 80F3328 + push {lr} + adds r2, r0, 0 + ldr r0, _080F334C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3350 @ =0x000087dc + adds r0, r1 + movs r3, 0x2E + ldrsh r1, [r2, r3] + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r1, r0 + bne _080F3354 + adds r0, r2, 0 + movs r1, 0 + bl StartSpriteAnim + b _080F335C + .align 2, 0 +_080F334C: .4byte gUnknown_083DFEC4 +_080F3350: .4byte 0x000087dc +_080F3354: + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAnim +_080F335C: + pop {r0} + bx r0 + thumb_func_end sub_80F3328 + + thumb_func_start sub_80F3360 +sub_80F3360: @ 80F3360 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080F3384 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F3388 @ =0x000087dc + adds r1, r0, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, _080F338C @ =0x000087da + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r0, 0x1 + cmp r1, r0 + bne _080F3390 + movs r0, 0x4 + b _080F3392 + .align 2, 0 +_080F3384: .4byte gUnknown_083DFEC4 +_080F3388: .4byte 0x000087dc +_080F338C: .4byte 0x000087da +_080F3390: + movs r0, 0x5 +_080F3392: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F3360 + + thumb_func_start sub_80F33A8 +sub_80F33A8: @ 80F33A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x50 + mov r1, sp + ldr r0, _080F3440 @ =gUnknown_083E4628 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r4} + stm r1!, {r3,r4} + add r4, sp, 0x20 + adds r1, r4, 0 + ldr r0, _080F3444 @ =gUnknown_083E4648 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r3,r5,r6} + stm r1!, {r3,r5,r6} + add r5, sp, 0x38 + adds r1, r5, 0 + ldr r0, _080F3448 @ =gSpriteTemplate_83E4660 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + movs r6, 0 + ldr r2, _080F344C @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080F3450 @ =0x000087da + adds r0, r1, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + subs r0, 0x1 + adds r7, r5, 0 + cmp r6, r0 + bge _080F347A + adds r5, r2, 0 + adds r0, r3, 0 + adds r0, r1 + mov r8, r0 +_080F3406: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F345C + ldr r0, [r5] + ldr r2, _080F3454 @ =0x000087e4 + adds r0, r2 + adds r0, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r2, _080F3458 @ =gSprites + adds r1, r2 + str r1, [r0] + strh r6, [r1, 0x2E] + b _080F3468 + .align 2, 0 +_080F3440: .4byte gUnknown_083E4628 +_080F3444: .4byte gUnknown_083E4648 +_080F3448: .4byte gSpriteTemplate_83E4660 +_080F344C: .4byte gUnknown_083DFEC4 +_080F3450: .4byte 0x000087da +_080F3454: .4byte 0x000087e4 +_080F3458: .4byte gSprites +_080F345C: + ldr r0, [r5] + ldr r3, _080F34C8 @ =0x000087e4 + adds r0, r3 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F3468: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r4, r8 + movs r1, 0 + ldrsh r0, [r4, r1] + subs r0, 0x1 + cmp r6, r0 + blt _080F3406 +_080F347A: + movs r0, 0x4 + strh r0, [r7] + ldr r0, _080F34CC @ =SpriteCallbackDummy + str r0, [r7, 0x14] + cmp r6, 0x5 + bhi _080F34EE + ldr r5, _080F34D0 @ =gUnknown_083DFEC4 +_080F3488: + lsls r4, r6, 2 + adds r2, r4, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F34D8 + ldr r2, [r5] + ldr r0, _080F34C8 @ =0x000087e4 + adds r2, r0 + adds r2, r4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F34D4 @ =gSprites + adds r1, r0 + str r1, [r2] + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _080F34E4 + .align 2, 0 +_080F34C8: .4byte 0x000087e4 +_080F34CC: .4byte SpriteCallbackDummy +_080F34D0: .4byte gUnknown_083DFEC4 +_080F34D4: .4byte gSprites +_080F34D8: + ldr r0, [r5] + ldr r1, _080F3548 @ =0x000087e4 + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080F34E4: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F3488 +_080F34EE: + movs r0, 0x5 + strh r0, [r7] + ldr r0, _080F354C @ =sub_80F3360 + str r0, [r7, 0x14] + lsls r5, r6, 2 + adds r2, r5, r6 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F3558 + ldr r0, _080F3550 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r6, _080F3548 @ =0x000087e4 + adds r4, r6 + adds r4, r5 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, _080F3554 @ =gSprites + adds r1, r0 + str r1, [r4] + ldrb r3, [r1, 0x1] + movs r2, 0x3F + adds r0, r2, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r1, 0x1] + ldr r1, [r4] + ldrb r0, [r1, 0x3] + ands r2, r0 + movs r0, 0x80 + orrs r2, r0 + strb r2, [r1, 0x3] + b _080F3566 + .align 2, 0 +_080F3548: .4byte 0x000087e4 +_080F354C: .4byte sub_80F3360 +_080F3550: .4byte gUnknown_083DFEC4 +_080F3554: .4byte gSprites +_080F3558: + ldr r0, _080F3574 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3578 @ =0x000087e4 + adds r0, r1 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_080F3566: + add sp, 0x50 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3574: .4byte gUnknown_083DFEC4 +_080F3578: .4byte 0x000087e4 + thumb_func_end sub_80F33A8 + + thumb_func_start sub_80F357C +sub_80F357C: @ 80F357C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F35AC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F35B0 @ =0x000087e4 + adds r6, r0, r1 +_080F3588: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F359A + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F359A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080F3588 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F35AC: .4byte gUnknown_083DFEC4 +_080F35B0: .4byte 0x000087e4 + thumb_func_end sub_80F357C + + thumb_func_start sub_80F35B4 +sub_80F35B4: @ 80F35B4 + push {r4,lr} + ldr r0, _080F35FC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3600 @ =0x000076b0 + adds r0, r4, r1 + movs r1, 0x1C + strh r1, [r0] + ldr r1, _080F3604 @ =0x000076b2 + adds r2, r4, r1 + movs r1, 0x13 + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + ldr r2, _080F3608 @ =gUnknown_083E4678 + movs r0, 0x1B + movs r1, 0x15 + bl sub_80F7920 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0xC0 + strh r1, [r0, 0x20] + movs r1, 0x20 + strh r1, [r0, 0x22] + ldr r1, _080F360C @ =sub_80F363C + str r1, [r0, 0x1C] + ldr r1, _080F3610 @ =0x000076ac + adds r4, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F35FC: .4byte gUnknown_083DFEC4 +_080F3600: .4byte 0x000076b0 +_080F3604: .4byte 0x000076b2 +_080F3608: .4byte gUnknown_083E4678 +_080F360C: .4byte sub_80F363C +_080F3610: .4byte 0x000076ac + thumb_func_end sub_80F35B4 + + thumb_func_start sub_80F3614 +sub_80F3614: @ 80F3614 + push {lr} + ldr r0, _080F3634 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3638 @ =0x000076ac + adds r0, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, 0x1B + bl FreeSpriteTilesByTag + movs r0, 0x15 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + .align 2, 0 +_080F3634: .4byte gUnknown_083DFEC4 +_080F3638: .4byte 0x000076ac + thumb_func_end sub_80F3614 + + thumb_func_start sub_80F363C +sub_80F363C: @ 80F363C + push {lr} + ldr r1, _080F365C @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r3, _080F3660 @ =0x00008fe9 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + ldr r3, _080F3664 @ =0x00008934 + adds r1, r3 + adds r1, r2 + ldrb r1, [r1] + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_080F365C: .4byte gUnknown_083DFEC4 +_080F3660: .4byte 0x00008fe9 +_080F3664: .4byte 0x00008934 + thumb_func_end sub_80F363C + + thumb_func_start sub_80F3668 +sub_80F3668: @ 80F3668 + push {lr} + ldr r0, _080F368C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F3690 @ =0x00008fe9 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r2, _080F3694 @ =0x00008934 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0xB0 + movs r2, 0x20 + bl sub_80F7418 + pop {r0} + bx r0 + .align 2, 0 +_080F368C: .4byte gUnknown_083DFEC4 +_080F3690: .4byte 0x00008fe9 +_080F3694: .4byte 0x00008934 + thumb_func_end sub_80F3668 + + thumb_func_start sub_80F3698 +sub_80F3698: @ 80F3698 + push {r4,lr} + ldr r0, _080F36DC @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F36E0 @ =0x000087dc + adds r0, r3, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 2 + ldr r4, _080F36E4 @ =0x0000893c + adds r1, r4 + adds r1, r3, r1 + ldr r2, _080F36E8 @ =0x00008fe9 + adds r0, r3, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + subs r4, 0x8 + adds r0, r3, r4 + adds r0, r2 + ldr r2, _080F36EC @ =0x000076b4 + adds r3, r2 + ldrb r2, [r3] + strb r2, [r0] + ldrb r0, [r1, 0x1] + ldr r1, [r1] + lsls r1, 11 + lsrs r1, 27 + ldrb r2, [r3] + bl sub_80F4548 + bl sub_80F7470 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F36DC: .4byte gUnknown_083DFEC4 +_080F36E0: .4byte 0x000087dc +_080F36E4: .4byte 0x0000893c +_080F36E8: .4byte 0x00008fe9 +_080F36EC: .4byte 0x000076b4 + thumb_func_end sub_80F3698 + + thumb_func_start sub_80F36F0 +sub_80F36F0: @ 80F36F0 + push {lr} + ldr r0, _080F3718 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F371C @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F3720 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3712 +_080F3708: + bl sub_80F3724 + lsls r0, 24 + cmp r0, 0 + bne _080F3708 +_080F3712: + pop {r0} + bx r0 + .align 2, 0 +_080F3718: .4byte gUnknown_083DFEC4 +_080F371C: .4byte 0x00000306 +_080F3720: .4byte 0x00006dac + thumb_func_end sub_80F36F0 + + thumb_func_start sub_80F3724 +sub_80F3724: @ 80F3724 + push {r4,lr} + ldr r0, _080F3740 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3744 @ =0x00000306 + adds r4, r1, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080F3764 + cmp r0, 0x1 + bgt _080F3748 + cmp r0, 0 + beq _080F374E + b _080F377A + .align 2, 0 +_080F3740: .4byte gUnknown_083DFEC4 +_080F3744: .4byte 0x00000306 +_080F3748: + cmp r0, 0x2 + beq _080F376E + b _080F377A +_080F374E: + ldr r0, _080F375C @ =gUnknown_083E3D00 + ldr r2, _080F3760 @ =0x0000984c + adds r1, r2 + bl LZ77UnCompWram + b _080F377E + .align 2, 0 +_080F375C: .4byte gUnknown_083E3D00 +_080F3760: .4byte 0x0000984c +_080F3764: + bl sub_80F379C + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F376E: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + beq _080F377E + b _080F378C +_080F377A: + movs r0, 0 + b _080F378E +_080F377E: + ldr r0, _080F3794 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3798 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F378C: + movs r0, 0x1 +_080F378E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3794: .4byte gUnknown_083DFEC4 +_080F3798: .4byte 0x00000306 + thumb_func_end sub_80F3724 + + thumb_func_start sub_80F379C +sub_80F379C: @ 80F379C + push {lr} + ldr r0, _080F37C4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F37C8 @ =0x0000bc93 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F37CC @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F37BE +_080F37B4: + bl sub_80F37D0 + lsls r0, 24 + cmp r0, 0 + bne _080F37B4 +_080F37BE: + pop {r0} + bx r0 + .align 2, 0 +_080F37C4: .4byte gUnknown_083DFEC4 +_080F37C8: .4byte 0x0000bc93 +_080F37CC: .4byte 0x00006dac + thumb_func_end sub_80F379C + + thumb_func_start sub_80F37D0 +sub_80F37D0: @ 80F37D0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F3898 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F389C @ =0x0000bc93 + adds r1, r2 + ldrb r1, [r1] + adds r2, r0, 0 + cmp r1, 0xB + bhi _080F38A8 + movs r3, 0 + mov r8, r3 + movs r7, 0xF + mov r9, r7 +_080F37F0: + ldr r2, [r2] + ldr r1, _080F389C @ =0x0000bc93 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 8 + ldr r3, _080F38A0 @ =0x0000984c + adds r0, r3 + adds r4, r2, r0 + lsls r1, 9 + ldr r7, _080F38A4 @ =0x0000a44c + adds r1, r7 + adds r5, r2, r1 + movs r6, 0 +_080F380A: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x10 + bl CpuFastSet + adds r5, 0x40 + adds r4, 0x20 + movs r1, 0 + adds r6, 0x1 + mov r12, r6 +_080F381E: + movs r0, 0 + adds r6, r1, 0x1 +_080F3822: + adds r4, 0x4 + movs r2, 0 + adds r3, r0, 0x1 +_080F3828: + subs r4, 0x1 + ldrb r0, [r4] + lsls r1, r0, 4 + lsrs r0, 4 + mov r7, r9 + ands r0, r7 + orrs r1, r0 + strb r1, [r5] + adds r5, 0x1 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080F3828 + adds r4, 0x4 + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0x7 + bls _080F3822 + subs r4, 0x40 + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bls _080F381E + adds r4, 0x60 + mov r1, r12 + lsls r0, r1, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080F380A + ldr r2, _080F3898 @ =gUnknown_083DFEC4 + ldr r3, [r2] + ldr r7, _080F389C @ =0x0000bc93 + adds r1, r3, r7 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F38A8 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x1 + bls _080F37F0 + adds r1, r7, 0 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0xB + bhi _080F38A8 + movs r0, 0x1 + b _080F38AA + .align 2, 0 +_080F3898: .4byte gUnknown_083DFEC4 +_080F389C: .4byte 0x0000bc93 +_080F38A0: .4byte 0x0000984c +_080F38A4: .4byte 0x0000a44c +_080F38A8: + movs r0, 0 +_080F38AA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F37D0 + + thumb_func_start sub_80F38B8 +sub_80F38B8: @ 80F38B8 + push {lr} + ldr r0, _080F38E0 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F38E4 @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F38E8 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F38DA +_080F38D0: + bl sub_80F38EC + lsls r0, 24 + cmp r0, 0 + bne _080F38D0 +_080F38DA: + pop {r0} + bx r0 + .align 2, 0 +_080F38E0: .4byte gUnknown_083DFEC4 +_080F38E4: .4byte 0x00000306 +_080F38E8: .4byte 0x00006dac + thumb_func_end sub_80F38B8 + + thumb_func_start sub_80F38EC +sub_80F38EC: @ 80F38EC + push {r4,lr} + ldr r0, _080F3908 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F390C @ =0x00000306 + adds r4, r2, r0 + ldrh r1, [r4] + cmp r1, 0x1 + beq _080F3930 + cmp r1, 0x1 + bgt _080F3910 + cmp r1, 0 + beq _080F391A + b _080F394E + .align 2, 0 +_080F3908: .4byte gUnknown_083DFEC4 +_080F390C: .4byte 0x00000306 +_080F3910: + cmp r1, 0x2 + beq _080F3938 + cmp r1, 0x3 + beq _080F3942 + b _080F394E +_080F391A: + ldr r3, _080F3928 @ =0x00009348 + adds r0, r2, r3 + str r1, [r0] + ldr r3, _080F392C @ =0x0000bc92 + adds r0, r2, r3 + strb r1, [r0] + b _080F3952 + .align 2, 0 +_080F3928: .4byte 0x00009348 +_080F392C: .4byte 0x0000bc92 +_080F3930: + movs r0, 0 + bl sub_80F2E18 + b _080F3952 +_080F3938: + bl sub_80F3970 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080F3942: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + beq _080F3952 + b _080F3960 +_080F394E: + movs r0, 0 + b _080F3962 +_080F3952: + ldr r0, _080F3968 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F396C @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F3960: + movs r0, 0x1 +_080F3962: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F3968: .4byte gUnknown_083DFEC4 +_080F396C: .4byte 0x00000306 + thumb_func_end sub_80F38EC + + thumb_func_start sub_80F3970 +sub_80F3970: @ 80F3970 + push {lr} + ldr r0, _080F3998 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F399C @ =0x0000bc93 + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r1, _080F39A0 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F3992 +_080F3988: + bl sub_80F39A4 + lsls r0, 24 + cmp r0, 0 + bne _080F3988 +_080F3992: + pop {r0} + bx r0 + .align 2, 0 +_080F3998: .4byte gUnknown_083DFEC4 +_080F399C: .4byte 0x0000bc93 +_080F39A0: .4byte 0x00006dac + thumb_func_end sub_80F3970 + + thumb_func_start sub_80F39A4 +sub_80F39A4: @ 80F39A4 + push {r4,r5,lr} + sub sp, 0x10 + ldr r0, _080F3A18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3A1C @ =0x0000bc93 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xB + bhi _080F3A30 + ldrb r0, [r4] + lsls r0, 9 + ldr r2, _080F3A20 @ =0x0000a44c + adds r0, r2 + adds r0, r1, r0 + str r0, [sp] + ldr r5, _080F3A24 @ =0xffff0000 + ldr r2, [sp, 0x4] + ands r2, r5 + movs r0, 0x80 + lsls r0, 2 + orrs r2, r0 + str r2, [sp, 0x4] + ldrb r1, [r4] + adds r1, 0xB + lsls r1, 16 + ldr r0, _080F3A28 @ =0x0000ffff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldrb r0, [r4] + cmp r0, 0x4 + bhi _080F3A04 + lsls r0, 5 + ldr r1, _080F3A2C @ =gUnknown_083E3C60 + adds r0, r1 + str r0, [sp, 0x8] + ldrb r2, [r4] + adds r2, 0xA + add r0, sp, 0x8 + ldr r1, [r0, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpritePalette +_080F3A04: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xB + bhi _080F3A30 + movs r0, 0x1 + b _080F3A32 + .align 2, 0 +_080F3A18: .4byte gUnknown_083DFEC4 +_080F3A1C: .4byte 0x0000bc93 +_080F3A20: .4byte 0x0000a44c +_080F3A24: .4byte 0xffff0000 +_080F3A28: .4byte 0x0000ffff +_080F3A2C: .4byte gUnknown_083E3C60 +_080F3A30: + movs r0, 0 +_080F3A32: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F39A4 + + thumb_func_start sub_80F3A3C +sub_80F3A3C: @ 80F3A3C + push {r4-r7,lr} + sub sp, 0x18 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, 0x2 + bhi _080F3A60 + lsls r0, r4, 3 + adds r0, r4 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, _080F3A5C @ =gUnknown_083DFEC4 + b _080F3A78 + .align 2, 0 +_080F3A5C: .4byte gUnknown_083DFEC4 +_080F3A60: + ldr r2, _080F3AD0 @ =gUnknown_083DFEC4 + ldr r1, [r2] + ldr r3, _080F3AD4 @ =0x0000bc8e + adds r0, r1, r3 + ldrb r0, [r0] + ldr r6, _080F3AD8 @ =0x0000bc8f + adds r1, r6 + ldrb r1, [r1] + subs r0, r1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_080F3A78: + ldr r0, [r2] + ldr r7, _080F3ADC @ =0x0000bc4c + adds r0, r7 + adds r0, r1 + ldrb r2, [r0] + mov r1, sp + ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + mov r3, sp + ldr r1, _080F3AE4 @ =gUnknown_083E4698 + lsls r2, 2 + adds r0, r2, r1 + ldrh r0, [r0] + adds r0, 0xB + strh r0, [r3] + adds r1, 0x2 + adds r2, r1 + ldrh r0, [r2] + adds r0, 0xA + strh r0, [r3, 0x2] + lsls r1, r5, 20 + movs r0, 0xC0 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + lsls r2, r4, 20 + movs r3, 0xA0 + lsls r3, 14 + adds r2, r3 + asrs r2, 16 + mov r0, sp + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F3AE8 + movs r0, 0 + b _080F3AF2 + .align 2, 0 +_080F3AD0: .4byte gUnknown_083DFEC4 +_080F3AD4: .4byte 0x0000bc8e +_080F3AD8: .4byte 0x0000bc8f +_080F3ADC: .4byte 0x0000bc4c +_080F3AE0: .4byte gSpriteTemplate_83E476C +_080F3AE4: .4byte gUnknown_083E4698 +_080F3AE8: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3AFC @ =gSprites + adds r0, r1 +_080F3AF2: + add sp, 0x18 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080F3AFC: .4byte gSprites + thumb_func_end sub_80F3A3C + + thumb_func_start sub_80F3B00 +sub_80F3B00: @ 80F3B00 + push {r4,lr} + ldr r0, _080F3B34 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3B38 @ =0x0000bc90 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F3B3C @ =0x0000bc91 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F3A3C + adds r2, r0, 0 + ldr r1, _080F3B40 @ =0x00009348 + adds r0, r4, r1 + str r2, [r0] + cmp r2, 0 + beq _080F3B48 + adds r0, r2, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r2, _080F3B44 @ =0x0000bc92 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + b _080F3B4E + .align 2, 0 +_080F3B34: .4byte gUnknown_083DFEC4 +_080F3B38: .4byte 0x0000bc90 +_080F3B3C: .4byte 0x0000bc91 +_080F3B40: .4byte 0x00009348 +_080F3B44: .4byte 0x0000bc92 +_080F3B48: + ldr r1, _080F3B54 @ =0x0000bc92 + adds r0, r4, r1 + strb r2, [r0] +_080F3B4E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3B54: .4byte 0x0000bc92 + thumb_func_end sub_80F3B00 + + thumb_func_start sub_80F3B58 +sub_80F3B58: @ 80F3B58 + push {lr} + ldr r0, _080F3B6C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3B70 @ =0x0000bc92 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080F3B74 + movs r0, 0 + b _080F3B8A + .align 2, 0 +_080F3B6C: .4byte gUnknown_083DFEC4 +_080F3B70: .4byte 0x0000bc92 +_080F3B74: + ldr r3, _080F3B90 @ =0x00009348 + adds r0, r1, r3 + ldr r0, [r0] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] +_080F3B8A: + pop {r1} + bx r1 + .align 2, 0 +_080F3B90: .4byte 0x00009348 + thumb_func_end sub_80F3B58 + + thumb_func_start sub_80F3B94 +sub_80F3B94: @ 80F3B94 + push {r4,lr} + ldr r0, _080F3BB8 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F3BBC @ =0x00009348 + adds r0, r4, r1 + ldr r2, [r0] + cmp r2, 0 + beq _080F3BC4 + adds r0, r2, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080F3BC0 @ =0x0000bc92 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + b _080F3BCA + .align 2, 0 +_080F3BB8: .4byte gUnknown_083DFEC4 +_080F3BBC: .4byte 0x00009348 +_080F3BC0: .4byte 0x0000bc92 +_080F3BC4: + ldr r1, _080F3BD0 @ =0x0000bc92 + adds r0, r4, r1 + strb r2, [r0] +_080F3BCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3BD0: .4byte 0x0000bc92 + thumb_func_end sub_80F3B94 + + thumb_func_start sub_80F3BD4 +sub_80F3BD4: @ 80F3BD4 + push {r4-r6,lr} + ldr r0, _080F3C18 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F3C1C @ =0x0000bc92 + adds r5, r1, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F3C24 + ldr r0, _080F3C20 @ =0x00009348 + adds r4, r1, r0 + ldr r0, [r4] + adds r0, 0x3F + ldrb r0, [r0] + lsrs r0, 5 + movs r1, 0x1 + eors r0, r1 + ands r0, r1 + strb r0, [r5] + adds r6, r0, 0 + cmp r6, 0 + bne _080F3C12 + ldr r0, [r4] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + str r6, [r4] +_080F3C12: + ldrb r0, [r5] + b _080F3C26 + .align 2, 0 +_080F3C18: .4byte gUnknown_083DFEC4 +_080F3C1C: .4byte 0x0000bc92 +_080F3C20: .4byte 0x00009348 +_080F3C24: + movs r0, 0 +_080F3C26: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F3BD4 + + thumb_func_start sub_80F3C2C +sub_80F3C2C: @ 80F3C2C + push {r4,lr} + ldr r0, _080F3C8C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3C90 @ =0x00009348 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3C50 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + bl DestroySprite + movs r0, 0 + str r0, [r4] +_080F3C50: + movs r4, 0 +_080F3C52: + adds r0, r4, 0 + adds r0, 0xB + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xB + bls _080F3C52 + movs r4, 0 +_080F3C6A: + adds r0, r4, 0 + adds r0, 0xA + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F3C6A + bl sub_80F2F48 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3C8C: .4byte gUnknown_083DFEC4 +_080F3C90: .4byte 0x00009348 + thumb_func_end sub_80F3C2C + + thumb_func_start sub_80F3C94 +sub_80F3C94: @ 80F3C94 + push {lr} + sub sp, 0x10 + ldr r0, _080F3CDC @ =gUnknown_083E4784 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, _080F3CE0 @ =gUnknown_083E478C + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + mov r0, sp + bl LoadSpriteSheet + add r0, sp, 0x8 + bl LoadSpritePalette + movs r1, 0 + ldr r0, _080F3CE4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r3, 0x88 + lsls r3, 8 + adds r2, r0, r3 + movs r3, 0 +_080F3CC6: + lsls r0, r1, 2 + adds r0, r2, r0 + str r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9 + bls _080F3CC6 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080F3CDC: .4byte gUnknown_083E4784 +_080F3CE0: .4byte gUnknown_083E478C +_080F3CE4: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3C94 + + thumb_func_start sub_80F3CE8 +sub_80F3CE8: @ 80F3CE8 + push {lr} + bl move_anim_execute + movs r0, 0x17 + bl FreeSpriteTilesByTag + movs r0, 0xF + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_80F3CE8 + + thumb_func_start sub_80F3D00 +sub_80F3D00: @ 80F3D00 + push {r4,r5,lr} + ldr r0, _080F3D34 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F3D38 @ =0x000087dc + adds r0, r2, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 2 + ldr r1, _080F3D3C @ =0x0000893c + adds r0, r1 + adds r0, r2, r0 + ldrb r1, [r0, 0x3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F3D94 + ldr r3, _080F3D40 @ =0x00008fe9 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + ldr r3, _080F3D44 @ =0x00008931 + adds r0, r2, r3 + adds r0, r1 + ldrb r5, [r0] + movs r4, 0 + b _080F3D86 + .align 2, 0 +_080F3D34: .4byte gUnknown_083DFEC4 +_080F3D38: .4byte 0x000087dc +_080F3D3C: .4byte 0x0000893c +_080F3D40: .4byte 0x00008fe9 +_080F3D44: .4byte 0x00008931 +_080F3D48: + ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F3D8C + ldr r0, _080F3DA0 @ =gUnknown_083DFEC4 + ldr r2, [r0] + lsls r0, r4, 2 + movs r3, 0x88 + lsls r3, 8 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F3DA4 @ =gSprites + adds r0, r1 + str r0, [r2] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F3D86: + adds r0, r5, 0x1 + cmp r4, r0 + blt _080F3D48 +_080F3D8C: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80F3F20 +_080F3D94: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3D9C: .4byte gSpriteTemplate_83E4800 +_080F3DA0: .4byte gUnknown_083DFEC4 +_080F3DA4: .4byte gSprites + thumb_func_end sub_80F3D00 + + thumb_func_start move_anim_execute +move_anim_execute: @ 80F3DA8 + push {r4-r6,lr} + movs r5, 0 + ldr r0, _080F3DD8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 +_080F3DB6: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3DD2 + bl DestroySprite + movs r0, 0 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3DB6 +_080F3DD2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F3DD8: .4byte gUnknown_083DFEC4 + thumb_func_end move_anim_execute + + thumb_func_start sub_80F3DDC +sub_80F3DDC: @ 80F3DDC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080F3DFE + movs r0, 0 + strh r0, [r1, 0x30] + ldrh r0, [r1, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80F3F20 +_080F3DFE: + pop {r0} + bx r0 + thumb_func_end sub_80F3DDC + + thumb_func_start sub_80F3E04 +sub_80F3E04: @ 80F3E04 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3E1C + movs r0, 0 + strh r0, [r2, 0x30] + ldr r0, _080F3E20 @ =sub_80F3DDC + str r0, [r2, 0x1C] +_080F3E1C: + pop {r0} + bx r0 + .align 2, 0 +_080F3E20: .4byte sub_80F3DDC + thumb_func_end sub_80F3E04 + + thumb_func_start sub_80F3E24 +sub_80F3E24: @ 80F3E24 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _080F3E64 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F3E68 @ =0x00008768 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _080F3E70 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r1, r0 + ldr r2, _080F3E6C @ =gUnknown_083E4794 + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + strh r0, [r3, 0x20] + ldr r0, [r4] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 2 + adds r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + adds r0, r1 + b _080F3E8E + .align 2, 0 +_080F3E64: .4byte gUnknown_083DFEC4 +_080F3E68: .4byte 0x00008768 +_080F3E6C: .4byte gUnknown_083E4794 +_080F3E70: + ldr r1, _080F3E98 @ =gUnknown_083E4794 + movs r5, 0x2E + ldrsh r0, [r3, r5] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x28 + strh r0, [r3, 0x20] + movs r2, 0x2E + ldrsh r0, [r3, r2] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x68 +_080F3E8E: + strh r0, [r3, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F3E98: .4byte gUnknown_083E4794 + thumb_func_end sub_80F3E24 + + thumb_func_start sub_80F3E9C +sub_80F3E9C: @ 80F3E9C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080F3ECA + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080F3F14 + adds r0, r4, 0 + movs r1, 0 + bl SeekSpriteAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080F3ECA: + adds r0, r4, 0 + bl sub_80F3E24 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080F3F14 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080F3F10 + cmp r1, 0x9 + bne _080F3F08 + bl sub_80F3FAC + ldr r0, _080F3F04 @ =sub_80F3E04 + b _080F3F12 + .align 2, 0 +_080F3F04: .4byte sub_80F3E04 +_080F3F08: + ldr r0, _080F3F0C @ =sub_80F3DDC + b _080F3F12 + .align 2, 0 +_080F3F0C: .4byte sub_80F3DDC +_080F3F10: + ldr r0, _080F3F1C @ =SpriteCallbackDummy +_080F3F12: + str r0, [r4, 0x1C] +_080F3F14: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F3F1C: .4byte SpriteCallbackDummy + thumb_func_end sub_80F3E9C + + thumb_func_start sub_80F3F20 +sub_80F3F20: @ 80F3F20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r5, 0 + ldr r0, _080F3F6C @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r7, r0, r1 +_080F3F3C: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3F92 + strh r5, [r0, 0x2E] + ldr r1, [r4] + lsls r0, r5, 4 + adds r0, 0x1 + strh r0, [r1, 0x30] + ldr r0, [r4] + strh r6, [r0, 0x32] + ldr r0, [r4] + strh r5, [r0, 0x34] + mov r3, r8 + cmp r3, 0 + beq _080F3F62 + cmp r6, 0x9 + beq _080F3F74 +_080F3F62: + ldr r1, [r4] + ldr r0, _080F3F70 @ =sub_80F3E9C + str r0, [r1, 0x1C] + b _080F3F92 + .align 2, 0 +_080F3F6C: .4byte gUnknown_083DFEC4 +_080F3F70: .4byte sub_80F3E9C +_080F3F74: + ldr r0, [r4] + bl sub_80F3E24 + bl sub_80F3FAC + ldr r2, [r4] + ldr r0, _080F3FA8 @ =sub_80F3E04 + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x5 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2] +_080F3F92: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3F3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FA8: .4byte sub_80F3E04 + thumb_func_end sub_80F3F20 + + thumb_func_start sub_80F3FAC +sub_80F3FAC: @ 80F3FAC + push {r4-r7,lr} + movs r5, 0 + ldr r0, _080F3FEC @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0x88 + lsls r1, 8 + adds r6, r0, r1 + movs r0, 0x5 + negs r0, r0 + adds r7, r0, 0 +_080F3FC0: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _080F3FDA + movs r1, 0 + bl SeekSpriteAnim + ldr r1, [r4] + adds r1, 0x3E + ldrb r0, [r1] + ands r0, r7 + strb r0, [r1] +_080F3FDA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F3FC0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F3FEC: .4byte gUnknown_083DFEC4 + thumb_func_end sub_80F3FAC + + thumb_func_start sub_80F3FF0 +sub_80F3FF0: @ 80F3FF0 + push {lr} + ldr r0, _080F4018 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F401C @ =0x00000306 + adds r2, r0, r1 + movs r1, 0 + strh r1, [r2] + ldr r1, _080F4020 @ =0x00006dac + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4012 +_080F4008: + bl sub_80F4024 + lsls r0, 24 + cmp r0, 0 + bne _080F4008 +_080F4012: + pop {r0} + bx r0 + .align 2, 0 +_080F4018: .4byte gUnknown_083DFEC4 +_080F401C: .4byte 0x00000306 +_080F4020: .4byte 0x00006dac + thumb_func_end sub_80F3FF0 + + thumb_func_start sub_80F4024 +sub_80F4024: @ 80F4024 + push {r4,lr} + sub sp, 0x10 + ldr r0, _080F4040 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4044 @ =0x00000306 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0x1 + beq _080F4068 + cmp r0, 0x1 + bgt _080F4048 + cmp r0, 0 + beq _080F4052 + b _080F4106 + .align 2, 0 +_080F4040: .4byte gUnknown_083DFEC4 +_080F4044: .4byte 0x00000306 +_080F4048: + cmp r0, 0x2 + beq _080F4084 + cmp r0, 0x3 + beq _080F40B8 + b _080F4106 +_080F4052: + ldr r0, _080F4060 @ =gUnknown_083E329C + ldr r2, _080F4064 @ =0x000131e4 + adds r1, r4, r2 + bl LZ77UnCompWram + b _080F4118 + .align 2, 0 +_080F4060: .4byte gUnknown_083E329C +_080F4064: .4byte 0x000131e4 +_080F4068: + ldr r1, _080F407C @ =0x000131e4 + adds r0, r4, r1 + str r0, [sp] + ldr r0, _080F4080 @ =0x00181000 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + b _080F4118 + .align 2, 0 +_080F407C: .4byte 0x000131e4 +_080F4080: .4byte 0x00181000 +_080F4084: + ldr r0, _080F40B4 @ =gUnknown_083E4818 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + add r0, sp, 0x8 + bl LoadSpritePalette + movs r0, 0x10 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC2 + lsls r1, 2 + adds r2, r4, r1 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + movs r0, 0x3 + negs r0, r0 + bics r0, r1 + str r0, [r2] + b _080F4118 + .align 2, 0 +_080F40B4: .4byte gUnknown_083E4818 +_080F40B8: + ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850 + movs r1, 0xDA + movs r2, 0xE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080F40F0 + ldr r0, _080F40E8 @ =0x00006d98 + adds r2, r4, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F40EC @ =gSprites + adds r0, r1 + str r0, [r2] + movs r1, 0 + strh r1, [r0, 0x2E] + b _080F40F8 + .align 2, 0 +_080F40E4: .4byte gSpriteTemplate_83E4850 +_080F40E8: .4byte 0x00006d98 +_080F40EC: .4byte gSprites +_080F40F0: + ldr r2, _080F410C @ =0x00006d98 + adds r1, r4, r2 + movs r0, 0 + str r0, [r1] +_080F40F8: + ldr r0, _080F4110 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F4114 @ =0x00000306 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080F4106: + movs r0, 0 + b _080F4128 + .align 2, 0 +_080F410C: .4byte 0x00006d98 +_080F4110: .4byte gUnknown_083DFEC4 +_080F4114: .4byte 0x00000306 +_080F4118: + ldr r0, _080F4130 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4134 @ =0x00000306 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 +_080F4128: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4130: .4byte gUnknown_083DFEC4 +_080F4134: .4byte 0x00000306 + thumb_func_end sub_80F4024 + + thumb_func_start sub_80F4138 +sub_80F4138: @ 80F4138 + push {lr} + adds r2, r0, 0 + ldr r0, _080F4170 @ =gUnknown_083DFEC4 + ldr r0, [r0] + movs r1, 0xC3 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + negs r0, r0 + strh r0, [r2, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _080F4174 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + movs r0, 0x1 + b _080F418C + .align 2, 0 +_080F4170: .4byte gUnknown_083DFEC4 +_080F4174: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F418E + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + movs r0, 0 +_080F418C: + strh r0, [r2, 0x2E] +_080F418E: + pop {r0} + bx r0 + thumb_func_end sub_80F4138 + + thumb_func_start sub_80F4194 +sub_80F4194: @ 80F4194 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + adds r2, r1, 0 + ldr r0, _080F42A4 @ =gUnknown_083DFEC8 + ldr r6, [r0] + mov r0, sp + ldr r1, _080F42A8 @ =0x00001111 + adds r5, r1, 0 + strh r5, [r0] + ldr r4, _080F42AC @ =0x040000d4 + str r0, [r4] + str r6, [r4, 0x4] + ldr r3, _080F42B0 @ =0x81000140 + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0x80 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r5, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r3, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _080F42B4 @ =gWindowConfig_81E70F0 + adds r1, r6, 0 + bl sub_8004E3C + movs r3, 0x88 + lsls r3, 2 + adds r1, r6, r3 + mov r0, sp + movs r3, 0 + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + ldr r2, _080F42B8 @ =0x81000030 + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC4 + lsls r0, 3 + adds r1, r6, r0 + mov r0, sp + strh r3, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r1, 0x80 + lsls r1, 2 + adds r2, r6, r1 + ldr r0, [r2] + ldr r1, _080F42BC @ =0x0fffffff + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r3, 0xC0 + lsls r3, 3 + adds r2, r6, r3 + ldr r0, [r2] + ands r0, r1 + str r0, [r2] + ldr r0, [r2, 0x4] + ands r0, r1 + str r0, [r2, 0x4] + ldr r0, [r2, 0x8] + ands r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0xC] + ands r0, r1 + str r0, [r2, 0xC] + ldr r0, [r2, 0x10] + ands r0, r1 + str r0, [r2, 0x10] + ldr r0, [r2, 0x14] + ands r0, r1 + str r0, [r2, 0x14] + ldr r0, [r2, 0x18] + ands r0, r1 + str r0, [r2, 0x18] + ldr r0, [r2, 0x1C] + ands r0, r1 + str r0, [r2, 0x1C] + movs r1, 0 + ldr r2, _080F42C0 @ =0x80000040 +_080F4268: + lsls r0, r1, 7 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 8 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + lsls r0, r1, 7 + movs r3, 0x80 + lsls r3, 3 + adds r0, r3 + adds r0, r6, r0 + str r0, [r4] + lsls r0, r1, 3 + adds r0, 0x4 + lsls r0, 5 + adds r0, r7, r0 + str r0, [r4, 0x4] + str r2, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x4 + bls _080F4268 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F42A4: .4byte gUnknown_083DFEC8 +_080F42A8: .4byte 0x00001111 +_080F42AC: .4byte 0x040000d4 +_080F42B0: .4byte 0x81000140 +_080F42B4: .4byte gWindowConfig_81E70F0 +_080F42B8: .4byte 0x81000030 +_080F42BC: .4byte 0x0fffffff +_080F42C0: .4byte 0x80000040 + thumb_func_end sub_80F4194 + + thumb_func_start sub_80F42C4 +sub_80F42C4: @ 80F42C4 + push {r4-r7,lr} + sub sp, 0x8 + adds r1, r0, 0 + ldr r0, _080F433C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4340 @ =0x0000d1e4 + adds r0, r2 + str r0, [sp] + ldr r2, _080F4344 @ =0x001a0500 + str r2, [sp, 0x4] + bl sub_80F4194 + mov r0, sp + bl LoadSpriteSheet + ldr r0, _080F4348 @ =gUnknown_083E4868 + bl LoadSpritePalette + movs r5, 0 + movs r4, 0 + ldr r6, _080F434C @ =gSprites +_080F42EE: + lsls r1, r4, 21 + movs r7, 0xE2 + lsls r7, 15 + adds r1, r7 + asrs r1, 16 + ldr r0, _080F4350 @ =gSpriteTemplate_83E4878 + movs r2, 0x10 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080F4360 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r6 + ldrh r2, [r3, 0x4] + lsls r0, r2, 22 + lsrs r0, 22 + adds r0, r5, r0 + ldr r7, _080F4354 @ =0x000003ff + adds r1, r7, 0 + ands r0, r1 + ldr r7, _080F4358 @ =0xfffffc00 + adds r1, r7, 0 + ands r2, r1 + orrs r2, r0 + strh r2, [r3, 0x4] + ldr r0, _080F433C @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _080F435C @ =0x0000ced4 + adds r0, r2 + adds r0, r1 + str r3, [r0] + b _080F4370 + .align 2, 0 +_080F433C: .4byte gUnknown_083DFEC4 +_080F4340: .4byte 0x0000d1e4 +_080F4344: .4byte 0x001a0500 +_080F4348: .4byte gUnknown_083E4868 +_080F434C: .4byte gSprites +_080F4350: .4byte gSpriteTemplate_83E4878 +_080F4354: .4byte 0x000003ff +_080F4358: .4byte 0xfffffc00 +_080F435C: .4byte 0x0000ced4 +_080F4360: + ldr r0, _080F438C @ =gUnknown_083DFEC4 + ldr r1, [r0] + lsls r0, r4, 2 + ldr r7, _080F4390 @ =0x0000ced4 + adds r1, r7 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080F4370: + adds r0, r5, 0 + adds r0, 0x8 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F42EE + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F438C: .4byte gUnknown_083DFEC4 +_080F4390: .4byte 0x0000ced4 + thumb_func_end sub_80F42C4 + + thumb_func_start sub_80F4394 +sub_80F4394: @ 80F4394 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _080F43CC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F43D0 @ =0x0000ced4 + adds r5, r0, r1 +_080F43A0: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080F43AE + bl DestroySprite +_080F43AE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080F43A0 + movs r0, 0x1A + bl FreeSpriteTilesByTag + movs r0, 0x12 + bl FreeSpritePaletteByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F43CC: .4byte gUnknown_083DFEC4 +_080F43D0: .4byte 0x0000ced4 + thumb_func_end sub_80F4394 + + thumb_func_start sub_80F43D4 +sub_80F43D4: @ 80F43D4 + push {r4,lr} + adds r1, r0, 0 + ldr r0, _080F4410 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4414 @ =0x0000d1e4 + adds r4, r0, r2 + adds r0, r4, 0 + bl sub_80F4194 + movs r0, 0x1A + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080F4418 @ =0x0000ffff + cmp r1, r0 + beq _080F4408 + lsls r0, r1, 5 + ldr r1, _080F441C @ =0x06010000 + adds r0, r1 + ldr r1, _080F4420 @ =0x040000d4 + str r4, [r1] + str r0, [r1, 0x4] + ldr r0, _080F4424 @ =0x84000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080F4408: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4410: .4byte gUnknown_083DFEC4 +_080F4414: .4byte 0x0000d1e4 +_080F4418: .4byte 0x0000ffff +_080F441C: .4byte 0x06010000 +_080F4420: .4byte 0x040000d4 +_080F4424: .4byte 0x84000140 + thumb_func_end sub_80F43D4 + + thumb_func_start sub_80F4428 +sub_80F4428: @ 80F4428 + push {lr} + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + bl sub_80F6514 + pop {r1} + bx r1 + thumb_func_end sub_80F4428 + + thumb_func_start sub_80F443C +sub_80F443C: @ 80F443C + push {r4,lr} + lsls r4, r1, 16 + lsrs r4, 16 + ldr r1, _080F4458 @ =gOtherText_Number + bl StringCopy + adds r1, r4, 0 + movs r2, 0x38 + movs r3, 0x1 + bl sub_8072C14 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4458: .4byte gOtherText_Number + thumb_func_end sub_80F443C + + thumb_func_start sub_80F445C +sub_80F445C: @ 80F445C + push {r4,lr} + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x17 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + movs r3, 0xFC + strb r3, [r4] + movs r2, 0x11 + strb r2, [r4, 0x1] + movs r1, 0x1 + strb r1, [r4, 0x2] + adds r4, 0x3 + movs r0, 0xBA + strb r0, [r4] + adds r4, 0x1 + strb r3, [r4] + strb r2, [r4, 0x1] + strb r1, [r4, 0x2] + adds r4, 0x3 + ldr r0, _080F44A8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F44AC @ =0x00008774 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x32 + movs r3, 0x1 + bl sub_8072C14 + adds r4, r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F44A8: .4byte gUnknown_083DFEC4 +_080F44AC: .4byte 0x00008774 + thumb_func_end sub_80F445C + + thumb_func_start sub_80F44B0 +sub_80F44B0: @ 80F44B0 + push {r4,lr} + adds r4, r2, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r0, 0xE + bne _080F44F4 + cmp r4, 0x2 + beq _080F44C8 + cmp r4, 0x7 + bne _080F44E0 +_080F44C8: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44DC @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44DC: .4byte gPlayerParty +_080F44E0: + movs r0, 0x64 + muls r0, r2 + ldr r1, _080F44F0 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl GetMonData + b _080F453C + .align 2, 0 +_080F44F0: .4byte gPlayerParty +_080F44F4: + cmp r4, 0x2 + beq _080F44FC + cmp r4, 0x7 + bne _080F4520 +_080F44FC: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F451C @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + adds r2, r3, 0 + bl GetBoxMonData + b _080F453C + .align 2, 0 +_080F451C: .4byte gUnknown_020300A4 +_080F4520: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F4544 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + adds r1, r4, 0 + bl GetBoxMonData +_080F453C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F4544: .4byte gUnknown_020300A4 + thumb_func_end sub_80F44B0 + + thumb_func_start sub_80F4548 +sub_80F4548: @ 80F4548 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + mov r0, sp + strb r2, [r0] + cmp r3, 0xE + bne _080F4574 + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F4570 @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _080F4592 + .align 2, 0 +_080F4570: .4byte gPlayerParty +_080F4574: + lsls r1, r3, 2 + adds r1, r3 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 4 + ldr r2, _080F459C @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_080F4592: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F459C: .4byte gUnknown_020300A4 + thumb_func_end sub_80F4548 + + thumb_func_start sub_80F45A0 +sub_80F45A0: @ 80F45A0 + push {r4-r7,lr} + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, _080F45F0 @ =gUnknown_083DFEC4 + ldr r5, [r1] + lsls r1, r0, 16 + asrs r0, r1, 14 + adds r4, r5, r0 + ldr r2, _080F45F4 @ =0x0000893f + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r7, r0, 31 + cmp r7, 0 + beq _080F4644 + lsls r0, r6, 6 + ldr r2, _080F45F8 @ =0x00008829 + adds r0, r2 + adds r0, r5, r0 + lsrs r1, 16 + movs r2, 0 + bl sub_80F4428 + ldr r1, _080F45FC @ =0x0000893d + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0xE + bne _080F4608 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4600 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + ldr r1, _080F4604 @ =gOtherText_InParty + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + b _080F4624 + .align 2, 0 +_080F45F0: .4byte gUnknown_083DFEC4 +_080F45F4: .4byte 0x0000893f +_080F45F8: .4byte 0x00008829 +_080F45FC: .4byte 0x0000893d +_080F4600: .4byte 0x000088e9 +_080F4604: .4byte gOtherText_InParty +_080F4608: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F4634 @ =0x000088e9 + adds r0, r1 + adds r0, r5, r0 + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _080F4638 @ =gUnknown_020383E4 + adds r1, r2 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 +_080F4624: + ldr r0, _080F463C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F4640 @ =0x00008937 + adds r0, r2 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] + b _080F4676 + .align 2, 0 +_080F4634: .4byte 0x000088e9 +_080F4638: .4byte gUnknown_020383E4 +_080F463C: .4byte gUnknown_083DFEC4 +_080F4640: .4byte 0x00008937 +_080F4644: + lsls r0, r6, 6 + ldr r1, _080F467C @ =0x00008829 + adds r0, r1 + adds r0, r5, r0 + ldr r4, _080F4680 @ =gEmptyString_81E72B0 + adds r1, r4, 0 + movs r2, 0x68 + movs r3, 0 + bl sub_8072C74 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + ldr r2, _080F4684 @ =0x000088e9 + adds r0, r2 + adds r0, r5, r0 + adds r1, r4, 0 + movs r2, 0x40 + movs r3, 0 + bl sub_8072C74 + ldr r1, _080F4688 @ =0x00008937 + adds r0, r5, r1 + adds r0, r6 + strb r7, [r0] +_080F4676: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F467C: .4byte 0x00008829 +_080F4680: .4byte gEmptyString_81E72B0 +_080F4684: .4byte 0x000088e9 +_080F4688: .4byte 0x00008937 + thumb_func_end sub_80F45A0 + + thumb_func_start sub_80F468C +sub_80F468C: @ 80F468C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F475C @ =gUnknown_083DFEC4 + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F4760 @ =0x0000893f + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _080F46B2 + b _080F47C4 +_080F46B2: + ldr r3, _080F4764 @ =0x0000893d + adds r0, r1, r3 + ldrb r5, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r6, r0, 27 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x16 + movs r3, 0 + bl sub_80F44B0 + mov r3, r9 + lsls r3, 2 + mov r8, r3 + mov r4, r8 + add r4, r9 + ldr r2, _080F4768 @ =0x00008ff0 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x2F + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F476C @ =0x00008ff1 + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x21 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4770 @ =0x00008ff2 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x18 + movs r3, 0 + bl sub_80F44B0 + ldr r3, _080F4774 @ =0x00008ff3 + adds r1, r7, r3 + adds r1, r4 + strb r0, [r1] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_80F44B0 + ldr r2, _080F4778 @ =0x00008ff4 + adds r1, r7, r2 + adds r1, r4 + strb r0, [r1] + ldr r3, _080F477C @ =0x00008931 + adds r0, r7, r3 + mov r7, r9 + adds r4, r0, r7 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0xFF + beq _080F4780 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x30 + movs r3, 0 + bl sub_80F44B0 + movs r1, 0x1D + bl __udivsi3 + b _080F4782 + .align 2, 0 +_080F475C: .4byte gUnknown_083DFEC4 +_080F4760: .4byte 0x0000893f +_080F4764: .4byte 0x0000893d +_080F4768: .4byte 0x00008ff0 +_080F476C: .4byte 0x00008ff1 +_080F4770: .4byte 0x00008ff2 +_080F4774: .4byte 0x00008ff3 +_080F4778: .4byte 0x00008ff4 +_080F477C: .4byte 0x00008931 +_080F4780: + movs r0, 0x9 +_080F4782: + strb r0, [r4] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x8 + movs r3, 0 + bl sub_80F44B0 + ldr r1, _080F47B4 @ =gUnknown_083DFEC4 + ldr r1, [r1] + ldr r3, _080F47B8 @ =0x00008934 + adds r2, r1, r3 + add r2, r9 + strb r0, [r2] + mov r2, r8 + add r2, r9 + ldr r7, _080F47BC @ =0x00008ff0 + adds r0, r2, r7 + adds r0, r1, r0 + lsls r2, 2 + ldr r3, _080F47C0 @ =0x00009004 + adds r2, r3 + adds r1, r2 + bl sub_80F55AC + b _080F480A + .align 2, 0 +_080F47B4: .4byte gUnknown_083DFEC4 +_080F47B8: .4byte 0x00008934 +_080F47BC: .4byte 0x00008ff0 +_080F47C0: .4byte 0x00009004 +_080F47C4: + movs r3, 0 + mov r0, r9 + lsls r0, 2 + mov r8, r0 + adds r4, r7, 0 + mov r2, r8 + add r2, r9 + ldr r1, _080F4818 @ =0x00008ff0 + adds r6, r4, r1 + lsls r5, r2, 2 + mov r9, r3 + ldr r7, _080F481C @ =0x00009004 + mov r8, r7 + movs r0, 0x9B + mov r12, r0 +_080F47E2: + adds r0, r3, r2 + adds r0, r6, r0 + mov r1, r9 + strb r1, [r0] + lsls r0, r3, 2 + adds r0, r5 + adds r0, r4, r0 + mov r7, r8 + adds r1, r0, r7 + mov r7, r12 + strh r7, [r1] + ldr r1, _080F4820 @ =0x00009006 + adds r0, r1 + movs r1, 0x5B + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bls _080F47E2 +_080F480A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4818: .4byte 0x00008ff0 +_080F481C: .4byte 0x00009004 +_080F4820: .4byte 0x00009006 + thumb_func_end sub_80F468C + + thumb_func_start sub_80F4824 +sub_80F4824: @ 80F4824 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + ldr r1, _080F48E0 @ =gUnknown_083DFEC4 + ldr r7, [r1] + lsls r0, 16 + asrs r0, 14 + adds r1, r7, r0 + ldr r2, _080F48E4 @ =0x0000893f + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _080F48D0 + ldr r6, _080F48E8 @ =0x0000893d + adds r0, r1, r6 + ldrb r6, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r4, [r0] + lsls r4, 27 + lsrs r4, 27 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x41 + movs r3, 0 + bl sub_80F44B0 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_80F44B0 + mov r8, r0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r4, r0, 0 + lsls r0, r5, 3 + ldr r1, _080F48EC @ =gMonFrontPicTable + adds r0, r1 + ldr r2, _080F48F0 @ =gMonFrontPicCoords + lsls r1, r5, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r6, _080F48F4 @ =0x000131e4 + adds r3, r7, r6 + mov r6, r9 + lsls r2, r6, 13 + ldr r6, _080F48F8 @ =0x0000d1e4 + adds r2, r6 + adds r2, r7, r2 + str r2, [sp] + str r5, [sp, 0x4] + str r4, [sp, 0x8] + movs r2, 0x1 + bl sub_800D334 + adds r0, r5, 0 + mov r1, r8 + adds r2, r4, 0 + bl species_and_otid_get_pal + mov r2, r9 + lsls r1, r2, 7 + adds r1, r7, r1 + bl LZ77UnCompWram + mov r6, r9 + lsls r1, r6, 1 + ldr r2, _080F48FC @ =0x0000d1d6 + adds r0, r7, r2 + adds r0, r1 + strh r5, [r0] +_080F48D0: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F48E0: .4byte gUnknown_083DFEC4 +_080F48E4: .4byte 0x0000893f +_080F48E8: .4byte 0x0000893d +_080F48EC: .4byte gMonFrontPicTable +_080F48F0: .4byte gMonFrontPicCoords +_080F48F4: .4byte 0x000131e4 +_080F48F8: .4byte 0x0000d1e4 +_080F48FC: .4byte 0x0000d1d6 + thumb_func_end sub_80F4824 + + thumb_func_start sub_80F4900 +sub_80F4900: @ 80F4900 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F45A0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F468C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80F4824 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F4900 + + thumb_func_start sub_80F492C +sub_80F492C: @ 80F492C + ldr r0, _080F493C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F4940 @ =0x00008fe4 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + bx lr + .align 2, 0 +_080F493C: .4byte gUnknown_083DFEC4 +_080F4940: .4byte 0x00008fe4 + thumb_func_end sub_80F492C + + thumb_func_start sub_80F4944 +sub_80F4944: @ 80F4944 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r12, r0 + movs r2, 0 + ldr r1, _080F4978 @ =gUnknown_083DFEC4 + ldr r5, [r1] + ldr r3, _080F497C @ =0x00008fe4 + adds r0, r5, r3 + ldrh r4, [r0] + lsrs r3, r4, 1 + mov r8, r1 + cmp r4, r3 + beq _080F499C + adds r6, r5, 0 + mov r0, r12 + ldrb r5, [r0] + ldr r7, _080F4980 @ =0x0000893c +_080F4968: + lsls r0, r3, 2 + adds r0, r6, r0 + adds r0, r7 + ldrb r0, [r0] + cmp r5, r0 + bls _080F4984 + adds r4, r3, 0 + b _080F498A + .align 2, 0 +_080F4978: .4byte gUnknown_083DFEC4 +_080F497C: .4byte 0x00008fe4 +_080F4980: .4byte 0x0000893c +_080F4984: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 +_080F498A: + subs r0, r4, r2 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r0, r2, r0 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r4, r3 + bne _080F4968 +_080F499C: + mov r1, r8 + ldr r2, [r1] + ldr r1, _080F49EC @ =0x00008fe4 + adds r0, r2, r1 + ldrh r4, [r0] + lsls r6, r3, 2 + cmp r4, r3 + bls _080F49C6 + ldr r0, _080F49F0 @ =0x0000893c + adds r5, r2, r0 +_080F49B0: + lsls r2, r4, 2 + adds r2, r5, r2 + subs r1, r4, 0x1 + lsls r0, r1, 2 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [r2] + lsls r1, 16 + lsrs r4, r1, 16 + cmp r4, r3 + bhi _080F49B0 +_080F49C6: + mov r1, r8 + ldr r2, [r1] + ldr r3, _080F49F0 @ =0x0000893c + adds r0, r2, r3 + adds r0, r6 + mov r3, r12 + ldr r1, [r3] + str r1, [r0] + ldr r0, _080F49EC @ =0x00008fe4 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F49EC: .4byte 0x00008fe4 +_080F49F0: .4byte 0x0000893c + thumb_func_end sub_80F4944 + + thumb_func_start sub_80F49F4 +sub_80F49F4: @ 80F49F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r3, _080F4A64 @ =gUnknown_083DFEC4 + ldr r4, [r3] + ldr r7, _080F4A68 @ =0x0000893e + adds r2, r4, r7 + ldrh r1, [r2] + ldr r0, _080F4A6C @ =0xffffc01f + mov r12, r0 + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strh r0, [r2] + movs r5, 0x1 + ldr r1, _080F4A70 @ =0x00008fe4 + adds r0, r4, r1 + ldrh r3, [r0] + cmp r5, r3 + bcs _080F4A9E + adds r6, r4, 0 + ldr r1, _080F4A74 @ =0x0000893c + mov r8, r1 + ldr r3, _080F4A78 @ =0x000001ff + mov r10, r3 + mov r9, r0 +_080F4A2C: + lsls r0, r5, 2 + adds r3, r6, r0 + mov r0, r8 + adds r2, r3, r0 + subs r0, r5, 0x1 + lsls r0, 2 + adds r4, r6, r0 + mov r0, r8 + adds r1, r4, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _080F4A7C + adds r0, r4, r7 + ldrh r0, [r0] + lsls r0, 18 + lsrs r0, 23 + adds r3, r7 + ldr r1, _080F4A78 @ =0x000001ff + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] + adds r4, r5, 0x1 + b _080F4A92 + .align 2, 0 +_080F4A64: .4byte gUnknown_083DFEC4 +_080F4A68: .4byte 0x0000893e +_080F4A6C: .4byte 0xffffc01f +_080F4A70: .4byte 0x00008fe4 +_080F4A74: .4byte 0x0000893c +_080F4A78: .4byte 0x000001ff +_080F4A7C: + adds r4, r5, 0x1 + adds r3, r7 + adds r1, r4, 0 + mov r0, r10 + ands r1, r0 + lsls r1, 5 + ldrh r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3] +_080F4A92: + lsls r0, r4, 16 + lsrs r5, r0, 16 + mov r1, r9 + ldrh r1, [r1] + cmp r5, r1 + bcc _080F4A2C +_080F4A9E: + ldr r3, _080F4AC4 @ =gUnknown_083DFEC4 + ldr r2, [r3] + ldr r1, _080F4AC8 @ =0x0000876c + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r3, _080F4ACC @ =0x00008770 + adds r0, r2, r3 + strh r1, [r0] + subs r3, 0x2 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _080F4AD0 @ =0x00008fe4 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F4AD4 + subs r1, r0, 0x1 + b _080F4AD6 + .align 2, 0 +_080F4AC4: .4byte gUnknown_083DFEC4 +_080F4AC8: .4byte 0x0000876c +_080F4ACC: .4byte 0x00008770 +_080F4AD0: .4byte 0x00008fe4 +_080F4AD4: + movs r1, 0x7 +_080F4AD6: + ldr r3, _080F4B10 @ =0x00008772 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _080F4B14 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F4B18 @ =0x00008fe4 + adds r0, r2, r1 + ldrh r0, [r0] + subs r0, 0x1 + adds r3, 0x2 + adds r1, r2, r3 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F4AFA + movs r1, 0x1 +_080F4AFA: + ldr r3, _080F4B1C @ =0x000087c9 + adds r0, r2, r3 + strb r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4B10: .4byte 0x00008772 +_080F4B14: .4byte gUnknown_083DFEC4 +_080F4B18: .4byte 0x00008fe4 +_080F4B1C: .4byte 0x000087c9 + thumb_func_end sub_80F49F4 + + thumb_func_start sub_80F4B20 +sub_80F4B20: @ 80F4B20 + push {r4-r6,lr} + ldr r0, _080F4B5C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F4B60 @ =0x000087dc + adds r5, r4, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0 + bl sub_80F4900 + movs r0, 0 + bl sub_80F2E18 + ldr r0, _080F4B64 @ =0x000087da + adds r2, r4, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _080F4B6C + ldr r2, _080F4B68 @ =0x00008fe9 + adds r0, r4, r2 + movs r1, 0 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + b _080F4BBE + .align 2, 0 +_080F4B5C: .4byte gUnknown_083DFEC4 +_080F4B60: .4byte 0x000087dc +_080F4B64: .4byte 0x000087da +_080F4B68: .4byte 0x00008fe9 +_080F4B6C: + ldr r0, _080F4BC4 @ =0x00008fe9 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r0, _080F4BC8 @ =0x00008fea + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080F4BCC @ =0x00008feb + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + ldrh r3, [r5] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + ldrh r6, [r2] + movs r4, 0 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080F4B9A + movs r5, 0 +_080F4B9A: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r0, 0 + bge _080F4BAA + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080F4BAA: + lsls r0, r5, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_80F4900 + lsls r0, r4, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_80F4900 +_080F4BBE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F4BC4: .4byte 0x00008fe9 +_080F4BC8: .4byte 0x00008fea +_080F4BCC: .4byte 0x00008feb + thumb_func_end sub_80F4B20 + + thumb_func_start sub_80F4BD0 +sub_80F4BD0: @ 80F4BD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r7, 0 + ldr r0, _080F4CC4 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F4CC8 @ =0x00008828 + adds r1, r2, r3 + mov r9, r0 + ldrb r1, [r1] + cmp r7, r1 + bcs _080F4C66 + mov r10, r9 + adds r4, r3, 0 + adds r4, r2 + mov r8, r4 +_080F4BF6: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F4CCC @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4C58 + mov r0, r10 + ldr r3, [r0] + lsls r0, r7, 2 + adds r3, r0 + ldr r2, _080F4CD0 @ =0x0000893d + adds r1, r3, r2 + movs r0, 0xE + strb r0, [r1] + ldr r4, _080F4CD4 @ =0x0000893e + adds r5, r3, r4 + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r5] + movs r4, 0x20 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5] + adds r4, r7, 0x1 + ldr r7, _080F4CD8 @ =0x000001ff + adds r0, r7, 0 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 5 + ldrh r0, [r5] + ldr r7, _080F4CDC @ =0xffffc01f + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r5] + ldr r0, _080F4CE0 @ =0x0000893f + adds r3, r0 + ldrb r0, [r3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3] + lsls r4, 16 + lsrs r7, r4, 16 +_080F4C58: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r8 + ldrb r1, [r1] + cmp r6, r1 + bcc _080F4BF6 +_080F4C66: + mov r2, r9 + ldr r4, [r2] + lsls r1, r7, 2 + adds r1, r4, r1 + ldr r3, _080F4CD0 @ =0x0000893d + adds r0, r1, r3 + movs r5, 0 + strb r5, [r0] + ldr r0, _080F4CD4 @ =0x0000893e + adds r2, r1, r0 + ldrb r3, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r3 + strb r0, [r2] + ldrh r3, [r2] + ldr r0, _080F4CDC @ =0xffffc01f + ands r0, r3 + strh r0, [r2] + ldr r2, _080F4CE0 @ =0x0000893f + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r3, _080F4CE4 @ =0x000087dc + adds r0, r4, r3 + strh r5, [r0] + adds r1, r7, 0x1 + ldr r7, _080F4CE8 @ =0x000087da + adds r0, r4, r7 + strh r1, [r0] + bl sub_80F4B20 + ldr r0, _080F4CEC @ =0x000087cb + adds r4, r0 + movs r0, 0x1 + strb r0, [r4] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F4CC4: .4byte gUnknown_083DFEC4 +_080F4CC8: .4byte 0x00008828 +_080F4CCC: .4byte gPlayerParty +_080F4CD0: .4byte 0x0000893d +_080F4CD4: .4byte 0x0000893e +_080F4CD8: .4byte 0x000001ff +_080F4CDC: .4byte 0xffffc01f +_080F4CE0: .4byte 0x0000893f +_080F4CE4: .4byte 0x000087dc +_080F4CE8: .4byte 0x000087da +_080F4CEC: .4byte 0x000087cb + thumb_func_end sub_80F4BD0 + + thumb_func_start sub_80F4CF0 +sub_80F4CF0: @ 80F4CF0 + push {r4,lr} + ldr r0, _080F4D1C @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4D20 @ =0x0000876e + adds r0, r4, r1 + ldrh r1, [r0] + ldr r2, _080F4D24 @ =0x000087dc + adds r0, r4, r2 + strh r1, [r0] + bl sub_80F4B20 + ldr r1, _080F4D28 @ =0x00008774 + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080F4D30 + ldr r0, _080F4D2C @ =0x000087cb + adds r1, r4, r0 + movs r0, 0 + b _080F4D36 + .align 2, 0 +_080F4D1C: .4byte gUnknown_083DFEC4 +_080F4D20: .4byte 0x0000876e +_080F4D24: .4byte 0x000087dc +_080F4D28: .4byte 0x00008774 +_080F4D2C: .4byte 0x000087cb +_080F4D30: + ldr r2, _080F4D40 @ =0x000087cb + adds r1, r4, r2 + movs r0, 0x1 +_080F4D36: + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D40: .4byte 0x000087cb + thumb_func_end sub_80F4CF0 + + thumb_func_start sub_80F4D44 +sub_80F4D44: @ 80F4D44 + push {r4,lr} + ldr r0, _080F4D78 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F4D7C @ =0x00008fe6 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F4D80 @ =0x00008fe7 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F4D84 @ =0x00006dac + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F4D70 +_080F4D66: + bl sub_80F4D88 + lsls r0, 24 + cmp r0, 0 + bne _080F4D66 +_080F4D70: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F4D78: .4byte gUnknown_083DFEC4 +_080F4D7C: .4byte 0x00008fe6 +_080F4D80: .4byte 0x00008fe7 +_080F4D84: .4byte 0x00006dac + thumb_func_end sub_80F4D44 + + thumb_func_start sub_80F4D88 +sub_80F4D88: @ 80F4D88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r6, _080F4E98 @ =gUnknown_083DFEC4 + ldr r4, [r6] + ldr r1, _080F4E9C @ =0x00008fe6 + adds r0, r4, r1 + ldrb r3, [r0] + cmp r3, 0xE + bne _080F4DA4 + b _080F4EB8 +_080F4DA4: + cmp r3, 0xF + bne _080F4DAA + b _080F4F60 +_080F4DAA: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r7, 0 + mov r10, r6 + ldr r2, _080F4E9C @ =0x00008fe6 + adds r6, r4, r2 + ldr r3, _080F4EA0 @ =0x00008fe7 + adds r5, r4, r3 + ldr r0, _080F4EA4 @ =0x000087d8 + adds r0, r4 + mov r9, r0 + ldr r1, _080F4EA8 @ =gUnknown_020300A4 + mov r8, r1 +_080F4DCA: + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _080F4E60 + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + bne _080F4E60 + ldrb r1, [r6] + lsls r1, 8 + ldr r2, _080F4EAC @ =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r5] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F4EB0 @ =0xffe0ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r5] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + mov r2, r9 + ldrb r1, [r2] + bl GetBoxMonData + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F4EB4 @ =0xffffff00 + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + bl sub_80F4944 +_080F4E60: + mov r3, r10 + ldr r1, [r3] + ldr r0, _080F4EA0 @ =0x00008fe7 + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + movs r4, 0 + strb r0, [r2] + movs r3, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F4E8C + strb r4, [r2] + ldr r2, _080F4E9C @ =0x00008fe6 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ands r0, r3 + cmp r0, 0xE + beq _080F4F64 +_080F4E8C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xE + bls _080F4DCA + b _080F4F64 + .align 2, 0 +_080F4E98: .4byte gUnknown_083DFEC4 +_080F4E9C: .4byte 0x00008fe6 +_080F4EA0: .4byte 0x00008fe7 +_080F4EA4: .4byte 0x000087d8 +_080F4EA8: .4byte gUnknown_020300A4 +_080F4EAC: .4byte 0xffff00ff +_080F4EB0: .4byte 0xffe0ffff +_080F4EB4: .4byte 0xffffff00 +_080F4EB8: + mov r2, sp + ldrb r0, [r2, 0x3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x3] + strb r3, [r2, 0x1] + movs r7, 0 + ldr r3, _080F4F44 @ =0x00008828 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r7, r0 + bcs _080F4F24 + mov r5, sp + mov r8, r6 + adds r6, r4, r3 +_080F4ED6: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080F4F48 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080F4F18 + movs r0, 0x1F + adds r2, r7, 0 + ands r2, r0 + ldrb r0, [r5, 0x2] + movs r3, 0x20 + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x2] + mov r1, r8 + ldr r0, [r1] + ldr r2, _080F4F4C @ =0x000087d8 + adds r0, r2 + ldrb r1, [r0] + adds r0, r4, 0 + bl GetMonData + strb r0, [r5] + mov r0, sp + bl sub_80F4944 +_080F4F18: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldrb r3, [r6] + cmp r7, r3 + bcc _080F4ED6 +_080F4F24: + bl sub_80F49F4 + ldr r0, _080F4F50 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4F54 @ =0x00008fe4 + adds r0, r1, r2 + ldrh r2, [r0] + ldr r3, _080F4F58 @ =0x000087da + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080F4F5C @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F4F64 + .align 2, 0 +_080F4F44: .4byte 0x00008828 +_080F4F48: .4byte gPlayerParty +_080F4F4C: .4byte 0x000087d8 +_080F4F50: .4byte gUnknown_083DFEC4 +_080F4F54: .4byte 0x00008fe4 +_080F4F58: .4byte 0x000087da +_080F4F5C: .4byte 0x00008fe6 +_080F4F60: + movs r0, 0 + b _080F4F66 +_080F4F64: + movs r0, 0x1 +_080F4F66: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F4D88 + + thumb_func_start sub_80F4F78 +sub_80F4F78: @ 80F4F78 + push {lr} + ldr r0, _080F4FA4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F4FA8 @ =0x00009040 + adds r0, r1, r2 + ldr r3, _080F4FAC @ =0x00008fe9 + adds r2, r1, r3 + movs r3, 0 + ldrsb r3, [r2, r3] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 2 + ldr r3, _080F4FB0 @ =0x00009004 + adds r2, r3 + adds r1, r2 + bl sub_80F53EC + bl sub_80F5504 + pop {r0} + bx r0 + .align 2, 0 +_080F4FA4: .4byte gUnknown_083DFEC4 +_080F4FA8: .4byte 0x00009040 +_080F4FAC: .4byte 0x00008fe9 +_080F4FB0: .4byte 0x00009004 + thumb_func_end sub_80F4F78 + + thumb_func_start sub_80F4FB4 +sub_80F4FB4: @ 80F4FB4 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F170C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F4FD2 + cmp r0, 0 + beq _080F4FD4 +_080F4FD2: + movs r1, 0x1 +_080F4FD4: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F4FB4 + + thumb_func_start sub_80F4FDC +sub_80F4FDC: @ 80F4FDC + push {lr} + ldr r0, _080F5020 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F5024 @ =0x000076aa + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F4FFE + ldr r3, _080F5028 @ =0x000087dc + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r3, _080F502C @ =0x00008828 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + beq _080F501A +_080F4FFE: + ldr r1, _080F5030 @ =0x00008fe9 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r3, _080F5034 @ =0x00009004 + adds r0, r3 + adds r0, r2, r0 + adds r3, 0x3C + adds r1, r2, r3 + bl sub_80F53EC +_080F501A: + pop {r0} + bx r0 + .align 2, 0 +_080F5020: .4byte gUnknown_083DFEC4 +_080F5024: .4byte 0x000076aa +_080F5028: .4byte 0x000087dc +_080F502C: .4byte 0x00008828 +_080F5030: .4byte 0x00008fe9 +_080F5034: .4byte 0x00009004 + thumb_func_end sub_80F4FDC + + thumb_func_start sub_80F5038 +sub_80F5038: @ 80F5038 + push {r4,lr} + bl sub_80F5504 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80F173C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + cmp r4, 0 + bne _080F5056 + cmp r0, 0 + beq _080F5058 +_080F5056: + movs r1, 0x1 +_080F5058: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F5038 + + thumb_func_start sub_80F5060 +sub_80F5060: @ 80F5060 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + beq _080F507C + ldr r0, _080F5074 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5078 @ =0x00008feb + adds r0, r1 + b _080F5084 + .align 2, 0 +_080F5074: .4byte gUnknown_083DFEC4 +_080F5078: .4byte 0x00008feb +_080F507C: + ldr r0, _080F50FC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F5100 @ =0x00008fea + adds r0, r2 +_080F5084: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F50FC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r3, _080F5104 @ =0x00008fe9 + adds r5, r4, r3 + movs r1, 0 + ldrsb r1, [r5, r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r2, _080F5108 @ =0x00009004 + adds r0, r2 + adds r0, r4, r0 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 2 + adds r1, r2 + adds r1, r4, r1 + bl sub_80F53EC + ldr r0, _080F510C @ =0x000087dc + adds r3, r4, r0 + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 2 + adds r0, r4, r0 + ldr r2, _080F5110 @ =0x0000893f + adds r0, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r12, r0 + cmp r7, 0 + beq _080F5158 + ldr r7, _080F5100 @ =0x00008fea + adds r1, r4, r7 + ldrb r0, [r1] + adds r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5114 @ =0x00008fec + adds r0, r4, r2 + strb r1, [r0] + adds r5, r4, 0 + ldrh r1, [r3] + movs r7, 0 + ldrsh r0, [r3, r7] + cmp r0, 0 + beq _080F5118 + subs r2, r1, 0x1 + b _080F5120 + .align 2, 0 +_080F50FC: .4byte gUnknown_083DFEC4 +_080F5100: .4byte 0x00008fea +_080F5104: .4byte 0x00008fe9 +_080F5108: .4byte 0x00009004 +_080F510C: .4byte 0x000087dc +_080F5110: .4byte 0x0000893f +_080F5114: .4byte 0x00008fec +_080F5118: + ldr r1, _080F513C @ =0x000087da + adds r0, r4, r1 + ldrh r0, [r0] + subs r2, r0, 0x1 +_080F5120: + ldr r1, _080F5140 @ =0x000087dc + adds r0, r5, r1 + strh r2, [r0] + ldr r2, _080F5144 @ =gUnknown_083DFEC4 + ldr r3, [r2] + adds r1, r3, r1 + ldrh r4, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _080F5148 + subs r1, r4, 0x1 + b _080F51CE + .align 2, 0 +_080F513C: .4byte 0x000087da +_080F5140: .4byte 0x000087dc +_080F5144: .4byte gUnknown_083DFEC4 +_080F5148: + ldr r7, _080F5154 @ =0x000087da + adds r0, r3, r7 + ldrh r0, [r0] + subs r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F5154: .4byte 0x000087da +_080F5158: + ldr r7, _080F518C @ =0x00008feb + adds r1, r4, r7 + ldrb r0, [r1] + subs r7, 0x1 + adds r2, r4, r7 + strb r0, [r2] + ldrb r0, [r5] + strb r0, [r1] + strb r6, [r5] + ldrb r1, [r2] + ldr r2, _080F5190 @ =0x00008fec + adds r0, r4, r2 + strb r1, [r0] + adds r2, r4, 0 + movs r4, 0 + ldrsh r1, [r3, r4] + ldr r5, _080F5194 @ =0x000087da + adds r0, r2, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F5198 + ldrh r0, [r3] + adds r3, r0, 0x1 + b _080F519A + .align 2, 0 +_080F518C: .4byte 0x00008feb +_080F5190: .4byte 0x00008fec +_080F5194: .4byte 0x000087da +_080F5198: + movs r3, 0 +_080F519A: + ldr r1, _080F51C0 @ =0x000087dc + adds r0, r2, r1 + strh r3, [r0] + ldr r2, _080F51C4 @ =gUnknown_083DFEC4 + ldr r3, [r2] + adds r4, r3, r1 + movs r0, 0 + ldrsh r1, [r4, r0] + ldr r5, _080F51C8 @ =0x000087da + adds r0, r3, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + subs r0, 0x1 + cmp r1, r0 + bge _080F51CC + ldrh r0, [r4] + adds r1, r0, 0x1 + b _080F51CE + .align 2, 0 +_080F51C0: .4byte 0x000087dc +_080F51C4: .4byte gUnknown_083DFEC4 +_080F51C8: .4byte 0x000087da +_080F51CC: + movs r1, 0 +_080F51CE: + ldr r4, _080F51FC @ =0x00008fee + adds r0, r3, r4 + strh r1, [r0] + ldr r1, [r2] + ldr r5, _080F5200 @ =0x000087dc + adds r0, r1, r5 + movs r7, 0 + ldrsh r0, [r0, r7] + lsls r0, 2 + adds r0, r1, r0 + ldr r3, _080F5204 @ =0x0000893f + adds r0, r3 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 31 + mov r4, r12 + cmp r4, 0 + bne _080F520C + adds r5, 0x4 + adds r1, r5 + ldr r0, _080F5208 @ =sub_80F5264 + b _080F5226 + .align 2, 0 +_080F51FC: .4byte 0x00008fee +_080F5200: .4byte 0x000087dc +_080F5204: .4byte 0x0000893f +_080F5208: .4byte sub_80F5264 +_080F520C: + cmp r0, 0 + bne _080F5220 + ldr r7, _080F5218 @ =0x000087e0 + adds r1, r7 + ldr r0, _080F521C @ =sub_80F52F8 + b _080F5226 + .align 2, 0 +_080F5218: .4byte 0x000087e0 +_080F521C: .4byte sub_80F52F8 +_080F5220: + ldr r0, _080F5238 @ =0x000087e0 + adds r1, r0 + ldr r0, _080F523C @ =sub_80F5364 +_080F5226: + str r0, [r1] + ldr r0, [r2] + ldr r1, _080F5240 @ =0x000087de + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5238: .4byte 0x000087e0 +_080F523C: .4byte sub_80F5364 +_080F5240: .4byte 0x000087de + thumb_func_end sub_80F5060 + + thumb_func_start gpu_sync_bg_show +gpu_sync_bg_show: @ 80F5244 + push {lr} + ldr r0, _080F525C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5260 @ =0x000087e0 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080F525C: .4byte gUnknown_083DFEC4 +_080F5260: .4byte 0x000087e0 + thumb_func_end gpu_sync_bg_show + + thumb_func_start sub_80F5264 +sub_80F5264: @ 80F5264 + push {r4,r5,lr} + ldr r0, _080F5280 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5284 @ =0x000087de + adds r5, r0, r1 + ldrb r1, [r5] + cmp r1, 0x1 + beq _080F52AA + cmp r1, 0x1 + bgt _080F5288 + cmp r1, 0 + beq _080F528E + b _080F52F0 + .align 2, 0 +_080F5280: .4byte gUnknown_083DFEC4 +_080F5284: .4byte 0x000087de +_080F5288: + cmp r1, 0x2 + beq _080F52EC + b _080F52F0 +_080F528E: + ldr r2, _080F52D8 @ =0x00008fe9 + adds r4, r0, r2 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_080F52AA: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F52F0 + ldr r0, _080F52DC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F52E0 @ =0x00008fee + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, _080F52E4 @ =0x00008fec + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldr r0, _080F52E8 @ =0x000087de + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F52F0 + .align 2, 0 +_080F52D8: .4byte 0x00008fe9 +_080F52DC: .4byte gUnknown_083DFEC4 +_080F52E0: .4byte 0x00008fee +_080F52E4: .4byte 0x00008fec +_080F52E8: .4byte 0x000087de +_080F52EC: + movs r0, 0 + b _080F52F2 +_080F52F0: + movs r0, 0x1 +_080F52F2: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5264 + + thumb_func_start sub_80F52F8 +sub_80F52F8: @ 80F52F8 + push {r4,r5,lr} + ldr r0, _080F5310 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F5314 @ =0x000087de + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0 + beq _080F5318 + cmp r0, 0x1 + beq _080F5358 + b _080F535C + .align 2, 0 +_080F5310: .4byte gUnknown_083DFEC4 +_080F5314: .4byte 0x000087de +_080F5318: + bl sub_80F5038 + lsls r0, 24 + cmp r0, 0 + bne _080F535C + ldr r1, _080F5350 @ =0x00008fe9 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + ldr r2, _080F5354 @ =0x00008fee + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F535C + .align 2, 0 +_080F5350: .4byte 0x00008fe9 +_080F5354: .4byte 0x00008fee +_080F5358: + movs r0, 0 + b _080F535E +_080F535C: + movs r0, 0x1 +_080F535E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F52F8 + + thumb_func_start sub_80F5364 +sub_80F5364: @ 80F5364 + push {r4,r5,lr} + ldr r0, _080F5380 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F5384 @ =0x000087de + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _080F53B8 + cmp r0, 0x1 + bgt _080F5388 + cmp r0, 0 + beq _080F538E + b _080F53E4 + .align 2, 0 +_080F5380: .4byte gUnknown_083DFEC4 +_080F5384: .4byte 0x000087de +_080F5388: + cmp r0, 0x2 + beq _080F53CA + b _080F53E4 +_080F538E: + bl sub_80F5504 + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 + ldr r1, _080F53B4 @ =0x00008fe9 + adds r4, r1 + ldrb r0, [r4] + bl sub_80F2E18 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + bl sub_80F01E0 + b _080F53C2 + .align 2, 0 +_080F53B4: .4byte 0x00008fe9 +_080F53B8: + bl sub_80F4FB4 + lsls r0, 24 + cmp r0, 0 + bne _080F53E4 +_080F53C2: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080F53E4 +_080F53CA: + ldr r2, _080F53E0 @ =0x00008fee + adds r0, r4, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r2, 0x2 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80F4900 + movs r0, 0 + b _080F53E6 + .align 2, 0 +_080F53E0: .4byte 0x00008fee +_080F53E4: + movs r0, 0x1 +_080F53E6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F5364 + + thumb_func_start sub_80F53EC +sub_80F53EC: @ 80F53EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + mov r9, r1 + movs r7, 0 + ldr r0, _080F54F4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + str r0, [sp, 0x4] +_080F5404: + lsls r4, r7, 2 + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0] + lsls r5, r1, 8 + mov r2, r9 + adds r0, r4, r2 + ldrh r0, [r0] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + adds r7, 0x1 + mov r10, r7 + mov r8, r4 +_080F5428: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + add r0, r8 + ldr r7, [sp, 0x4] + adds r0, r7, r0 + asrs r2, r5, 8 + asrs r1, r5, 7 + movs r7, 0x1 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54F8 @ =0x00009054 + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F5428 + ldr r2, _080F54F4 @ =gUnknown_083DFEC4 + ldr r1, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r1, r0 + mov r3, r9 + adds r2, r4, r3 + ldrh r0, [r2] + ldr r7, _080F54F8 @ =0x00009054 + adds r1, r7 + strh r0, [r1] + ldr r1, [sp] + adds r0, r4, r1 + ldrh r1, [r0, 0x2] + lsls r5, r1, 8 + ldrh r0, [r2, 0x2] + subs r0, r1 + lsls r0, 8 + movs r1, 0xA + bl __divsi3 + adds r6, r0, 0 + movs r3, 0 + ldr r0, _080F54F4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r12, r0 + str r4, [sp, 0x8] + movs r2, 0x1 + mov r8, r2 +_080F548E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + ldr r7, [sp, 0x8] + adds r0, r7, r0 + add r0, r12 + asrs r2, r5, 8 + asrs r1, r5, 7 + mov r7, r8 + ands r1, r7 + adds r2, r1 + ldr r1, _080F54FC @ =0x00009056 + adds r0, r1 + strh r2, [r0] + adds r5, r6 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x8 + bls _080F548E + ldr r7, _080F54F4 @ =gUnknown_083DFEC4 + ldr r2, [r7] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4, r0 + adds r0, r2, r0 + mov r3, r9 + adds r1, r4, r3 + ldrh r1, [r1, 0x2] + ldr r7, _080F54FC @ =0x00009056 + adds r0, r7 + strh r1, [r0] + mov r1, r10 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _080F5404 + ldr r3, _080F5500 @ =0x00009342 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F54F4: .4byte gUnknown_083DFEC4 +_080F54F8: .4byte 0x00009054 +_080F54FC: .4byte 0x00009056 +_080F5500: .4byte 0x00009342 + thumb_func_end sub_80F53EC + + thumb_func_start sub_80F5504 +sub_80F5504: @ 80F5504 + push {r4,lr} + ldr r0, _080F551C @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F5520 @ =0x00009342 + adds r4, r2, r0 + ldrh r0, [r4] + adds r1, r0, 0 + cmp r1, 0x9 + bls _080F5524 + movs r0, 0 + b _080F5544 + .align 2, 0 +_080F551C: .4byte gUnknown_083DFEC4 +_080F5520: .4byte 0x00009342 +_080F5524: + adds r0, 0x1 + strh r0, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F554C @ =0x00009054 + adds r0, r1 + adds r0, r2, r0 + bl sub_80F556C + ldrh r1, [r4] + movs r0, 0xA + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080F5544: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F554C: .4byte 0x00009054 + thumb_func_end sub_80F5504 + + thumb_func_start sub_80F5550 +sub_80F5550: @ 80F5550 + push {lr} + bl sub_80F53EC + pop {r0} + bx r0 + thumb_func_end sub_80F5550 + + thumb_func_start sub_80F555C +sub_80F555C: @ 80F555C + push {lr} + bl sub_80F5504 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F555C + + thumb_func_start sub_80F556C +sub_80F556C: @ 80F556C + push {r4,r5,lr} + adds r4, r0, 0 + movs r2, 0 + ldr r5, _080F55A0 @ =gUnknown_083DFEC4 + ldr r0, [r5] + ldr r1, _080F55A4 @ =0x0000911c + adds r3, r0, r1 +_080F557A: + lsls r0, r2, 2 + adds r1, r3, r0 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _080F557A + ldr r0, [r5] + ldr r1, _080F55A8 @ =0x00009344 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F55A0: .4byte gUnknown_083DFEC4 +_080F55A4: .4byte 0x0000911c +_080F55A8: .4byte 0x00009344 + thumb_func_end sub_80F556C + + thumb_func_start sub_80F55AC +sub_80F55AC: @ 80F55AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r8, r1 + ldr r1, _080F5674 @ =gUnknown_083E4890 + ldrb r0, [r6] + adds r0, r1 + ldrb r2, [r0] + adds r6, 0x1 + movs r0, 0x9B + mov r3, r8 + strh r0, [r3] + movs r0, 0x5B + subs r0, r2 + strh r0, [r3, 0x2] + movs r7, 0x40 + movs r0, 0 + mov r12, r0 + movs r2, 0x1 + mov r9, r2 + ldr r3, _080F5678 @ =gSineTable + mov r10, r3 +_080F55DE: + adds r0, r7, 0 + adds r0, 0x33 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r12 + lsls r0, r1, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r3, r0, 24 + mov r12, r3 + cmp r0, 0 + bge _080F55FC + movs r0, 0x4 + mov r12, r0 +_080F55FC: + mov r1, r12 + lsls r0, r1, 24 + asrs r4, r0, 24 + cmp r4, 0x2 + bne _080F560C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_080F560C: + ldrb r0, [r6] + ldr r2, _080F5674 @ =gUnknown_083E4890 + adds r0, r2 + ldrb r2, [r0] + adds r6, 0x1 + lsls r0, r4, 2 + mov r1, r8 + adds r3, r0, r1 + adds r0, r7, 0 + adds r0, 0x40 + lsls r0, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + muls r0, r2 + asrs r5, r0, 8 + adds r0, r5, 0 + adds r0, 0x9B + strh r0, [r3] + lsls r0, r7, 1 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r2, 0 + muls r1, r0 + asrs r1, 8 + movs r0, 0x5B + subs r0, r1 + strh r0, [r3, 0x2] + cmp r4, 0x2 + bgt _080F5658 + cmp r2, 0x20 + bne _080F5652 + cmp r4, 0x2 + beq _080F5658 +_080F5652: + adds r0, r5, 0 + adds r0, 0x9C + strh r0, [r3] +_080F5658: + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _080F55DE + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5674: .4byte gUnknown_083E4890 +_080F5678: .4byte gSineTable + thumb_func_end sub_80F55AC + + thumb_func_start sub_80F567C +sub_80F567C: @ 80F567C + push {lr} + bl sub_80F55AC + pop {r0} + bx r0 + thumb_func_end sub_80F567C + + thumb_func_start sub_80F5688 +sub_80F5688: @ 80F5688 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + str r2, [sp] + ldr r7, [sp, 0x34] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + movs r0, 0 + str r0, [sp, 0x8] + ldrh r0, [r5, 0x2] + ldrh r1, [r2, 0x2] + cmp r0, r1 + bcs _080F56D0 + adds r2, r0, 0 + str r2, [sp, 0x4] + ldr r3, [sp] + ldrh r0, [r3, 0x2] + ldrh r1, [r5] + lsls r4, r1, 10 + ldrh r2, [r3] + mov r10, r2 + ldr r3, [sp, 0x4] + subs r0, r3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r2, r1 + b _080F56F2 +_080F56D0: + ldrh r0, [r5, 0x2] + ldr r1, [sp] + ldrh r1, [r1, 0x2] + str r1, [sp, 0x4] + ldr r2, [sp] + ldrh r1, [r2] + lsls r4, r1, 10 + ldrh r3, [r5] + mov r10, r3 + ldr r2, [sp, 0x4] + subs r0, r2 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _080F56FC + subs r0, r3, r1 +_080F56F2: + lsls r0, 10 + mov r1, r8 + bl __divsi3 + str r0, [sp, 0x8] +_080F56FC: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r7, 0 + bne _080F5746 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r7, r8 + bcs _080F57D4 + movs r7, 0x1 +_080F5726: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r1, [sp, 0x8] + adds r4, r1 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5726 + b _080F57D4 +_080F5746: + ldr r2, [sp, 0x8] + cmp r2, 0 + ble _080F57E4 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + movs r5, 0 + mov r3, r9 + lsls r3, 1 + mov r12, r3 + mov r0, r10 + add r0, r9 + str r0, [sp, 0xC] + cmp r5, r8 + bcs _080F5798 + ldr r0, _080F57D8 @ =0x00026bff + cmp r4, r0 + bgt _080F5798 + mov r1, r12 + str r1, [sp, 0x10] + mov r10, r0 +_080F5772: + ldr r3, [sp, 0x10] + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r3, 0x1 + ands r0, r3 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5798 + cmp r4, r10 + ble _080F5772 +_080F5798: + ldr r1, _080F57DC @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, [sp, 0x4] + adds r1, r2, r5 + ldr r3, _080F57E0 @ =0x00009340 + adds r0, r3 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + cmp r5, r8 + bcs _080F57D4 + mov r3, r12 + movs r7, 0x1 +_080F57B6: + adds r2, r3, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r7 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F57B6 +_080F57D4: + subs r0, r6, 0x4 + b _080F58C4 + .align 2, 0 +_080F57D8: .4byte 0x00026bff +_080F57DC: .4byte gUnknown_083DFEC4 +_080F57E0: .4byte 0x00009340 +_080F57E4: + ldr r1, [sp, 0x8] + cmp r1, 0 + bge _080F5890 + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + movs r5, 0 + mov r2, r9 + lsls r2, 1 + mov r12, r2 + mov r3, r10 + add r3, r9 + str r3, [sp, 0xC] + cmp r5, r8 + bcs _080F5842 + adds r3, r2, r6 + asrs r1, r4, 10 + asrs r0, r4, 9 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + add r1, r9 + strh r1, [r3] + b _080F5838 +_080F5816: + ldr r0, [sp, 0x8] + adds r4, r0 + adds r6, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcs _080F5842 + mov r1, r12 + adds r3, r1, r6 + asrs r2, r4, 10 + asrs r0, r4, 9 + movs r1, 0x1 + ands r0, r1 + adds r2, r0 + add r2, r9 + strh r2, [r3] +_080F5838: + ldr r0, _080F5884 @ =0x00026bff + cmp r4, r0 + bgt _080F5816 + movs r0, 0x9B + strh r0, [r3] +_080F5842: + ldr r2, _080F5888 @ =gUnknown_083DFEC4 + ldr r0, [r2] + ldr r3, [sp, 0x4] + adds r1, r3, r5 + ldr r2, _080F588C @ =0x00009340 + adds r0, r2 + strh r1, [r0] + ldrh r0, [r0] + subs r0, 0x38 + lsls r0, 2 + adds r7, r0 + cmp r5, r8 + bcs _080F587E + mov r3, r12 + movs r6, 0x1 +_080F5860: + adds r2, r3, r7 + asrs r1, r4, 10 + asrs r0, r4, 9 + ands r0, r6 + adds r1, r0 + add r1, r9 + strh r1, [r2] + ldr r0, [sp, 0x8] + adds r4, r0 + adds r7, 0x4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080F5860 +_080F587E: + subs r0, r7, 0x4 + b _080F58C4 + .align 2, 0 +_080F5884: .4byte 0x00026bff +_080F5888: .4byte gUnknown_083DFEC4 +_080F588C: .4byte 0x00009340 +_080F5890: + ldr r0, _080F58BC @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F58C0 @ =0x00009340 + adds r0, r1 + mov r2, sp + ldrh r2, [r2, 0x4] + strh r2, [r0] + ldr r0, [sp, 0x4] + subs r0, 0x38 + lsls r0, 2 + adds r6, r0 + adds r7, r0 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r6, 0x2] + ldr r3, [sp] + ldrh r0, [r3] + strh r0, [r7] + movs r0, 0x9B + strh r0, [r7, 0x2] + b _080F58CC + .align 2, 0 +_080F58BC: .4byte gUnknown_083DFEC4 +_080F58C0: .4byte 0x00009340 +_080F58C4: + add r0, r12 + mov r1, sp + ldrh r1, [r1, 0xC] + strh r1, [r0] +_080F58CC: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F5688 + + thumb_func_start sub_80F58DC +sub_80F58DC: @ 80F58DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x6] + cmp r0, r1 + bcs _080F5914 + adds r4, r0, 0 + mov r8, r4 + ldr r0, _080F590C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5910 @ =0x00009130 + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_80F5688 + b _080F5930 + .align 2, 0 +_080F590C: .4byte gUnknown_083DFEC4 +_080F5910: .4byte 0x00009130 +_080F5914: + ldrh r4, [r5, 0x6] + mov r8, r4 + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5A0C @ =0x00009130 + adds r0, r1 + adds r4, r5, 0x4 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl sub_80F5688 +_080F5930: + adds r1, r4, 0 + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r0, _080F5A0C @ =0x00009130 + adds r4, r6, r0 + adds r7, r5, 0 + adds r7, 0x8 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + adds r2, r7, 0 + movs r3, 0x1 + bl sub_80F5688 + movs r3, 0 + ldrh r0, [r5, 0xA] + ldrh r1, [r5, 0xE] + cmp r0, r1 + bhi _080F5958 + movs r3, 0x1 +_080F5958: + adds r2, r5, 0 + adds r2, 0xC + ldr r1, _080F5A10 @ =0x00009238 + adds r0, r6, r1 + str r0, [sp] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r8 + bcs _080F5990 + adds r7, r4, 0 + movs r3, 0 + ldr r0, _080F5A14 @ =0x00009132 + adds r4, r6, r0 +_080F5978: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r7, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r8 + bcc _080F5978 +_080F5990: + ldrh r2, [r5, 0x2] + ldr r0, _080F5A08 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F5A18 @ =0x00009340 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F59BE + ldr r4, _080F5A0C @ =0x00009130 + adds r3, r4 + movs r4, 0x9B +_080F59A8: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F59A8 +_080F59BE: + ldr r4, [r6] + ldr r1, _080F5A18 @ =0x00009340 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r1, [r5, 0xA] + cmp r0, r1 + bcs _080F59CE + adds r0, r1, 0 +_080F59CE: + adds r0, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F59FA + ldr r0, _080F5A0C @ =0x00009130 + adds r5, r4, r0 + movs r3, 0 + ldr r1, _080F5A14 @ =0x00009132 + adds r4, r1 +_080F59E2: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F59E2 +_080F59FA: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5A08: .4byte gUnknown_083DFEC4 +_080F5A0C: .4byte 0x00009130 +_080F5A10: .4byte 0x00009238 +_080F5A14: .4byte 0x00009132 +_080F5A18: .4byte 0x00009340 + thumb_func_end sub_80F58DC + + thumb_func_start sub_80F5A1C +sub_80F5A1C: @ 80F5A1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x12] + cmp r0, r1 + bcs _080F5A54 + adds r7, r0, 0 + ldr r0, _080F5A4C @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F5A50 @ =0x00009238 + adds r0, r2 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_80F5688 + b _080F5A70 + .align 2, 0 +_080F5A4C: .4byte gUnknown_083DFEC4 +_080F5A50: .4byte 0x00009238 +_080F5A54: + ldrh r7, [r5, 0x12] + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r4, _080F5B2C @ =0x00009238 + adds r0, r4 + adds r4, r5, 0 + adds r4, 0x10 + movs r1, 0 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_80F5688 +_080F5A70: + adds r1, r4, 0 + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r0, [r0] + mov r8, r0 + ldr r4, _080F5B2C @ =0x00009238 + add r4, r8 + adds r2, r5, 0 + adds r2, 0xC + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0 + bl sub_80F5688 + movs r2, 0x38 + cmp r2, r7 + bcs _080F5AB2 + adds r6, r4, 0 + movs r3, 0 + ldr r4, _080F5B30 @ =0x0000923a + add r4, r8 +_080F5A9A: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r6, r0 + strh r3, [r1] + adds r0, r4, r0 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _080F5A9A +_080F5AB2: + ldrh r2, [r5, 0x2] + ldr r0, _080F5B28 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r4, _080F5B34 @ =0x00009340 + adds r1, r3, r4 + adds r6, r0, 0 + ldrh r0, [r1] + cmp r2, r0 + bhi _080F5AE0 + ldr r4, _080F5B30 @ =0x0000923a + adds r3, r4 + movs r4, 0x9B +_080F5ACA: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r1] + cmp r2, r0 + bls _080F5ACA +_080F5AE0: + ldrh r0, [r5, 0xE] + adds r1, r0, 0x1 + ldr r3, [r6] + ldr r2, _080F5B34 @ =0x00009340 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, r1 + bge _080F5AF2 + adds r0, r1, 0 +_080F5AF2: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bhi _080F5B1C + ldr r4, _080F5B2C @ =0x00009238 + adds r5, r3, r4 + movs r4, 0 + ldr r0, _080F5B30 @ =0x0000923a + adds r3, r0 +_080F5B04: + adds r0, r2, 0 + subs r0, 0x38 + lsls r0, 2 + adds r1, r5, r0 + strh r4, [r1] + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x79 + bls _080F5B04 +_080F5B1C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5B28: .4byte gUnknown_083DFEC4 +_080F5B2C: .4byte 0x00009238 +_080F5B30: .4byte 0x0000923a +_080F5B34: .4byte 0x00009340 + thumb_func_end sub_80F5A1C + + thumb_func_start sub_80F5B38 +sub_80F5B38: @ 80F5B38 + ldr r0, _080F5B48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5B4C @ =0x00009345 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080F5B48: .4byte gUnknown_083DFEC4 +_080F5B4C: .4byte 0x00009345 + thumb_func_end sub_80F5B38 + + thumb_func_start sub_80F5B50 +sub_80F5B50: @ 80F5B50 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, _080F5B68 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F5B6C @ =0x00009345 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080F5B70 + cmp r0, 0x1 + beq _080F5BB4 + b _080F5BCC + .align 2, 0 +_080F5B68: .4byte gUnknown_083DFEC4 +_080F5B6C: .4byte 0x00009345 +_080F5B70: + bl dp12_8087EA4 + ldr r0, _080F5BA8 @ =gUnknown_03004DE0 + movs r2, 0xEF + movs r3, 0xF4 + lsls r3, 3 + adds r1, r0, r3 + adds r0, 0x20 + movs r3, 0xF +_080F5B82: + strh r2, [r0] + strh r2, [r0, 0x2] + strh r2, [r1] + strh r2, [r1, 0x2] + adds r1, 0x4 + adds r0, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _080F5B82 + ldr r0, _080F5BAC @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r5, _080F5BB0 @ =0x00009345 + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + b _080F5BCE + .align 2, 0 +_080F5BA8: .4byte gUnknown_03004DE0 +_080F5BAC: .4byte gUnknown_083DFEC4 +_080F5BB0: .4byte 0x00009345 +_080F5BB4: + mov r0, sp + ldr r1, _080F5BD8 @ =gUnknown_083E4990 + ldm r1!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl sub_80895F8 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_080F5BCC: + movs r0, 0 +_080F5BCE: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5BD8: .4byte gUnknown_083E4990 + thumb_func_end sub_80F5B50 + + thumb_func_start sub_80F5BDC +sub_80F5BDC: @ 80F5BDC + push {lr} + ldr r1, _080F5BEC @ =gUnknown_03004DC0 + movs r0, 0x3 + strb r0, [r1, 0x15] + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080F5BEC: .4byte gUnknown_03004DC0 + thumb_func_end sub_80F5BDC + + thumb_func_start sub_80F5BF0 +sub_80F5BF0: @ 80F5BF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r1, _080F5CBC @ =0x00009344 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5CA6 + ldr r0, _080F5CC0 @ =0x0000911c + adds r4, r5, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r6, 0 + ldr r1, _080F5CC4 @ =gUnknown_03004DE0 + mov r12, r1 + movs r0, 0xF0 + lsls r0, 3 + add r0, r12 + mov r9, r0 + adds r7, r5, 0 + ldr r1, _080F5CC8 @ =0x0000ffff + mov r8, r1 + ldr r5, _080F5CCC @ =0x00009130 + adds r5, r7, r5 + str r5, [sp] + ldr r0, _080F5CD0 @ =0x00009132 + adds r0, r7, r0 + str r0, [sp, 0x4] + ldr r1, _080F5CD4 @ =0x00009238 + adds r1, r7 + mov r10, r1 +_080F5C40: + adds r2, r6, 0 + adds r2, 0x37 + lsls r3, r2, 2 + mov r5, r9 + adds r5, r3, r5 + str r5, [sp, 0x8] + add r3, r12 + lsls r4, r6, 2 + ldr r1, [sp] + adds r0, r1, r4 + ldrh r0, [r0] + lsls r0, 8 + ldr r5, [sp, 0x4] + adds r1, r5, r4 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r3] + mov r1, r8 + ands r0, r1 + ldr r5, [sp, 0x8] + strh r0, [r5] + lsls r2, 1 + adds r2, 0x1 + lsls r2, 1 + mov r0, r9 + adds r3, r2, r0 + add r2, r12 + mov r1, r10 + adds r0, r1, r4 + ldrh r1, [r0] + lsls r1, 8 + ldr r5, _080F5CD8 @ =0x0000923a + adds r0, r7, r5 + adds r0, r4 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + strh r1, [r3] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _080F5CB8 @ =gUnknown_083DFEC4 + cmp r6, 0x41 + bls _080F5C40 + ldr r0, [r0] + ldr r1, _080F5CBC @ =0x00009344 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5CA6: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5CB8: .4byte gUnknown_083DFEC4 +_080F5CBC: .4byte 0x00009344 +_080F5CC0: .4byte 0x0000911c +_080F5CC4: .4byte gUnknown_03004DE0 +_080F5CC8: .4byte 0x0000ffff +_080F5CCC: .4byte 0x00009130 +_080F5CD0: .4byte 0x00009132 +_080F5CD4: .4byte 0x00009238 +_080F5CD8: .4byte 0x0000923a + thumb_func_end sub_80F5BF0 + + thumb_func_start sub_80F5CDC +sub_80F5CDC: @ 80F5CDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 + ldr r6, [r0] + ldr r1, _080F5DB4 @ =0x00009344 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5DA0 + ldr r0, _080F5DB8 @ =0x0000911c + adds r4, r6, r0 + adds r0, r4, 0 + bl sub_80F58DC + adds r0, r4, 0 + bl sub_80F5A1C + movs r0, 0x37 + subs r0, r5 + lsls r0, 17 + lsrs r5, r0, 16 + movs r7, 0 + ldr r1, _080F5DBC @ =gUnknown_03004DE0 + mov r12, r1 + movs r4, 0xF0 + lsls r4, 3 + add r4, r12 + mov r9, r4 + ldr r0, _080F5DC0 @ =0x0000ffff + mov r8, r0 + ldr r1, _080F5DC4 @ =0x00009130 + adds r1, r6, r1 + str r1, [sp] + ldr r4, _080F5DC8 @ =0x00009132 + adds r4, r6, r4 + str r4, [sp, 0x4] + ldr r0, _080F5DCC @ =0x00009238 + adds r0, r6 + mov r10, r0 +_080F5D36: + lsls r2, r5, 1 + mov r1, r9 + adds r1, r2, r1 + str r1, [sp, 0x8] + add r2, r12 + lsls r3, r7, 2 + ldr r4, [sp] + adds r0, r4, r3 + ldrh r0, [r0] + lsls r0, 8 + ldr r4, [sp, 0x4] + adds r1, r4, r3 + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2] + mov r1, r8 + ands r0, r1 + ldr r4, [sp, 0x8] + strh r0, [r4] + adds r2, r5, 0x1 + lsls r2, 1 + mov r0, r9 + adds r0, r2, r0 + str r0, [sp, 0x8] + add r2, r12 + mov r1, r10 + adds r0, r1, r3 + ldrh r1, [r0] + lsls r1, 8 + ldr r4, _080F5DD0 @ =0x0000923a + adds r0, r6, r4 + adds r0, r3 + ldrh r0, [r0] + orrs r1, r0 + strh r1, [r2] + mov r0, r8 + ands r1, r0 + ldr r4, [sp, 0x8] + strh r1, [r4] + adds r0, r5, 0x2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, _080F5DB0 @ =gUnknown_083DFEC4 + cmp r7, 0x41 + bls _080F5D36 + ldr r0, [r0] + ldr r1, _080F5DB4 @ =0x00009344 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080F5DA0: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F5DB0: .4byte gUnknown_083DFEC4 +_080F5DB4: .4byte 0x00009344 +_080F5DB8: .4byte 0x0000911c +_080F5DBC: .4byte gUnknown_03004DE0 +_080F5DC0: .4byte 0x0000ffff +_080F5DC4: .4byte 0x00009130 +_080F5DC8: .4byte 0x00009132 +_080F5DCC: .4byte 0x00009238 +_080F5DD0: .4byte 0x0000923a + thumb_func_end sub_80F5CDC + + thumb_func_start sub_80F5DD4 +sub_80F5DD4: @ 80F5DD4 + push {lr} + ldr r0, _080F5DE8 @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F5DEC + bl sub_80F5E20 + b _080F5E18 + .align 2, 0 +_080F5DE8: .4byte gMain +_080F5DEC: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F5DFA + bl sub_80F5EE4 + b _080F5E18 +_080F5DFA: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080F5E08 + bl sub_80F5FB4 + b _080F5E18 +_080F5E08: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080F5E14 + movs r0, 0 + b _080F5E1C +_080F5E14: + bl sub_80F6010 +_080F5E18: + lsls r0, 24 + lsrs r0, 24 +_080F5E1C: + pop {r1} + bx r1 + thumb_func_end sub_80F5DD4 + + thumb_func_start sub_80F5E20 +sub_80F5E20: @ 80F5E20 + push {r4,r5,lr} + ldr r0, _080F5E38 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r3, _080F5E3C @ =0x0000876e + adds r1, r2, r3 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r4, r0, 0 + cmp r1, 0 + bne _080F5E40 + movs r0, 0 + b _080F5EC8 + .align 2, 0 +_080F5E38: .4byte gUnknown_083DFEC4 +_080F5E3C: .4byte 0x0000876e +_080F5E40: + ldr r1, _080F5E6C @ =0x000087c9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5E74 + ldr r3, _080F5E70 @ =0x0000876c + adds r0, r2, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bne _080F5E74 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 + b _080F5EC8 + .align 2, 0 +_080F5E6C: .4byte 0x000087c9 +_080F5E70: .4byte 0x0000876c +_080F5E74: + ldr r1, [r4] + ldr r0, _080F5ED0 @ =0x0000876c + adds r2, r1, r0 + ldrh r0, [r2] + subs r3, r0, 0x1 + strh r3, [r2] + ldr r5, _080F5ED4 @ =0x000087c9 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5E98 + lsls r0, r3, 16 + cmp r0, 0 + bge _080F5E98 + ldr r3, _080F5ED8 @ =0x00008772 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] +_080F5E98: + ldr r0, [r4] + ldr r5, _080F5EDC @ =0x00008770 + adds r2, r0, r5 + ldr r3, _080F5ED0 @ =0x0000876c + adds r1, r0, r3 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + subs r5, 0x2 + adds r4, r0, r5 + strh r2, [r4] + ldr r1, _080F5EE0 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5EC6 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5EC6: + movs r0, 0x1 +_080F5EC8: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F5ED0: .4byte 0x0000876c +_080F5ED4: .4byte 0x000087c9 +_080F5ED8: .4byte 0x00008772 +_080F5EDC: .4byte 0x00008770 +_080F5EE0: .4byte 0x00008774 + thumb_func_end sub_80F5E20 + + thumb_func_start sub_80F5EE4 +sub_80F5EE4: @ 80F5EE4 + push {r4-r6,lr} + ldr r3, _080F5F04 @ =gUnknown_083DFEC4 + ldr r4, [r3] + ldr r1, _080F5F08 @ =0x0000876e + adds r0, r4, r1 + ldr r2, _080F5F0C @ =0x00008774 + adds r1, r4, r2 + movs r5, 0 + ldrsh r2, [r0, r5] + movs r6, 0 + ldrsh r0, [r1, r6] + adds r5, r3, 0 + cmp r2, r0 + bne _080F5F10 + movs r0, 0 + b _080F5F98 + .align 2, 0 +_080F5F04: .4byte gUnknown_083DFEC4 +_080F5F08: .4byte 0x0000876e +_080F5F0C: .4byte 0x00008774 +_080F5F10: + ldr r1, _080F5F38 @ =0x000087c9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F5F40 + ldr r2, _080F5F3C @ =0x0000876c + adds r0, r4, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0x7 + bne _080F5F40 + movs r0, 0x1 + bl sub_80F063C + movs r0, 0x1 + bl sub_80F6074 + movs r0, 0x2 + b _080F5F98 + .align 2, 0 +_080F5F38: .4byte 0x000087c9 +_080F5F3C: .4byte 0x0000876c +_080F5F40: + ldr r2, [r5] + ldr r6, _080F5FA0 @ =0x0000876c + adds r4, r2, r6 + ldrh r0, [r4] + adds r1, r0, 0x1 + strh r1, [r4] + ldr r3, _080F5FA4 @ =0x000087c9 + adds r0, r2, r3 + ldrb r3, [r0] + cmp r3, 0 + bne _080F5F68 + adds r6, 0x6 + adds r0, r2, r6 + lsls r1, 16 + asrs r1, 16 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _080F5F68 + strh r3, [r4] +_080F5F68: + ldr r0, [r5] + ldr r3, _080F5FA8 @ =0x00008770 + adds r2, r0, r3 + ldr r5, _080F5FA0 @ =0x0000876c + adds r1, r0, r5 + ldrh r1, [r1] + ldrh r2, [r2] + adds r2, r1, r2 + ldr r6, _080F5FAC @ =0x0000876e + adds r4, r0, r6 + strh r2, [r4] + ldr r1, _080F5FB0 @ =0x00008774 + adds r0, r1 + lsls r1, r2, 16 + asrs r1, 16 + ldrh r3, [r0] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F5F96 + subs r0, r2, 0x1 + subs r0, r3 + strh r0, [r4] +_080F5F96: + movs r0, 0x1 +_080F5F98: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F5FA0: .4byte 0x0000876c +_080F5FA4: .4byte 0x000087c9 +_080F5FA8: .4byte 0x00008770 +_080F5FAC: .4byte 0x0000876e +_080F5FB0: .4byte 0x00008774 + thumb_func_end sub_80F5EE4 + + thumb_func_start sub_80F5FB4 +sub_80F5FB4: @ 80F5FB4 + push {r4,lr} + ldr r0, _080F5FD8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F5FDC @ =0x00008770 + adds r0, r1, r2 + ldrh r3, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + cmp r2, 0 + beq _080F5FD2 + ldr r4, _080F5FE0 @ =0x000087c9 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080F5FE4 +_080F5FD2: + movs r0, 0 + b _080F6004 + .align 2, 0 +_080F5FD8: .4byte gUnknown_083DFEC4 +_080F5FDC: .4byte 0x00008770 +_080F5FE0: .4byte 0x000087c9 +_080F5FE4: + cmp r2, 0x7 + bgt _080F5FF0 + negs r0, r3 + lsls r0, 16 + lsrs r0, 16 + b _080F5FF2 +_080F5FF0: + ldr r0, _080F600C @ =0x0000fff8 +_080F5FF2: + lsls r4, r0, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F6004: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080F600C: .4byte 0x0000fff8 + thumb_func_end sub_80F5FB4 + + thumb_func_start sub_80F6010 +sub_80F6010: @ 80F6010 + push {r4-r6,lr} + ldr r0, _080F603C @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F6040 @ =0x00008772 + adds r0, r3, r1 + ldr r2, _080F6044 @ =0x00008774 + adds r1, r3, r2 + ldrh r5, [r0] + movs r4, 0 + ldrsh r2, [r0, r4] + ldrh r4, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r2, r0 + beq _080F6038 + ldr r1, _080F6048 @ =0x000087c9 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080F604C +_080F6038: + movs r0, 0 + b _080F606C + .align 2, 0 +_080F603C: .4byte gUnknown_083DFEC4 +_080F6040: .4byte 0x00008772 +_080F6044: .4byte 0x00008774 +_080F6048: .4byte 0x000087c9 +_080F604C: + subs r0, r4, r5 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080F605A + movs r4, 0x8 +_080F605A: + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80F063C + adds r0, r4, 0 + bl sub_80F6074 + movs r0, 0x2 +_080F606C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F6010 + + thumb_func_start sub_80F6074 +sub_80F6074: @ 80F6074 + push {r4-r7,lr} + ldr r1, _080F6120 @ =gUnknown_083DFEC4 + ldr r6, [r1] + ldr r1, _080F6124 @ =0x00008770 + adds r3, r6, r1 + ldrh r1, [r3] + lsls r0, 16 + asrs r7, r0, 16 + adds r2, r7, r1 + strh r2, [r3] + ldr r5, _080F6128 @ =0x00008774 + adds r4, r6, r5 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60A4 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60A4: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60B6 + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60B6: + ldr r0, _080F612C @ =0x00008772 + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r1, [r4] + mov r12, r1 + movs r5, 0 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080F60D8 + subs r0, r2, 0x1 + mov r1, r12 + subs r0, r1 + strh r0, [r3] +_080F60D8: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F60EA + adds r0, r1, 0x1 + ldrh r5, [r4] + adds r0, r5 + strh r0, [r3] +_080F60EA: + ldr r0, _080F6130 @ =0x0000876e + adds r3, r6, r0 + ldrh r0, [r3] + adds r2, r7, r0 + strh r2, [r3] + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F6108 + subs r0, r2, 0x1 + subs r0, r5 + strh r0, [r3] +_080F6108: + ldrh r1, [r3] + movs r2, 0 + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _080F611A + adds r0, r1, 0x1 + ldrh r4, [r4] + adds r0, r4 + strh r0, [r3] +_080F611A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6120: .4byte gUnknown_083DFEC4 +_080F6124: .4byte 0x00008770 +_080F6128: .4byte 0x00008774 +_080F612C: .4byte 0x00008772 +_080F6130: .4byte 0x0000876e + thumb_func_end sub_80F6074 + + thumb_func_start sub_80F6134 +sub_80F6134: @ 80F6134 + push {r4-r6,lr} + ldr r0, _080F6194 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r1, _080F6198 @ =0x000087c9 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F61E0 + ldr r2, _080F619C @ =0x000087dc + adds r5, r3, r2 + movs r4, 0 + ldrsh r1, [r5, r4] + ldr r6, _080F61A0 @ =0x00008774 + adds r4, r3, r6 + movs r2, 0 + ldrsh r0, [r4, r2] + subs r0, 0x7 + cmp r1, r0 + bge _080F61AC + subs r6, 0x8 + adds r1, r3, r6 + movs r0, 0 + strh r0, [r1] + ldrh r0, [r5] + ldr r1, _080F61A4 @ =0x00008770 + adds r2, r3, r1 + strh r0, [r2] + ldrh r1, [r5] + ldr r5, _080F61A8 @ =0x0000876e + adds r0, r3, r5 + strh r1, [r0] + ldrh r5, [r2] + adds r0, r5, 0x7 + adds r6, 0x6 + adds r2, r3, r6 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + ldrh r3, [r4] + movs r6, 0 + ldrsh r1, [r4, r6] + cmp r0, r1 + ble _080F61F4 + adds r0, r5, 0x6 + subs r0, r3 + strh r0, [r2] + b _080F61F4 + .align 2, 0 +_080F6194: .4byte gUnknown_083DFEC4 +_080F6198: .4byte 0x000087c9 +_080F619C: .4byte 0x000087dc +_080F61A0: .4byte 0x00008774 +_080F61A4: .4byte 0x00008770 +_080F61A8: .4byte 0x0000876e +_080F61AC: + ldrh r0, [r4] + subs r0, 0x7 + ldr r2, _080F61D4 @ =0x00008770 + adds r1, r3, r2 + strh r0, [r1] + ldrh r1, [r4] + ldr r6, _080F61D8 @ =0x00008772 + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r5] + subs r2, 0x2 + adds r0, r3, r2 + strh r1, [r0] + ldrh r0, [r4] + subs r0, r1 + movs r1, 0x7 + subs r1, r0 + ldr r4, _080F61DC @ =0x0000876c + adds r0, r3, r4 + b _080F61F2 + .align 2, 0 +_080F61D4: .4byte 0x00008770 +_080F61D8: .4byte 0x00008772 +_080F61DC: .4byte 0x0000876c +_080F61E0: + ldr r5, _080F61FC @ =0x000087dc + adds r2, r3, r5 + ldrh r1, [r2] + ldr r6, _080F6200 @ =0x0000876c + adds r0, r3, r6 + strh r1, [r0] + ldrh r1, [r2] + ldr r2, _080F6204 @ =0x0000876e + adds r0, r3, r2 +_080F61F2: + strh r1, [r0] +_080F61F4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F61FC: .4byte 0x000087dc +_080F6200: .4byte 0x0000876c +_080F6204: .4byte 0x0000876e + thumb_func_end sub_80F6134 + + thumb_func_start sub_80F6208 +sub_80F6208: @ 80F6208 + push {lr} + ldr r0, _080F623C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6240 @ =0x00008fe6 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _080F6244 @ =0x00008fe7 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _080F6248 @ =0x00008fe8 + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r2, _080F624C @ =0x00006dac + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _080F6238 +_080F622E: + bl sub_80F6250 + lsls r0, 24 + cmp r0, 0 + bne _080F622E +_080F6238: + pop {r0} + bx r0 + .align 2, 0 +_080F623C: .4byte gUnknown_083DFEC4 +_080F6240: .4byte 0x00008fe6 +_080F6244: .4byte 0x00008fe7 +_080F6248: .4byte 0x00008fe8 +_080F624C: .4byte 0x00006dac + thumb_func_end sub_80F6208 + + thumb_func_start sub_80F6250 +sub_80F6250: @ 80F6250 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6270 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F6274 @ =0x00008fe8 + adds r3, r2, r0 + movs r1, 0 + ldrsb r1, [r3, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080F6278 +_080F626C: + movs r0, 0 + b _080F637E + .align 2, 0 +_080F6270: .4byte gUnknown_083DFEC4 +_080F6274: .4byte 0x00008fe8 +_080F6278: + ldr r1, _080F630C @ =0x00008fe6 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080F631C + cmp r0, 0x8 + beq _080F626C + movs r6, 0 + adds r7, r2, 0 + adds r5, r7, r1 + ldr r0, _080F6310 @ =0x00008fe7 + adds r4, r7, r0 + ldr r1, _080F6314 @ =gUnknown_020300A4 + mov r8, r1 + ldr r0, _080F6318 @ =0x000041a0 + add r0, r8 + mov r9, r0 +_080F629A: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r8 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + cmp r0, 0 + bne _080F636C + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + add r1, r9 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + adds r1, r0, 0 + cmp r1, 0 + bne _080F636C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r2, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1D + bls _080F62FE + strb r1, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r2 + cmp r0, 0x6 + bhi _080F637C +_080F62FE: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x9 + bls _080F629A + b _080F637C + .align 2, 0 +_080F630C: .4byte 0x00008fe6 +_080F6310: .4byte 0x00008fe7 +_080F6314: .4byte gUnknown_020300A4 +_080F6318: .4byte 0x000041a0 +_080F631C: + movs r0, 0 + strb r0, [r3] + movs r6, 0 + b _080F632A +_080F6324: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080F632A: + cmp r6, 0x5 + bhi _080F634C + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F635C @ =gPlayerParty + adds r0, r1 + movs r1, 0x51 + bl GetMonData + cmp r0, 0 + beq _080F6324 + ldr r0, _080F6360 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F6364 @ =0x00008fe8 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080F634C: + ldr r0, _080F6360 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6368 @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _080F6372 + .align 2, 0 +_080F635C: .4byte gPlayerParty +_080F6360: .4byte gUnknown_083DFEC4 +_080F6364: .4byte 0x00008fe8 +_080F6368: .4byte 0x00008fe6 +_080F636C: + ldr r0, _080F6378 @ =0x00008fe8 + adds r1, r7, r0 + movs r0, 0x1 +_080F6372: + strb r0, [r1] + b _080F626C + .align 2, 0 +_080F6378: .4byte 0x00008fe8 +_080F637C: + movs r0, 0x1 +_080F637E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F6250 + + thumb_func_start sub_80F638C +sub_80F638C: @ 80F638C + push {r4,lr} + ldr r0, _080F63C0 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r1, _080F63C4 @ =0x00008fe6 + adds r0, r4, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, _080F63C8 @ =0x00008fe7 + adds r0, r4, r2 + strb r1, [r0] + bl sub_80F492C + ldr r0, _080F63CC @ =0x00006dac + adds r4, r0 + ldrb r0, [r4] + cmp r0, 0 + bne _080F63B8 +_080F63AE: + bl sub_80F63D0 + lsls r0, 24 + cmp r0, 0 + bne _080F63AE +_080F63B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F63C0: .4byte gUnknown_083DFEC4 +_080F63C4: .4byte 0x00008fe6 +_080F63C8: .4byte 0x00008fe7 +_080F63CC: .4byte 0x00006dac + thumb_func_end sub_80F638C + + thumb_func_start sub_80F63D0 +sub_80F63D0: @ 80F63D0 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _080F647C @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r1, _080F6480 @ =0x00008fe6 + adds r0, r2, r1 + ldrb r3, [r0] + cmp r3, 0xE + beq _080F6498 + cmp r3, 0xF + bne _080F63E8 + b _080F64F6 +_080F63E8: + movs r1, 0x80 + lsls r1, 23 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + movs r6, 0 + ldr r0, _080F6480 @ =0x00008fe6 + adds r5, r2, r0 + ldr r1, _080F6484 @ =0x00008fe7 + adds r4, r2, r1 +_080F63FC: + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldrb r2, [r4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _080F6488 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x51 + bl GetBoxMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F644E + ldrb r1, [r5] + lsls r1, 8 + ldr r2, _080F648C @ =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldrb r2, [r4] + movs r1, 0x1F + ands r2, r1 + lsls r2, 16 + ldr r1, _080F6490 @ =0xffe0ffff + ands r0, r1 + orrs r0, r2 + ldr r1, _080F6494 @ =0xffffff00 + ands r0, r1 + orrs r0, r3 + str r0, [sp] + mov r0, sp + bl sub_80F4944 +_080F644E: + ldrb r0, [r4] + adds r0, 0x1 + movs r2, 0 + strb r0, [r4] + movs r1, 0xFF + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bne _080F646E + strb r2, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ands r0, r1 + cmp r0, 0xE + beq _080F6508 +_080F646E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0xE + bls _080F63FC + b _080F6508 + .align 2, 0 +_080F647C: .4byte gUnknown_083DFEC4 +_080F6480: .4byte 0x00008fe6 +_080F6484: .4byte 0x00008fe7 +_080F6488: .4byte gUnknown_020300A4 +_080F648C: .4byte 0xffff00ff +_080F6490: .4byte 0xffe0ffff +_080F6494: .4byte 0xffffff00 +_080F6498: + mov r0, sp + ldrb r1, [r0, 0x3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x3] + strb r3, [r0, 0x1] + movs r6, 0 + mov r4, sp +_080F64A8: + movs r0, 0x64 + muls r0, r6 + ldr r1, _080F64FC @ =gPlayerParty + adds r0, r1 + movs r1, 0x51 + bl GetMonData + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _080F64DA + movs r0, 0x1F + adds r2, r6, 0 + ands r2, r0 + ldrb r0, [r4, 0x2] + movs r5, 0x20 + negs r5, r5 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x2] + strb r3, [r4] + mov r0, sp + bl sub_80F4944 +_080F64DA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080F64A8 + bl sub_80F49F4 + ldr r0, _080F6500 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6504 @ =0x00008fe6 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F64F6: + movs r0, 0 + b _080F650A + .align 2, 0 +_080F64FC: .4byte gPlayerParty +_080F6500: .4byte gUnknown_083DFEC4 +_080F6504: .4byte 0x00008fe6 +_080F6508: + movs r0, 0x1 +_080F650A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F63D0 + + thumb_func_start sub_80F6514 +sub_80F6514: @ 80F6514 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r10, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + mov r5, r10 + ldr r0, _080F65A4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + lsls r1, 2 + adds r0, r1 + ldr r2, _080F65A8 @ =0x0000893d + adds r1, r0, r2 + ldrb r6, [r1] + mov r8, r6 + ldr r1, _080F65AC @ =0x0000893e + adds r0, r1 + ldrb r0, [r0] + lsls r0, 27 + lsrs r4, r0, 27 + adds r7, r4, 0 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2D + movs r3, 0 + bl sub_80F44B0 + cmp r0, 0 + beq _080F655E + b _080F66CA +_080F655E: + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl sub_80F44B0 + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xB + movs r3, 0 + bl sub_80F44B0 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r6, 0xE + bne _080F65B4 + movs r0, 0x64 + muls r4, r0 + ldr r0, _080F65B0 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + adds r0, r4, 0 + bl GetMonGender + b _080F65EA + .align 2, 0 +_080F65A4: .4byte gUnknown_083DFEC4 +_080F65A8: .4byte 0x0000893d +_080F65AC: .4byte 0x0000893e +_080F65B0: .4byte gPlayerParty +_080F65B4: + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 4 + ldr r2, _080F6620 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + mov r0, r8 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F44B0 + adds r1, r0, 0 + mov r0, r9 + bl GetGenderFromSpeciesAndPersonality +_080F65EA: + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, r9 + mov r1, r10 + bl sub_8040D8C + cmp r0, 0 + beq _080F65FC + movs r4, 0xFF +_080F65FC: + adds r0, r5, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r5, r0 + movs r1, 0xFC + strb r1, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r0, 0x3F + strb r0, [r5, 0x2] + adds r5, 0x3 + cmp r4, 0 + beq _080F6624 + cmp r4, 0xFE + beq _080F663C + b _080F6656 + .align 2, 0 +_080F6620: .4byte gUnknown_020300A4 +_080F6624: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xC + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xD + strb r0, [r5, 0x5] + movs r0, 0xB5 + b _080F6652 +_080F663C: + strb r1, [r5] + movs r0, 0x1 + strb r0, [r5, 0x1] + movs r0, 0xA + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0xB + strb r0, [r5, 0x5] + movs r0, 0xB6 +_080F6652: + strb r0, [r5, 0x6] + adds r5, 0x7 +_080F6656: + movs r4, 0xFC + strb r4, [r5] + movs r1, 0x1 + strb r1, [r5, 0x1] + strb r1, [r5, 0x2] + strb r4, [r5, 0x3] + movs r0, 0x3 + strb r0, [r5, 0x4] + movs r0, 0x5 + strb r0, [r5, 0x5] + adds r5, 0x6 + strb r4, [r5] + movs r6, 0x13 + strb r6, [r5, 0x1] + movs r0, 0x46 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0xBA + strb r0, [r5] + strb r4, [r5, 0x1] + movs r0, 0x11 + strb r0, [r5, 0x2] + strb r1, [r5, 0x3] + movs r0, 0x34 + strb r0, [r5, 0x4] + adds r5, 0x5 + adds r0, r5, 0 + ldr r1, [sp, 0x8] + bl ConvertIntToDecimalString + adds r5, r0, 0 + ldr r0, [sp, 0x4] + cmp r0, 0x1 + bne _080F66C0 + ldr r0, _080F66B8 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, [sp] + lsls r1, r2, 2 + adds r0, r1 + ldr r1, _080F66BC @ =0x0000893c + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + movs r2, 0x80 + movs r3, 0x1 + bl sub_8072C14 + adds r5, r0, 0 + b _080F66CE + .align 2, 0 +_080F66B8: .4byte gUnknown_083DFEC4 +_080F66BC: .4byte 0x0000893c +_080F66C0: + strb r4, [r5] + strb r6, [r5, 0x1] + movs r0, 0x67 + strb r0, [r5, 0x2] + adds r5, 0x3 +_080F66CA: + movs r0, 0xFF + strb r0, [r5] +_080F66CE: + adds r0, r5, 0 + 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_80F6514 + + thumb_func_start sub_80F66E0 +sub_80F66E0: @ 80F66E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080F676C @ =gUnknown_083DFEC4 + mov r8, r0 + ldr r4, [r0] + ldr r1, _080F6770 @ =0x00008829 + adds r0, r4, r1 + ldr r2, _080F6774 @ =0x0000876e + adds r5, r4, r2 + ldrh r1, [r5] + movs r2, 0 + bl sub_80F6514 + movs r3, 0 + ldrsh r0, [r5, r3] + movs r1, 0 + bl sub_80F4824 + ldrh r1, [r5] + ldr r6, _080F6778 @ =0x000087dc + adds r0, r4, r6 + movs r6, 0 + strh r1, [r0] + ldr r1, _080F677C @ =0x0000bc8e + adds r0, r4, r1 + strb r6, [r0] + movs r2, 0 + mov r9, r2 + movs r3, 0 + ldrsh r1, [r5, r3] + lsls r1, 2 + adds r1, r4, r1 + ldr r5, _080F6780 @ =0x0000893d + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _080F6784 @ =0x0000893e + adds r1, r2 + ldrb r1, [r1] + lsls r1, 27 + lsrs r1, 27 + movs r2, 0x52 + movs r3, 0 + bl sub_80F44B0 + adds r7, r0, 0 + ldr r3, _080F6788 @ =0x0000bc8f + adds r4, r3 + strb r6, [r4] + movs r5, 0 + mov r12, r5 + mov r10, r8 +_080F674E: + ldr r1, _080F678C @ =gUnknown_083E499C + mov r6, r12 + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x36 + bgt _080F6790 + cmp r0, 0x32 + blt _080F6790 + movs r0, 0x7 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 3 + movs r0, 0x4 + b _080F679A + .align 2, 0 +_080F676C: .4byte gUnknown_083DFEC4 +_080F6770: .4byte 0x00008829 +_080F6774: .4byte 0x0000876e +_080F6778: .4byte 0x000087dc +_080F677C: .4byte 0x0000bc8e +_080F6780: .4byte 0x0000893d +_080F6784: .4byte 0x0000893e +_080F6788: .4byte 0x0000bc8f +_080F678C: .4byte gUnknown_083E499C +_080F6790: + movs r0, 0x1 + adds r2, r7, 0 + ands r2, r0 + lsrs r7, 1 + movs r0, 0x1 +_080F679A: + movs r4, 0 + adds r1, r2, 0 + add r0, r9 + mov r8, r0 + cmp r4, r1 + bcs _080F67D4 + mov r3, r10 + ldr r0, [r3] + ldr r5, _080F6828 @ =0x0000bc8e + adds r3, r0, r5 + ldr r6, _080F682C @ =0x0000bc4c + adds r6, r0, r6 + str r6, [sp] + adds r5, r1, 0 +_080F67B6: + ldrb r0, [r3] + adds r1, r0, 0x1 + strb r1, [r3] + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + adds r0, r1, r0 + mov r6, r9 + adds r1, r6, r4 + strb r1, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080F67B6 +_080F67D4: + cmp r2, 0 + beq _080F67EC + mov r0, r9 + cmp r0, 0x18 + bls _080F67EC + mov r2, r10 + ldr r1, [r2] + ldr r3, _080F6830 @ =0x0000bc8f + adds r1, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F67EC: + mov r5, r8 + lsls r0, r5, 24 + lsrs r0, 24 + mov r9, r0 + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x10 + bls _080F674E + ldr r6, _080F6834 @ =gUnknown_083DFEC4 + ldr r2, [r6] + ldr r1, _080F6828 @ =0x0000bc8e + adds r0, r2, r1 + ldr r3, _080F6830 @ =0x0000bc8f + adds r1, r2, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080F6840 + ldr r5, _080F6838 @ =0x0000bc90 + adds r0, r2, r5 + movs r1, 0 + strb r1, [r0] + ldr r6, _080F683C @ =0x0000bc91 + adds r0, r2, r6 + strb r1, [r0] + b _080F6850 + .align 2, 0 +_080F6828: .4byte 0x0000bc8e +_080F682C: .4byte 0x0000bc4c +_080F6830: .4byte 0x0000bc8f +_080F6834: .4byte gUnknown_083DFEC4 +_080F6838: .4byte 0x0000bc90 +_080F683C: .4byte 0x0000bc91 +_080F6840: + ldr r0, _080F6888 @ =0x0000bc90 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r3, _080F688C @ =0x0000bc91 + adds r1, r2, r3 + movs r0, 0x3 + strb r0, [r1] +_080F6850: + ldr r5, _080F6890 @ =gUnknown_083DFEC4 + ldr r1, [r5] + ldr r6, _080F6894 @ =0x0000bc8e + adds r0, r1, r6 + ldr r2, _080F6898 @ =0x0000bc8f + adds r1, r2 + ldrb r0, [r0] + ldrb r1, [r1] + subs r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0 + mov r12, r3 + adds r3, r5, 0 + ldr r1, _080F689C @ =0x0000bc96 + movs r4, 0x9 +_080F6870: + cmp r2, 0x8 + bls _080F68A0 + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r4, [r0] + adds r0, r2, 0 + subs r0, 0x9 + lsls r0, 24 + lsrs r2, r0, 24 + b _080F68AA + .align 2, 0 +_080F6888: .4byte 0x0000bc90 +_080F688C: .4byte 0x0000bc91 +_080F6890: .4byte gUnknown_083DFEC4 +_080F6894: .4byte 0x0000bc8e +_080F6898: .4byte 0x0000bc8f +_080F689C: .4byte 0x0000bc96 +_080F68A0: + ldr r0, [r3] + adds r0, r1 + add r0, r12 + strb r2, [r0] + movs r2, 0 +_080F68AA: + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x2 + bls _080F6870 + ldr r5, _080F68DC @ =gUnknown_083DFEC4 + ldr r0, [r5] + ldr r6, _080F68E0 @ =0x0000bc96 + adds r1, r0, r6 + add r1, r12 + ldr r2, _080F68E4 @ =0x0000bc8f + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F68DC: .4byte gUnknown_083DFEC4 +_080F68E0: .4byte 0x0000bc96 +_080F68E4: .4byte 0x0000bc8f + thumb_func_end sub_80F66E0 + + thumb_func_start sub_80F68E8 +sub_80F68E8: @ 80F68E8 + push {r4-r7,lr} + ldr r3, _080F6918 @ =gUnknown_083DFEC4 + ldr r0, [r3] + ldr r2, _080F691C @ =0x0000bc90 + adds r1, r0, r2 + ldrb r5, [r1] + ldr r6, _080F6920 @ =0x0000bc91 + adds r0, r6 + ldrb r4, [r0] + movs r0, 0x1 + mov r12, r0 + ldr r2, _080F6924 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r6, r3, 0 + adds r7, r2, 0 + cmp r0, 0 + beq _080F692E + lsls r0, r4, 24 + cmp r0, 0 + ble _080F692E + b _080F69BC + .align 2, 0 +_080F6918: .4byte gUnknown_083DFEC4 +_080F691C: .4byte 0x0000bc90 +_080F6920: .4byte 0x0000bc91 +_080F6924: .4byte gMain +_080F6928: + ldr r1, _080F69B0 @ =0x0000bc91 + adds r0, r2, r1 + ldrb r4, [r0] +_080F692E: + ldrh r1, [r7, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F6978 + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6978 + ldr r3, _080F69B4 @ =gUnknown_083DFEC4 + ldr r2, _080F69B8 @ =0x0000bc96 +_080F6944: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x2 + bgt _080F6960 + adds r0, 0x1 + lsls r0, 24 + ldr r1, [r3] + lsrs r4, r0, 24 + asrs r0, 24 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6944 +_080F6960: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 @ =0x0000bc96 + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F69EC + ldr r1, _080F69B0 @ =0x0000bc91 + adds r0, r2, r1 + ldrb r4, [r0] +_080F6978: + ldrh r2, [r7, 0x30] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080F698A + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0 + bgt _080F6A3C +_080F698A: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _080F69AA + lsls r0, r5, 24 + asrs r2, r0, 24 + ldr r1, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F69B8 @ =0x0000bc96 + adds r1, r3 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + cmp r2, r0 + blt _080F6A38 +_080F69AA: + movs r0, 0 + mov r12, r0 + b _080F69FC + .align 2, 0 +_080F69B0: .4byte 0x0000bc91 +_080F69B4: .4byte gUnknown_083DFEC4 +_080F69B8: .4byte 0x0000bc96 +_080F69BC: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0 + ble _080F69DA + subs r0, 0x1 + lsls r0, 24 + ldr r1, [r6] + lsrs r4, r0, 24 + asrs r0, 24 + ldr r2, _080F6A2C @ =0x0000bc96 + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F69BC +_080F69DA: + ldr r2, [r6] + lsls r0, r4, 24 + asrs r0, 24 + ldr r3, _080F6A2C @ =0x0000bc96 + adds r1, r2, r3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080F6928 +_080F69EC: + lsls r0, r5, 24 + asrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + blt _080F69FC + subs r0, r1, 0x1 +_080F69F8: + lsls r0, 24 + lsrs r5, r0, 24 +_080F69FC: + mov r0, r12 + cmp r0, 0 + beq _080F6A44 + lsls r0, r5, 24 + asrs r0, 24 + ldr r3, [r6] + ldr r1, _080F6A30 @ =0x0000bc90 + adds r2, r3, r1 + ldrb r6, [r2] + cmp r0, r6 + bne _080F6A20 + lsls r0, r4, 24 + asrs r0, 24 + ldr r6, _080F6A34 @ =0x0000bc91 + adds r1, r3, r6 + ldrb r1, [r1] + cmp r0, r1 + beq _080F6A40 +_080F6A20: + strb r5, [r2] + ldr r1, _080F6A34 @ =0x0000bc91 + adds r0, r3, r1 + strb r4, [r0] + b _080F6A44 + .align 2, 0 +_080F6A2C: .4byte 0x0000bc96 +_080F6A30: .4byte 0x0000bc90 +_080F6A34: .4byte 0x0000bc91 +_080F6A38: + adds r0, r2, 0x1 + b _080F69F8 +_080F6A3C: + subs r0, 0x1 + b _080F69F8 +_080F6A40: + movs r2, 0 + mov r12, r2 +_080F6A44: + mov r0, r12 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F68E8 + + thumb_func_start sub_80F6A4C +sub_80F6A4C: @ 80F6A4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F6AC4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F6AC8 @ =0x0000876e + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F6A74 + ldr r5, _080F6ACC @ =0x00008774 + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F6A74: + ldr r1, _080F6ACC @ =0x00008774 + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F6A88 + movs r0, 0 + strh r0, [r2] +_080F6A88: + ldr r1, _080F6AD0 @ =0x0000bc94 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F6AD4 @ =0x000087dc + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F6AD8 @ =REG_WININ + ldr r5, _080F6ADC @ =0x00003f37 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6AE0 @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + ldr r5, _080F6AE4 @ =0x000058f0 + adds r0, r5, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6AE8 @ =0x00002060 + adds r0, r2, 0 + strh r0, [r1] + ldr r5, _080F6AEC @ =0x000087de + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F6AC4: .4byte gUnknown_083DFEC4 +_080F6AC8: .4byte 0x0000876e +_080F6ACC: .4byte 0x00008774 +_080F6AD0: .4byte 0x0000bc94 +_080F6AD4: .4byte 0x000087dc +_080F6AD8: .4byte REG_WININ +_080F6ADC: .4byte 0x00003f37 +_080F6AE0: .4byte 0x00003f3f +_080F6AE4: .4byte 0x000058f0 +_080F6AE8: .4byte 0x00002060 +_080F6AEC: .4byte 0x000087de + thumb_func_end sub_80F6A4C + + thumb_func_start sub_80F6AF0 +sub_80F6AF0: @ 80F6AF0 + push {r4,lr} + ldr r1, _080F6B10 @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F6B14 @ =0x000087de + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F6B04 + b _080F6C08 +_080F6B04: + lsls r0, 2 + ldr r1, _080F6B18 @ =_080F6B1C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F6B10: .4byte gUnknown_083DFEC4 +_080F6B14: .4byte 0x000087de +_080F6B18: .4byte _080F6B1C + .align 2, 0 +_080F6B1C: + .4byte _080F6B38 + .4byte _080F6B54 + .4byte _080F6B6E + .4byte _080F6B84 + .4byte _080F6B9C + .4byte _080F6BC0 + .4byte _080F6BE0 +_080F6B38: + bl sub_80F173C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + ldr r0, _080F6B4C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F6B50 @ =0x000087de + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B4C: .4byte gUnknown_083DFEC4 +_080F6B50: .4byte 0x000087de +_080F6B54: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bl sub_80F1480 + bl sub_80F66E0 + b _080F6BC6 +_080F6B6E: + bl sub_80F1238 + ldr r0, _080F6B7C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6B80 @ =0x000087de + adds r1, r2 + b _080F6BCE + .align 2, 0 +_080F6B7C: .4byte gUnknown_083DFEC4 +_080F6B80: .4byte 0x000087de +_080F6B84: + bl sub_80F13FC + ldr r0, _080F6B94 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r3, _080F6B98 @ =0x000087de + adds r1, r3 + b _080F6BCE + .align 2, 0 +_080F6B94: .4byte gUnknown_083DFEC4 +_080F6B98: .4byte 0x000087de +_080F6B9C: + ldr r4, [r4] + ldr r1, _080F6BB8 @ =0x0000876e + adds r0, r4, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0 + bl sub_80F4824 + ldr r3, _080F6BBC @ =0x000087de + adds r4, r3 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F6C18 + .align 2, 0 +_080F6BB8: .4byte 0x0000876e +_080F6BBC: .4byte 0x000087de +_080F6BC0: + movs r0, 0 + bl sub_80F2E18 +_080F6BC6: + ldr r0, _080F6BD8 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6BDC @ =0x000087de + adds r1, r0 +_080F6BCE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F6C18 + .align 2, 0 +_080F6BD8: .4byte gUnknown_083DFEC4 +_080F6BDC: .4byte 0x000087de +_080F6BE0: + bl sub_80F170C + lsls r0, 24 + cmp r0, 0 + bne _080F6C18 + bl sub_80F1438 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _080F6C0C @ =0x0000dfff + ands r0, r1 + strh r0, [r2] + ldr r0, _080F6C10 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F6C14 @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F6C08: + movs r0, 0 + b _080F6C1A + .align 2, 0 +_080F6C0C: .4byte 0x0000dfff +_080F6C10: .4byte gUnknown_083DFEC4 +_080F6C14: .4byte 0x000087de +_080F6C18: + movs r0, 0x1 +_080F6C1A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F6AF0 + + thumb_func_start sub_80F6C20 +sub_80F6C20: @ 80F6C20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r1, _080F6D48 @ =0x0000d158 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + mov r8, r1 + ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A + mov r9, r2 +_080F6C3A: + ldr r1, _080F6D50 @ =gTrainerEyeTrainers + mov r4, r8 + lsls r0, r4, 4 + adds r6, r0, r1 + ldrh r7, [r6] + adds r0, r7, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6CA0 + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r0, _080F6D48 @ =0x0000d158 + adds r5, r4, r0 + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r1, _080F6D54 @ =0x0000cee8 + adds r0, r1 + strh r7, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + ldr r2, _080F6D58 @ =0x0000ceec + adds r0, r2 + mov r1, r8 + strb r1, [r0] + ldrh r0, [r5] + lsls r0, 3 + adds r0, r4, r0 + mov r1, r8 + add r1, r9 + ldrb r1, [r1] + adds r2, 0x1 + adds r0, r2 + strb r1, [r0] + ldrh r0, [r6, 0xA] + ldrh r1, [r6, 0xC] + bl get_mapheader_by_bank_and_number + ldrh r1, [r5] + lsls r1, 3 + adds r4, r1 + ldrb r0, [r0, 0x14] + ldr r1, _080F6D5C @ =0x0000ceea + adds r4, r1 + strh r0, [r4] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F6CA0: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x37 + bls _080F6C3A + movs r2, 0 + mov r8, r2 + movs r6, 0 +_080F6CB4: + ldr r1, _080F6D60 @ =gUnknown_083E49C0 + mov r4, r8 + lsls r0, r4, 2 + adds r5, r0, r1 + ldrh r4, [r5] + adds r0, r4, 0 + bl trainer_flag_check + lsls r0, 24 + cmp r0, 0 + beq _080F6D0E + ldr r0, _080F6D44 @ =gUnknown_083DFEC4 + ldr r2, [r0] + ldr r0, _080F6D48 @ =0x0000d158 + adds r3, r2, r0 + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D54 @ =0x0000cee8 + adds r0, r1 + strh r4, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldrh r1, [r5, 0x2] + ldr r4, _080F6D5C @ =0x0000ceea + adds r0, r4 + strh r1, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r0, r2, r0 + ldr r1, _080F6D64 @ =0x0000ceed + adds r0, r1 + strb r6, [r0] + ldrh r0, [r3] + lsls r0, 3 + adds r2, r0 + mov r0, r8 + adds r0, 0x38 + adds r4, 0x2 + adds r2, r4 + strb r0, [r2] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080F6D0E: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0xC + bls _080F6CB4 + ldr r3, _080F6D44 @ =gUnknown_083DFEC4 + ldr r2, [r3] + ldr r1, _080F6D68 @ =0x0000876c + adds r0, r2, r1 + movs r1, 0 + strh r1, [r0] + ldr r4, _080F6D6C @ =0x00008770 + adds r0, r2, r4 + strh r1, [r0] + subs r4, 0x2 + adds r0, r2, r4 + strh r1, [r0] + ldr r1, _080F6D48 @ =0x0000d158 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0x8 + bhi _080F6D70 + subs r4, r0, 0x1 + b _080F6D72 + .align 2, 0 +_080F6D44: .4byte gUnknown_083DFEC4 +_080F6D48: .4byte 0x0000d158 +_080F6D4C: .4byte gSaveBlock1 + 0x97A +_080F6D50: .4byte gTrainerEyeTrainers +_080F6D54: .4byte 0x0000cee8 +_080F6D58: .4byte 0x0000ceec +_080F6D5C: .4byte 0x0000ceea +_080F6D60: .4byte gUnknown_083E49C0 +_080F6D64: .4byte 0x0000ceed +_080F6D68: .4byte 0x0000876c +_080F6D6C: .4byte 0x00008770 +_080F6D70: + movs r4, 0x7 +_080F6D72: + ldr r1, _080F6DA8 @ =0x00008772 + adds r0, r2, r1 + strh r4, [r0] + ldr r3, [r3] + ldr r2, _080F6DAC @ =0x0000d158 + adds r0, r3, r2 + ldrh r0, [r0] + subs r0, 0x1 + ldr r4, _080F6DB0 @ =0x00008774 + adds r1, r3, r4 + strh r0, [r1] + movs r1, 0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080F6D94 + movs r1, 0x1 +_080F6D94: + ldr r2, _080F6DB4 @ =0x000087c9 + adds r0, r3, r2 + strb r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6DA8: .4byte 0x00008772 +_080F6DAC: .4byte 0x0000d158 +_080F6DB0: .4byte 0x00008774 +_080F6DB4: .4byte 0x000087c9 + thumb_func_end sub_80F6C20 + + thumb_func_start sub_80F6DB8 +sub_80F6DB8: @ 80F6DB8 + push {r4,lr} + movs r1, 0 + ldr r0, _080F6DEC @ =gUnknown_083DFEC4 + ldr r4, [r0] + ldr r2, _080F6DF0 @ =0x00008fe9 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F6DF4 @ =0x0000d15a + adds r1, r4, r0 + ldr r0, _080F6DF8 @ =0x0000ffb8 + strh r0, [r1] + movs r0, 0 + bl sub_80F2F7C + ldr r1, _080F6DFC @ =0x0000876e + adds r0, r4, r1 + ldrh r0, [r0] + ldr r2, _080F6E00 @ =0x000087dc + adds r4, r2 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F6DEC: .4byte gUnknown_083DFEC4 +_080F6DF0: .4byte 0x00008fe9 +_080F6DF4: .4byte 0x0000d15a +_080F6DF8: .4byte 0x0000ffb8 +_080F6DFC: .4byte 0x0000876e +_080F6E00: .4byte 0x000087dc + thumb_func_end sub_80F6DB8 + + thumb_func_start sub_80F6E04 +sub_80F6E04: @ 80F6E04 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F6E78 @ =gUnknown_083DFEC4 + ldr r5, [r0] + ldr r1, _080F6E7C @ =0x0000876e + adds r0, r5, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r0, r5, r0 + ldr r7, _080F6E80 @ =0x0000cee8 + adds r0, r7 + ldrh r1, [r0] + ldr r2, _080F6E84 @ =gTrainers + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r6, [r0, 0x3] + lsls r0, r6, 3 + mov r8, r0 + ldr r0, _080F6E88 @ =gTrainerFrontPicTable + add r0, r8 + ldr r2, _080F6E8C @ =gTrainerFrontPicCoords + lsls r1, r6, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _080F6E90 @ =0x000131e4 + adds r3, r5, r2 + lsls r2, r4, 13 + ldr r7, _080F6E94 @ =0x0000d1e4 + adds r2, r7 + adds r2, r5, r2 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x1 + bl DecompressPicFromTable_2 + ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable + add r8, r0 + mov r1, r8 + ldr r0, [r1] + lsls r4, 7 + adds r5, r4 + adds r1, r5, 0 + bl LZ77UnCompWram + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F6E78: .4byte gUnknown_083DFEC4 +_080F6E7C: .4byte 0x0000876e +_080F6E80: .4byte 0x0000cee8 +_080F6E84: .4byte gTrainers +_080F6E88: .4byte gTrainerFrontPicTable +_080F6E8C: .4byte gTrainerFrontPicCoords +_080F6E90: .4byte 0x000131e4 +_080F6E94: .4byte 0x0000d1e4 +_080F6E98: .4byte gTrainerFrontPicPaletteTable + thumb_func_end sub_80F6E04 + + thumb_func_start sub_80F6E9C +sub_80F6E9C: @ 80F6E9C + push {lr} + ldr r0, _080F6EB4 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6EB8 @ =0x0000d15a + adds r1, r0, r2 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080F6EBC + movs r0, 0 + b _080F6ED0 + .align 2, 0 +_080F6EB4: .4byte gUnknown_083DFEC4 +_080F6EB8: .4byte 0x0000d15a +_080F6EBC: + adds r0, r2, 0 + adds r0, 0x8 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080F6ECC + movs r0, 0x1 + b _080F6ED0 +_080F6ECC: + movs r0, 0 + strh r0, [r1] +_080F6ED0: + pop {r1} + bx r1 + thumb_func_end sub_80F6E9C + + thumb_func_start sub_80F6ED4 +sub_80F6ED4: @ 80F6ED4 + push {lr} + ldr r0, _080F6F00 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F04 @ =0x0000d15a + adds r1, r0, r2 + ldrh r3, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x48 + negs r2, r2 + cmp r0, r2 + beq _080F6F0A + adds r0, r3, 0 + subs r0, 0x8 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, r2 + ble _080F6F08 + movs r0, 0x1 + b _080F6F0C + .align 2, 0 +_080F6F00: .4byte gUnknown_083DFEC4 +_080F6F04: .4byte 0x0000d15a +_080F6F08: + strh r2, [r1] +_080F6F0A: + movs r0, 0 +_080F6F0C: + pop {r1} + bx r1 + thumb_func_end sub_80F6ED4 + + thumb_func_start sub_80F6F10 +sub_80F6F10: @ 80F6F10 + push {lr} + ldr r0, _080F6F48 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r2, _080F6F4C @ =0x0000d15e + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _080F6F50 @ =0x0000d15f + adds r0, r1 + strb r2, [r0] + ldr r1, _080F6F54 @ =REG_BLDCNT + movs r0, 0xC8 + strh r0, [r1] + ldr r0, _080F6F58 @ =REG_BLDY + strh r2, [r0] + subs r1, 0x8 + ldr r2, _080F6F5C @ =0x00003f3f + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F6F60 @ =0x00001f1f + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + bl sub_80F6FB8 + pop {r0} + bx r0 + .align 2, 0 +_080F6F48: .4byte gUnknown_083DFEC4 +_080F6F4C: .4byte 0x0000d15e +_080F6F50: .4byte 0x0000d15f +_080F6F54: .4byte REG_BLDCNT +_080F6F58: .4byte REG_BLDY +_080F6F5C: .4byte 0x00003f3f +_080F6F60: .4byte 0x00001f1f + thumb_func_end sub_80F6F10 + + thumb_func_start sub_80F6F64 +sub_80F6F64: @ 80F6F64 + push {lr} + ldr r0, _080F6F9C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F6FA0 @ =0x0000d15e + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _080F6FB0 + movs r0, 0 + strb r0, [r2] + ldr r0, _080F6FA4 @ =0x0000d15f + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080F6FAC + ldr r1, _080F6FA8 @ =REG_BLDY + movs r0, 0x6 + strh r0, [r1] + b _080F6FB0 + .align 2, 0 +_080F6F9C: .4byte gUnknown_083DFEC4 +_080F6FA0: .4byte 0x0000d15e +_080F6FA4: .4byte 0x0000d15f +_080F6FA8: .4byte REG_BLDY +_080F6FAC: + ldr r0, _080F6FB4 @ =REG_BLDY + strh r1, [r0] +_080F6FB0: + pop {r0} + bx r0 + .align 2, 0 +_080F6FB4: .4byte REG_BLDY + thumb_func_end sub_80F6F64 + + thumb_func_start sub_80F6FB8 +sub_80F6FB8: @ 80F6FB8 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _080F6FDC + ldr r1, _080F6FD0 @ =REG_WIN0H + ldr r2, _080F6FD4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FD8 @ =0x00000888 + b _080F6FE8 + .align 2, 0 +_080F6FD0: .4byte REG_WIN0H +_080F6FD4: .4byte 0x0000e8f0 +_080F6FD8: .4byte 0x00000888 +_080F6FDC: + ldr r1, _080F6FF0 @ =REG_WIN0H + ldr r2, _080F6FF4 @ =0x0000e8f0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + ldr r2, _080F6FF8 @ =0x00000818 +_080F6FE8: + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F6FF0: .4byte REG_WIN0H +_080F6FF4: .4byte 0x0000e8f0 +_080F6FF8: .4byte 0x00000818 + thumb_func_end sub_80F6FB8 + + thumb_func_start sub_80F6FFC +sub_80F6FFC: @ 80F6FFC + ldr r0, _080F7008 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080F7008: .4byte REG_BLDCNT + thumb_func_end sub_80F6FFC + + thumb_func_start sub_80F700C +sub_80F700C: @ 80F700C + push {r4,r5,lr} + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080F7078 @ =gUnknown_083DFEC4 + ldr r4, [r2] + lsls r2, r1, 3 + adds r2, r4, r2 + ldr r3, _080F707C @ =0x0000cee8 + adds r2, r3 + ldrh r3, [r2] + lsls r2, r3, 2 + adds r2, r3 + lsls r2, 3 + ldr r3, _080F7080 @ =gTrainers + adds r5, r2, r3 + adds r3, r0, 0 + ldr r0, _080F7084 @ =0x0000d158 + adds r4, r0 + ldrh r4, [r4] + cmp r1, r4 + bcs _080F7060 + ldrb r1, [r5, 0x1] + movs r0, 0xD + muls r1, r0 + ldr r0, _080F7088 @ =gTrainerClassNames + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x4B + strb r0, [r3, 0x2] + adds r3, 0x3 + adds r1, r5, 0x4 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 +_080F7060: + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0x80 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F7078: .4byte gUnknown_083DFEC4 +_080F707C: .4byte 0x0000cee8 +_080F7080: .4byte gTrainers +_080F7084: .4byte 0x0000d158 +_080F7088: .4byte gTrainerClassNames + thumb_func_end sub_80F700C + + thumb_func_start sub_80F708C +sub_80F708C: @ 80F708C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _080F70E4 @ =gUnknown_083DFEC4 + ldr r3, [r0] + ldr r0, _080F70E8 @ =0x0000876e + adds r2, r3, r0 + lsls r0, r4, 24 + asrs r0, 24 + ldrh r1, [r2] + adds r0, r1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bge _080F70B4 + ldr r5, _080F70EC @ =0x00008774 + adds r0, r3, r5 + ldrh r0, [r0] + strh r0, [r2] +_080F70B4: + ldr r1, _080F70EC @ =0x00008774 + adds r0, r3, r1 + movs r5, 0 + ldrsh r1, [r2, r5] + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + ble _080F70C8 + movs r0, 0 + strh r0, [r2] +_080F70C8: + ldr r1, _080F70F0 @ =0x0000bc94 + adds r0, r3, r1 + strb r4, [r0] + ldrh r1, [r2] + ldr r2, _080F70F4 @ =0x000087dc + adds r0, r3, r2 + strh r1, [r0] + ldr r5, _080F70F8 @ =0x000087de + adds r1, r3, r5 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F70E4: .4byte gUnknown_083DFEC4 +_080F70E8: .4byte 0x0000876e +_080F70EC: .4byte 0x00008774 +_080F70F0: .4byte 0x0000bc94 +_080F70F4: .4byte 0x000087dc +_080F70F8: .4byte 0x000087de + thumb_func_end sub_80F708C + + thumb_func_start sub_80F70FC +sub_80F70FC: @ 80F70FC + push {r4-r6,lr} + ldr r1, _080F711C @ =gUnknown_083DFEC4 + ldr r0, [r1] + ldr r2, _080F7120 @ =0x000087de + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x6 + bls _080F7110 + b _080F7218 +_080F7110: + lsls r0, 2 + ldr r1, _080F7124 @ =_080F7128 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F711C: .4byte gUnknown_083DFEC4 +_080F7120: .4byte 0x000087de +_080F7124: .4byte _080F7128 + .align 2, 0 +_080F7128: + .4byte _080F7144 + .4byte _080F714A + .4byte _080F7164 + .4byte _080F716C + .4byte _080F71A0 + .4byte _080F71BA + .4byte _080F71EA +_080F7144: + bl sub_80F6ED4 + b _080F71F8 +_080F714A: + movs r0, 0 + bl sub_80F6E04 + ldr r0, _080F715C @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r2, _080F7160 @ =0x000087de + adds r1, r2 + b _080F7206 + .align 2, 0 +_080F715C: .4byte gUnknown_083DFEC4 +_080F7160: .4byte 0x000087de +_080F7164: + movs r0, 0 + bl sub_80F2F7C + b _080F71FE +_080F716C: + ldr r4, [r4] + ldr r2, _080F7194 @ =0x00008788 + adds r5, r4, r2 + ldr r0, _080F7198 @ =0x0000876e + adds r6, r4, r0 + ldrh r1, [r6] + adds r0, r5, 0 + bl sub_80F700C + adds r0, r5, 0 + bl sub_80F43D4 + bl sub_80F105C + ldrb r0, [r6] + bl sub_80F0FFC + ldr r2, _080F719C @ =0x000087de + adds r4, r2 + b _080F71CC + .align 2, 0 +_080F7194: .4byte 0x00008788 +_080F7198: .4byte 0x0000876e +_080F719C: .4byte 0x000087de +_080F71A0: + bl sub_80F0CD8 + ldr r0, _080F71D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F71D8 @ =0x0000bc95 + adds r2, r1, r0 + movs r0, 0 + strb r0, [r2] + ldr r2, _080F71DC @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71BA: + ldr r0, _080F71D4 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F71D8 @ =0x0000bc95 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0x1 + bhi _080F71E0 + bl sub_80F0D5C +_080F71CC: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080F721C + .align 2, 0 +_080F71D4: .4byte gUnknown_083DFEC4 +_080F71D8: .4byte 0x0000bc95 +_080F71DC: .4byte 0x000087de +_080F71E0: + ldr r2, _080F7210 @ =0x000087de + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F71EA: + bl sub_80F6E9C + lsls r0, 24 + cmp r0, 0 + bne _080F721C + bl sub_80F0D5C +_080F71F8: + lsls r0, 24 + cmp r0, 0 + bne _080F721C +_080F71FE: + ldr r0, _080F7214 @ =gUnknown_083DFEC4 + ldr r1, [r0] + ldr r0, _080F7210 @ =0x000087de + adds r1, r0 +_080F7206: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F721C + .align 2, 0 +_080F7210: .4byte 0x000087de +_080F7214: .4byte gUnknown_083DFEC4 +_080F7218: + movs r0, 0 + b _080F721E +_080F721C: + movs r0, 0x1 +_080F721E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80F70FC + + thumb_func_start sub_80F7224 +sub_80F7224: @ 80F7224 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080F7260 @ =gPlayerParty + adds r0, r1 + movs r1, 0x30 + bl GetMonData + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080F7264 @ =gUnknown_083DFEC4 + ldr r0, [r0] + ldr r3, _080F7268 @ =0x00008fe9 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + ldr r3, _080F726C @ =0x00008931 + adds r0, r3 + adds r4, r0, r1 + cmp r2, 0xFF + beq _080F7270 + adds r0, r2, 0 + movs r1, 0x1D + bl __udivsi3 + b _080F7272 + .align 2, 0 +_080F7260: .4byte gPlayerParty +_080F7264: .4byte gUnknown_083DFEC4 +_080F7268: .4byte 0x00008fe9 +_080F726C: .4byte 0x00008931 +_080F7270: + movs r0, 0x9 +_080F7272: + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F7224 + + thumb_func_start sub_80F727C +sub_80F727C: @ 80F727C + ldr r1, _080F7288 @ =gUnknown_020388B8 + str r0, [r1] + movs r1, 0 + strb r1, [r0, 0xB] + bx lr + .align 2, 0 +_080F7288: .4byte gUnknown_020388B8 + thumb_func_end sub_80F727C + + thumb_func_start sub_80F728C +sub_80F728C: @ 80F728C + push {lr} + sub sp, 0x4 + ldr r0, _080F72C4 @ =gSaveBlock2 + ldrb r0, [r0, 0x14] + lsrs r0, 3 + bl GetTextWindowFrameGraphics + ldr r3, _080F72C8 @ =gUnknown_020388B8 + ldr r2, [r3] + ldr r1, [r0] + str r1, [r2, 0x28] + ldr r0, [r0, 0x4] + str r0, [r2, 0x2C] + ldr r0, _080F72CC @ =0x000010b0 + adds r2, r0 + movs r1, 0 + strb r1, [r2] + mov r0, sp + strh r1, [r0] + ldr r1, [r3] + adds r1, 0x30 + ldr r2, _080F72D0 @ =0x01000800 + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F72C4: .4byte gSaveBlock2 +_080F72C8: .4byte gUnknown_020388B8 +_080F72CC: .4byte 0x000010b0 +_080F72D0: .4byte 0x01000800 + thumb_func_end sub_80F728C + + thumb_func_start sub_80F72D4 +sub_80F72D4: @ 80F72D4 + push {r4-r7,lr} + ldr r0, _080F72F4 @ =gUnknown_020388B8 + ldr r1, [r0] + ldr r2, _080F72F8 @ =0x000010b0 + adds r0, r1, r2 + ldrb r2, [r0] + lsls r0, r2, 8 + adds r0, 0x30 + adds r5, r1, r0 + cmp r2, 0xD + beq _080F73A4 + cmp r2, 0xD + bgt _080F72FC + cmp r2, 0 + beq _080F7302 + b _080F734C + .align 2, 0 +_080F72F4: .4byte gUnknown_020388B8 +_080F72F8: .4byte 0x000010b0 +_080F72FC: + cmp r2, 0xE + beq _080F73F0 + b _080F734C +_080F7302: + ldr r0, [r1, 0x28] + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7312: + ldr r6, _080F7344 @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x20 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7312 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x40 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r0, _080F7348 @ =0x000010b0 + adds r1, r0 + b _080F7392 + .align 2, 0 +_080F7344: .4byte gUnknown_020388B8 +_080F7348: .4byte 0x000010b0 +_080F734C: + ldr r0, _080F739C @ =gUnknown_020388B8 + ldr r0, [r0] + ldr r0, [r0, 0x28] + adds r0, 0x60 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F7362: + ldr r6, _080F739C @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0x80 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F7362 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xA0 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73A0 @ =0x000010b0 + adds r1, r2 +_080F7392: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080F73FC + .align 2, 0 +_080F739C: .4byte gUnknown_020388B8 +_080F73A0: .4byte 0x000010b0 +_080F73A4: + ldr r0, [r1, 0x28] + adds r0, 0xC0 + adds r1, r5, 0 + movs r2, 0x8 + bl CpuFastSet + movs r4, 0 + adds r7, r5, 0 + adds r7, 0xE0 +_080F73B6: + ldr r6, _080F73F4 @ =gUnknown_020388B8 + ldr r0, [r6] + ldr r0, [r0, 0x28] + adds r0, 0xE0 + adds r4, 0x1 + lsls r1, r4, 5 + adds r1, r5, r1 + movs r2, 0x8 + bl CpuFastSet + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x5 + bls _080F73B6 + ldr r0, [r6] + ldr r0, [r0, 0x28] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + adds r1, r7, 0 + movs r2, 0x8 + bl CpuFastSet + ldr r1, [r6] + ldr r2, _080F73F8 @ =0x000010b0 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F73F0: + movs r0, 0 + b _080F73FE + .align 2, 0 +_080F73F4: .4byte gUnknown_020388B8 +_080F73F8: .4byte 0x000010b0 +_080F73FC: + movs r0, 0x1 +_080F73FE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F72D4 + + thumb_func_start sub_80F7404 +sub_80F7404: @ 80F7404 + push {lr} + bl sub_80F728C +_080F740A: + bl sub_80F72D4 + lsls r0, 24 + cmp r0, 0 + bne _080F740A + pop {r0} + bx r0 + thumb_func_end sub_80F7404 + + thumb_func_start sub_80F7418 +sub_80F7418: @ 80F7418 + push {r4-r6,lr} + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 16 + lsrs r6, r2, 16 + ldr r2, _080F746C @ =gUnknown_020388B8 + ldr r3, [r2] + movs r1, 0 + strb r1, [r3, 0x5] + ldr r1, [r2] + strb r0, [r1, 0x4] + movs r3, 0 + adds r4, r2, 0 + movs r2, 0x1 +_080F7434: + ldr r0, [r4] + adds r1, r0, 0x6 + adds r1, r3 + ldrb r0, [r0, 0x4] + asrs r0, r3 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F7434 + bl sub_814A7FC + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r6, 16 + asrs r1, 16 + ldr r2, _080F746C @ =gUnknown_020388B8 + ldr r3, [r2] + ldrh r2, [r3] + ldrh r3, [r3, 0x2] + bl sub_80F761C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F746C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7418 + + thumb_func_start sub_80F7470 +sub_80F7470: @ 80F7470 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080F74FC @ =gUnknown_020388B8 +_080F7476: + ldr r0, [r5] + ldrh r0, [r0] + adds r0, r4, r0 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080F7476 + ldr r4, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + movs r4, 0 +_080F74A8: + ldr r0, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r4, 2 + adds r0, 0xC + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080F74A8 + movs r4, 0 +_080F74C8: + ldr r5, _080F74FC @ =gUnknown_020388B8 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x14 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080F74C8 + bl sub_814A7FC + ldr r0, [r5] + ldr r0, [r0, 0x24] + cmp r0, 0 + beq _080F74F6 + bl DestroySprite +_080F74F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F74FC: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7470 + + thumb_func_start sub_80F7500 +sub_80F7500: @ 80F7500 + push {r4,r5,lr} + sub sp, 0x30 + ldr r4, _080F7580 @ =gUnknown_020388B8 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x30 + str r0, [sp, 0x18] + add r1, sp, 0x1C + movs r5, 0 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + ldrh r1, [r2] + mov r0, sp + adds r0, 0x1E + strh r1, [r0] + add r1, sp, 0x20 + ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx + str r0, [sp, 0x20] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x28 + movs r1, 0 + movs r2, 0x8 + bl memset + add r1, sp, 0x18 + mov r0, sp + movs r2, 0x18 + bl memcpy + ldr r0, [r4] + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _080F7558 + mov r0, sp + bl LoadTilesForSpriteSheets + ldr r0, [r4] + strb r5, [r0, 0xB] +_080F7558: + ldr r0, _080F7588 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080F758C + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + subs r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + cmp r0, 0 + bge _080F75FE + ldr r1, [r4] + movs r0, 0x5 + strb r0, [r1, 0x5] + b _080F75FE + .align 2, 0 +_080F7580: .4byte gUnknown_020388B8 +_080F7584: .4byte gPokenavConditionMenuMisc_Gfx +_080F7588: .4byte gMain +_080F758C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080F75B0 + movs r0, 0x5 + bl PlaySE + ldr r1, [r4] + ldrb r0, [r1, 0x5] + adds r0, 0x1 + strb r0, [r1, 0x5] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + ble _080F75FE + ldr r0, [r4] + strb r5, [r0, 0x5] + b _080F75FE +_080F75B0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080F7602 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + movs r1, 0x5 + ldrsb r1, [r0, r1] + cmp r1, 0x4 + beq _080F75DC + cmp r1, 0x5 + beq _080F7610 + adds r0, 0x6 + adds r1, r0, r1 + movs r2, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _080F75FC + movs r2, 0x1 + b _080F75FC +_080F75DC: + strb r5, [r0, 0x4] + movs r3, 0 +_080F75E0: + ldr r2, [r4] + adds r0, r2, 0x6 + adds r0, r3 + ldrb r0, [r0] + lsls r0, r3 + ldrb r1, [r2, 0x4] + orrs r0, r1 + strb r0, [r2, 0x4] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080F75E0 + b _080F7610 +_080F75FC: + strb r2, [r1] +_080F75FE: + movs r0, 0x1 + b _080F7612 +_080F7602: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080F75FE + movs r0, 0x5 + bl PlaySE +_080F7610: + movs r0, 0 +_080F7612: + add sp, 0x30 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F7500 + + thumb_func_start sub_80F761C +sub_80F761C: @ 80F761C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x5C + adds r5, r2, 0 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4C] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x50] + lsls r5, 16 + lsrs r5, 16 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x54] + ldr r0, _080F7820 @ =gUnknown_020388B8 + mov r8, r0 + ldr r0, [r0] + adds r0, 0x30 + str r0, [sp, 0x1C] + add r1, sp, 0x20 + movs r2, 0 + mov r9, r2 + movs r0, 0x80 + lsls r0, 5 + strh r0, [r1] + mov r0, sp + adds r0, 0x22 + strh r5, [r0] + add r1, sp, 0x24 + ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx + str r0, [sp, 0x24] + movs r0, 0xA4 + lsls r0, 3 + strh r0, [r1, 0x4] + adds r0, r5, 0x1 + strh r0, [r1, 0x6] + add r0, sp, 0x2C + movs r1, 0 + movs r2, 0x8 + bl memset + add r6, sp, 0x1C + add r0, sp, 0x4 + adds r1, r6, 0 + movs r2, 0x18 + bl memcpy + mov r3, r8 + ldr r0, [r3] + ldr r0, [r0, 0x2C] + str r0, [sp, 0x34] + add r0, sp, 0x38 + add r1, sp, 0x54 + ldrh r1, [r1] + strh r1, [r0] + add r1, sp, 0x3C + ldr r0, _080F7828 @ =gUnknown_08E966B8 + str r0, [sp, 0x3C] + ldr r0, [sp, 0x54] + adds r0, 0x1 + strh r0, [r1, 0x4] + add r0, sp, 0x44 + movs r1, 0 + movs r2, 0x8 + bl memset + add r4, sp, 0x34 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x18 + bl memcpy + strh r5, [r4] + add r2, sp, 0x54 + ldrh r2, [r2] + strh r2, [r4, 0x2] + ldr r0, _080F782C @ =gUnknown_083E5214 + str r0, [r4, 0x4] + ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC + str r0, [r4, 0x8] + mov r3, r9 + str r3, [r4, 0xC] + ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable + str r0, [r4, 0x10] + ldr r0, _080F7838 @ =nullsub_65 + str r0, [r4, 0x14] + mov r0, r8 + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0xB] + add r0, sp, 0x4 + bl AllocTilesForSpriteSheets + adds r0, r6, 0 + bl LoadSpritePalettes + movs r5, 0 + ldr r1, [sp, 0x4C] + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 14 + adds r2, r0 + mov r8, r2 + str r0, [sp, 0x58] + ldr r3, [sp, 0x50] + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 14 + adds r7, r0, r1 + mov r9, r0 +_080F7700: + adds r0, r4, 0 + mov r2, r8 + asrs r1, r2, 16 + asrs r2, r7, 16 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080F7718 + b _080F7850 +_080F7718: + ldr r6, _080F7820 @ =gUnknown_020388B8 + ldr r2, [r6] + lsls r0, r5, 2 + adds r2, 0xC + adds r2, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, _080F783C @ =gSprites + adds r0, r1 + str r0, [r2] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080F7700 + ldr r0, [r6] + ldr r1, [r0, 0x10] + mov r3, r9 + asrs r0, r3, 16 + adds r0, 0x60 + strh r0, [r1, 0x22] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274 + str r0, [r4, 0x8] + ldr r0, _080F7844 @ =sub_80F78CC + str r0, [r4, 0x14] + ldr r0, _080F7848 @ =gUnknown_083E521C + str r0, [r4, 0x4] + movs r5, 0 + ldr r0, [sp, 0x58] + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + mov r10, r0 +_080F7770: + lsls r2, r5, 4 + adds r2, 0x10 + mov r3, r9 + asrs r3, 16 + mov r8, r3 + add r2, r8 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + mov r3, r10 + asrs r1, r3, 16 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7860 + ldr r6, _080F7820 @ =gUnknown_020388B8 + ldr r1, [r6] + lsls r0, r5, 2 + adds r1, 0x14 + adds r1, r0 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r7, _080F783C @ =gSprites + adds r0, r7 + str r0, [r1] + strh r5, [r0, 0x2E] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080F7770 + ldr r0, _080F784C @ =SpriteCallbackDummy + str r0, [r4, 0x14] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080F7874 + ldr r1, [r6] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r0, r7 + str r0, [r1, 0x24] + ldrb r2, [r0, 0x1] + movs r1, 0x3F + ands r1, r2 + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0, 0x1] + ldr r0, [r6] + ldr r2, [r0, 0x24] + ldrb r0, [r2, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r2, 0x3] + ldr r0, [r6] + ldr r0, [r0, 0x24] + movs r1, 0x9 + bl StartSpriteAnim + ldr r1, [r6] + ldr r2, [r1, 0x24] + ldr r3, [sp, 0x58] + asrs r0, r3, 16 + adds r0, 0x20 + strh r0, [r2, 0x20] + ldr r2, [r1, 0x24] + mov r0, r8 + adds r0, 0x50 + strh r0, [r2, 0x22] + ldr r0, [r1, 0x24] + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0 + bl CalcCenterToCornerVec + b _080F787A + .align 2, 0 +_080F7820: .4byte gUnknown_020388B8 +_080F7824: .4byte gPokenavConditionMenuMisc_Gfx +_080F7828: .4byte gUnknown_08E966B8 +_080F782C: .4byte gUnknown_083E5214 +_080F7830: .4byte gSpriteAnimTable_83E52AC +_080F7834: .4byte gDummySpriteAffineAnimTable +_080F7838: .4byte nullsub_65 +_080F783C: .4byte gSprites +_080F7840: .4byte gSpriteAnimTable_83E5274 +_080F7844: .4byte sub_80F78CC +_080F7848: .4byte gUnknown_083E521C +_080F784C: .4byte SpriteCallbackDummy +_080F7850: + ldr r0, _080F785C @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0xC + b _080F7868 + .align 2, 0 +_080F785C: .4byte gUnknown_020388B8 +_080F7860: + ldr r0, _080F7870 @ =gUnknown_020388B8 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x14 +_080F7868: + adds r0, r1 + movs r1, 0 + str r1, [r0] + b _080F78B0 + .align 2, 0 +_080F7870: .4byte gUnknown_020388B8 +_080F7874: + ldr r1, [r6] + movs r0, 0 + str r0, [r1, 0x24] +_080F787A: + ldr r4, _080F78C0 @ =gUnknown_020388B8 + ldr r1, [r4] + ldr r0, [sp, 0x50] + adds r0, 0x8 + strb r0, [r1, 0xA] + ldr r1, [sp, 0x54] + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x30 + str r0, [sp] + movs r0, 0 + movs r2, 0xF + movs r3, 0 + bl sub_814A5C0 + ldr r0, [sp, 0x4C] + adds r0, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r4] + ldrb r1, [r1, 0xA] + bl sub_814A880 + ldr r0, _080F78C4 @ =sub_80F7908 + bl sub_814AABC +_080F78B0: + add sp, 0x5C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F78C0: .4byte gUnknown_020388B8 +_080F78C4: .4byte sub_80F7908 + thumb_func_end sub_80F761C + + thumb_func_start nullsub_65 +nullsub_65: @ 80F78C8 + bx lr + thumb_func_end nullsub_65 + + thumb_func_start sub_80F78CC +sub_80F78CC: @ 80F78CC + push {lr} + adds r2, r0, 0 + ldr r0, _080F78F4 @ =gUnknown_020388B8 + ldr r0, [r0] + movs r3, 0x2E + ldrsh r1, [r2, r3] + adds r0, 0x6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080F78F8 + lsls r1, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + b _080F7902 + .align 2, 0 +_080F78F4: .4byte gUnknown_020388B8 +_080F78F8: + lsls r1, 25 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim +_080F7902: + pop {r0} + bx r0 + thumb_func_end sub_80F78CC + + thumb_func_start sub_80F7908 +sub_80F7908: @ 80F7908 + ldr r1, _080F791C @ =gUnknown_020388B8 + ldr r2, [r1] + movs r1, 0x5 + ldrsb r1, [r2, r1] + lsls r1, 4 + ldrb r2, [r2, 0xA] + adds r1, r2 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080F791C: .4byte gUnknown_020388B8 + thumb_func_end sub_80F7908 + + thumb_func_start sub_80F7920 +sub_80F7920: @ 80F7920 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7930 + ldr r2, _080F793C @ =gUnknown_083E49F4 +_080F7930: + movs r3, 0x10 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F793C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7920 + + thumb_func_start sub_80F7940 +sub_80F7940: @ 80F7940 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + cmp r2, 0 + bne _080F7950 + ldr r2, _080F795C @ =gUnknown_083E49F4 +_080F7950: + movs r3, 0x1 + bl sub_80F7960 + pop {r1} + bx r1 + .align 2, 0 +_080F795C: .4byte gUnknown_083E49F4 + thumb_func_end sub_80F7940 + + thumb_func_start sub_80F7960 +sub_80F7960: @ 80F7960 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _080F79DC @ =gUnknown_083E4A14 + str r4, [sp, 0x18] + movs r4, 0x80 + add r5, sp, 0x18 + lsrs r6, r0, 16 + orrs r0, r4 + str r0, [r5, 0x4] + str r2, [sp, 0x20] + ldr r0, _080F79E0 @ =0xffff0000 + mov r8, r0 + add r4, sp, 0x20 + ldr r0, [r4, 0x4] + mov r2, r8 + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + movs r2, 0 + strh r6, [r0] + strh r1, [r0, 0x2] + ldr r0, _080F79E4 @ =gUnknown_083E52B4 + str r0, [sp, 0x4] + ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x10] + ldr r0, _080F79F0 @ =nullsub_65 + str r0, [sp, 0x14] + lsls r3, 23 + lsrs r3, 16 + ldr r0, [r5, 0x4] + mov r1, r8 + ands r0, r1 + orrs r0, r3 + str r0, [r5, 0x4] + adds r0, r5, 0 + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080F79F4 + movs r0, 0 + b _080F79FE + .align 2, 0 +_080F79DC: .4byte gUnknown_083E4A14 +_080F79E0: .4byte 0xffff0000 +_080F79E4: .4byte gUnknown_083E52B4 +_080F79E8: .4byte gSpriteAnimTable_83E533C +_080F79EC: .4byte gDummySpriteAffineAnimTable +_080F79F0: .4byte nullsub_65 +_080F79F4: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F7A0C @ =gSprites + adds r0, r1 +_080F79FE: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080F7A0C: .4byte gSprites + thumb_func_end sub_80F7960 + + thumb_func_start sub_80F7A10 +sub_80F7A10: @ 80F7A10 + lsls r0, 24 + lsrs r0, 17 + ldr r2, _080F7A28 @ =gUnknown_083E4A14 + adds r0, r2 + ldr r2, _080F7A2C @ =0x040000d4 + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _080F7A30 @ =0x80000040 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + bx lr + .align 2, 0 +_080F7A28: .4byte gUnknown_083E4A14 +_080F7A2C: .4byte 0x040000d4 +_080F7A30: .4byte 0x80000040 + thumb_func_end sub_80F7A10 + + thumb_func_start sub_80F7A34 +sub_80F7A34: @ 80F7A34 + push {r4,lr} + ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94 + movs r1, 0 + strb r1, [r0] + adds r2, r0, 0 + adds r2, 0x29 + strb r1, [r2] + movs r2, 0 + adds r4, r0, 0x2 + ldr r3, _080F7A68 @ =gUnknown_083E537C +_080F7A48: + lsls r0, r2, 1 + adds r1, r4, r0 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080F7A48 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7A64: .4byte gSaveBlock1 + 0x2D94 +_080F7A68: .4byte gUnknown_083E537C + thumb_func_end sub_80F7A34 + + thumb_func_start sub_80F7A6C +sub_80F7A6C: @ 80F7A6C + ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F7A78: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7A6C + + thumb_func_start sub_80F7A7C +sub_80F7A7C: @ 80F7A7C + push {lr} + bl sub_80F83F8 + pop {r0} + bx r0 + thumb_func_end sub_80F7A7C + + thumb_func_start sub_80F7A88 +sub_80F7A88: @ 80F7A88 + ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + movs r1, 0x4 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F7A94: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7A88 + + thumb_func_start sub_80F7A98 +sub_80F7A98: @ 80F7A98 + push {lr} + bl sub_81099CC + pop {r0} + bx r0 + thumb_func_end sub_80F7A98 + + thumb_func_start sub_80F7AA4 +sub_80F7AA4: @ 80F7AA4 + push {lr} + ldr r0, _080F7AC8 @ =gSaveBlock2 + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r0, 17 + cmp r0, 0x4 + bhi _080F7B00 + lsls r0, 2 + ldr r1, _080F7ACC @ =_080F7AD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7AC8: .4byte gSaveBlock2 +_080F7ACC: .4byte _080F7AD0 + .align 2, 0 +_080F7AD0: + .4byte _080F7AE4 + .4byte _080F7AEA + .4byte _080F7AF0 + .4byte _080F7AF6 + .4byte _080F7AFC +_080F7AE4: + bl sub_80F7A34 + b _080F7B00 +_080F7AEA: + bl sub_80F7A6C + b _080F7B00 +_080F7AF0: + bl sub_80F7A98 + b _080F7B00 +_080F7AF6: + bl sub_80F7A7C + b _080F7B00 +_080F7AFC: + bl sub_80F7A88 +_080F7B00: + bl sub_80F83D0 + pop {r0} + bx r0 + thumb_func_end sub_80F7AA4 + + thumb_func_start GetCurrentMauvilleOldMan +GetCurrentMauvilleOldMan: @ 80F7B08 + ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r0] + bx lr + .align 2, 0 +_080F7B10: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end GetCurrentMauvilleOldMan + + thumb_func_start sub_80F7B14 +sub_80F7B14: @ 80F7B14 + push {r4,lr} + ldr r4, _080F7B28 @ =gScriptResult + bl GetCurrentMauvilleOldMan + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7B28: .4byte gScriptResult + thumb_func_end sub_80F7B14 + + thumb_func_start sub_80F7B2C +sub_80F7B2C: @ 80F7B2C + ldr r0, _080F7B38 @ =gScriptResult + ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94 + adds r1, 0x29 + ldrb r1, [r1] + strh r1, [r0] + bx lr + .align 2, 0 +_080F7B38: .4byte gScriptResult +_080F7B3C: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7B2C + + thumb_func_start sub_80F7B40 +sub_80F7B40: @ 80F7B40 + push {r4,r5,lr} + ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94 + adds r0, r5, 0 + adds r0, 0x1A + ldr r4, _080F7B9C @ =gSaveBlock2 + adds r1, r4, 0 + bl StringCopy + movs r2, 0 + adds r3, r5, 0 + adds r3, 0x25 + adds r4, 0xA +_080F7B58: + adds r1, r3, r2 + adds r0, r2, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080F7B58 + movs r2, 0 + movs r0, 0x29 + adds r0, r5 + mov r12, r0 + adds r4, r5, 0x2 + adds r3, r5, 0 + adds r3, 0xE +_080F7B78: + lsls r0, r2, 1 + adds r1, r4, r0 + adds r0, r3, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080F7B78 + movs r0, 0x1 + mov r1, r12 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F7B98: .4byte gSaveBlock1 + 0x2D94 +_080F7B9C: .4byte gSaveBlock2 + thumb_func_end sub_80F7B40 + + thumb_func_start sub_80F7BA0 +sub_80F7BA0: @ 80F7BA0 + push {r4-r7,lr} + ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94 + ldr r0, _080F7C4C @ =gUnknown_0202E8CC + ldrh r0, [r0] + adds r5, r1, 0 + adds r5, 0xE + cmp r0, 0 + bne _080F7BB2 + adds r5, r1, 0x2 +_080F7BB2: + ldr r2, _080F7C50 @ =gStringVar4 + adds r4, r2, 0 + movs r6, 0 +_080F7BB8: + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + adds r7, r6, 0x1 + cmp r2, r4 + beq _080F7BDA + movs r1, 0x37 +_080F7BCC: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7BD4 + strb r1, [r4] +_080F7BD4: + adds r4, 0x1 + cmp r2, r4 + bne _080F7BCC +_080F7BDA: + adds r4, 0x1 + movs r0, 0 + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + cmp r2, r4 + beq _080F7C02 + movs r1, 0x37 +_080F7BF4: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7BFC + strb r1, [r4] +_080F7BFC: + adds r4, 0x1 + cmp r2, r4 + bne _080F7BF4 +_080F7C02: + adds r4, 0x1 + movs r0, 0xFE + strb r0, [r2] + adds r2, 0x1 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r2, 0 + bl sub_80EB3FC + adds r2, r0, 0 + cmp r2, r4 + beq _080F7C2A + movs r1, 0x37 +_080F7C1C: + ldrb r0, [r4] + cmp r0, 0 + bne _080F7C24 + strb r1, [r4] +_080F7C24: + adds r4, 0x1 + cmp r2, r4 + bne _080F7C1C +_080F7C2A: + cmp r6, 0 + bne _080F7C3A + movs r0, 0xFC + strb r0, [r2] + adds r2, 0x1 + movs r0, 0xF + strb r0, [r2] + adds r2, 0x1 +_080F7C3A: + lsls r0, r7, 16 + lsrs r6, r0, 16 + cmp r6, 0x1 + bls _080F7BB8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F7C48: .4byte gSaveBlock1 + 0x2D94 +_080F7C4C: .4byte gUnknown_0202E8CC +_080F7C50: .4byte gStringVar4 + thumb_func_end sub_80F7BA0 + + thumb_func_start sub_80F7C54 +sub_80F7C54: @ 80F7C54 + push {lr} + ldr r0, _080F7C6C @ =gUnknown_0202E8CC + ldrb r0, [r0] + bl sub_80F7F80 + bl MenuDisplayMessageBox + bl ScriptContext1_Stop + pop {r0} + bx r0 + .align 2, 0 +_080F7C6C: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F7C54 + + thumb_func_start sub_80F7C70 +sub_80F7C70: @ 80F7C70 + ldr r0, _080F7C7C @ =gScriptResult + ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94 + ldrb r1, [r1, 0x1] + strh r1, [r0] + bx lr + .align 2, 0 +_080F7C7C: .4byte gScriptResult +_080F7C80: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7C70 + + thumb_func_start sub_80F7C84 +sub_80F7C84: @ 80F7C84 + ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94 + movs r0, 0x1 + strb r0, [r1, 0x1] + bx lr + .align 2, 0 +_080F7C8C: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7C84 + + thumb_func_start sub_80F7C90 +sub_80F7C90: @ 80F7C90 + push {lr} + bl sub_80EB8EC + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080F7CA8 @ =0x0000ffff + cmp r1, r0 + bne _080F7CB0 + ldr r1, _080F7CAC @ =gScriptResult + movs r0, 0 + b _080F7CBA + .align 2, 0 +_080F7CA8: .4byte 0x0000ffff +_080F7CAC: .4byte gScriptResult +_080F7CB0: + ldr r0, _080F7CC0 @ =gStringVar1 + bl sub_80EB3FC + ldr r1, _080F7CC4 @ =gScriptResult + movs r0, 0x1 +_080F7CBA: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080F7CC0: .4byte gStringVar1 +_080F7CC4: .4byte gScriptResult + thumb_func_end sub_80F7C90 + + thumb_func_start sub_80F7CC8 +sub_80F7CC8: @ 80F7CC8 + push {lr} + ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r2, 0x1] + cmp r0, 0xA + bne _080F7CE4 + ldr r1, _080F7CE0 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + strb r0, [r2, 0x1] + b _080F7CEA + .align 2, 0 +_080F7CDC: .4byte gSaveBlock1 + 0x2D94 +_080F7CE0: .4byte gScriptResult +_080F7CE4: + ldr r1, _080F7CF0 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_080F7CEA: + pop {r0} + bx r0 + .align 2, 0 +_080F7CF0: .4byte gScriptResult + thumb_func_end sub_80F7CC8 + + thumb_func_start sub_80F7CF4 +sub_80F7CF4: @ 80F7CF4 + push {r4-r6,lr} + ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r5, 0x1] + cmp r0, 0 + bne _080F7D02 + bl sub_80F7DC0 +_080F7D02: + ldrb r0, [r5, 0x1] + lsls r0, 1 + adds r6, r5, 0x4 + adds r0, r6 + ldrh r1, [r0] + ldr r0, _080F7D54 @ =0x0000ffff + cmp r1, r0 + beq _080F7D68 + bl Random + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x7 + ands r4, r0 + ldr r0, _080F7D58 @ =gStringVar4 + ldrb r1, [r5, 0x1] + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + bl sub_80EB3FC + adds r2, r0, 0 + ldr r1, _080F7D5C @ =gOtherText_Is + bl StringCopy + adds r2, r0, 0 + ldr r0, _080F7D60 @ =gUnknown_083E5388 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, _080F7D64 @ =gOtherText_DontYouAgree + bl StringCopy + b _080F7D88 + .align 2, 0 +_080F7D50: .4byte gSaveBlock1 + 0x2D94 +_080F7D54: .4byte 0x0000ffff +_080F7D58: .4byte gStringVar4 +_080F7D5C: .4byte gOtherText_Is +_080F7D60: .4byte gUnknown_083E5388 +_080F7D64: .4byte gOtherText_DontYouAgree +_080F7D68: + ldr r0, _080F7DA0 @ =gStringVar4 + ldr r3, _080F7DA4 @ =gUnknown_083E53A8 + ldrb r1, [r5, 0x2] + adds r2, r1, 0x1 + strb r2, [r5, 0x2] + lsls r1, 24 + lsrs r1, 24 + adds r2, r5, 0 + adds r2, 0x18 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl StringCopy +_080F7D88: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080F7DA8 + movs r0, 0xA + b _080F7DAC + .align 2, 0 +_080F7DA0: .4byte gStringVar4 +_080F7DA4: .4byte gUnknown_083E53A8 +_080F7DA8: + ldrb r0, [r5, 0x1] + adds r0, 0x1 +_080F7DAC: + strb r0, [r5, 0x1] + ldr r1, _080F7DBC @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F7DBC: .4byte gScriptResult + thumb_func_end sub_80F7CF4 + + thumb_func_start sub_80F7DC0 +sub_80F7DC0: @ 80F7DC0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r1, _080F7E84 @ =gUnknown_083E53C8 + mov r0, sp + movs r2, 0x18 + bl memcpy + movs r5, 0 + movs r0, 0x2 + add r0, sp + mov r8, r0 + ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94 + adds r1, 0x18 + adds r3, r1, 0 +_080F7DE4: + adds r0, r3, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _080F7DE4 + movs r5, 0 + ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 + adds r2, 0x4 + mov r9, r2 + adds r6, r1, 0 +_080F7DFC: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r4, r5, 0x1 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r6, r5 + ldrb r7, [r2] + adds r1, r6, r1 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0x7 + bls _080F7DFC + movs r3, 0 + mov r10, r3 + movs r5, 0 +_080F7E2A: + lsls r4, r5, 2 + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl sub_80EAE88 + add r4, r8 + strh r0, [r4] + add r0, r10 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _080F7E2A + movs r0, 0 + ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94 + strb r0, [r2, 0x2] + movs r7, 0 + movs r5, 0 +_080F7E56: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x2 + bhi _080F7E90 + cmp r7, 0x7 + bhi _080F7E90 + lsls r0, r5, 1 + add r0, r9 + ldr r1, _080F7E8C @ =0x0000ffff + strh r1, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, r5, 0x1 + b _080F7EE2 + .align 2, 0 +_080F7E84: .4byte gUnknown_083E53C8 +_080F7E88: .4byte gSaveBlock1 + 0x2D94 +_080F7E8C: .4byte 0x0000ffff +_080F7E90: + bl Random + lsls r0, 16 + lsrs r0, 16 + mov r1, r10 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + adds r4, r5, 0x1 + lsls r6, r5, 1 + cmp r5, 0x5 + bhi _080F7ECC + mov r3, r8 + ldrh r0, [r3] + b _080F7EC2 +_080F7EB2: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r5, 0x5 + bhi _080F7ECC + lsls r0, r1, 2 + adds r0, r3, r0 + ldrh r0, [r0] +_080F7EC2: + subs r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bgt _080F7EB2 +_080F7ECC: + cmp r1, 0x6 + bne _080F7ED2 + movs r1, 0 +_080F7ED2: + lsls r0, r1, 2 + add r0, sp + ldrh r0, [r0] + bl sub_80EB784 + mov r2, r9 + adds r1, r2, r6 + strh r0, [r1] +_080F7EE2: + lsls r0, r4, 16 + lsrs r5, r0, 16 + cmp r5, 0x9 + bls _080F7E56 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F7DC0 + + thumb_func_start sub_80F7EFC +sub_80F7EFC: @ 80F7EFC + ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94 + adds r0, 0x29 + movs r1, 0 + strb r1, [r0] + bx lr + .align 2, 0 +_080F7F08: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7EFC + + thumb_func_start sub_80F7F0C +sub_80F7F0C: @ 80F7F0C + ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94 + movs r0, 0 + strb r0, [r1, 0x1] + bx lr + .align 2, 0 +_080F7F14: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F7F0C + + thumb_func_start sub_80F7F18 +sub_80F7F18: @ 80F7F18 + push {lr} + bl sub_8109A20 + pop {r0} + bx r0 + thumb_func_end sub_80F7F18 + + thumb_func_start sub_80F7F24 +sub_80F7F24: @ 80F7F24 + push {lr} + bl sub_80F8428 + pop {r0} + bx r0 + thumb_func_end sub_80F7F24 + + thumb_func_start sub_80F7F30 +sub_80F7F30: @ 80F7F30 + push {lr} + bl GetCurrentMauvilleOldMan + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F7F76 + lsls r0, 2 + ldr r1, _080F7F48 @ =_080F7F4C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7F48: .4byte _080F7F4C + .align 2, 0 +_080F7F4C: + .4byte _080F7F60 + .4byte _080F7F66 + .4byte _080F7F72 + .4byte _080F7F6C + .4byte _080F7F76 +_080F7F60: + bl sub_80F7EFC + b _080F7F76 +_080F7F66: + bl sub_80F7F0C + b _080F7F76 +_080F7F6C: + bl sub_80F7F24 + b _080F7F76 +_080F7F72: + bl sub_80F7F18 +_080F7F76: + bl sub_80F83D0 + pop {r0} + bx r0 + thumb_func_end sub_80F7F30 + + thumb_func_start sub_80F7F80 +sub_80F7F80: @ 80F7F80 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080F7FA8 @ =sub_80F8184 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F7FAC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x12] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F7FA8: .4byte sub_80F8184 +_080F7FAC: .4byte gTasks + thumb_func_end sub_80F7F80 + + thumb_func_start sub_80F7FB0 +sub_80F7FB0: @ 80F7FB0 + push {r4-r7,lr} + adds r6, r1, 0 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0x5 + bls _080F7FBE + b _080F817A +_080F7FBE: + lsls r0, 2 + ldr r1, _080F7FC8 @ =_080F7FCC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F7FC8: .4byte _080F7FCC + .align 2, 0 +_080F7FCC: + .4byte _080F7FE4 + .4byte _080F817A + .4byte _080F8040 + .4byte _080F8074 + .4byte _080F8074 + .4byte _080F817A +_080F7FE4: + ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94 + ldr r0, _080F8038 @ =gUnknown_0202E8CC + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0xE + cmp r0, 0 + bne _080F7FF4 + adds r1, r2, 0x2 +_080F7FF4: + adds r2, r1, 0 + adds r1, r6, 0 + adds r1, 0xC + movs r3, 0x5 +_080F7FFC: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080F7FFC + ldr r2, _080F803C @ =0x0000ffff + adds r4, r2, 0 + movs r2, 0 + adds r1, r6, 0 + adds r1, 0x18 + movs r3, 0x5 +_080F8016: + ldrh r0, [r1] + orrs r0, r4 + strh r0, [r1] + strh r2, [r1, 0x2] + strh r2, [r1, 0x4] + strh r2, [r1, 0x6] + adds r1, 0x8 + subs r3, 0x1 + cmp r3, 0 + bge _080F8016 + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + strh r0, [r6, 0x4] + b _080F817A + .align 2, 0 +_080F8034: .4byte gSaveBlock1 + 0x2D94 +_080F8038: .4byte gUnknown_0202E8CC +_080F803C: .4byte 0x0000ffff +_080F8040: + ldrb r1, [r6] + lsls r1, 1 + adds r0, r6, 0 + adds r0, 0xC + adds r0, r1 + ldrh r4, [r0] + lsrs r0, r4, 9 + ldr r1, _080F8070 @ =0x000001ff + ands r1, r4 + bl sub_814A2D0 + adds r1, r0, 0 + movs r0, 0 + strh r0, [r6, 0x4] + movs r2, 0x3 + ands r2, r4 + lsrs r4, 3 + movs r0, 0x1 + ands r4, r0 + adds r2, r4 + adds r0, r6, 0 + bl sub_814A2EC + b _080F817A + .align 2, 0 +_080F8070: .4byte 0x000001ff +_080F8074: + ldrb r1, [r6, 0x1] + lsls r0, r1, 3 + adds r0, 0x18 + adds r7, r6, r0 + ldrb r0, [r6, 0x3] + cmp r0, 0x1 + beq _080F8124 + cmp r0, 0x1 + bgt _080F808C + cmp r0, 0 + beq _080F8092 + b _080F817A +_080F808C: + cmp r0, 0xFE + beq _080F8170 + b _080F817A +_080F8092: + ldrb r0, [r6, 0x2] + cmp r0, 0 + bne _080F80D0 + cmp r1, 0x6 + beq _080F80A2 + ldrh r0, [r7] + cmp r0, 0xFF + bne _080F80A6 +_080F80A2: + movs r0, 0xFE + b _080F8178 +_080F80A6: + ldrh r0, [r7, 0x2] + strb r0, [r6, 0x2] + ldrh r0, [r7] + cmp r0, 0x32 + bhi _080F80CA + movs r1, 0x3 + bl __udivsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r0, r1, 1 + adds r0, r1 + adds r0, 0xF9 + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStart +_080F80CA: + movs r0, 0x1 + strb r0, [r6, 0x3] + b _080F8114 +_080F80D0: + ldrh r1, [r6, 0xA] + movs r2, 0xA + ldrsh r0, [r6, r2] + cmp r0, 0xA + ble _080F80E0 + ldrh r0, [r6, 0x6] + subs r0, 0x2 + strh r0, [r6, 0x6] +_080F80E0: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080F80EE + ldrh r0, [r6, 0x8] + adds r0, 0x40 + b _080F80F2 +_080F80EE: + ldrh r0, [r6, 0x8] + subs r0, 0x40 +_080F80F2: + strh r0, [r6, 0x8] + ldr r4, _080F811C @ =gMPlay_SE2 + ldr r5, _080F8120 @ =0x0000ffff + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayVolumeControl + movs r0, 0x8 + ldrsh r2, [r6, r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayPitchControl + ldrh r0, [r6, 0xA] + adds r0, 0x1 + strh r0, [r6, 0xA] +_080F8114: + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] + b _080F817A + .align 2, 0 +_080F811C: .4byte gMPlay_SE2 +_080F8120: .4byte 0x0000ffff +_080F8124: + adds r0, r1, 0x1 + movs r1, 0 + strb r0, [r6, 0x1] + strb r1, [r6, 0x3] + ldrh r0, [r7] + cmp r0, 0x32 + bhi _080F817A + ldrh r0, [r7, 0x6] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x6] + ldr r4, _080F8168 @ =gMPlay_SE2 + ldr r5, _080F816C @ =0x0000ffff + ldrh r2, [r6, 0x6] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayVolumeControl + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r7, [r7, 0x4] + adds r0, r7 + strh r0, [r6, 0x8] + movs r0, 0x8 + ldrsh r2, [r6, r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl m4aMPlayPitchControl + b _080F817A + .align 2, 0 +_080F8168: .4byte gMPlay_SE2 +_080F816C: .4byte 0x0000ffff +_080F8170: + ldr r0, _080F8180 @ =gMPlay_SE2 + bl m4aMPlayStop + movs r0, 0xFF +_080F8178: + strb r0, [r6, 0x3] +_080F817A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8180: .4byte gMPlay_SE2 + thumb_func_end sub_80F7FB0 + + thumb_func_start sub_80F8184 +sub_80F8184: @ 80F8184 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F81B4 @ =gTasks + adds r5, r0, r1 + ldr r1, _080F81B8 @ =gUnknown_03005DA0 + adds r0, r5, 0 + bl sub_80F7FB0 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bls _080F81A8 + b _080F83C8 +_080F81A8: + lsls r0, 2 + ldr r1, _080F81BC @ =_080F81C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F81B4: .4byte gTasks +_080F81B8: .4byte gUnknown_03005DA0 +_080F81BC: .4byte _080F81C0 + .align 2, 0 +_080F81C0: + .4byte _080F81D8 + .4byte _080F8218 + .4byte _080F8228 + .4byte _080F82D8 + .4byte _080F83B8 + .4byte _080F82C6 +_080F81D8: + bl sub_80F7BA0 + ldr r4, _080F820C @ =gMenuWindowPtr + ldr r0, [r4] + ldr r1, _080F8210 @ =gWindowConfig_81E6CE4 + bl InitWindowFromConfig + ldr r0, [r4] + ldr r1, _080F8214 @ =gStringVar4 + movs r2, 0xF + str r2, [sp] + movs r2, 0x2 + movs r3, 0x4 + bl sub_8002EB0 + movs r0, 0 + strh r0, [r5, 0xA] + strh r0, [r5, 0xC] + strh r0, [r5, 0xE] + strh r0, [r5, 0x10] + movs r0, 0x4 + bl FadeOutBGMTemporarily + movs r0, 0x1 + b _080F83C6 + .align 2, 0 +_080F820C: .4byte gMenuWindowPtr +_080F8210: .4byte gWindowConfig_81E6CE4 +_080F8214: .4byte gStringVar4 +_080F8218: + bl IsBGMPausedOrStopped + lsls r0, 24 + cmp r0, 0 + bne _080F8224 + b _080F83C8 +_080F8224: + movs r0, 0x2 + b _080F83C6 +_080F8228: + ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94 + movs r2, 0xE + ldrsh r1, [r5, r2] + ldr r0, _080F8244 @ =gStringVar4 + adds r1, r0 + movs r3, 0 + ldrb r0, [r1] + ldr r7, _080F8248 @ =gUnknown_03005DA0 + ldrh r2, [r5, 0x12] + ldr r6, _080F824C @ =gUnknown_020388BC + b _080F825A + .align 2, 0 +_080F8240: .4byte gSaveBlock1 + 0x2D94 +_080F8244: .4byte gStringVar4 +_080F8248: .4byte gUnknown_03005DA0 +_080F824C: .4byte gUnknown_020388BC +_080F8250: + adds r1, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldrb r0, [r1] +_080F825A: + cmp r0, 0 + beq _080F826A + cmp r0, 0xFE + beq _080F826A + cmp r0, 0xFC + beq _080F826A + cmp r0, 0xFF + bne _080F8250 +_080F826A: + cmp r2, 0 + bne _080F8278 + movs r0, 0x10 + ldrsh r1, [r5, r0] + lsls r1, 1 + adds r0, r4, 0x2 + b _080F8282 +_080F8278: + movs r2, 0x10 + ldrsh r1, [r5, r2] + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0xE +_080F8282: + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x3 + ands r1, r0 + lsrs r0, 3 + movs r2, 0x1 + ands r0, r2 + adds r1, r0 + strh r1, [r6] + movs r1, 0x4 + ldrsh r0, [r7, r1] + adds r1, r3, 0 + bl __divsi3 + movs r1, 0 + strh r0, [r7, 0x4] + lsls r0, 16 + cmp r0, 0 + bgt _080F82AC + movs r0, 0x1 + strh r0, [r7, 0x4] +_080F82AC: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080F82BE + movs r0, 0x3 + b _080F82C0 +_080F82BE: + movs r0, 0x5 +_080F82C0: + strh r0, [r5, 0x8] + strh r1, [r5, 0xA] + b _080F83C8 +_080F82C6: + ldrh r1, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _080F82D2 + b _080F83C4 +_080F82D2: + subs r0, r1, 0x1 + strh r0, [r5, 0xC] + b _080F83C8 +_080F82D8: + ldr r1, _080F8304 @ =gStringVar4 + movs r2, 0xE + ldrsh r0, [r5, r2] + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0xFF + bne _080F830C + movs r0, 0xC8 + lsls r0, 1 + movs r1, 0x6 + bl FadeInNewBGM + ldr r0, _080F8308 @ =gMPlay_SE2 + movs r1, 0x2 + bl m4aMPlayFadeOutTemporarily + bl EnableBothScriptContexts + adds r0, r6, 0 + bl DestroyTask + b _080F83C8 + .align 2, 0 +_080F8304: .4byte gStringVar4 +_080F8308: .4byte gMPlay_SE2 +_080F830C: + cmp r4, 0 + bne _080F832C + ldr r0, _080F8328 @ =gMenuWindowPtr + ldr r0, [r0] + bl sub_8003418 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r4, [r5, 0xC] + b _080F83C8 + .align 2, 0 +_080F8328: .4byte gMenuWindowPtr +_080F832C: + cmp r4, 0xFE + bne _080F8340 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + strh r1, [r5, 0xC] + b _080F83C8 +_080F8340: + cmp r4, 0xFC + bne _080F8354 + ldrh r0, [r5, 0xE] + adds r0, 0x2 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5, 0x8] + movs r0, 0x8 + strh r0, [r5, 0xC] + b _080F83C8 +_080F8354: + cmp r4, 0x37 + bne _080F8374 + movs r4, 0 + strb r4, [r0] + ldr r0, _080F8370 @ =gMenuWindowPtr + ldr r0, [r0] + bl sub_8003418 + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + strh r4, [r5, 0xC] + b _080F83C8 + .align 2, 0 +_080F8370: .4byte gMenuWindowPtr +_080F8374: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080F8394 + cmp r0, 0x1 + bgt _080F8386 + cmp r0, 0 + beq _080F838C + b _080F83C8 +_080F8386: + cmp r0, 0x2 + beq _080F83A0 + b _080F83C8 +_080F838C: + ldr r0, _080F839C @ =gMenuWindowPtr + ldr r0, [r0] + bl sub_8003418 +_080F8394: + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + b _080F83C8 + .align 2, 0 +_080F839C: .4byte gMenuWindowPtr +_080F83A0: + ldrh r0, [r5, 0xE] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0xE] + strh r1, [r5, 0xA] + ldr r0, _080F83B4 @ =gUnknown_03005DA0 + ldrh r0, [r0, 0x4] + strh r0, [r5, 0xC] + movs r0, 0x4 + b _080F83C6 + .align 2, 0 +_080F83B4: .4byte gUnknown_03005DA0 +_080F83B8: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080F83C8 +_080F83C4: + movs r0, 0x3 +_080F83C6: + strh r0, [r5, 0x8] +_080F83C8: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F8184 + + thumb_func_start sub_80F83D0 +sub_80F83D0: @ 80F83D0 + push {r4,lr} + ldr r4, _080F83F4 @ =0x00004010 + bl GetCurrentMauvilleOldMan + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 8 + movs r0, 0x8A + lsls r0, 15 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F83F4: .4byte 0x00004010 + thumb_func_end sub_80F83D0 + + thumb_func_start sub_80F83F8 +sub_80F83F8: @ 80F83F8 + push {r4,lr} + ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + movs r1, 0x3 + strb r1, [r0] + strb r2, [r0, 0x1] + movs r4, 0 + movs r3, 0xFF + adds r1, r0, 0x4 + movs r2, 0x3 +_080F840C: + strb r4, [r1] + ldrb r0, [r1, 0x4] + orrs r0, r3 + strb r0, [r1, 0x4] + adds r1, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _080F840C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8424: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F83F8 + + thumb_func_start sub_80F8428 +sub_80F8428: @ 80F8428 + ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94 + movs r2, 0 + movs r1, 0x3 + strb r1, [r0] + strb r2, [r0, 0x1] + bx lr + .align 2, 0 +_080F8434: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F8428 + + thumb_func_start sub_80F8438 +sub_80F8438: @ 80F8438 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x32 + bne _080F8444 + movs r0, 0 +_080F8444: + bl sub_8053108 + pop {r1} + bx r1 + thumb_func_end sub_80F8438 + + thumb_func_start sub_80F844C +sub_80F844C: @ 80F844C + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, _080F8460 @ =gUnknown_083E53E0 +_080F8454: + ldrb r0, [r1] + cmp r0, r3 + bne _080F8464 + adds r0, r1, 0 + b _080F846E + .align 2, 0 +_080F8460: .4byte gUnknown_083E53E0 +_080F8464: + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x23 + ble _080F8454 + ldr r0, _080F8474 @ =gUnknown_083E5610 +_080F846E: + pop {r1} + bx r1 + .align 2, 0 +_080F8474: .4byte gUnknown_083E5610 + thumb_func_end sub_80F844C + + thumb_func_start sub_80F8478 +sub_80F8478: @ 80F8478 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0x4] + pop {r1} + bx r1 + thumb_func_end sub_80F8478 + + thumb_func_start sub_80F8484 +sub_80F8484: @ 80F8484 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_80F8484 + + thumb_func_start sub_80F8490 +sub_80F8490: @ 80F8490 + push {lr} + bl sub_80F844C + ldr r0, [r0, 0x8] + pop {r1} + bx r1 + thumb_func_end sub_80F8490 + + thumb_func_start sub_80F849C +sub_80F849C: @ 80F849C + push {lr} + movs r1, 0 + ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r2, 0x4] + cmp r0, 0 + beq _080F84BC + adds r2, 0x4 +_080F84AA: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080F84BC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080F84AA +_080F84BC: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080F84C4: .4byte gSaveBlock1 + 0x2D94 + thumb_func_end sub_80F849C + + thumb_func_start sub_80F84C8 +sub_80F84C8: @ 80F84C8 + lsls r0, 2 + ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8 + adds r0, r1 + ldrb r2, [r0] + ldrb r1, [r0, 0x1] + lsls r1, 8 + orrs r2, r1 + ldrb r1, [r0, 0x2] + lsls r1, 16 + orrs r2, r1 + ldrb r0, [r0, 0x3] + lsls r0, 24 + orrs r2, r0 + adds r0, r2, 0 + bx lr + .align 2, 0 +_080F84E8: .4byte gSaveBlock1 + 0x2DB8 + thumb_func_end sub_80F84C8 + + thumb_func_start sub_80F84EC +sub_80F84EC: @ 80F84EC + lsls r0, 2 + ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8 + adds r0, r2 + strb r1, [r0] + lsrs r2, r1, 8 + strb r2, [r0, 0x1] + lsrs r2, r1, 16 + strb r2, [r0, 0x2] + lsrs r1, 24 + strb r1, [r0, 0x3] + bx lr + .align 2, 0 +_080F8504: .4byte gSaveBlock1 + 0x2DB8 + thumb_func_end sub_80F84EC + + thumb_func_start sub_80F8508 +sub_80F8508: @ 80F8508 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94 + adds r0, 0x4 + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_80F8438 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_80F84C8 + cmp r4, r0 + bhi _080F852C + movs r0, 0 + b _080F852E + .align 2, 0 +_080F8528: .4byte gSaveBlock1 + 0x2D94 +_080F852C: + movs r0, 0x1 +_080F852E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F8508 + + thumb_func_start sub_80F8534 +sub_80F8534: @ 80F8534 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r4, r0, 3 + subs r4, r0 + ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C + adds r4, r0 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x8 + bl memset + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7 + bl memcpy + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F855C: .4byte gSaveBlock1 + 0x2D9C + thumb_func_end sub_80F8534 + + thumb_func_start sub_80F8560 +sub_80F8560: @ 80F8560 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r5, r0, 3 + subs r5, r0 + ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C + adds r5, r0 + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl StringCopyN + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8594: .4byte gSaveBlock1 + 0x2D9C + thumb_func_end sub_80F8560 + + thumb_func_start sub_80F8598 +sub_80F8598: @ 80F8598 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94 + adds r0, 0x4 + adds r0, r5, r0 + strb r6, [r0] + ldr r1, _080F85F0 @ =gSaveBlock2 + adds r0, r5, 0 + bl sub_80F8560 + lsls r4, r6, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80F8438 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_80F84EC + ldr r5, _080F85F4 @ =gStringVar1 + adds r0, r4, 0 + bl sub_80F8438 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalStringN + ldr r4, _080F85F8 @ =gStringVar2 + adds r0, r6, 0 + bl sub_80F8490 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F85EC: .4byte gSaveBlock1 + 0x2D94 +_080F85F0: .4byte gSaveBlock2 +_080F85F4: .4byte gStringVar1 +_080F85F8: .4byte gStringVar2 + thumb_func_end sub_80F8598 + + thumb_func_start sub_80F85FC +sub_80F85FC: @ 80F85FC + push {r4-r7,lr} + adds r7, r0, 0 + adds r6, r1, 0 + movs r5, 0 + cmp r5, r6 + bge _080F8612 +_080F8608: + adds r0, r7, r5 + strb r5, [r0] + adds r5, 0x1 + cmp r5, r6 + blt _080F8608 +_080F8612: + cmp r6, 0 + ble _080F8648 + adds r5, r6, 0 +_080F8618: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + adds r4, r7, r4 + ldrb r2, [r4] + adds r0, r7, r0 + ldrb r1, [r0] + strb r1, [r4] + strb r2, [r0] + subs r5, 0x1 + cmp r5, 0 + bne _080F8618 +_080F8648: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80F85FC + + thumb_func_start sub_80F8650 +sub_80F8650: @ 80F8650 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r7, sp + mov r10, sp + ldr r0, _080F86D4 @ =gUnknown_083E5620 + ldr r0, [r0] + lsls r0, 3 + lsrs r0, 3 + adds r0, 0x3 + lsrs r0, 2 + lsls r0, 2 + mov r1, sp + subs r1, r0 + mov sp, r1 + mov r8, sp + mov r0, sp + movs r1, 0x24 + bl sub_80F85FC + movs r5, 0 + ldr r0, _080F86D8 @ =gUnknown_083E53E0 + mov r9, r0 + ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94 +_080F8686: + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 4 + add r0, r9 + ldrb r4, [r0] + ldrb r6, [r0, 0x1] + movs r1, 0 + ldrb r0, [r3, 0x4] + cmp r0, r4 + beq _080F86AC + ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98 +_080F869E: + adds r1, 0x1 + cmp r1, 0x3 + bgt _080F86AC + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r4 + bne _080F869E +_080F86AC: + cmp r1, 0x4 + bne _080F86E4 + adds r0, r4, 0 + str r3, [r7] + bl sub_80F8438 + ldr r3, [r7] + cmp r0, r6 + bcc _080F86E4 + movs r0, 0x1 + strb r0, [r3, 0x1] + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_80F8598 + movs r0, 0x1 + b _080F86EC + .align 2, 0 +_080F86D4: .4byte gUnknown_083E5620 +_080F86D8: .4byte gUnknown_083E53E0 +_080F86DC: .4byte gSaveBlock1 + 0x2D94 +_080F86E0: .4byte gSaveBlock1 + 0x2D98 +_080F86E4: + adds r5, 0x1 + cmp r5, 0x23 + ble _080F8686 + movs r0, 0 +_080F86EC: + mov sp, r10 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80F8650 + + thumb_func_start sub_80F8700 +sub_80F8700: @ 80F8700 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94 + adds r0, 0x4 + adds r0, r5, r0 + ldrb r6, [r0] + ldr r4, _080F874C @ =gStringVar1 + adds r0, r5, 0 + bl sub_80F84C8 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0xA + bl ConvertIntToDecimalStringN + ldr r4, _080F8750 @ =gStringVar2 + adds r0, r6, 0 + bl sub_80F8490 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r1, _080F8754 @ =gStringVar3 + adds r0, r5, 0 + bl sub_80F8534 + adds r0, r6, 0 + bl sub_80F8484 + bl ShowFieldMessage + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8748: .4byte gSaveBlock1 + 0x2D94 +_080F874C: .4byte gStringVar1 +_080F8750: .4byte gStringVar2 +_080F8754: .4byte gStringVar3 + thumb_func_end sub_80F8700 + + thumb_func_start sub_80F8758 +sub_80F8758: @ 80F8758 + push {r4-r6,lr} + bl sub_80F849C + adds r3, r0, 0 + lsls r3, 25 + movs r0, 0x80 + lsls r0, 19 + adds r3, r0 + lsrs r3, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x19 + bl MenuDrawTextWindow + movs r4, 0 + ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _080F87A4 + adds r6, r1, 0x4 + movs r5, 0x80 + lsls r5, 18 +_080F8784: + bl sub_80F8478 + lsrs r2, r5, 24 + movs r1, 0x1 + bl MenuPrint + movs r1, 0x80 + lsls r1, 18 + adds r5, r1 + adds r4, 0x1 + cmp r4, 0x3 + bgt _080F87A4 + adds r0, r4, r6 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8784 +_080F87A4: + ldr r0, _080F87C0 @ =gPCText_Cancel + lsls r2, r4, 25 + movs r1, 0x80 + lsls r1, 18 + adds r2, r1 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F87BC: .4byte gSaveBlock1 + 0x2D94 +_080F87C0: .4byte gPCText_Cancel + thumb_func_end sub_80F8758 + + thumb_func_start sub_80F87C4 +sub_80F87C4: @ 80F87C4 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, _080F87E4 @ =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _080F87E8 + cmp r5, 0x1 + beq _080F8810 + b _080F8862 + .align 2, 0 +_080F87E4: .4byte gTasks +_080F87E8: + bl sub_80F8758 + bl sub_80F849C + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + str r5, [sp] + movs r0, 0x18 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x2 + bl InitMenu + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080F8862 +_080F8810: + bl ProcessMenuInput + lsls r0, 24 + asrs r4, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r4, r0 + beq _080F8862 + adds r0, 0x1 + cmp r4, r0 + beq _080F8832 + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080F8840 +_080F8832: + ldr r1, _080F883C @ =gScriptResult + movs r0, 0 + strh r0, [r1] + b _080F8848 + .align 2, 0 +_080F883C: .4byte gScriptResult +_080F8840: + ldr r0, _080F886C @ =gScriptResult + strh r5, [r0] + ldr r0, _080F8870 @ =gUnknown_03000748 + strb r4, [r0] +_080F8848: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x19 + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080F8862: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F886C: .4byte gScriptResult +_080F8870: .4byte gUnknown_03000748 + thumb_func_end sub_80F87C4 + + thumb_func_start sub_80F8874 +sub_80F8874: @ 80F8874 + push {lr} + ldr r0, _080F8884 @ =sub_80F87C4 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080F8884: .4byte sub_80F87C4 + thumb_func_end sub_80F8874 + + thumb_func_start sub_80F8888 +sub_80F8888: @ 80F8888 + push {lr} + ldr r0, _080F8898 @ =gUnknown_03000748 + ldrb r0, [r0] + bl sub_80F8700 + pop {r0} + bx r0 + .align 2, 0 +_080F8898: .4byte gUnknown_03000748 + thumb_func_end sub_80F8888 + + thumb_func_start sub_80F889C +sub_80F889C: @ 80F889C + push {lr} + bl sub_80F849C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F889C + + thumb_func_start sub_80F88AC +sub_80F88AC: @ 80F88AC + push {r4,r5,lr} + ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94 + ldr r5, _080F88CC @ =gUnknown_03000748 + ldrb r0, [r5] + adds r1, 0x4 + adds r1, r0, r1 + ldrb r4, [r1] + bl sub_80F8508 + cmp r0, 0x1 + beq _080F88D0 + movs r0, 0 + b _080F88DA + .align 2, 0 +_080F88C8: .4byte gSaveBlock1 + 0x2D94 +_080F88CC: .4byte gUnknown_03000748 +_080F88D0: + ldrb r0, [r5] + adds r1, r4, 0 + bl sub_80F8598 + movs r0, 0x1 +_080F88DA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F88AC + + thumb_func_start sub_80F88E0 +sub_80F88E0: @ 80F88E0 + push {lr} + ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080F88F4 + movs r0, 0x1 + b _080F88F6 + .align 2, 0 +_080F88F0: .4byte gSaveBlock1 + 0x2D94 +_080F88F4: + movs r0, 0 +_080F88F6: + pop {r1} + bx r1 + thumb_func_end sub_80F88E0 + + thumb_func_start sub_80F88FC +sub_80F88FC: @ 80F88FC + push {lr} + bl sub_80F8650 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80F88FC + + thumb_func_start sub_80F890C +sub_80F890C: @ 80F890C + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + ldr r2, _080F8958 @ =0x02000000 + adds r1, r2, 0 + adds r1, 0xFF + movs r0, 0x2 + strb r0, [r1] + adds r0, 0xFE + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x82 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F895C @ =sub_80EB3FC + str r0, [r1] + movs r0, 0x84 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _080F8960 @ =ConvertEasyChatWordsToString + str r0, [r1] + ldrh r1, [r4, 0x20] + adds r0, r1, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _080F8964 + subs r1, 0x79 + adds r0, r2, 0 + adds r0, 0xFA + strb r1, [r0] + b _080F896E + .align 2, 0 +_080F8958: .4byte 0x02000000 +_080F895C: .4byte sub_80EB3FC +_080F8960: .4byte ConvertEasyChatWordsToString +_080F8964: + adds r1, r2, 0 + adds r1, 0xFA + movs r0, 0 + strb r0, [r1] + movs r5, 0 +_080F896E: + ldr r1, _080F8994 @ =0x02000000 + movs r2, 0x80 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8980 + cmp r0, 0x1 + beq _080F899C +_080F8980: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F8998 @ =gUnknown_083E5730 + b _080F89AC + .align 2, 0 +_080F8994: .4byte 0x02000000 +_080F8998: .4byte gUnknown_083E5730 +_080F899C: + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + adds r0, r1, 0 + adds r0, 0xFA + ldrb r0, [r0] + lsls r0, 3 + ldr r1, _080F89DC @ =gUnknown_083E57A4 +_080F89AC: + adds r0, r1 + str r0, [r2] + ldrh r0, [r4, 0x1E] + mov r1, sp + bl sub_80A2D64 + lsls r0, 16 + ldr r1, _080F89E0 @ =0xffff0000 + adds r0, r1 + movs r1, 0xCD + lsls r1, 17 + cmp r0, r1 + bhi _080F89F8 + ldr r0, _080F89E4 @ =0x02000000 + adds r1, r0, 0 + adds r1, 0xFA + ldrb r2, [r1] + adds r1, r0, 0 + cmp r2, 0x6 + beq _080F89E8 + cmp r2, 0x9 + beq _080F89F0 + b _080F89FA + .align 2, 0 +_080F89DC: .4byte gUnknown_083E57A4 +_080F89E0: .4byte 0xffff0000 +_080F89E4: .4byte 0x02000000 +_080F89E8: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x1 + b _080F8A00 +_080F89F0: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0x2 + b _080F8A00 +_080F89F8: + ldr r1, _080F8A20 @ =0x02000000 +_080F89FA: + adds r2, r1, 0 + adds r2, 0xFB + movs r0, 0 +_080F8A00: + strb r0, [r2] + adds r0, r1, 0 + adds r0, 0xF4 + str r4, [r0] + subs r0, 0x8 + str r6, [r0] + adds r0, 0xC + strb r5, [r0] + ldr r0, _080F8A24 @ =sub_80F8D50 + bl SetMainCallback2 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F8A20: .4byte 0x02000000 +_080F8A24: .4byte sub_80F8D50 + thumb_func_end sub_80F890C + + thumb_func_start sub_80F8A28 +sub_80F8A28: @ 80F8A28 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _080F8A44 @ =gMain + ldr r1, _080F8A48 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x12 + bls _080F8A3A + b _080F8D3C +_080F8A3A: + lsls r0, 2 + ldr r1, _080F8A4C @ =_080F8A50 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F8A44: .4byte gMain +_080F8A48: .4byte 0x0000043c +_080F8A4C: .4byte _080F8A50 + .align 2, 0 +_080F8A50: + .4byte _080F8A9C + .4byte _080F8AB0 + .4byte _080F8AC8 + .4byte _080F8ACE + .4byte _080F8AD4 + .4byte _080F8ADA + .4byte _080F8B10 + .4byte _080F8B1C + .4byte _080F8B28 + .4byte _080F8B34 + .4byte _080F8B3A + .4byte _080F8B54 + .4byte _080F8B78 + .4byte _080F8BA0 + .4byte _080F8C14 + .4byte _080F8C2C + .4byte _080F8C58 + .4byte _080F8CBC + .4byte _080F8CC6 +_080F8A9C: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + b _080F8D30 +_080F8AB0: + add r1, sp, 0x4 + movs r0, 0 + strh r0, [r1] + movs r1, 0xE0 + lsls r1, 19 + ldr r2, _080F8AC4 @ =0x01000200 + add r0, sp, 0x4 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8AC4: .4byte 0x01000200 +_080F8AC8: + bl ResetPaletteFade + b _080F8D30 +_080F8ACE: + bl ResetTasks + b _080F8D30 +_080F8AD4: + bl ResetSpriteData + b _080F8D30 +_080F8ADA: + bl FreeAllSpritePalettes + ldr r0, _080F8B0C @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x32 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + b _080F8D30 + .align 2, 0 +_080F8B0C: .4byte REG_BG0HOFS +_080F8B10: + ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC + bl SetUpWindowConfig + b _080F8D30 + .align 2, 0 +_080F8B18: .4byte gWindowConfig_81E6DFC +_080F8B1C: + ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC + bl MultistepInitMenuWindowBegin + b _080F8D30 + .align 2, 0 +_080F8B24: .4byte gWindowConfig_81E6DFC +_080F8B28: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + beq _080F8B32 + b _080F8D30 +_080F8B32: + b _080F8D3C +_080F8B34: + bl MenuZeroFillScreen + b _080F8D30 +_080F8B3A: + mov r0, sp + adds r0, 0x6 + movs r1, 0x1 + strh r1, [r0] + ldr r1, _080F8B4C @ =0x06004800 + ldr r2, _080F8B50 @ =0x01000400 + bl CpuSet + b _080F8D30 + .align 2, 0 +_080F8B4C: .4byte 0x06004800 +_080F8B50: .4byte 0x01000400 +_080F8B54: + ldr r2, _080F8B70 @ =gMailGraphicsTable + ldr r0, _080F8B74 @ =0x02000000 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + b _080F8D30 + .align 2, 0 +_080F8B70: .4byte gMailGraphicsTable +_080F8B74: .4byte 0x02000000 +_080F8B78: + ldr r2, _080F8B94 @ =gMailGraphicsTable + ldr r0, _080F8B98 @ =0x02000000 + adds r0, 0xFA + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, _080F8B9C @ =0x06004000 + bl LZ77UnCompVram + b _080F8D30 + .align 2, 0 +_080F8B94: .4byte gMailGraphicsTable +_080F8B98: .4byte 0x02000000 +_080F8B9C: .4byte 0x06004000 +_080F8BA0: + ldr r5, _080F8C00 @ =gMailGraphicsTable + ldr r4, _080F8C04 @ =0x02000000 + adds r4, 0xFA + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r3, _080F8C08 @ =gPlttBufferUnfaded + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x10] + movs r2, 0xF1 + lsls r2, 1 + adds r1, r3, r2 + strh r0, [r1] + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x12] + adds r2, 0xE + adds r0, r3, r2 + strh r1, [r0] + ldr r1, _080F8C0C @ =gUnknown_083E562C + ldr r2, _080F8C10 @ =gSaveBlock2 + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x14] + ldrb r0, [r2, 0x8] + lsls r0, 2 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x16] + b _080F8D30 + .align 2, 0 +_080F8C00: .4byte gMailGraphicsTable +_080F8C04: .4byte 0x02000000 +_080F8C08: .4byte gPlttBufferUnfaded +_080F8C0C: .4byte gUnknown_083E562C +_080F8C10: .4byte gSaveBlock2 +_080F8C14: + ldr r0, _080F8C28 @ =0x02000000 + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8C20 + b _080F8D30 +_080F8C20: + bl sub_80F8DA0 + b _080F8D30 + .align 2, 0 +_080F8C28: .4byte 0x02000000 +_080F8C2C: + ldr r0, _080F8C4C @ =0x02000000 + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + beq _080F8C3A + bl sub_80F8E80 +_080F8C3A: + ldr r0, _080F8C50 @ =sub_80F8F18 + bl SetVBlankCallback + ldr r2, _080F8C54 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + b _080F8D30 + .align 2, 0 +_080F8C4C: .4byte 0x02000000 +_080F8C50: .4byte sub_80F8F18 +_080F8C54: .4byte gPaletteFade +_080F8C58: + ldr r5, _080F8C7C @ =0x02000000 + adds r0, r5, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x1 + beq _080F8C80 + cmp r0, 0x2 + beq _080F8C98 + b _080F8D30 + .align 2, 0 +_080F8C7C: .4byte 0x02000000 +_080F8C80: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8C94 @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x60 + b _080F8CA8 + .align 2, 0 +_080F8C94: .4byte SpriteCallbackDummy +_080F8C98: + adds r0, r4, 0 + bl sub_809D580 + ldr r1, _080F8CB8 @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0x28 +_080F8CA8: + movs r3, 0x80 + bl sub_809D3A4 + adds r1, r5, 0 + adds r1, 0xFC + strb r0, [r1] + b _080F8D30 + .align 2, 0 +_080F8CB8: .4byte SpriteCallbackDummy +_080F8CBC: + bl sub_8055870 + cmp r0, 0x1 + bne _080F8D30 + b _080F8D3C +_080F8CC6: + ldr r1, _080F8D14 @ =REG_BG0CNT + ldr r2, _080F8D18 @ =0x00009f08 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D1C @ =0x00000801 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080F8D20 @ =0x00000902 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + subs r1, 0x50 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _080F8D24 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080F8D28 @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8D2C @ =sub_80F8F58 + str r1, [r0] + movs r0, 0x1 + b _080F8D3E + .align 2, 0 +_080F8D14: .4byte REG_BG0CNT +_080F8D18: .4byte 0x00009f08 +_080F8D1C: .4byte 0x00000801 +_080F8D20: .4byte 0x00000902 +_080F8D24: .4byte gPaletteFade +_080F8D28: .4byte 0x02000000 +_080F8D2C: .4byte sub_80F8F58 +_080F8D30: + ldr r1, _080F8D48 @ =gMain + ldr r0, _080F8D4C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080F8D3C: + movs r0, 0 +_080F8D3E: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080F8D48: .4byte gMain +_080F8D4C: .4byte 0x0000043c + thumb_func_end sub_80F8A28 + + thumb_func_start sub_80F8D50 +sub_80F8D50: @ 80F8D50 + push {lr} +_080F8D52: + bl sub_80F8A28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D6C + ldr r0, _080F8D68 @ =sub_80F8F2C + bl SetMainCallback2 + b _080F8D78 + .align 2, 0 +_080F8D68: .4byte sub_80F8F2C +_080F8D6C: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F8D52 +_080F8D78: + pop {r0} + bx r0 + thumb_func_end sub_80F8D50 + + thumb_func_start sub_80F8D7C +sub_80F8D7C: @ 80F8D7C + push {r4,lr} + adds r4, r0, 0 + bl StringCopy + adds r0, r4, 0 + bl sub_814A568 + adds r0, r4, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + adds r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F8D7C + + thumb_func_start sub_80F8DA0 +sub_80F8DA0: @ 80F8DA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r5, 0 + ldr r2, _080F8E3C @ =0x02000000 + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, [r1] + ldrb r0, [r0] + cmp r5, r0 + bcs _080F8E04 + mov r8, r2 + adds r7, r1, 0 +_080F8DBE: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + subs r0, r5 + add r0, r8 + mov r1, r8 + adds r1, 0xF4 + lsls r2, r6, 1 + ldr r1, [r1] + adds r1, r2 + ldr r2, [r7] + ldr r2, [r2, 0x4] + lsls r4, r5, 2 + adds r2, r4, r2 + ldr r2, [r2] + lsls r2, 28 + lsrs r2, 30 + movs r3, 0x1 + bl ConvertEasyChatWordsToString + ldr r1, [r7] + ldr r0, [r1, 0x4] + adds r4, r0 + ldr r0, [r4] + lsls r0, 28 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r1, [r1] + cmp r5, r1 + bcc _080F8DBE +_080F8E04: + ldr r2, _080F8E40 @ =0x020000d8 + adds r4, r2, 0 + subs r4, 0xD8 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0 + bne _080F8E48 + ldr r1, [r2, 0x1C] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + adds r2, r0, 0 + ldr r1, _080F8E44 @ =gOtherText_From + bl StringCopy + ldr r0, _080F8E40 @ =0x020000d8 + bl StringLength + movs r2, 0x86 + lsls r2, 1 + adds r1, r4, r2 + ldr r1, [r1] + ldrb r1, [r1, 0x2] + subs r1, r0 + b _080F8E6A + .align 2, 0 +_080F8E3C: .4byte 0x02000000 +_080F8E40: .4byte 0x020000d8 +_080F8E44: .4byte gOtherText_From +_080F8E48: + ldr r1, _080F8E7C @ =gOtherText_From + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r1, [r0] + adds r1, 0x12 + adds r0, r2, 0 + bl sub_80F8D7C + movs r1, 0x86 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + ldrb r1, [r0, 0x2] +_080F8E6A: + adds r0, r4, 0 + adds r0, 0xF9 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8E7C: .4byte gOtherText_From + thumb_func_end sub_80F8DA0 + + thumb_func_start sub_80F8E80 +sub_80F8E80: @ 80F8E80 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r4, 0 + ldr r1, _080F8F10 @ =0x02000000 + movs r0, 0x86 + lsls r0, 1 + adds r2, r1, r0 + ldr r0, [r2] + ldrb r0, [r0] + cmp r4, r0 + bcs _080F8EF6 + mov r8, r1 + adds r7, r2, 0 +_080F8E9E: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + subs r0, r4 + mov r1, r8 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0xFF + beq _080F8EE8 + cmp r0, 0 + beq _080F8EE8 + ldr r2, [r7] + ldr r1, [r2, 0x4] + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + lsls r3, r0, 24 + lsrs r3, 28 + lsls r0, 30 + lsrs r0, 30 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r2, [r2, 0x3] + lsrs r1, r2, 4 + adds r1, r3 + lsls r2, 28 + lsrs r2, 28 + adds r2, r6, r2 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + adds r0, r6, 0x2 + lsls r0, 24 + lsrs r6, r0, 24 +_080F8EE8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r7] + ldrb r0, [r0] + cmp r4, r0 + bcc _080F8E9E +_080F8EF6: + ldr r0, _080F8F14 @ =0x020000d8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + ldr r2, [r0, 0x34] + ldrb r2, [r2, 0x1] + bl MenuPrint + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F8F10: .4byte 0x02000000 +_080F8F14: .4byte 0x020000d8 + thumb_func_end sub_80F8E80 + + thumb_func_start sub_80F8F18 +sub_80F8F18: @ 80F8F18 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_80F8F18 + + thumb_func_start sub_80F8F2C +sub_80F8F2C: @ 80F8F2C + push {r4,lr} + ldr r4, _080F8F54 @ =0x02000000 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0 + beq _080F8F42 + bl AnimateSprites + bl BuildOamBuffer +_080F8F42: + adds r0, r4, 0 + adds r0, 0xF0 + ldr r0, [r0] + bl _call_via_r0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F8F54: .4byte 0x02000000 + thumb_func_end sub_80F8F2C + + thumb_func_start sub_80F8F58 +sub_80F8F58: @ 80F8F58 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F8F6C + ldr r0, _080F8F70 @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8F74 @ =sub_80F8F78 + str r1, [r0] +_080F8F6C: + pop {r0} + bx r0 + .align 2, 0 +_080F8F70: .4byte 0x02000000 +_080F8F74: .4byte sub_80F8F78 + thumb_func_end sub_80F8F58 + + thumb_func_start sub_80F8F78 +sub_80F8F78: @ 80F8F78 + push {lr} + sub sp, 0x4 + ldr r0, _080F8FA8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080F8FA0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080F8FAC @ =0x02000000 + adds r0, 0xF0 + ldr r1, _080F8FB0 @ =sub_80F8FB4 + str r1, [r0] +_080F8FA0: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F8FA8: .4byte gMain +_080F8FAC: .4byte 0x02000000 +_080F8FB0: .4byte sub_80F8FB4 + thumb_func_end sub_80F8F78 + + thumb_func_start sub_80F8FB4 +sub_80F8FB4: @ 80F8FB4 + push {r4,lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080F9012 + ldr r4, _080F9018 @ =0x02000000 + adds r0, r4, 0 + adds r0, 0xEC + ldr r0, [r0] + bl SetMainCallback2 + adds r0, r4, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0x2 + bgt _080F9002 + cmp r0, 0x1 + blt _080F9002 + adds r0, r4, 0 + adds r0, 0xF4 + ldr r0, [r0] + ldrh r0, [r0, 0x1E] + bl sub_809D4A8 + lsls r0, 16 + lsrs r0, 16 + bl sub_809D608 + adds r0, r4, 0 + adds r0, 0xFC + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F901C @ =gSprites + adds r0, r1 + bl sub_809D510 +_080F9002: + ldr r0, _080F9018 @ =0x02000000 + movs r2, 0x88 + lsls r2, 1 + movs r1, 0 + bl memset + bl ResetPaletteFade +_080F9012: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9018: .4byte 0x02000000 +_080F901C: .4byte gSprites + thumb_func_end sub_80F8FB4 + + thumb_func_start sub_80F9020 +sub_80F9020: @ 80F9020 + push {r4,r5,lr} + ldr r4, _080F9054 @ =gBG1TilemapBuffer + movs r5, 0x80 + lsls r5, 4 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + adds r0, r4, r5 + movs r1, 0 + adds r2, r5, 0 + bl memset + movs r0, 0x80 + lsls r0, 5 + adds r4, r0 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9054: .4byte gBG1TilemapBuffer + thumb_func_end sub_80F9020 + + thumb_func_start sav2_get_text_speed +sav2_get_text_speed: @ 80F9058 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + bl MenuDisplayMessageBox + cmp r4, 0 + beq _080F907C + ldr r0, _080F908C @ =gBG1TilemapBuffer + movs r1, 0x4 + str r1, [sp] + str r4, [sp, 0x4] + movs r1, 0x2 + movs r2, 0xF + movs r3, 0x1A + bl sub_80A3FA0 +_080F907C: + adds r0, r5, 0 + bl sub_8072044 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F908C: .4byte gBG1TilemapBuffer + thumb_func_end sav2_get_text_speed + + thumb_func_start sub_80F9090 +sub_80F9090: @ 80F9090 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F90AC + ldr r0, _080F90B4 @ =gUnknown_0300074C + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080F90AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F90B4: .4byte gUnknown_0300074C + thumb_func_end sub_80F9090 + + thumb_func_start DisplayItemMessageOnField +DisplayItemMessageOnField: @ 80F90B8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + adds r1, r3, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 16 + lsrs r1, 16 + bl sav2_get_text_speed + ldr r0, _080F90E8 @ =gUnknown_0300074C + str r5, [r0] + ldr r1, _080F90EC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080F90F0 @ =sub_80F9090 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F90E8: .4byte gUnknown_0300074C +_080F90EC: .4byte gTasks +_080F90F0: .4byte sub_80F9090 + thumb_func_end DisplayItemMessageOnField + + thumb_func_start Task_CallYesOrNoCallback +Task_CallYesOrNoCallback: @ 80F90F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080F911A + cmp r1, 0 + bgt _080F9114 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080F9130 + b _080F9140 +_080F9114: + cmp r1, 0x1 + beq _080F9130 + b _080F9140 +_080F911A: + movs r0, 0x5 + bl PlaySE + ldr r0, _080F912C @ =gUnknown_020388C4 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080F9140 + .align 2, 0 +_080F912C: .4byte gUnknown_020388C4 +_080F9130: + movs r0, 0x5 + bl PlaySE + ldr r0, _080F9148 @ =gUnknown_020388C4 + ldr r1, [r0, 0x4] + adds r0, r4, 0 + bl _call_via_r1 +_080F9140: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9148: .4byte gUnknown_020388C4 + thumb_func_end Task_CallYesOrNoCallback + + thumb_func_start sub_80F914C +sub_80F914C: @ 80F914C + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080F916C @ =gUnknown_020388C4 + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r3] + str r2, [r3, 0x4] + ldr r2, _080F9170 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080F9174 @ =Task_CallYesOrNoCallback + str r0, [r1] + bx lr + .align 2, 0 +_080F916C: .4byte gUnknown_020388C4 +_080F9170: .4byte gTasks +_080F9174: .4byte Task_CallYesOrNoCallback + thumb_func_end sub_80F914C + + thumb_func_start brm_trade_1 +brm_trade_1: @ 80F9178 + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + ldr r1, _080F91C0 @ =gUnknown_083E5A18 + mov r0, sp + movs r2, 0x4 + bl memcpy + cmp r4, 0xFF + beq _080F91CC + mov r0, sp + strb r4, [r0, 0x2] + ldr r4, _080F91C4 @ =gStringVar4 + adds r0, r4, 0 + mov r1, sp + bl StringCopy + adds r0, r4, 0 + adds r1, r5, 0 + bl StringAppend + mov r1, sp + ldr r0, _080F91C8 @ =gMenuWindowPtr + ldr r0, [r0] + ldrb r0, [r0, 0x6] + strb r0, [r1, 0x2] + adds r0, r4, 0 + bl StringAppend + b _080F91D4 + .align 2, 0 +_080F91C0: .4byte gUnknown_083E5A18 +_080F91C4: .4byte gStringVar4 +_080F91C8: .4byte gMenuWindowPtr +_080F91CC: + ldr r0, _080F91E8 @ =gStringVar4 + adds r1, r5, 0 + bl StringCopy +_080F91D4: + ldr r0, _080F91E8 @ =gStringVar4 + adds r1, r7, 0 + adds r2, r6, 0 + bl MenuPrint + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F91E8: .4byte gStringVar4 + thumb_func_end brm_trade_1 + + thumb_func_start unref_sub_80F91EC +unref_sub_80F91EC: @ 80F91EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r12, r0 + adds r4, r2, 0 + adds r2, r3, 0 + ldr r0, [sp, 0x18] + ldr r3, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r3, 24 + lsrs r5, r3, 24 + ldr r6, _080F9234 @ =gStringVar1 + adds r0, r6, 0 + mov r1, r12 + adds r3, r4, 0 + bl ConvertIntToDecimalStringN + mov r0, r8 + cmp r0, 0xFF + beq _080F9238 + adds r0, r6, 0 + mov r1, r8 + adds r2, r7, 0 + adds r3, r5, 0 + bl brm_trade_1 + b _080F9242 + .align 2, 0 +_080F9234: .4byte gStringVar1 +_080F9238: + adds r0, r6, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl MenuPrint +_080F9242: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80F91EC + + thumb_func_start unref_sub_80F924C +unref_sub_80F924C: @ 80F924C + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080F9280 @ =gUnknown_083E5A1C + mov r0, sp + movs r2, 0x2 + bl memcpy + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl brm_trade_1 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F9280: .4byte gUnknown_083E5A1C + thumb_func_end unref_sub_80F924C + + thumb_func_start sub_80F9284 +sub_80F9284: @ 80F9284 + push {lr} + ldr r0, _080F92A0 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080F92B6 + ldr r0, _080F92A4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080F92A8 + movs r0, 0x1 + b _080F92B8 + .align 2, 0 +_080F92A0: .4byte gSaveBlock2 +_080F92A4: .4byte gMain +_080F92A8: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080F92B6 + movs r0, 0x2 + b _080F92B8 +_080F92B6: + movs r0, 0 +_080F92B8: + pop {r1} + bx r1 + thumb_func_end sub_80F9284 + + thumb_func_start sub_80F92BC +sub_80F92BC: @ 80F92BC + push {lr} + ldr r0, _080F92D8 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080F92EE + ldr r0, _080F92DC @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080F92E0 + movs r0, 0x1 + b _080F92F0 + .align 2, 0 +_080F92D8: .4byte gSaveBlock2 +_080F92DC: .4byte gMain +_080F92E0: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080F92EE + movs r0, 0x2 + b _080F92F0 +_080F92EE: + movs r0, 0 +_080F92F0: + pop {r1} + bx r1 + thumb_func_end sub_80F92BC + + thumb_func_start sub_80F92F4 +sub_80F92F4: @ 80F92F4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _080F9314 + ldr r0, _080F930C @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + ldr r0, _080F9310 @ =0x00001919 + cmp r1, r0 + bne _080F9314 + movs r0, 0 + b _080F9316 + .align 2, 0 +_080F930C: .4byte gSaveBlock1 +_080F9310: .4byte 0x00001919 +_080F9314: + movs r0, 0x1 +_080F9316: + pop {r1} + bx r1 + thumb_func_end sub_80F92F4 + + thumb_func_start sub_80F931C +sub_80F931C: @ 80F931C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl is_c1_link_related_active + cmp r0, 0x1 + bne _080F933C + adds r0, r4, 0 + bl itemid_is_mail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F933C + movs r0, 0 + b _080F933E +_080F933C: + movs r0, 0x1 +_080F933E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80F931C + + thumb_func_start sub_80F9344 +sub_80F9344: @ 80F9344 + push {lr} + bl is_c1_link_related_active + cmp r0, 0x1 + beq _080F9356 + ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0x1 + bne _080F9360 +_080F9356: + movs r0, 0x1 + b _080F9362 + .align 2, 0 +_080F935C: .4byte gReceivedRemoteLinkPlayers +_080F9360: + movs r0, 0 +_080F9362: + pop {r1} + bx r1 + thumb_func_end sub_80F9344 + + thumb_func_start sub_80F9368 +sub_80F9368: @ 80F9368 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0xE + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x14 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + mov r2, sp + movs r6, 0 + ldr r1, _080F9430 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _080F9434 @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_080F93C6: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _080F93C6 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, _080F9430 @ =0x040000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080F9430: .4byte 0x040000d4 +_080F9434: .4byte 0x81000800 + thumb_func_end sub_80F9368 + + thumb_func_start sub_80F9438 +sub_80F9438: @ 80F9438 + push {lr} + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + bl SetHBlankCallback + pop {r0} + bx r0 + thumb_func_end sub_80F9438 + + thumb_func_start sub_80F944C +sub_80F944C: @ 80F944C + push {r4,lr} + movs r2, 0 + ldr r4, _080F9478 @ =gUnknown_020388C0 + movs r3, 0xFF +_080F9454: + adds r0, r2, r4 + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080F9454 + movs r0, 0x6 + bl FreeSpritePaletteByTag + ldr r0, _080F947C @ =gUnknown_083E5968 + bl LoadSpritePalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9478: .4byte gUnknown_020388C0 +_080F947C: .4byte gUnknown_083E5968 + thumb_func_end sub_80F944C + + thumb_func_start sub_80F9480 +sub_80F9480: @ 80F9480 + push {r4,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0 + cmp r2, r1 + bcs _080F949E + movs r4, 0xFF +_080F9490: + adds r0, r3, r2 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r1 + bcc _080F9490 +_080F949E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F9480 + + thumb_func_start sub_80F94A4 +sub_80F94A4: @ 80F94A4 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r3, 16 + lsrs r2, r3, 16 + cmp r4, 0x5 + bhi _080F94E8 + ldrb r0, [r5] + cmp r0, 0xFF + bne _080F94D0 + ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5] +_080F94D0: + subs r0, r4, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F94F4 @ =gSprites + adds r0, r1 + adds r1, r4, 0 + bl StartSpriteAnim +_080F94E8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F94F0: .4byte gSpriteTemplate_83E5A00 +_080F94F4: .4byte gSprites + thumb_func_end sub_80F94A4 + + thumb_func_start sub_80F94F8 +sub_80F94F8: @ 80F94F8 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F9516 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F951C @ =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080F9516: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F951C: .4byte gSprites + thumb_func_end sub_80F94F8 + + thumb_func_start sub_80F9520 +sub_80F9520: @ 80F9520 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_080F9526: + adds r0, r5, r4 + bl sub_80F94F8 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080F9526 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80F9520 + + thumb_func_start sub_80F953C +sub_80F953C: @ 80F953C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r4, 0x3 + bls _080F9550 + b _080F9790 +_080F9550: + cmp r4, 0x1 + beq _080F95F6 + cmp r4, 0x1 + bgt _080F9564 + cmp r4, 0 + beq _080F9578 + ldr r5, _080F9560 @ =gUnknown_020388C0 + b _080F977A + .align 2, 0 +_080F9560: .4byte gUnknown_020388C0 +_080F9564: + cmp r4, 0x2 + bne _080F956A + b _080F967C +_080F956A: + cmp r4, 0x3 + bne _080F9570 + b _080F96F8 +_080F9570: + ldr r5, _080F9574 @ =gUnknown_020388C0 + b _080F977A + .align 2, 0 +_080F9574: .4byte gUnknown_020388C0 +_080F9578: + ldr r0, _080F95D8 @ =gUnknown_020388C0 + ldrb r1, [r0] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080F9584 + b _080F977A +_080F9584: + ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5] + ldr r3, _080F95E0 @ =gSprites + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080F95E4 @ =0x0000ffff + strh r1, [r0, 0x32] + ldrb r0, [r5, 0x1] + cmp r0, 0xFF + beq _080F95E8 + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x1] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x26 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x26] + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x1] + b _080F9650 + .align 2, 0 +_080F95D8: .4byte gUnknown_020388C0 +_080F95DC: .4byte gSpriteTemplate_83E59D0 +_080F95E0: .4byte gSprites +_080F95E4: .4byte 0x0000ffff +_080F95E8: + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x34] + b _080F977A +_080F95F6: + ldr r0, _080F9660 @ =gUnknown_020388C0 + ldrb r1, [r0, 0x1] + adds r5, r0, 0 + cmp r1, 0xFF + beq _080F9602 + b _080F977A +_080F9602: + ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x1] + ldr r3, _080F9668 @ =gSprites + ldrb r1, [r5, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r4, [r0, 0x32] + ldrb r0, [r5] + cmp r0, 0xFF + beq _080F966C + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x26 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x26] + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5] +_080F9650: + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x34] + strh r0, [r1, 0x34] + b _080F977A + .align 2, 0 +_080F9660: .4byte gUnknown_020388C0 +_080F9664: .4byte gSpriteTemplate_83E59D0 +_080F9668: .4byte gSprites +_080F966C: + ldrb r0, [r5, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strh r0, [r1, 0x34] + b _080F977A +_080F967C: + ldr r0, _080F96E4 @ =gUnknown_020388C0 + ldrb r1, [r0, 0x2] + adds r5, r0, 0 + cmp r1, 0xFF + bne _080F977A + ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x2] + ldr r3, _080F96EC @ =gSprites + ldrb r1, [r5, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080F96F0 @ =0x0000ffff + strh r1, [r0, 0x2E] + ldrb r0, [r5, 0x3] + cmp r0, 0xFF + beq _080F96F4 + ldrb r0, [r5, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x24 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r5, 0x2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x30] + b _080F9778 + .align 2, 0 +_080F96E4: .4byte gUnknown_020388C0 +_080F96E8: .4byte gSpriteTemplate_83E59E8 +_080F96EC: .4byte gSprites +_080F96F0: .4byte 0x0000ffff +_080F96F4: + ldrb r0, [r5, 0x2] + b _080F976E +_080F96F8: + ldr r0, _080F9760 @ =gUnknown_020388C0 + ldrb r1, [r0, 0x3] + adds r5, r0, 0 + cmp r1, 0xFF + bne _080F977A + ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + strb r0, [r5, 0x3] + ldr r3, _080F9768 @ =gSprites + ldrb r1, [r5, 0x3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + beq _080F976C + ldrb r0, [r5, 0x3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x2] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x24 + ldrsh r0, [r0, r2] + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r5, 0x3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r5, 0x2] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x30] + b _080F9778 + .align 2, 0 +_080F9760: .4byte gUnknown_020388C0 +_080F9764: .4byte gSpriteTemplate_83E59E8 +_080F9768: .4byte gSprites +_080F976C: + ldrb r0, [r5, 0x3] +_080F976E: + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 +_080F9778: + strh r0, [r1, 0x30] +_080F977A: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F9798 @ =gSprites + adds r0, r1 + movs r1, 0x1 + ands r1, r4 + bl StartSpriteAnim +_080F9790: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9798: .4byte gSprites + thumb_func_end sub_80F953C + + thumb_func_start sub_80F979C +sub_80F979C: @ 80F979C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + cmp r2, 0x3 + bhi _080F97D4 + ldr r0, _080F97D8 @ =gUnknown_020388C0 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F97D4 + ldr r2, _080F97DC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + movs r0, 0x1 + adds r2, r3, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] +_080F97D4: + pop {r0} + bx r0 + .align 2, 0 +_080F97D8: .4byte gUnknown_020388C0 +_080F97DC: .4byte gSprites + thumb_func_end sub_80F979C + + thumb_func_start SetBgTilemapBuffer +SetBgTilemapBuffer: @ 80F97E0 + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x3 + bhi _080F9808 + ldr r0, _080F9810 @ =gUnknown_020388C0 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F9808 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080F9814 @ =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0xFF + strb r0, [r4] +_080F9808: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9810: .4byte gUnknown_020388C0 +_080F9814: .4byte gSprites + thumb_func_end SetBgTilemapBuffer + + thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed +InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818 + push {lr} + ldr r0, _080F9824 @ =gUnknown_083E5968 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_080F9824: .4byte gUnknown_083E5968 + thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed + + thumb_func_start BuyMenuFreeMemory +BuyMenuFreeMemory: @ 80F9828 + push {lr} + movs r0, 0x6 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end BuyMenuFreeMemory + + thumb_func_start sub_80F9834 +sub_80F9834: @ 80F9834 + push {lr} + adds r2, r0, 0 + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F9848 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] +_080F9848: + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080F9858 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] +_080F9858: + ldrh r1, [r2, 0x30] + adds r1, 0x1 + movs r3, 0 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x2 + ble _080F9870 + strh r3, [r2, 0x30] +_080F9870: + movs r1, 0x34 + ldrsh r0, [r2, r1] + cmp r0, 0x2 + ble _080F987A + strh r3, [r2, 0x34] +_080F987A: + movs r0, 0x24 + ldrsh r1, [r2, r0] + cmp r1, 0x8 + beq _080F988A + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bne _080F988C +_080F988A: + strh r3, [r2, 0x24] +_080F988C: + movs r0, 0x26 + ldrsh r1, [r2, r0] + cmp r1, 0x8 + beq _080F989C + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bne _080F98A0 +_080F989C: + movs r0, 0 + strh r0, [r2, 0x26] +_080F98A0: + pop {r0} + bx r0 + thumb_func_end sub_80F9834 + + thumb_func_start sub_80F98A4 +sub_80F98A4: @ 80F98A4 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F98D0 @ =gUnknown_020388C0 + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080F98CA + cmp r1, 0x3 + bhi _080F98CA + ldr r2, _080F98D4 @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080F98D8 @ =SpriteCallbackDummy + str r1, [r0] +_080F98CA: + pop {r0} + bx r0 + .align 2, 0 +_080F98D0: .4byte gUnknown_020388C0 +_080F98D4: .4byte gSprites +_080F98D8: .4byte SpriteCallbackDummy + thumb_func_end sub_80F98A4 + + thumb_func_start sub_80F98DC +sub_80F98DC: @ 80F98DC + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F9908 @ =gUnknown_020388C0 + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080F9902 + cmp r1, 0x3 + bhi _080F9902 + ldr r2, _080F990C @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080F9910 @ =sub_80F9834 + str r1, [r0] +_080F9902: + pop {r0} + bx r0 + .align 2, 0 +_080F9908: .4byte gUnknown_020388C0 +_080F990C: .4byte gSprites +_080F9910: .4byte sub_80F9834 + thumb_func_end sub_80F98DC + + thumb_func_start sub_80F9914 +sub_80F9914: @ 80F9914 + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080F9964 @ =gUnknown_020388C0 + adds r4, r1, r0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _080F995C + cmp r1, 0x3 + bhi _080F995C + ldr r3, _080F9968 @ =gSprites + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0 + strh r2, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x26] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x34] +_080F995C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9964: .4byte gUnknown_020388C0 +_080F9968: .4byte gSprites + thumb_func_end sub_80F9914 + + thumb_func_start sub_80F996C +sub_80F996C: @ 80F996C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80F98A4 + adds r0, r4, 0 + bl sub_80F9914 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80F996C + + thumb_func_start sub_80F9988 +sub_80F9988: @ 80F9988 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r0, _080F99C4 @ =gUnknown_020388C0 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _080F99BE + cmp r2, 0x3 + bhi _080F99BE + ldr r2, _080F99C8 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r3, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_080F99BE: + pop {r0} + bx r0 + .align 2, 0 +_080F99C4: .4byte gUnknown_020388C0 +_080F99C8: .4byte gSprites + thumb_func_end sub_80F9988 + + thumb_func_start sub_80F99CC +sub_80F99CC: @ 80F99CC + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A04 @ =sub_80F9A8C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A08 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x2 + strh r0, [r1, 0x8] + subs r0, 0x3 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A04: .4byte sub_80F9A8C +_080F9A08: .4byte gTasks + thumb_func_end sub_80F99CC + + thumb_func_start sub_80F9A0C +sub_80F9A0C: @ 80F9A0C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A44 @ =sub_80F9A8C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A48 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x3 + strh r0, [r1, 0x8] + subs r0, 0x4 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A44: .4byte sub_80F9A8C +_080F9A48: .4byte gTasks + thumb_func_end sub_80F9A0C + + thumb_func_start sub_80F9A4C +sub_80F9A4C: @ 80F9A4C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _080F9A84 @ =sub_80F9A8C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080F9A88 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x7 + strh r0, [r1, 0x8] + subs r0, 0x8 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080F9A84: .4byte sub_80F9A8C +_080F9A88: .4byte gTasks + thumb_func_end sub_80F9A4C + + thumb_func_start sub_80F9A8C +sub_80F9A8C: @ 80F9A8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080F9AC4 @ =gPaletteFade + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9ABE + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _080F9AC8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + movs r1, 0 + bl OpenPartyMenu + adds r0, r4, 0 + bl DestroyTask +_080F9ABE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9AC4: .4byte gPaletteFade +_080F9AC8: .4byte gTasks + thumb_func_end sub_80F9A8C + + thumb_func_start sub_80F9ACC +sub_80F9ACC: @ 80F9ACC + push {r4,r5,lr} + ldr r1, _080F9AEC @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _080F9AE2 + b _080F9BF6 +_080F9AE2: + lsls r0, 2 + ldr r1, _080F9AF0 @ =_080F9AF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9AEC: .4byte 0x0201b000 +_080F9AF0: .4byte _080F9AF4 + .align 2, 0 +_080F9AF4: + .4byte _080F9B14 + .4byte _080F9B54 + .4byte _080F9B5A + .4byte _080F9B6E + .4byte _080F9B98 + .4byte _080F9B9E + .4byte _080F9BB0 + .4byte _080F9BC8 +_080F9B14: + ldr r0, _080F9B3C @ =0x00000266 + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _080F9B40 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r3, r0 + bge _080F9B48 + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _080F9B44 @ =gPlayerParty + adds r2, r3 + bl sub_806D90C + b _080F9BF0 + .align 2, 0 +_080F9B3C: .4byte 0x00000266 +_080F9B40: .4byte gPlayerPartyCount +_080F9B44: .4byte gPlayerParty +_080F9B48: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9BBC +_080F9B54: + bl sub_806DA98 + b _080F9BB4 +_080F9B5A: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _080F9BBC +_080F9B6E: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F9B94 @ =0x00000266 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9BF0 + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9BBC + .align 2, 0 +_080F9B94: .4byte 0x00000266 +_080F9B98: + bl sub_806E334 + b _080F9BB4 +_080F9B9E: + bl sub_806E0C4 + ldr r1, _080F9BAC @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _080F9BBC + .align 2, 0 +_080F9BAC: .4byte 0x0201b000 +_080F9BB0: + bl sub_80F9C00 +_080F9BB4: + ldr r1, _080F9BC4 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 +_080F9BBC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080F9BF6 + .align 2, 0 +_080F9BC4: .4byte 0x0201b000 +_080F9BC8: + ldr r0, _080F9BEC @ =0x00000266 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9BF0 + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _080F9BF8 + .align 2, 0 +_080F9BEC: .4byte 0x00000266 +_080F9BF0: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9BF6: + movs r0, 0 +_080F9BF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F9ACC + + thumb_func_start sub_80F9C00 +sub_80F9C00: @ 80F9C00 + push {r4,lr} + movs r4, 0 + b _080F9C58 +_080F9C06: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F9C24 @ =gPlayerParty + adds r0, r1 + bl sub_80AE47C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080F9C52 + lsls r0, 2 + ldr r1, _080F9C28 @ =_080F9C2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9C24: .4byte gPlayerParty +_080F9C28: .4byte _080F9C2C + .align 2, 0 +_080F9C2C: + .4byte _080F9C40 + .4byte _080F9C4A + .4byte _080F9C4A + .4byte _080F9C40 + .4byte _080F9C40 +_080F9C40: + adds r0, r4, 0 + movs r1, 0x7E + bl sub_806BC3C + b _080F9C52 +_080F9C4A: + adds r0, r4, 0 + movs r1, 0x70 + bl sub_806BC3C +_080F9C52: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080F9C58: + ldr r0, _080F9C68 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080F9C06 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9C68: .4byte gPlayerPartyCount + thumb_func_end sub_80F9C00 + + thumb_func_start sub_80F9C6C +sub_80F9C6C: @ 80F9C6C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080F9C94 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9CD8 + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080F9C98 + cmp r0, 0x2 + beq _080F9CC0 + b _080F9CD8 + .align 2, 0 +_080F9C94: .4byte gPaletteFade +_080F9C98: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _080F9CB8 @ =gUnknown_02038694 + strb r0, [r1] + ldr r2, _080F9CBC @ =gUnknown_0202E8CC + ldrb r0, [r1] + strh r0, [r2] + adds r0, r4, 0 + bl sub_8123138 + b _080F9CD8 + .align 2, 0 +_080F9CB8: .4byte gUnknown_02038694 +_080F9CBC: .4byte gUnknown_0202E8CC +_080F9CC0: + movs r0, 0x5 + bl PlaySE + ldr r1, _080F9CE0 @ =gUnknown_02038694 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _080F9CE4 @ =gUnknown_0202E8CC + movs r0, 0xFF + strh r0, [r1] + adds r0, r4, 0 + bl sub_8123138 +_080F9CD8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9CE0: .4byte gUnknown_02038694 +_080F9CE4: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F9C6C + + thumb_func_start sub_80F9CE8 +sub_80F9CE8: @ 80F9CE8 + push {r4,r5,lr} + ldr r1, _080F9D08 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r1, 0 + cmp r0, 0x7 + bls _080F9CFE + b _080F9E12 +_080F9CFE: + lsls r0, 2 + ldr r1, _080F9D0C @ =_080F9D10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080F9D08: .4byte 0x0201b000 +_080F9D0C: .4byte _080F9D10 + .align 2, 0 +_080F9D10: + .4byte _080F9D30 + .4byte _080F9D70 + .4byte _080F9D76 + .4byte _080F9D8A + .4byte _080F9DB4 + .4byte _080F9DBA + .4byte _080F9DCC + .4byte _080F9DE4 +_080F9D30: + ldr r0, _080F9D58 @ =0x00000266 + adds r5, r4, r0 + movs r1, 0 + ldrsh r3, [r5, r1] + ldr r0, _080F9D5C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r3, r0 + bge _080F9D64 + movs r2, 0x98 + lsls r2, 2 + adds r0, r4, r2 + ldrb r0, [r0] + ldrb r1, [r5] + movs r2, 0x64 + muls r2, r3 + ldr r3, _080F9D60 @ =gPlayerParty + adds r2, r3 + bl sub_806D90C + b _080F9E0C + .align 2, 0 +_080F9D58: .4byte 0x00000266 +_080F9D5C: .4byte gPlayerPartyCount +_080F9D60: .4byte gPlayerParty +_080F9D64: + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9DD8 +_080F9D70: + bl sub_806DA98 + b _080F9DD0 +_080F9D76: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_806DC34 + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 + b _080F9DD8 +_080F9D8A: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _080F9DB0 @ =0x00000266 + adds r5, r4, r2 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9E0C + movs r0, 0 + strh r0, [r5] + movs r0, 0x99 + lsls r0, 2 + adds r1, r4, r0 + b _080F9DD8 + .align 2, 0 +_080F9DB0: .4byte 0x00000266 +_080F9DB4: + bl sub_806E334 + b _080F9DD0 +_080F9DBA: + bl sub_806E0C4 + ldr r1, _080F9DC8 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _080F9DD8 + .align 2, 0 +_080F9DC8: .4byte 0x0201b000 +_080F9DCC: + bl sub_80F9E1C +_080F9DD0: + ldr r1, _080F9DE0 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 +_080F9DD8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080F9E12 + .align 2, 0 +_080F9DE0: .4byte 0x0201b000 +_080F9DE4: + ldr r0, _080F9E08 @ =0x00000266 + adds r5, r4, r0 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080F9E0C + movs r1, 0 + strh r1, [r5] + movs r2, 0x99 + lsls r2, 2 + adds r0, r4, r2 + strh r1, [r0] + movs r0, 0x1 + b _080F9E14 + .align 2, 0 +_080F9E08: .4byte 0x00000266 +_080F9E0C: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9E12: + movs r0, 0 +_080F9E14: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80F9CE8 + + thumb_func_start sub_80F9E1C +sub_80F9E1C: @ 80F9E1C + push {r4,lr} + movs r4, 0 + b _080F9E52 +_080F9E22: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080F9E40 @ =gPlayerParty + adds r0, r1 + bl sub_8040574 + lsls r0, 24 + cmp r0, 0 + bne _080F9E44 + adds r0, r4, 0 + movs r1, 0x9A + bl sub_806BC3C + b _080F9E4C + .align 2, 0 +_080F9E40: .4byte gPlayerParty +_080F9E44: + adds r0, r4, 0 + movs r1, 0x8C + bl sub_806BC3C +_080F9E4C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080F9E52: + ldr r0, _080F9E60 @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r4, r0 + bcc _080F9E22 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9E60: .4byte gPlayerPartyCount + thumb_func_end sub_80F9E1C + + thumb_func_start sub_80F9E64 +sub_80F9E64: @ 80F9E64 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080F9E8C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080F9EE2 + adds r0, r6, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _080F9E90 + cmp r0, 0x2 + beq _080F9ED0 + b _080F9EE2 + .align 2, 0 +_080F9E8C: .4byte gPaletteFade +_080F9E90: + movs r0, 0x5 + bl PlaySE + ldr r4, _080F9EC4 @ =gUnknown_0202E8CC + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r5, _080F9EC8 @ =gUnknown_0202E8CE + ldrh r1, [r4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080F9ECC @ =gPlayerParty + adds r0, r1 + bl sub_8040574 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5] + adds r0, r6, 0 + bl sub_8123138 + b _080F9EE2 + .align 2, 0 +_080F9EC4: .4byte gUnknown_0202E8CC +_080F9EC8: .4byte gUnknown_0202E8CE +_080F9ECC: .4byte gPlayerParty +_080F9ED0: + movs r0, 0x5 + bl PlaySE + ldr r1, _080F9EE8 @ =gUnknown_0202E8CC + movs r0, 0xFF + strh r0, [r1] + adds r0, r6, 0 + bl sub_8123138 +_080F9EE2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080F9EE8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80F9E64 + + thumb_func_start sub_80F9EEC +sub_80F9EEC: @ 80F9EEC + push {r4,lr} + sub sp, 0x4 + ldr r0, _080F9F20 @ =gPlayerParty + ldr r1, _080F9F24 @ =gUnknown_0202E8CC + ldrb r1, [r1] + ldr r2, _080F9F28 @ =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch + movs r4, 0 + str r4, [sp] + bl sub_809D9F0 + ldr r1, _080F9F30 @ =0x02018000 + movs r0, 0x3 + strb r0, [r1, 0x8] + ldr r1, _080F9F34 @ =gUnknown_0300485C + ldr r0, _080F9F38 @ =sub_8080990 + str r0, [r1] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080F9F20: .4byte gPlayerParty +_080F9F24: .4byte gUnknown_0202E8CC +_080F9F28: .4byte gPlayerPartyCount +_080F9F2C: .4byte c2_exit_to_overworld_2_switch +_080F9F30: .4byte 0x02018000 +_080F9F34: .4byte gUnknown_0300485C +_080F9F38: .4byte sub_8080990 + thumb_func_end sub_80F9EEC + + thumb_func_start sub_80F9F3C +sub_80F9F3C: @ 80F9F3C + push {r4,r5,lr} + ldr r1, _080F9F78 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r4, 0 + adds r5, r1, 0 +_080F9F48: + ldr r0, _080F9F7C @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080F9F80 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + adds r1, 0xD + bl GetMonData + cmp r0, 0 + beq _080F9F66 + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080F9F66: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080F9F48 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9F78: .4byte gScriptResult +_080F9F7C: .4byte gUnknown_0202E8CC +_080F9F80: .4byte gPlayerParty + thumb_func_end sub_80F9F3C + + thumb_func_start sub_80F9F84 +sub_80F9F84: @ 80F9F84 + push {r4,r5,lr} + ldr r0, _080F9FC4 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, _080F9FC8 @ =gPlayerParty + adds r5, r0 + ldr r0, _080F9FCC @ =gUnknown_0202E8CE + ldrh r1, [r0] + adds r1, 0xD + adds r0, r5, 0 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r1, _080F9FD0 @ =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r0, _080F9FD4 @ =gStringVar2 + movs r1, 0xD + muls r1, r4 + ldr r2, _080F9FD8 @ =gMoveNames + adds r1, r2 + bl StringCopy + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080F9FC4: .4byte gUnknown_0202E8CC +_080F9FC8: .4byte gPlayerParty +_080F9FCC: .4byte gUnknown_0202E8CE +_080F9FD0: .4byte gStringVar1 +_080F9FD4: .4byte gStringVar2 +_080F9FD8: .4byte gMoveNames + thumb_func_end sub_80F9F84 + + thumb_func_start sub_80F9FDC +sub_80F9FDC: @ 80F9FDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r0, 0xD + str r0, [sp, 0x8] + mov r0, r8 + ldr r1, [sp, 0x8] + bl GetMonData + mov r1, sp + adds r1, 0x2 + str r1, [sp, 0x14] + strh r0, [r1] + adds r3, r4, 0 + adds r3, 0xD + str r3, [sp, 0xC] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r7, r5, 0 + adds r7, 0x11 + str r7, [sp, 0x10] + mov r0, r8 + adds r1, r7, 0 + bl GetMonData + mov r1, sp + adds r1, 0x5 + str r1, [sp, 0x18] + strb r0, [r1] + adds r3, r4, 0 + adds r3, 0x11 + str r3, [sp, 0x1C] + mov r0, r8 + adds r1, r3, 0 + bl GetMonData + add r7, sp, 0x4 + mov r10, r7 + strb r0, [r7] + mov r0, r8 + movs r1, 0x15 + bl GetMonData + mov r6, sp + adds r6, 0x6 + strb r0, [r6] + ldr r1, _080FA0D8 @ =gUnknown_08208238 + adds r0, r5, r1 + ldrb r0, [r0] + mov r9, r0 + ldrb r0, [r6] + adds r2, r0, 0 + mov r3, r9 + ands r2, r3 + lsls r5, 1 + asrs r2, r5 + lsls r2, 24 + lsrs r2, 24 + adds r1, r4, r1 + ldrb r3, [r1] + adds r1, r0, 0 + ands r1, r3 + lsls r4, 1 + asrs r1, r4 + lsls r1, 24 + lsrs r1, 24 + mov r7, r9 + bics r0, r7 + strb r0, [r6] + ldrb r0, [r6] + bics r0, r3 + strb r0, [r6] + lsls r2, r4 + lsls r1, r5 + adds r2, r1 + ldrb r0, [r6] + orrs r0, r2 + strb r0, [r6] + mov r0, r8 + ldr r1, [sp, 0x8] + mov r2, sp + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0xC] + ldr r2, [sp, 0x14] + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x10] + mov r2, r10 + bl SetMonData + mov r0, r8 + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x18] + bl SetMonData + mov r0, r8 + movs r1, 0x15 + adds r2, r6, 0 + bl SetMonData + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA0D8: .4byte gUnknown_08208238 + thumb_func_end sub_80F9FDC + + thumb_func_start sub_80FA0DC +sub_80FA0DC: @ 80FA0DC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _080FA13C @ =gUnknown_0202E8CC + mov r8, r0 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _080FA140 @ =gPlayerParty + adds r0, r5 + ldr r4, _080FA144 @ =gUnknown_0202E8CE + ldrb r2, [r4] + movs r1, 0 + bl SetMonMoveSlot + mov r1, r8 + ldrh r0, [r1] + muls r0, r6 + adds r0, r5 + ldrb r1, [r4] + bl RemoveMonPPBonus + ldrh r4, [r4] + cmp r4, 0x2 + bhi _080FA130 +_080FA10E: + ldr r0, _080FA13C @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080FA140 @ =gPlayerParty + adds r0, r1 + lsls r1, r4, 24 + lsrs r1, 24 + adds r4, 0x1 + lsls r2, r4, 24 + lsrs r2, 24 + bl sub_80F9FDC + lsls r4, 16 + lsrs r4, 16 + cmp r4, 0x2 + bls _080FA10E +_080FA130: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FA13C: .4byte gUnknown_0202E8CC +_080FA140: .4byte gPlayerParty +_080FA144: .4byte gUnknown_0202E8CE + thumb_func_end sub_80FA0DC + + thumb_func_start sub_80FA148 +sub_80FA148: @ 80FA148 + push {r4,lr} + ldr r0, _080FA170 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080FA174 @ =gPlayerParty + adds r0, r1 + ldr r4, _080FA178 @ =gScriptResult + movs r1, 0 + strh r1, [r4] + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _080FA16A + movs r0, 0x1 + strh r0, [r4] +_080FA16A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA170: .4byte gUnknown_0202E8CC +_080FA174: .4byte gPlayerParty +_080FA178: .4byte gScriptResult + thumb_func_end sub_80FA148 + + thumb_func_start sub_80FA17C +sub_80FA17C: @ 80FA17C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + ldr r7, _080FA1B4 @ =gSaveBlock1 + ldr r0, _080FA1B8 @ =0x00002dd4 + adds r0, r7 + mov r9, r0 + movs r1, 0x1 + mov r8, r1 +_080FA192: + movs r0, 0xA + bl sub_80EB72C + lsls r4, r6, 3 + adds r5, r4, r7 + ldr r2, _080FA1BC @ =0x00002dd8 + adds r1, r5, r2 + strh r0, [r1] + bl Random + mov r1, r8 + ands r1, r0 + cmp r1, 0 + beq _080FA1C0 + movs r0, 0xC + b _080FA1C2 + .align 2, 0 +_080FA1B4: .4byte gSaveBlock1 +_080FA1B8: .4byte 0x00002dd4 +_080FA1BC: .4byte 0x00002dd8 +_080FA1C0: + movs r0, 0xD +_080FA1C2: + bl sub_80EB72C + ldr r2, _080FA214 @ =0x00002dda + adds r1, r5, r2 + strh r0, [r1] + bl Random + adds r3, r4, r7 + mov r2, r8 + ands r2, r0 + ldr r5, _080FA218 @ =0x00002dd5 + adds r3, r5 + lsls r2, 6 + ldrb r0, [r3] + movs r5, 0x41 + negs r5, r5 + adds r1, r5, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + mov r1, r9 + adds r0, r4, r1 + bl sub_80FA740 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA192 + ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4 + movs r1, 0x5 + movs r2, 0 + bl sub_80FA46C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA214: .4byte 0x00002dda +_080FA218: .4byte 0x00002dd5 +_080FA21C: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA17C + + thumb_func_start sub_80FA220 +sub_80FA220: @ 80FA220 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FA236 + b _080FA34E +_080FA236: + lsls r0, r1, 2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + mov r10, r0 + movs r1, 0x7F + mov r9, r1 + movs r2, 0x80 + negs r2, r2 + mov r8, r2 +_080FA24A: + ldr r2, [sp] + mov r4, r10 + lsls r0, r4, 3 + ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4 + adds r5, r0, r1 + ldrb r6, [r5, 0x1] + movs r0, 0x40 + ands r0, r6 + cmp r0, 0 + bne _080FA2A0 + ldrb r4, [r5] + lsls r3, r4, 25 + lsrs r1, r3, 25 + lsls r0, r2, 16 + lsrs r0, 16 + cmp r1, r0 + bcc _080FA290 + adds r0, r1, 0 + subs r0, r2 + mov r2, r9 + ands r0, r2 + mov r1, r8 + ands r1, r4 + orrs r1, r0 + strb r1, [r5] + movs r0, 0x7F + ands r1, r0 + cmp r1, 0 + bne _080FA336 + movs r0, 0x40 + orrs r0, r6 + b _080FA334 + .align 2, 0 +_080FA28C: .4byte gSaveBlock1 + 0x2DD4 +_080FA290: + lsrs r0, r3, 25 + subs r2, r0 + mov r0, r8 + ands r0, r4 + strb r0, [r5] + movs r0, 0x40 + orrs r0, r6 + strb r0, [r5, 0x1] +_080FA2A0: + ldrb r7, [r5] + lsls r0, r7, 25 + lsrs r0, 25 + adds r4, r0, r2 + ldrh r0, [r5] + lsls r6, r0, 18 + lsls r0, r4, 16 + lsrs r0, 16 + lsrs r1, r6, 25 + cmp r0, r1 + bls _080FA310 + adds r0, r4, 0 + bl __umodsi3 + adds r3, r0, 0 + lsrs r1, r6, 25 + adds r0, r4, 0 + str r3, [sp, 0x4] + bl __udivsi3 + adds r4, r0, 0 + movs r0, 0x1 + eors r4, r0 + ands r4, r0 + lsls r2, r4, 6 + ldrb r0, [r5, 0x1] + movs r4, 0x41 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x1] + movs r1, 0x40 + ands r0, r1 + ldr r3, [sp, 0x4] + cmp r0, 0 + beq _080FA2FA + adds r1, r3, 0 + mov r0, r9 + ands r1, r0 + mov r0, r8 + ands r0, r7 + orrs r0, r1 + strb r0, [r5] + b _080FA336 +_080FA2FA: + ldrh r0, [r5] + lsls r0, 18 + lsrs r0, 25 + subs r0, r3 + mov r1, r9 + ands r0, r1 + mov r1, r8 + ands r1, r7 + orrs r1, r0 + strb r1, [r5] + b _080FA336 +_080FA310: + mov r2, r9 + ands r4, r2 + mov r0, r8 + ands r0, r7 + orrs r0, r4 + strb r0, [r5] + lsls r0, 25 + ldrh r1, [r5] + lsls r1, 18 + lsrs r0, 25 + lsrs r1, 25 + cmp r0, r1 + bne _080FA336 + ldrb r0, [r5, 0x1] + movs r4, 0x41 + negs r4, r4 + adds r1, r4, 0 + ands r0, r1 +_080FA334: + strb r0, [r5, 0x1] +_080FA336: + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + cmp r0, 0x4 + bls _080FA24A + ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4 + movs r1, 0x5 + movs r2, 0 + bl sub_80FA46C +_080FA34E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA360: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA220 + + thumb_func_start sub_80FA364 +sub_80FA364: @ 80FA364 + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0 + movs r1, 0 + str r0, [sp] + str r1, [sp, 0x4] + adds r0, r4, 0 + bl sub_80FA7C8 + lsls r0, 24 + cmp r0, 0 + bne _080FA462 + ldr r5, _080FA3B4 @ =0x00000833 + adds r0, r5, 0 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080FA3C8 + adds r0, r5, 0 + bl FlagSet + ldr r0, _080FA3B8 @ =0x00000834 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080FA3C8 + ldr r1, _080FA3BC @ =gSaveBlock1 + ldrh r2, [r4] + ldr r3, _080FA3C0 @ =0x00002dd8 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r4, 0x2] + ldr r2, _080FA3C4 @ =0x00002dda + adds r1, r2 + strh r0, [r1] + movs r0, 0x1 + b _080FA464 + .align 2, 0 +_080FA3B4: .4byte 0x00000833 +_080FA3B8: .4byte 0x00000834 +_080FA3BC: .4byte gSaveBlock1 +_080FA3C0: .4byte 0x00002dd8 +_080FA3C4: .4byte 0x00002dda +_080FA3C8: + ldrh r1, [r4, 0x2] + lsls r1, 16 + ldrh r0, [r4] + orrs r0, r1 + str r0, [sp, 0x4] + movs r1, 0x80 + lsls r1, 7 + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] + mov r0, sp + bl sub_80FA740 + movs r6, 0 +_080FA3E4: + lsls r4, r6, 3 + ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4 + adds r1, r4, r5 + mov r0, sp + movs r2, 0 + bl atk90_changetypestoenemyattacktype + lsls r0, 24 + adds r7, r4, 0 + cmp r0, 0 + beq _080FA450 + movs r3, 0x4 + ldr r0, _080FA448 @ =0xffffd22c + adds r0, r5 + mov r12, r0 + cmp r3, r6 + bls _080FA428 + mov r5, r12 + ldr r4, _080FA44C @ =0x00002dd4 +_080FA40A: + lsls r2, r3, 3 + adds r2, r5 + adds r2, r4 + subs r3, 0x1 + lsls r0, r3, 3 + adds r0, r5 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsls r3, 16 + lsrs r3, 16 + cmp r3, r6 + bhi _080FA40A +_080FA428: + mov r3, r12 + adds r2, r7, r3 + ldr r0, _080FA44C @ =0x00002dd4 + adds r2, r0 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0 + cmp r6, 0 + bne _080FA464 + movs r0, 0x1 + b _080FA464 + .align 2, 0 +_080FA444: .4byte gSaveBlock1 + 0x2DD4 +_080FA448: .4byte 0xffffd22c +_080FA44C: .4byte 0x00002dd4 +_080FA450: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA3E4 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r5, 0x20] + str r1, [r5, 0x24] +_080FA462: + movs r0, 0 +_080FA464: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FA364 + + thumb_func_start sub_80FA46C +sub_80FA46C: @ 80FA46C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r2, 0 + cmp r2, r7 + bcs _080FA4D4 +_080FA488: + adds r1, r2, 0x1 + lsls r0, r1, 16 + lsrs r5, r0, 16 + mov r8, r1 + cmp r5, r7 + bcs _080FA4CA + lsls r0, r2, 3 + mov r1, r9 + adds r6, r1, r0 +_080FA49A: + lsls r0, r5, 3 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + adds r1, r6, 0 + mov r2, r10 + bl atk90_changetypestoenemyattacktype + lsls r0, 24 + cmp r0, 0 + beq _080FA4C0 + ldr r2, [r4] + ldr r3, [r4, 0x4] + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + str r2, [r6] + str r3, [r6, 0x4] +_080FA4C0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r7 + bcc _080FA49A +_080FA4CA: + mov r1, r8 + lsls r0, r1, 16 + lsrs r2, r0, 16 + cmp r2, r7 + bcc _080FA488 +_080FA4D4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FA46C + + thumb_func_start sub_80FA4E4 +sub_80FA4E4: @ 80FA4E4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + adds r5, r1, 0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r4, 0 + cmp r4, r8 + bcs _080FA520 +_080FA500: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080FA554 @ =0x02007800 + adds r0, r1 + adds r1, r4, 0 + muls r1, r5 + adds r1, r6, r1 + movs r2, 0x28 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _080FA500 +_080FA520: + ldr r5, _080FA554 @ =0x02007800 + movs r0, 0x80 + lsls r0, 1 + adds r3, r5, r0 + movs r7, 0 + movs r4, 0 + cmp r4, r8 + bcs _080FA588 +_080FA530: + movs r6, 0 +_080FA532: + adds r0, r5, 0 + adds r1, r7, 0 + str r3, [sp] + bl sub_80FA828 + lsls r0, 16 + asrs r0, 16 + ldr r3, [sp] + cmp r0, 0 + bge _080FA558 + ldr r0, [r5] + ldr r1, [r5, 0x4] + stm r3!, {r0,r1} + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _080FA572 + .align 2, 0 +_080FA554: .4byte 0x02007800 +_080FA558: + lsls r1, r0, 3 + ldr r0, _080FA5B4 @ =0x02007900 + adds r2, r1, r0 + ldrb r1, [r2] + lsls r1, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bcs _080FA572 + ldr r0, [r5] + ldr r1, [r5, 0x4] + str r0, [r2] + str r1, [r2, 0x4] +_080FA572: + adds r5, 0x8 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _080FA532 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _080FA530 +_080FA588: + ldr r4, _080FA5B4 @ =0x02007900 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x2 + bl sub_80FA46C + adds r5, r4, 0 + ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4 + movs r4, 0 +_080FA59A: + ldm r5!, {r0,r1} + stm r3!, {r0,r1} + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080FA59A + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FA5B4: .4byte 0x02007900 +_080FA5B8: .4byte gSaveBlock1 + 0x2DD4 + thumb_func_end sub_80FA4E4 + + thumb_func_start sub_80FA5BC +sub_80FA5BC: @ 80FA5BC + push {lr} + ldr r0, _080FA5D8 @ =gUnknown_0202E8CC + ldrh r1, [r0] + lsls r1, 3 + ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4 + adds r1, r0 + ldr r0, _080FA5E0 @ =gStringVar1 + adds r1, 0x4 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertEasyChatWordsToString + pop {r0} + bx r0 + .align 2, 0 +_080FA5D8: .4byte gUnknown_0202E8CC +_080FA5DC: .4byte gSaveBlock1 + 0x2DD4 +_080FA5E0: .4byte gStringVar1 + thumb_func_end sub_80FA5BC + + thumb_func_start sub_80FA5E4 +sub_80FA5E4: @ 80FA5E4 + push {r4,lr} + movs r4, 0 + ldr r3, _080FA630 @ =gSaveBlock1 + ldr r1, _080FA634 @ =0x00002dd4 + adds r0, r3, r1 + ldrb r1, [r0] + lsls r1, 25 + lsrs r1, 25 + ldr r2, _080FA638 @ =0x00002ddc + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 25 + lsrs r0, 25 + subs r1, r0 + cmp r1, 0x1 + bgt _080FA626 + ldr r1, _080FA63C @ =0x00002dd5 + adds r0, r3, r1 + ldrb r1, [r0] + movs r2, 0x40 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FA626 + ldr r1, _080FA640 @ =0x00002ddd + adds r0, r3, r1 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + negs r0, r0 + lsrs r4, r0, 31 +_080FA626: + ldr r0, _080FA644 @ =gScriptResult + strh r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA630: .4byte gSaveBlock1 +_080FA634: .4byte 0x00002dd4 +_080FA638: .4byte 0x00002ddc +_080FA63C: .4byte 0x00002dd5 +_080FA640: .4byte 0x00002ddd +_080FA644: .4byte gScriptResult + thumb_func_end sub_80FA5E4 + + thumb_func_start sub_80FA648 +sub_80FA648: @ 80FA648 + ldr r2, _080FA664 @ =gScriptResult + ldr r0, _080FA668 @ =gSaveBlock1 + ldr r3, _080FA66C @ =0x00002dd8 + adds r1, r0, r3 + adds r3, 0x2 + adds r0, r3 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_080FA664: .4byte gScriptResult +_080FA668: .4byte gSaveBlock1 +_080FA66C: .4byte 0x00002dd8 + thumb_func_end sub_80FA648 + + thumb_func_start atk90_changetypestoenemyattacktype +atk90_changetypestoenemyattacktype: @ 80FA670 + push {r4,r5,lr} + adds r3, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r2, 0 + cmp r2, 0x1 + beq _080FA6B6 + cmp r2, 0x1 + bgt _080FA68A + cmp r2, 0 + beq _080FA690 + b _080FA732 +_080FA68A: + cmp r0, 0x2 + beq _080FA6E2 + b _080FA732 +_080FA690: + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r0, [r3] + lsls r3, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r3, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r3, 25 + lsrs r0, r2, 25 + b _080FA6DA +_080FA6B6: + ldrh r0, [r3] + lsls r4, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bcc _080FA6DE + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E +_080FA6DA: + cmp r1, r0 + bcs _080FA732 +_080FA6DE: + movs r0, 0 + b _080FA73A +_080FA6E2: + ldrb r0, [r3] + lsls r1, r0, 25 + ldrb r0, [r5] + lsls r0, 25 + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r0, [r3] + lsls r4, r0, 18 + ldrh r0, [r5] + lsls r2, r0, 18 + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bhi _080FA72E + lsrs r1, r4, 25 + lsrs r0, r2, 25 + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x2] + ldrh r0, [r5, 0x2] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x4] + ldrh r0, [r5, 0x4] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE + ldrh r1, [r3, 0x6] + ldrh r0, [r5, 0x6] + cmp r1, r0 + bhi _080FA72E + cmp r1, r0 + bcc _080FA6DE +_080FA72E: + movs r0, 0x1 + b _080FA73A +_080FA732: + bl Random + movs r1, 0x1 + ands r0, r1 +_080FA73A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end atk90_changetypestoenemyattacktype + + thumb_func_start sub_80FA740 +sub_80FA740: @ 80FA740 + push {r4,r5,lr} + adds r5, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x32 + bls _080FA782 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x50 + bls _080FA782 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x62 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_080FA782: + adds r1, r4, 0 + adds r1, 0x1E + movs r0, 0x7F + ands r1, r0 + lsls r1, 7 + ldrh r2, [r5] + ldr r0, _080FA7C4 @ =0xffffc07f + ands r0, r2 + orrs r0, r1 + strh r0, [r5] + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0x1 + bl __modsi3 + adds r0, 0x1E + movs r1, 0x7F + ands r0, r1 + ldrb r2, [r5] + movs r1, 0x80 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + bl Random + strh r0, [r5, 0x2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FA7C4: .4byte 0xffffc07f + thumb_func_end sub_80FA740 + + thumb_func_start sub_80FA7C8 +sub_80FA7C8: @ 80FA7C8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_080FA7CE: + lsls r1, r4, 3 + ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8 + adds r1, r0 + adds r0, r5, 0 + bl sub_80FA7FC + lsls r0, 24 + cmp r0, 0 + beq _080FA7E8 + movs r0, 0x1 + b _080FA7F4 + .align 2, 0 +_080FA7E4: .4byte gSaveBlock1 + 0x2DD8 +_080FA7E8: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080FA7CE + movs r0, 0 +_080FA7F4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FA7C8 + + thumb_func_start sub_80FA7FC +sub_80FA7FC: @ 80FA7FC + push {r4,lr} + adds r3, r0, 0 + adds r2, r1, 0 + movs r4, 0 +_080FA804: + ldrh r1, [r3] + ldrh r0, [r2] + adds r2, 0x2 + adds r3, 0x2 + cmp r1, r0 + beq _080FA814 + movs r0, 0 + b _080FA820 +_080FA814: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _080FA804 + movs r0, 0x1 +_080FA820: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FA7FC + + thumb_func_start sub_80FA828 +sub_80FA828: @ 80FA828 + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r6, _080FA84C @ =0x02007900 + movs r4, 0 + cmp r4, r5 + bge _080FA862 +_080FA838: + adds r1, r6, 0x4 + adds r0, r7, 0x4 + bl sub_80FA7FC + lsls r0, 24 + cmp r0, 0 + beq _080FA850 + lsls r0, r4, 16 + asrs r0, 16 + b _080FA866 + .align 2, 0 +_080FA84C: .4byte 0x02007900 +_080FA850: + adds r6, 0x8 + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r5 + blt _080FA838 +_080FA862: + movs r0, 0x1 + negs r0, r0 +_080FA866: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FA828 + + thumb_func_start sub_80FA86C +sub_80FA86C: @ 80FA86C + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 16 + lsrs r1, 16 + movs r3, 0 + ldr r2, _080FA890 @ =gUnknown_083E5A20 +_080FA87A: + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, r4 + bne _080FA894 + movs r0, 0x1 + ldrsb r0, [r2, r0] + cmp r0, r1 + bne _080FA894 + adds r0, r3, 0x1 + b _080FA89E + .align 2, 0 +_080FA890: .4byte gUnknown_083E5A20 +_080FA894: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, 0x15 + bls _080FA87A + movs r0, 0 +_080FA89E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FA86C + + thumb_func_start unref_sub_80FA8A4 +unref_sub_80FA8A4: @ 80FA8A4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + bl sub_80FA86C + cmp r0, 0 + beq _080FA8C4 + lsls r0, 3 + ldr r1, _080FA8C0 @ =gUnknown_083E5A18 + adds r0, r1 + b _080FA8C6 + .align 2, 0 +_080FA8C0: .4byte gUnknown_083E5A18 +_080FA8C4: + movs r0, 0 +_080FA8C6: + pop {r1} + bx r1 + thumb_func_end unref_sub_80FA8A4 + + thumb_func_start sub_80FA8CC +sub_80FA8CC: @ 80FA8CC + push {lr} + cmp r0, 0 + beq _080FA8E4 + cmp r0, 0x16 + bhi _080FA8E4 + lsls r0, 3 + ldr r1, _080FA8E0 @ =gUnknown_083E5A18 + adds r0, r1 + b _080FA8E6 + .align 2, 0 +_080FA8E0: .4byte gUnknown_083E5A18 +_080FA8E4: + movs r0, 0 +_080FA8E6: + pop {r1} + bx r1 + thumb_func_end sub_80FA8CC + + thumb_func_start sub_80FA8EC +sub_80FA8EC: @ 80FA8EC + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_80FA904 +_080FA8F6: + bl sub_80FA940 + lsls r0, 24 + cmp r0, 0 + bne _080FA8F6 + pop {r0} + bx r0 + thumb_func_end sub_80FA8EC + + thumb_func_start sub_80FA904 +sub_80FA904: @ 80FA904 + push {r4,lr} + lsls r1, 24 + lsrs r1, 24 + ldr r3, _080FA928 @ =gUnknown_020388CC + str r0, [r3] + movs r2, 0x79 + adds r2, r0 + mov r12, r2 + movs r2, 0 + mov r4, r12 + strb r2, [r4] + adds r0, 0x78 + strb r1, [r0] + ldr r3, [r3] + cmp r1, 0 + bne _080FA930 + ldr r0, _080FA92C @ =sub_80FAB78 + b _080FA932 + .align 2, 0 +_080FA928: .4byte gUnknown_020388CC +_080FA92C: .4byte sub_80FAB78 +_080FA930: + ldr r0, _080FA93C @ =sub_80FAD04 +_080FA932: + str r0, [r3, 0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FA93C: .4byte sub_80FAD04 + thumb_func_end sub_80FA904 + + thumb_func_start sub_80FA940 +sub_80FA940: @ 80FA940 + push {r4,r5,lr} + sub sp, 0xC + ldr r0, _080FA95C @ =gUnknown_020388CC + ldr r0, [r0] + adds r0, 0x79 + ldrb r0, [r0] + cmp r0, 0x7 + bls _080FA952 + b _080FAAE2 +_080FA952: + lsls r0, 2 + ldr r1, _080FA960 @ =_080FA964 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FA95C: .4byte gUnknown_020388CC +_080FA960: .4byte _080FA964 + .align 2, 0 +_080FA964: + .4byte _080FA984 + .4byte _080FA998 + .4byte _080FA9AC + .4byte _080FA9BC + .4byte _080FA9D8 + .4byte _080FA9F4 + .4byte _080FAA38 + .4byte _080FAAB4 +_080FA984: + ldr r0, _080FA990 @ =gUnknown_083E5DA0 + ldr r1, _080FA994 @ =0x06008000 + bl LZ77UnCompVram + b _080FAAF4 + .align 2, 0 +_080FA990: .4byte gUnknown_083E5DA0 +_080FA994: .4byte 0x06008000 +_080FA998: + ldr r0, _080FA9A4 @ =gUnknown_083E6B04 + ldr r1, _080FA9A8 @ =0x0600e000 + bl LZ77UnCompVram + b _080FAAF4 + .align 2, 0 +_080FA9A4: .4byte gUnknown_083E6B04 +_080FA9A8: .4byte 0x0600e000 +_080FA9AC: + ldr r0, _080FA9B8 @ =gUnknown_083E5D60 + movs r1, 0x70 + movs r2, 0x60 + bl LoadPalette + b _080FAAF4 + .align 2, 0 +_080FA9B8: .4byte gUnknown_083E5D60 +_080FA9BC: + ldr r0, _080FA9D0 @ =gUnknown_083E5AF0 + ldr r1, _080FA9D4 @ =gUnknown_020388CC + ldr r1, [r1] + movs r2, 0xC0 + lsls r2, 1 + adds r1, r2 + bl LZ77UnCompWram + b _080FAAF4 + .align 2, 0 +_080FA9D0: .4byte gUnknown_083E5AF0 +_080FA9D4: .4byte gUnknown_020388CC +_080FA9D8: + ldr r0, _080FA9EC @ =gUnknown_083E5B34 + ldr r1, _080FA9F0 @ =gUnknown_020388CC + ldr r1, [r1] + movs r3, 0xA0 + lsls r3, 2 + adds r1, r3 + bl LZ77UnCompWram + b _080FAAF4 + .align 2, 0 +_080FA9EC: .4byte gUnknown_083E5B34 +_080FA9F0: .4byte gUnknown_020388CC +_080FA9F4: + bl sub_80FB32C + ldr r4, _080FAA34 @ =gUnknown_020388CC + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x54 + ldrh r1, [r0] + adds r0, 0x20 + strh r1, [r0] + subs r0, 0x1E + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x76 + strh r0, [r1] + ldrh r0, [r2, 0x14] + bl sub_80FB758 + ldr r1, [r4] + strb r0, [r1, 0x16] + ldr r0, [r4] + ldrh r0, [r0, 0x14] + bl sub_80FB9C0 + adds r1, r0, 0 + ldr r0, [r4] + strh r1, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 + b _080FAAF4 + .align 2, 0 +_080FAA34: .4byte gUnknown_020388CC +_080FAA38: + ldr r0, _080FAA60 @ =gUnknown_020388CC + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x78 + ldrb r1, [r0] + cmp r1, 0 + bne _080FAA64 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80FB170 + b _080FAAF4 + .align 2, 0 +_080FAA60: .4byte gUnknown_020388CC +_080FAA64: + adds r1, r4, 0 + adds r1, 0x54 + ldrh r0, [r1] + lsls r0, 3 + subs r0, 0x34 + adds r2, r4, 0 + adds r2, 0x5C + movs r3, 0 + strh r0, [r2] + movs r5, 0x56 + adds r5, r4 + mov r12, r5 + ldrh r0, [r5] + lsls r0, 3 + subs r0, 0x44 + adds r5, r4, 0 + adds r5, 0x5E + strh r0, [r5] + ldrh r1, [r1] + adds r0, r4, 0 + adds r0, 0x64 + strh r1, [r0] + mov r0, r12 + ldrh r1, [r0] + adds r0, r4, 0 + adds r0, 0x66 + strh r1, [r0] + movs r1, 0 + ldrsh r0, [r2, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + movs r2, 0x80 + str r2, [sp] + str r2, [sp, 0x4] + str r3, [sp, 0x8] + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + b _080FAAF4 +_080FAAB4: + bl sub_80FBA18 + bl sub_80FB260 + ldr r2, _080FAAE8 @ =gUnknown_020388CC + ldr r0, [r2] + movs r1, 0 + str r1, [r0, 0x1C] + str r1, [r0, 0x20] + adds r0, 0x7A + strb r1, [r0] + ldr r0, [r2] + adds r0, 0x7E + strb r1, [r0] + ldr r1, _080FAAEC @ =REG_BG2CNT + ldr r3, _080FAAF0 @ =0x0000bc8a + adds r0, r3, 0 + strh r0, [r1] + ldr r1, [r2] + adds r1, 0x79 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080FAAE2: + movs r0, 0 + b _080FAB02 + .align 2, 0 +_080FAAE8: .4byte gUnknown_020388CC +_080FAAEC: .4byte REG_BG2CNT +_080FAAF0: .4byte 0x0000bc8a +_080FAAF4: + ldr r0, _080FAB0C @ =gUnknown_020388CC + ldr r1, [r0] + adds r1, 0x79 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x1 +_080FAB02: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FAB0C: .4byte gUnknown_020388CC + thumb_func_end sub_80FA940 + + thumb_func_start sub_80FAB10 +sub_80FAB10: @ 80FAB10 + push {r4,lr} + ldr r4, _080FAB5C @ =gUnknown_020388CC + ldr r0, [r4] + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080FAB34 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FAB34: + ldr r0, [r4] + ldr r0, [r0, 0x20] + cmp r0, 0 + beq _080FAB54 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x70 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x72 + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FAB54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FAB5C: .4byte gUnknown_020388CC + thumb_func_end sub_80FAB10 + + thumb_func_start sub_80FAB60 +sub_80FAB60: @ 80FAB60 + push {lr} + ldr r0, _080FAB74 @ =gUnknown_020388CC + ldr r0, [r0] + ldr r0, [r0, 0x18] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080FAB74: .4byte gUnknown_020388CC + thumb_func_end sub_80FAB60 + + thumb_func_start sub_80FAB78 +sub_80FAB78: @ 80FAB78 + push {r4,lr} + movs r4, 0 + ldr r2, _080FAC14 @ =gUnknown_020388CC + ldr r0, [r2] + adds r0, 0x7B + strb r4, [r0] + ldr r0, [r2] + adds r0, 0x7C + strb r4, [r0] + ldr r3, _080FAC18 @ =gMain + ldrh r1, [r3, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FABAA + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + cmp r0, 0x2 + bls _080FABAA + adds r1, 0x7C + movs r0, 0xFF + strb r0, [r1] + movs r4, 0x1 +_080FABAA: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FABC8 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x56 + ldrh r0, [r0] + cmp r0, 0xF + bhi _080FABC8 + adds r1, 0x7C + movs r0, 0x1 + strb r0, [r1] + movs r4, 0x1 +_080FABC8: + ldrh r1, [r3, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080FABE6 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + cmp r0, 0x1 + bls _080FABE6 + adds r1, 0x7B + movs r0, 0xFF + strb r0, [r1] + movs r4, 0x1 +_080FABE6: + ldrh r1, [r3, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080FAC04 + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + cmp r0, 0x1B + bhi _080FAC04 + adds r1, 0x7B + movs r0, 0x1 + strb r0, [r1] + movs r4, 0x1 +_080FAC04: + ldrh r3, [r3, 0x2E] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _080FAC1C + movs r4, 0x4 + b _080FAC26 + .align 2, 0 +_080FAC14: .4byte gUnknown_020388CC +_080FAC18: .4byte gMain +_080FAC1C: + movs r0, 0x2 + ands r0, r3 + cmp r0, 0 + beq _080FAC26 + movs r4, 0x5 +_080FAC26: + cmp r4, 0x1 + bne _080FAC38 + ldr r0, [r2] + adds r0, 0x7A + movs r1, 0x4 + strb r1, [r0] + ldr r1, [r2] + ldr r0, _080FAC40 @ =_swiopen + str r0, [r1, 0x18] +_080FAC38: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FAC40: .4byte _swiopen + thumb_func_end sub_80FAB78 + + thumb_func_start _swiopen +_swiopen: @ 80FAC44 + push {r4,r5,lr} + ldr r5, _080FAC5C @ =gUnknown_020388CC + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7A + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _080FAC60 + movs r0, 0x2 + b _080FACFA + .align 2, 0 +_080FAC5C: .4byte gUnknown_020388CC +_080FAC60: + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080FAC76 + adds r1, 0x54 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080FAC76: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080FAC8E + adds r1, 0x54 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_080FAC8E: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080FACA6 + adds r1, 0x56 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080FACA6: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bge _080FACBE + adds r1, 0x56 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] +_080FACBE: + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + adds r1, 0x56 + ldrh r1, [r1] + bl sub_80FB2EC + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_80FB758 + ldr r1, [r5] + strb r0, [r1, 0x16] + ldr r0, [r5] + ldrh r1, [r0, 0x14] + cmp r4, r1 + beq _080FACEE + strh r4, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 +_080FACEE: + bl sub_80FBA18 + ldr r1, [r5] + ldr r0, _080FAD00 @ =sub_80FAB78 + str r0, [r1, 0x18] + movs r0, 0x3 +_080FACFA: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FAD00: .4byte sub_80FAB78 + thumb_func_end _swiopen + + thumb_func_start sub_80FAD04 +sub_80FAD04: @ 80FAD04 + push {r4-r6,lr} + movs r4, 0 + ldr r3, _080FADD4 @ =gUnknown_020388CC + ldr r0, [r3] + mov r12, r0 + adds r0, 0x6A + strh r4, [r0] + mov r5, r12 + adds r5, 0x68 + strh r4, [r5] + ldr r2, _080FADD8 @ =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0 + beq _080FAD3E + mov r0, r12 + adds r0, 0x5E + movs r2, 0 + ldrsh r1, [r0, r2] + movs r0, 0x34 + negs r0, r0 + cmp r1, r0 + ble _080FAD3E + ldr r0, _080FADDC @ =0x0000ffff + strh r0, [r5] + movs r4, 0x1 +_080FAD3E: + ldrh r1, [r3, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FAD5E + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x5E + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0x3B + bgt _080FAD5E + adds r1, 0x68 + movs r0, 0x1 + strh r0, [r1] + movs r4, 0x1 +_080FAD5E: + ldrh r1, [r3, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080FAD84 + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0x5C + movs r5, 0 + ldrsh r1, [r0, r5] + movs r0, 0x2C + negs r0, r0 + cmp r1, r0 + ble _080FAD84 + adds r1, r2, 0 + adds r1, 0x6A + ldr r0, _080FADDC @ =0x0000ffff + strh r0, [r1] + movs r4, 0x1 +_080FAD84: + ldrh r1, [r3, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080FADA4 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x5C + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0xAB + bgt _080FADA4 + adds r1, 0x6A + movs r0, 0x1 + strh r0, [r1] + movs r4, 0x1 +_080FADA4: + ldrh r2, [r3, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080FADB0 + movs r4, 0x4 +_080FADB0: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _080FADBA + movs r4, 0x5 +_080FADBA: + cmp r4, 0x1 + bne _080FADCA + ldr r0, [r6] + ldr r1, _080FADE0 @ =sub_80FADE4 + str r1, [r0, 0x18] + adds r0, 0x6C + movs r1, 0 + strh r1, [r0] +_080FADCA: + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080FADD4: .4byte gUnknown_020388CC +_080FADD8: .4byte gMain +_080FADDC: .4byte 0x0000ffff +_080FADE0: .4byte sub_80FADE4 + thumb_func_end sub_80FAD04 + + thumb_func_start sub_80FADE4 +sub_80FADE4: @ 80FADE4 + push {r4,r5,lr} + ldr r5, _080FAEB4 @ =gUnknown_020388CC + ldr r2, [r5] + adds r3, r2, 0 + adds r3, 0x5E + adds r0, r2, 0 + adds r0, 0x68 + ldrh r0, [r0] + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + adds r1, r2, 0 + adds r1, 0x5C + adds r0, r2, 0 + adds r0, 0x6A + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + movs r4, 0 + ldrsh r0, [r1, r4] + movs r2, 0 + ldrsh r1, [r3, r2] + bl sub_80FB238 + ldr r2, [r5] + adds r1, r2, 0 + adds r1, 0x6C + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bne _080FAEBC + adds r0, r2, 0 + adds r0, 0x5C + movs r3, 0 + ldrsh r1, [r0, r3] + adds r0, r1, 0 + adds r0, 0x2C + cmp r0, 0 + bge _080FAE3C + adds r0, 0x7 +_080FAE3C: + asrs r0, 3 + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r0, r2, 0 + adds r0, 0x5E + movs r4, 0 + ldrsh r1, [r0, r4] + adds r0, r1, 0 + adds r0, 0x34 + cmp r0, 0 + bge _080FAE56 + adds r0, 0x7 +_080FAE56: + asrs r0, 3 + adds r0, 0x2 + lsls r0, 16 + lsrs r1, r0, 16 + adds r4, r2, 0 + adds r4, 0x64 + adds r0, r2, 0 + adds r0, 0x66 + ldrh r2, [r4] + cmp r3, r2 + bne _080FAE72 + ldrh r2, [r0] + cmp r1, r2 + beq _080FAEA0 +_080FAE72: + strh r3, [r4] + strh r1, [r0] + adds r0, r3, 0 + bl sub_80FB2EC + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_80FB758 + ldr r1, [r5] + strb r0, [r1, 0x16] + ldr r0, [r5] + ldrh r3, [r0, 0x14] + cmp r4, r3 + beq _080FAE9C + strh r4, [r0, 0x14] + ldrh r1, [r0, 0x14] + movs r2, 0x10 + bl sub_80FBFB4 +_080FAE9C: + bl sub_80FBA18 +_080FAEA0: + ldr r0, _080FAEB4 @ =gUnknown_020388CC + ldr r2, [r0] + adds r1, r2, 0 + adds r1, 0x6C + movs r0, 0 + strh r0, [r1] + ldr r0, _080FAEB8 @ =sub_80FAD04 + str r0, [r2, 0x18] + movs r0, 0x3 + b _080FAEBE + .align 2, 0 +_080FAEB4: .4byte gUnknown_020388CC +_080FAEB8: .4byte sub_80FAD04 +_080FAEBC: + movs r0, 0x2 +_080FAEBE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FADE4 + + thumb_func_start sub_80FAEC4 +sub_80FAEC4: @ 80FAEC4 + push {r4-r6,lr} + ldr r1, _080FAF40 @ =gUnknown_020388CC + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r3, [r0] + adds r5, r1, 0 + cmp r3, 0 + bne _080FAF48 + subs r0, 0x1A + strh r3, [r0] + subs r0, 0x2 + strh r3, [r0] + str r3, [r2, 0x40] + str r3, [r2, 0x3C] + adds r4, r2, 0 + adds r4, 0x54 + ldrh r0, [r4] + lsls r0, 3 + subs r0, 0x34 + adds r1, r2, 0 + adds r1, 0x60 + strh r0, [r1] + movs r0, 0x56 + adds r0, r2 + mov r12, r0 + ldrh r0, [r0] + lsls r0, 3 + subs r0, 0x44 + adds r3, r2, 0 + adds r3, 0x62 + strh r0, [r3] + movs r6, 0 + ldrsh r0, [r1, r6] + lsls r0, 8 + cmp r0, 0 + bge _080FAF10 + adds r0, 0xF +_080FAF10: + asrs r0, 4 + str r0, [r2, 0x44] + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 8 + cmp r0, 0 + bge _080FAF20 + adds r0, 0xF +_080FAF20: + asrs r0, 4 + str r0, [r2, 0x48] + ldrh r1, [r4] + adds r0, r2, 0 + adds r0, 0x64 + strh r1, [r0] + mov r3, r12 + ldrh r0, [r3] + adds r1, r2, 0 + adds r1, 0x66 + strh r0, [r1] + movs r0, 0x80 + lsls r0, 9 + str r0, [r2, 0x4C] + ldr r0, _080FAF44 @ =0xfffff800 + b _080FAFA6 + .align 2, 0 +_080FAF40: .4byte gUnknown_020388CC +_080FAF44: .4byte 0xfffff800 +_080FAF48: + adds r0, r2, 0 + adds r0, 0x5C + movs r6, 0 + ldrsh r0, [r0, r6] + lsls r0, 8 + str r0, [r2, 0x3C] + adds r0, r2, 0 + adds r0, 0x5E + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 8 + str r0, [r2, 0x40] + adds r0, r2, 0 + adds r0, 0x60 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r0, [r2, 0x3C] + cmp r0, 0 + bge _080FAF74 + adds r0, 0xF +_080FAF74: + asrs r0, 4 + negs r0, r0 + str r0, [r2, 0x44] + ldr r0, [r2, 0x40] + cmp r0, 0 + bge _080FAF82 + adds r0, 0xF +_080FAF82: + asrs r0, 4 + negs r0, r0 + str r0, [r2, 0x48] + adds r0, r2, 0 + adds r0, 0x64 + ldrh r1, [r0] + subs r0, 0x10 + strh r1, [r0] + adds r0, 0x12 + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x56 + strh r0, [r1] + movs r0, 0x80 + lsls r0, 8 + str r0, [r2, 0x4C] + movs r0, 0x80 + lsls r0, 4 +_080FAFA6: + str r0, [r2, 0x50] + ldr r0, [r5] + adds r0, 0x6E + movs r1, 0 + strh r1, [r0] + bl sub_80FBCA0 + bl sub_80FBDF8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80FAEC4 + + thumb_func_start sub_80FAFC0 +sub_80FAFC0: @ 80FAFC0 + push {r4-r6,lr} + sub sp, 0xC + ldr r0, _080FAFD8 @ =gUnknown_020388CC + ldr r3, [r0] + adds r2, r3, 0 + adds r2, 0x6E + ldrh r1, [r2] + adds r5, r0, 0 + cmp r1, 0xF + bls _080FAFDC + movs r0, 0 + b _080FB164 + .align 2, 0 +_080FAFD8: .4byte gUnknown_020388CC +_080FAFDC: + adds r0, r1, 0x1 + movs r1, 0 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bne _080FB050 + str r1, [r3, 0x44] + str r1, [r3, 0x48] + adds r0, r3, 0 + adds r0, 0x60 + ldrh r1, [r0] + subs r0, 0x4 + strh r1, [r0] + adds r0, 0x6 + ldrh r0, [r0] + adds r1, r3, 0 + adds r1, 0x5E + strh r0, [r1] + adds r1, 0x1A + ldrb r0, [r1] + movs r2, 0x80 + lsls r2, 9 + cmp r0, 0 + bne _080FB012 + movs r2, 0x80 + lsls r2, 8 +_080FB012: + str r2, [r3, 0x4C] + movs r2, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _080FB01E + movs r2, 0x1 +_080FB01E: + strb r2, [r1] + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x78 + ldrb r0, [r0] + ldr r2, _080FB048 @ =sub_80FAD04 + cmp r0, 0 + bne _080FB030 + ldr r2, _080FB04C @ =sub_80FAB78 +_080FB030: + str r2, [r1, 0x18] + adds r0, r1, 0 + adds r0, 0x58 + ldrh r0, [r0] + adds r1, 0x5A + ldrh r1, [r1] + bl sub_80FBB3C + bl sub_80FBE24 + movs r4, 0 + b _080FB132 + .align 2, 0 +_080FB048: .4byte sub_80FAD04 +_080FB04C: .4byte sub_80FAB78 +_080FB050: + ldr r2, [r3, 0x3C] + ldr r0, [r3, 0x44] + adds r2, r0 + str r2, [r3, 0x3C] + ldr r0, [r3, 0x40] + ldr r1, [r3, 0x48] + adds r0, r1 + str r0, [r3, 0x40] + asrs r2, 8 + adds r4, r3, 0 + adds r4, 0x5C + strh r2, [r4] + ldr r0, [r3, 0x40] + asrs r0, 8 + adds r1, r3, 0 + adds r1, 0x5E + strh r0, [r1] + ldr r0, [r3, 0x4C] + ldr r1, [r3, 0x50] + adds r0, r1 + str r0, [r3, 0x4C] + ldr r2, [r3, 0x44] + cmp r2, 0 + bge _080FB090 + adds r0, r3, 0 + adds r0, 0x60 + movs r6, 0 + ldrsh r1, [r4, r6] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + blt _080FB0A4 +_080FB090: + cmp r2, 0 + ble _080FB0B4 + adds r0, r3, 0 + adds r0, 0x60 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + ble _080FB0B4 +_080FB0A4: + ldr r3, [r5] + adds r0, r3, 0 + adds r0, 0x60 + ldrh r2, [r0] + subs r0, 0x4 + movs r1, 0 + strh r2, [r0] + str r1, [r3, 0x44] +_080FB0B4: + ldr r2, [r5] + ldr r4, [r2, 0x48] + cmp r4, 0 + bge _080FB0D0 + adds r0, r2, 0 + adds r0, 0x5E + adds r3, r2, 0 + adds r3, 0x62 + movs r6, 0 + ldrsh r1, [r0, r6] + movs r6, 0 + ldrsh r0, [r3, r6] + cmp r1, r0 + blt _080FB0E8 +_080FB0D0: + cmp r4, 0 + ble _080FB0FA + adds r1, r2, 0 + adds r1, 0x5E + adds r0, r2, 0 + adds r0, 0x62 + movs r2, 0 + ldrsh r1, [r1, r2] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r1, r0 + ble _080FB0FA +_080FB0E8: + ldr r2, [r5] + adds r0, r2, 0 + adds r0, 0x62 + ldrh r1, [r0] + adds r3, r2, 0 + adds r3, 0x5E + movs r0, 0 + strh r1, [r3] + str r0, [r2, 0x48] +_080FB0FA: + ldr r0, _080FB118 @ =gUnknown_020388CC + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r3, [r0] + cmp r3, 0 + bne _080FB120 + ldr r1, [r2, 0x4C] + ldr r0, _080FB11C @ =0x00007fff + cmp r1, r0 + bgt _080FB130 + adds r0, 0x1 + str r0, [r2, 0x4C] + str r3, [r2, 0x50] + b _080FB130 + .align 2, 0 +_080FB118: .4byte gUnknown_020388CC +_080FB11C: .4byte 0x00007fff +_080FB120: + ldr r0, [r2, 0x4C] + movs r1, 0x80 + lsls r1, 9 + cmp r0, r1 + ble _080FB130 + str r1, [r2, 0x4C] + movs r0, 0 + str r0, [r2, 0x50] +_080FB130: + movs r4, 0x1 +_080FB132: + ldr r0, _080FB16C @ =gUnknown_020388CC + ldr r3, [r0] + adds r0, r3, 0 + adds r0, 0x5C + movs r1, 0 + ldrsh r0, [r0, r1] + adds r1, r3, 0 + adds r1, 0x5E + movs r2, 0 + ldrsh r1, [r1, r2] + ldr r2, [r3, 0x4C] + lsls r2, 8 + lsrs r2, 16 + str r2, [sp] + ldr r2, [r3, 0x4C] + lsls r2, 8 + lsrs r2, 16 + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + adds r0, r4, 0 +_080FB164: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080FB16C: .4byte gUnknown_020388CC + thumb_func_end sub_80FAFC0 + + thumb_func_start sub_80FB170 +sub_80FB170: @ 80FB170 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, [sp, 0x24] + ldr r7, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r4, 16 + lsrs r4, 16 + mov r8, r4 + lsls r7, 16 + adds r4, r7, 0 + lsrs r4, 16 + mov r9, r4 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _080FB230 @ =gUnknown_020388CC + ldr r6, [r4] + ldr r7, _080FB234 @ =gSineTable + mov r12, r7 + adds r4, r5, 0 + adds r4, 0x40 + lsls r4, 1 + add r4, r12 + movs r7, 0 + ldrsh r4, [r4, r7] + str r4, [sp] + mov r7, r8 + muls r7, r4 + adds r4, r7, 0 + asrs r4, 8 + mov r10, r4 + str r4, [r6, 0x2C] + lsls r5, 1 + add r5, r12 + movs r7, 0 + ldrsh r5, [r5, r7] + negs r4, r5 + mov r7, r8 + muls r7, r4 + adds r4, r7, 0 + asrs r4, 8 + mov r12, r4 + str r4, [r6, 0x30] + mov r7, r9 + muls r7, r5 + adds r5, r7, 0 + asrs r5, 8 + str r5, [r6, 0x34] + ldr r7, [sp] + mov r4, r9 + muls r4, r7 + asrs r4, 8 + mov r8, r4 + str r4, [r6, 0x38] + lsls r0, 16 + asrs r0, 8 + lsls r2, 16 + asrs r2, 16 + lsls r4, r2, 8 + adds r0, r4 + lsls r3, 16 + asrs r3, 16 + adds r4, r3, 0 + muls r4, r5 + mov r5, r10 + muls r5, r2 + adds r4, r5 + subs r0, r4 + str r0, [r6, 0x24] + lsls r1, 16 + asrs r1, 8 + lsls r0, r3, 8 + adds r1, r0 + mov r0, r8 + muls r0, r3 + mov r3, r12 + muls r3, r2 + adds r2, r3, 0 + adds r0, r2 + subs r1, r0 + str r1, [r6, 0x28] + adds r6, 0x7D + movs r0, 0x1 + strb r0, [r6] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB230: .4byte gUnknown_020388CC +_080FB234: .4byte gSineTable + thumb_func_end sub_80FB170 + + thumb_func_start sub_80FB238 +sub_80FB238: @ 80FB238 + ldr r2, _080FB25C @ =gUnknown_020388CC + ldr r2, [r2] + lsls r0, 16 + asrs r0, 8 + movs r3, 0xE0 + lsls r3, 5 + adds r0, r3 + str r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 8 + movs r0, 0x90 + lsls r0, 6 + adds r1, r0 + str r1, [r2, 0x28] + adds r2, 0x7D + movs r0, 0x1 + strb r0, [r2] + bx lr + .align 2, 0 +_080FB25C: .4byte gUnknown_020388CC + thumb_func_end sub_80FB238 + + thumb_func_start sub_80FB260 +sub_80FB260: @ 80FB260 + push {lr} + ldr r0, _080FB29C @ =gUnknown_020388CC + ldr r2, [r0] + adds r3, r2, 0 + adds r3, 0x7D + ldrb r0, [r3] + cmp r0, 0 + beq _080FB298 + ldr r1, _080FB2A0 @ =REG_BG2PA + ldr r0, [r2, 0x2C] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x34] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x30] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x38] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r2, 0x24] + str r0, [r1] + adds r1, 0x4 + ldr r0, [r2, 0x28] + str r0, [r1] + movs r0, 0 + strb r0, [r3] +_080FB298: + pop {r0} + bx r0 + .align 2, 0 +_080FB29C: .4byte gUnknown_020388CC +_080FB2A0: .4byte REG_BG2PA + thumb_func_end sub_80FB260 + + thumb_func_start sub_80FB2A4 +sub_80FB2A4: @ 80FB2A4 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 16 + asrs r4, r0, 16 + lsls r1, 16 + asrs r5, r1, 16 + movs r0, 0x80 + lsls r0, 1 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x38 + movs r3, 0x48 + bl sub_80FB170 + bl sub_80FB260 + ldr r0, _080FB2E8 @ =gUnknown_020388CC + ldr r2, [r0] + ldr r1, [r2, 0x20] + cmp r1, 0 + beq _080FB2E0 + negs r0, r4 + strh r0, [r1, 0x24] + ldr r1, [r2, 0x20] + negs r0, r5 + strh r0, [r1, 0x26] +_080FB2E0: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FB2E8: .4byte gUnknown_020388CC + thumb_func_end sub_80FB2A4 + + thumb_func_start sub_80FB2EC +sub_80FB2EC: @ 80FB2EC + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + ldr r0, _080FB30C @ =0xfffe0000 + adds r1, r0 + lsrs r2, r1, 16 + cmp r2, 0xE + bhi _080FB306 + cmp r3, 0 + beq _080FB306 + cmp r3, 0x1C + bls _080FB310 +_080FB306: + movs r0, 0x58 + b _080FB324 + .align 2, 0 +_080FB30C: .4byte 0xfffe0000 +_080FB310: + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, _080FB328 @ =gRegionMapSections + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3, r0 + adds r0, r1 + ldrb r0, [r0] +_080FB324: + pop {r1} + bx r1 + .align 2, 0 +_080FB328: .4byte gRegionMapSections + thumb_func_end sub_80FB2EC + + thumb_func_start sub_80FB32C +sub_80FB32C: @ 80FB32C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080FB358 @ =gSaveBlock1 + movs r1, 0x4 + ldrsb r1, [r0, r1] + adds r2, r0, 0 + cmp r1, 0x19 + bne _080FB35C + ldrb r0, [r2, 0x5] + subs r0, 0x29 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bhi _080FB35C + bl sub_80FB600 + b _080FB5E8 + .align 2, 0 +_080FB358: .4byte gSaveBlock1 +_080FB35C: + movs r0, 0x4 + ldrsb r0, [r2, r0] + movs r1, 0x5 + ldrsb r1, [r2, r1] + bl get_map_light_level_by_bank_and_number + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x8 + bhi _080FB3A4 + lsls r0, 2 + ldr r1, _080FB37C @ =_080FB380 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB37C: .4byte _080FB380 + .align 2, 0 +_080FB380: + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3E0 + .4byte _080FB3A4 + .4byte _080FB3A4 + .4byte _080FB3E0 + .4byte _080FB464 + .4byte _080FB428 +_080FB3A4: + ldr r4, _080FB3D4 @ =gUnknown_020388CC + ldr r0, [r4] + ldr r3, _080FB3D8 @ =gMapHeader + ldrb r1, [r3, 0x14] + movs r2, 0 + strh r1, [r0, 0x14] + adds r0, 0x7F + strb r2, [r0] + ldr r0, [r3] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldr r0, _080FB3DC @ =gSaveBlock1 + ldrh r6, [r0] + ldrh r3, [r0, 0x2] + ldr r1, [r4] + ldrh r0, [r1, 0x14] + cmp r0, 0x45 + beq _080FB3CC + b _080FB4CC +_080FB3CC: + adds r1, 0x7F + movs r0, 0x1 + strb r0, [r1] + b _080FB4CC + .align 2, 0 +_080FB3D4: .4byte gUnknown_020388CC +_080FB3D8: .4byte gMapHeader +_080FB3DC: .4byte gSaveBlock1 +_080FB3E0: + ldr r4, _080FB420 @ =gSaveBlock1 + adds r0, r4, 0 + adds r0, 0x24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + adds r1, 0x25 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r0, _080FB424 @ =gUnknown_020388CC + ldr r0, [r0] + ldrb r1, [r2, 0x14] + strh r1, [r0, 0x14] + adds r0, 0x7F + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x28] + ldrh r3, [r4, 0x2A] + b _080FB4CC + .align 2, 0 +_080FB420: .4byte gSaveBlock1 +_080FB424: .4byte gUnknown_020388CC +_080FB428: + ldr r4, _080FB45C @ =gSaveBlock1 + movs r0, 0x14 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x15 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r0, _080FB460 @ =gUnknown_020388CC + ldr r0, [r0] + ldrb r1, [r2, 0x14] + strh r1, [r0, 0x14] + adds r0, 0x7F + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x18] + ldrh r3, [r4, 0x1A] + b _080FB4CC + .align 2, 0 +_080FB45C: .4byte gSaveBlock1 +_080FB460: .4byte gUnknown_020388CC +_080FB464: + ldr r5, _080FB48C @ =gUnknown_020388CC + ldr r0, [r5] + ldr r1, _080FB490 @ =gMapHeader + ldrb r1, [r1, 0x14] + strh r1, [r0, 0x14] + cmp r1, 0x57 + beq _080FB498 + ldr r4, _080FB494 @ =gSaveBlock1 + 0x24 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + b _080FB4B6 + .align 2, 0 +_080FB48C: .4byte gUnknown_020388CC +_080FB490: .4byte gMapHeader +_080FB494: .4byte gSaveBlock1 + 0x24 +_080FB498: + ldr r4, _080FB548 @ =gSaveBlock1 + 0x14 + movs r0, 0 + ldrsb r0, [r4, r0] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ldrsb r1, [r4, r1] + lsls r1, 16 + lsrs r1, 16 + bl get_mapheader_by_bank_and_number + adds r2, r0, 0 + ldr r1, [r5] + ldrb r0, [r2, 0x14] + strh r0, [r1, 0x14] +_080FB4B6: + ldr r0, _080FB54C @ =gUnknown_020388CC + ldr r0, [r0] + adds r0, 0x7F + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldrh r2, [r0] + ldrh r0, [r0, 0x4] + mov r8, r0 + ldrh r6, [r4, 0x4] + ldrh r3, [r4, 0x6] +_080FB4CC: + mov r9, r6 + ldr r4, _080FB54C @ =gUnknown_020388CC + ldr r0, [r4] + ldrh r5, [r0, 0x14] + lsls r0, r5, 3 + ldr r1, _080FB550 @ =gRegionMapLocations + adds r0, r1 + mov r10, r0 + ldrb r7, [r0, 0x2] + adds r0, r2, 0 + adds r1, r7, 0 + str r3, [sp] + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r3, [sp] + cmp r1, 0 + bne _080FB4F4 + movs r1, 0x1 +_080FB4F4: + adds r0, r6, 0 + str r3, [sp] + bl __udivsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + cmp r6, r7 + bcc _080FB50C + subs r0, r7, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB50C: + mov r2, r10 + ldrb r4, [r2, 0x3] + mov r0, r8 + adds r1, r4, 0 + str r3, [sp] + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r3, [sp] + cmp r1, 0 + bne _080FB526 + movs r1, 0x1 +_080FB526: + adds r0, r3, 0 + bl __udivsi3 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + bcc _080FB53A + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_080FB53A: + cmp r5, 0x24 + beq _080FB59C + cmp r5, 0x24 + bgt _080FB554 + cmp r5, 0x1D + beq _080FB55E + b _080FB5BE + .align 2, 0 +_080FB548: .4byte gSaveBlock1 + 0x14 +_080FB54C: .4byte gUnknown_020388CC +_080FB550: .4byte gRegionMapLocations +_080FB554: + cmp r5, 0x29 + beq _080FB566 + cmp r5, 0x33 + beq _080FB566 + b _080FB5BE +_080FB55E: + cmp r3, 0 + beq _080FB5BE + movs r6, 0 + b _080FB5BE +_080FB566: + movs r6, 0 + ldr r1, _080FB598 @ =gSaveBlock1 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x20 + ble _080FB574 + movs r6, 0x1 +_080FB574: + cmp r0, 0x33 + ble _080FB57E + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB57E: + movs r3, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x25 + ble _080FB58A + movs r3, 0x1 +_080FB58A: + cmp r0, 0x38 + ble _080FB5BE + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + b _080FB5BE + .align 2, 0 +_080FB598: .4byte gSaveBlock1 +_080FB59C: + movs r6, 0 + mov r0, r9 + cmp r0, 0xE + bls _080FB5A6 + movs r6, 0x1 +_080FB5A6: + mov r1, r9 + cmp r1, 0x1C + bls _080FB5B2 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB5B2: + mov r2, r9 + cmp r2, 0x36 + bls _080FB5BE + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FB5BE: + ldr r0, _080FB5F8 @ =gUnknown_020388CC + ldr r2, [r0] + ldrh r0, [r2, 0x14] + lsls r0, 3 + ldr r1, _080FB5FC @ =gRegionMapLocations + adds r0, r1 + ldrb r0, [r0] + adds r0, r6, r0 + adds r0, 0x1 + adds r1, r2, 0 + adds r1, 0x54 + strh r0, [r1] + ldrh r0, [r2, 0x14] + lsls r0, 3 + ldr r1, _080FB5FC @ =gRegionMapLocations + adds r0, r1 + ldrb r0, [r0, 0x1] + adds r0, r3, r0 + adds r0, 0x2 + adds r2, 0x56 + strh r0, [r2] +_080FB5E8: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB5F8: .4byte gUnknown_020388CC +_080FB5FC: .4byte gRegionMapLocations + thumb_func_end sub_80FB32C + + thumb_func_start sub_80FB600 +sub_80FB600: @ 80FB600 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r7, 0 + movs r0, 0 + mov r8, r0 + mov r4, sp + adds r4, 0x1 + mov r5, sp + adds r5, 0x2 + add r6, sp, 0x4 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_810D9EC + lsls r0, 24 + lsrs r0, 24 + mov r10, r5 + cmp r0, 0x4 + bhi _080FB694 + lsls r0, 2 + ldr r1, _080FB63C @ =_080FB640 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB63C: .4byte _080FB640 + .align 2, 0 +_080FB640: + .4byte _080FB694 + .4byte _080FB654 + .4byte _080FB664 + .4byte _080FB674 + .4byte _080FB684 +_080FB654: + ldr r2, _080FB660 @ =gUnknown_020388CC + ldr r1, [r2] + movs r0, 0x8 + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB660: .4byte gUnknown_020388CC +_080FB664: + ldr r2, _080FB670 @ =gUnknown_020388CC + ldr r1, [r2] + movs r0, 0xC + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB670: .4byte gUnknown_020388CC +_080FB674: + ldr r2, _080FB680 @ =gUnknown_020388CC + ldr r1, [r2] + movs r0, 0x27 + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB680: .4byte gUnknown_020388CC +_080FB684: + ldr r2, _080FB690 @ =gUnknown_020388CC + ldr r1, [r2] + movs r0, 0x2E + strh r0, [r1, 0x14] + b _080FB710 + .align 2, 0 +_080FB690: .4byte gUnknown_020388CC +_080FB694: + mov r0, sp + ldrb r0, [r0] + ldrb r1, [r4] + bl get_mapheader_by_bank_and_number + ldr r1, _080FB750 @ =gUnknown_020388CC + mov r9, r1 + ldr r2, [r1] + ldrb r1, [r0, 0x14] + strh r1, [r2, 0x14] + ldr r6, [r0] + ldr r1, _080FB754 @ =gRegionMapLocations + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r5, r0, r1 + ldrb r4, [r5, 0x2] + ldr r0, [r6] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FB6C6 + movs r1, 0x1 +_080FB6C6: + mov r2, r10 + movs r3, 0 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r8, r4 + bcc _080FB6E2 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080FB6E2: + ldrb r4, [r5, 0x3] + ldr r0, [r6, 0x4] + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080FB6F6 + movs r1, 0x1 +_080FB6F6: + mov r2, sp + movs r3, 0x4 + ldrsh r0, [r2, r3] + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r2, r9 + cmp r7, r4 + bcc _080FB710 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080FB710: + ldr r0, [r2] + adds r0, 0x7F + movs r1, 0 + strb r1, [r0] + ldr r2, [r2] + ldr r3, _080FB754 @ =gRegionMapLocations + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0] + add r0, r8 + adds r0, 0x1 + adds r1, r2, 0 + adds r1, 0x54 + strh r0, [r1] + ldrh r0, [r2, 0x14] + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x1] + adds r0, r7, r0 + adds r0, 0x2 + adds r2, 0x56 + strh r0, [r2] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FB750: .4byte gUnknown_020388CC +_080FB754: .4byte gRegionMapLocations + thumb_func_end sub_80FB600 + + thumb_func_start sub_80FB758 +sub_80FB758: @ 80FB758 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x58 + bls _080FB764 + b _080FB9A0 +_080FB764: + lsls r0, 2 + ldr r1, _080FB770 @ =_080FB774 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FB770: .4byte _080FB774 + .align 2, 0 +_080FB774: + .4byte _080FB8DC + .4byte _080FB8E4 + .4byte _080FB8EA + .4byte _080FB8F4 + .4byte _080FB8FC + .4byte _080FB904 + .4byte _080FB90C + .4byte _080FB914 + .4byte _080FB91C + .4byte _080FB924 + .4byte _080FB92C + .4byte _080FB934 + .4byte _080FB93C + .4byte _080FB944 + .4byte _080FB94C + .4byte _080FB954 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB96C + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB988 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB9A0 + .4byte _080FB8D8 +_080FB8D8: + movs r0, 0 + b _080FB9A2 +_080FB8DC: + ldr r0, _080FB8E0 @ =0x0000080f + b _080FB956 + .align 2, 0 +_080FB8E0: .4byte 0x0000080f +_080FB8E4: + movs r0, 0x81 + lsls r0, 4 + b _080FB956 +_080FB8EA: + ldr r0, _080FB8F0 @ =0x00000811 + b _080FB956 + .align 2, 0 +_080FB8F0: .4byte 0x00000811 +_080FB8F4: + ldr r0, _080FB8F8 @ =0x00000812 + b _080FB956 + .align 2, 0 +_080FB8F8: .4byte 0x00000812 +_080FB8FC: + ldr r0, _080FB900 @ =0x00000813 + b _080FB956 + .align 2, 0 +_080FB900: .4byte 0x00000813 +_080FB904: + ldr r0, _080FB908 @ =0x00000814 + b _080FB956 + .align 2, 0 +_080FB908: .4byte 0x00000814 +_080FB90C: + ldr r0, _080FB910 @ =0x00000815 + b _080FB956 + .align 2, 0 +_080FB910: .4byte 0x00000815 +_080FB914: + ldr r0, _080FB918 @ =0x00000816 + b _080FB956 + .align 2, 0 +_080FB918: .4byte 0x00000816 +_080FB91C: + ldr r0, _080FB920 @ =0x00000817 + b _080FB956 + .align 2, 0 +_080FB920: .4byte 0x00000817 +_080FB924: + ldr r0, _080FB928 @ =0x00000818 + b _080FB956 + .align 2, 0 +_080FB928: .4byte 0x00000818 +_080FB92C: + ldr r0, _080FB930 @ =0x00000819 + b _080FB956 + .align 2, 0 +_080FB930: .4byte 0x00000819 +_080FB934: + ldr r0, _080FB938 @ =0x0000081a + b _080FB956 + .align 2, 0 +_080FB938: .4byte 0x0000081a +_080FB93C: + ldr r0, _080FB940 @ =0x0000081b + b _080FB956 + .align 2, 0 +_080FB940: .4byte 0x0000081b +_080FB944: + ldr r0, _080FB948 @ =0x0000081c + b _080FB956 + .align 2, 0 +_080FB948: .4byte 0x0000081c +_080FB94C: + ldr r0, _080FB950 @ =0x0000081d + b _080FB956 + .align 2, 0 +_080FB950: .4byte 0x0000081d +_080FB954: + ldr r0, _080FB968 @ =0x0000081e +_080FB956: + bl FlagGet + lsls r0, 24 + movs r1, 0x3 + cmp r0, 0 + beq _080FB964 + movs r1, 0x2 +_080FB964: + adds r0, r1, 0 + b _080FB9A2 + .align 2, 0 +_080FB968: .4byte 0x0000081e +_080FB96C: + ldr r0, _080FB984 @ =0x00000848 + bl FlagGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + negs r0, r1 + orrs r0, r1 + asrs r0, 31 + movs r1, 0x4 + ands r0, r1 + b _080FB9A2 + .align 2, 0 +_080FB984: .4byte 0x00000848 +_080FB988: + ldr r0, _080FB99C @ =0x00000849 + bl FlagGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _080FB9A2 + .align 2, 0 +_080FB99C: .4byte 0x00000849 +_080FB9A0: + movs r0, 0x1 +_080FB9A2: + pop {r1} + bx r1 + thumb_func_end sub_80FB758 + + thumb_func_start sub_80FB9A8 +sub_80FB9A8: @ 80FB9A8 + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + bl sub_80FB2EC + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FB9A8 + + thumb_func_start sub_80FB9C0 +sub_80FB9C0: @ 80FB9C0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r0, _080FB9E8 @ =gUnknown_083E7684 + ldrh r1, [r0] + adds r4, r0, 0 + cmp r1, 0x58 + beq _080FB9FC + adds r5, r4, 0 + adds r6, r4, 0x2 +_080FB9D6: + lsls r1, r2, 2 + adds r0, r1, r5 + ldrh r0, [r0] + cmp r0, r3 + bne _080FB9EC + adds r0, r1, r6 + ldrh r0, [r0] + b _080FB9FE + .align 2, 0 +_080FB9E8: .4byte gUnknown_083E7684 +_080FB9EC: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r0, r2, 2 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x58 + bne _080FB9D6 +_080FB9FC: + adds r0, r3, 0 +_080FB9FE: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80FB9C0 + + thumb_func_start sub_80FBA04 +sub_80FBA04: @ 80FBA04 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_80FB9C0 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FBA04 + + thumb_func_start sub_80FBA18 +sub_80FBA18: @ 80FBA18 + push {r4-r6,lr} + ldr r0, _080FBA2C @ =gUnknown_020388CC + ldr r1, [r0] + ldrh r0, [r1, 0x14] + cmp r0, 0x58 + bne _080FBA30 + movs r0, 0 + strb r0, [r1, 0x17] + b _080FBA96 + .align 2, 0 +_080FBA2C: .4byte gUnknown_020388CC +_080FBA30: + adds r0, r1, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0 + bne _080FBA40 + adds r0, r1, 0 + adds r0, 0x54 + b _080FBA44 +_080FBA40: + adds r0, r1, 0 + adds r0, 0x64 +_080FBA44: + ldrh r4, [r0] + adds r0, 0x2 + ldrh r5, [r0] + movs r6, 0 + b _080FBA70 +_080FBA4E: + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FB2EC + ldr r1, _080FBA8C @ =gUnknown_020388CC + ldr r1, [r1] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1, 0x14] + cmp r0, r1 + bne _080FBA70 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080FBA70: + cmp r4, 0x1 + bhi _080FBA4E + adds r0, r5, 0 + bl sub_80FBAA0 + lsls r0, 24 + cmp r0, 0 + beq _080FBA90 + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + movs r4, 0x1D + b _080FBA70 + .align 2, 0 +_080FBA8C: .4byte gUnknown_020388CC +_080FBA90: + ldr r0, _080FBA9C @ =gUnknown_020388CC + ldr r0, [r0] + strb r6, [r0, 0x17] +_080FBA96: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FBA9C: .4byte gUnknown_020388CC + thumb_func_end sub_80FBA18 + + thumb_func_start sub_80FBAA0 +sub_80FBAA0: @ 80FBAA0 + push {r4,r5,lr} + lsls r0, 16 + ldr r1, _080FBAB4 @ =0xffff0000 + adds r0, r1 + lsrs r5, r0, 16 + ldr r0, _080FBAB8 @ =0x0000ffff + cmp r5, r0 + bne _080FBAC0 + b _080FBAE2 + .align 2, 0 +_080FBAB4: .4byte 0xffff0000 +_080FBAB8: .4byte 0x0000ffff +_080FBABC: + movs r0, 0x1 + b _080FBAE4 +_080FBAC0: + movs r4, 0x1 +_080FBAC2: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FB2EC + ldr r1, _080FBAEC @ =gUnknown_020388CC + ldr r1, [r1] + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1, 0x14] + cmp r0, r1 + beq _080FBABC + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1C + bls _080FBAC2 +_080FBAE2: + movs r0, 0 +_080FBAE4: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080FBAEC: .4byte gUnknown_020388CC + thumb_func_end sub_80FBAA0 + + thumb_func_start sub_80FBAF0 +sub_80FBAF0: @ 80FBAF0 + push {r4,lr} + adds r2, r0, 0 + ldr r0, _080FBB34 @ =gUnknown_020388CC + ldr r1, [r0] + adds r3, r1, 0 + adds r3, 0x7A + movs r0, 0 + ldrsb r0, [r3, r0] + cmp r0, 0 + beq _080FBB2E + adds r0, r1, 0 + adds r0, 0x7B + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r4, [r2, 0x20] + adds r0, r4 + strh r0, [r2, 0x20] + adds r0, r1, 0 + adds r0, 0x7C + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r1, [r2, 0x22] + adds r0, r1 + strh r0, [r2, 0x22] + ldrb r0, [r3] + subs r0, 0x1 + strb r0, [r3] +_080FBB2E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FBB34: .4byte gUnknown_020388CC + thumb_func_end sub_80FBAF0 + + thumb_func_start nullsub_66 +nullsub_66: @ 80FBB38 + bx lr + thumb_func_end nullsub_66 + + thumb_func_start sub_80FBB3C +sub_80FBB3C: @ 80FBB3C + push {r4-r7,lr} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r1, _080FBBAC @ =gUnknown_083E76E8 + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [sp, 0x20] + str r2, [sp, 0x24] + mov r2, sp + ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + lsrs r3, r0, 16 + add r2, sp, 0x18 + ldrh r1, [r2, 0x4] + orrs r1, r0 + str r1, [r2, 0x4] + mov r0, sp + strh r3, [r0] + ldr r0, _080FBBB4 @ =gUnknown_020388CC + ldr r4, [r0] + adds r0, r4, 0 + adds r0, 0x58 + strh r3, [r0] + ldr r5, _080FBBB8 @ =0xffff0000 + add r1, sp, 0x20 + ldr r0, [r1, 0x4] + ands r0, r5 + orrs r0, r6 + str r0, [r1, 0x4] + mov r0, sp + strh r6, [r0, 0x2] + adds r3, r4, 0 + adds r0, r3, 0 + adds r0, 0x5A + strh r6, [r0] + adds r0, 0x1E + ldrb r0, [r0] + adds r7, r1, 0 + cmp r0, 0 + bne _080FBBC0 + movs r1, 0xC0 + lsls r1, 1 + adds r0, r3, r1 + str r0, [sp, 0x18] + ldr r0, [r2, 0x4] + ands r0, r5 + subs r1, 0x80 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r0, _080FBBBC @ =sub_80FBAF0 + b _080FBBD6 + .align 2, 0 +_080FBBAC: .4byte gUnknown_083E76E8 +_080FBBB0: .4byte gSpriteTemplate_83E76F0 +_080FBBB4: .4byte gUnknown_020388CC +_080FBBB8: .4byte 0xffff0000 +_080FBBBC: .4byte sub_80FBAF0 +_080FBBC0: + movs r3, 0xA0 + lsls r3, 2 + adds r0, r4, r3 + str r0, [sp, 0x18] + ldr r0, [r2, 0x4] + ands r0, r5 + movs r1, 0xC0 + lsls r1, 3 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r0, _080FBC38 @ =nullsub_66 +_080FBBD6: + str r0, [sp, 0x14] + adds r0, r2, 0 + bl LoadSpriteSheet + adds r0, r7, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0x38 + movs r2, 0x48 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080FBC90 + ldr r4, _080FBC3C @ =gUnknown_020388CC + ldr r2, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080FBC40 @ =gSprites + adds r3, r0, r1 + str r3, [r2, 0x1C] + adds r2, 0x78 + ldrb r0, [r2] + cmp r0, 0x1 + bne _080FBC44 + ldrb r1, [r3, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0x3] + ldr r2, [r4] + ldr r1, [r2, 0x1C] + ldrh r0, [r1, 0x20] + subs r0, 0x8 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x1C] + ldrh r0, [r1, 0x22] + subs r0, 0x8 + strh r0, [r1, 0x22] + ldr r0, [r2, 0x1C] + movs r1, 0x1 + bl StartSpriteAnim + b _080FBC6C + .align 2, 0 +_080FBC38: .4byte nullsub_66 +_080FBC3C: .4byte gUnknown_020388CC +_080FBC40: .4byte gSprites +_080FBC44: + ldrb r1, [r3, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3, 0x3] + ldr r1, [r4] + ldr r2, [r1, 0x1C] + adds r0, r1, 0 + adds r0, 0x54 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x20] + ldr r2, [r1, 0x1C] + adds r1, 0x56 + ldrh r0, [r1] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x22] +_080FBC6C: + ldr r4, _080FBC98 @ =gUnknown_020388CC + ldr r0, [r4] + ldr r1, [r0, 0x1C] + movs r0, 0x2 + strh r0, [r1, 0x30] + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + ldr r1, [r4] + ldr r2, [r1, 0x1C] + lsls r0, 24 + lsrs r0, 20 + ldr r4, _080FBC9C @ =0x00000101 + adds r0, r4 + strh r0, [r2, 0x32] + ldr r1, [r1, 0x1C] + movs r0, 0x1 + strh r0, [r1, 0x34] +_080FBC90: + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FBC98: .4byte gUnknown_020388CC +_080FBC9C: .4byte 0x00000101 + thumb_func_end sub_80FBB3C + + thumb_func_start sub_80FBCA0 +sub_80FBCA0: @ 80FBCA0 + push {r4,lr} + ldr r4, _080FBCCC @ =gUnknown_020388CC + ldr r0, [r4] + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080FBCC4 + bl DestroySprite + ldr r0, [r4] + adds r0, 0x58 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, 0x5A + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_080FBCC4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FBCCC: .4byte gUnknown_020388CC + thumb_func_end sub_80FBCA0 + + thumb_func_start unref_sub_80FBCD0 +unref_sub_80FBCD0: @ 80FBCD0 + ldr r0, _080FBCDC @ =gUnknown_020388CC + ldr r0, [r0] + ldr r1, [r0, 0x1C] + movs r0, 0x1 + strh r0, [r1, 0x34] + bx lr + .align 2, 0 +_080FBCDC: .4byte gUnknown_020388CC + thumb_func_end unref_sub_80FBCD0 + + thumb_func_start unref_sub_80FBCE0 +unref_sub_80FBCE0: @ 80FBCE0 + ldr r0, _080FBCEC @ =gUnknown_020388CC + ldr r0, [r0] + ldr r1, [r0, 0x1C] + movs r0, 0 + strh r0, [r1, 0x34] + bx lr + .align 2, 0 +_080FBCEC: .4byte gUnknown_020388CC + thumb_func_end unref_sub_80FBCE0 + + thumb_func_start sub_80FBCF0 +sub_80FBCF0: @ 80FBCF0 + push {r4,r5,lr} + sub sp, 0x28 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _080FBD98 @ =gUnknown_083E5C40 + str r2, [sp, 0x18] + movs r2, 0x80 + add r5, sp, 0x18 + lsrs r3, r0, 16 + orrs r0, r2 + str r0, [r5, 0x4] + ldr r0, _080FBD9C @ =gUnknown_083E5C20 + str r0, [sp, 0x20] + ldr r2, _080FBDA0 @ =0xffff0000 + add r4, sp, 0x20 + ldr r0, [r4, 0x4] + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + mov r0, sp + movs r2, 0 + strh r3, [r0] + strh r1, [r0, 0x2] + ldr r0, _080FBDA4 @ =gUnknown_083E7708 + str r0, [sp, 0x4] + ldr r0, _080FBDA8 @ =gUnknown_083E7718 + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x10] + ldr r0, _080FBDB0 @ =SpriteCallbackDummy + str r0, [sp, 0x14] + ldr r0, _080FBDB4 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0x1 + bne _080FBD42 + ldr r0, _080FBDB8 @ =gUnknown_083E5CE0 + str r0, [sp, 0x18] + ldr r0, _080FBDBC @ =gUnknown_083E5CC0 + str r0, [sp, 0x20] +_080FBD42: + adds r0, r5, 0 + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + mov r0, sp + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080FBDC0 @ =gUnknown_020388CC + ldr r2, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _080FBDC4 @ =gSprites + adds r1, r0 + str r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0 + bne _080FBDCC + adds r0, r2, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x22] + ldr r1, [r2, 0x20] + ldr r0, _080FBDC8 @ =sub_80FBF34 + b _080FBDEA + .align 2, 0 +_080FBD98: .4byte gUnknown_083E5C40 +_080FBD9C: .4byte gUnknown_083E5C20 +_080FBDA0: .4byte 0xffff0000 +_080FBDA4: .4byte gUnknown_083E7708 +_080FBDA8: .4byte gUnknown_083E7718 +_080FBDAC: .4byte gDummySpriteAffineAnimTable +_080FBDB0: .4byte SpriteCallbackDummy +_080FBDB4: .4byte gSaveBlock2 +_080FBDB8: .4byte gUnknown_083E5CE0 +_080FBDBC: .4byte gUnknown_083E5CC0 +_080FBDC0: .4byte gUnknown_020388CC +_080FBDC4: .4byte gSprites +_080FBDC8: .4byte sub_80FBF34 +_080FBDCC: + adds r0, r2, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x30 + strh r0, [r1, 0x20] + ldr r1, [r2, 0x20] + adds r0, r2, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x42 + strh r0, [r1, 0x22] + ldr r1, [r2, 0x20] + ldr r0, _080FBDF4 @ =sub_80FBEA4 +_080FBDEA: + str r0, [r1, 0x1C] + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FBDF4: .4byte sub_80FBEA4 + thumb_func_end sub_80FBCF0 + + thumb_func_start sub_80FBDF8 +sub_80FBDF8: @ 80FBDF8 + push {lr} + ldr r3, _080FBE1C @ =gUnknown_020388CC + ldr r0, [r3] + ldr r2, [r0, 0x20] + cmp r2, 0 + beq _080FBE16 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r1, [r0, 0x20] + ldr r0, _080FBE20 @ =SpriteCallbackDummy + str r0, [r1, 0x1C] +_080FBE16: + pop {r0} + bx r0 + .align 2, 0 +_080FBE1C: .4byte gUnknown_020388CC +_080FBE20: .4byte SpriteCallbackDummy + thumb_func_end sub_80FBDF8 + + thumb_func_start sub_80FBE24 +sub_80FBE24: @ 80FBE24 + push {lr} + ldr r0, _080FBE5C @ =gUnknown_020388CC + ldr r3, [r0] + ldr r1, [r3, 0x20] + cmp r1, 0 + beq _080FBE9A + adds r0, r3, 0 + adds r0, 0x78 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080FBE64 + adds r0, r3, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x30 + strh r0, [r1, 0x20] + ldr r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 4 + subs r0, 0x42 + strh r0, [r1, 0x22] + ldr r1, [r3, 0x20] + ldr r0, _080FBE60 @ =sub_80FBEA4 + b _080FBE8C + .align 2, 0 +_080FBE5C: .4byte gUnknown_020388CC +_080FBE60: .4byte sub_80FBEA4 +_080FBE64: + adds r0, r3, 0 + adds r0, 0x74 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + movs r2, 0 + strh r0, [r1, 0x20] + ldr r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x76 + ldrh r0, [r0] + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x22] + ldr r0, [r3, 0x20] + strh r2, [r0, 0x24] + ldr r0, [r3, 0x20] + strh r2, [r0, 0x26] + ldr r1, [r3, 0x20] + ldr r0, _080FBEA0 @ =sub_80FBF34 +_080FBE8C: + str r0, [r1, 0x1C] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_080FBE9A: + pop {r0} + bx r0 + .align 2, 0 +_080FBEA0: .4byte sub_80FBF34 + thumb_func_end sub_80FBE24 + + thumb_func_start sub_80FBEA4 +sub_80FBEA4: @ 80FBEA4 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _080FBF08 @ =gUnknown_020388CC + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x5C + movs r4, 0 + ldrsh r2, [r0, r4] + lsls r2, 1 + negs r2, r2 + strh r2, [r3, 0x24] + adds r1, 0x5E + movs r4, 0 + ldrsh r0, [r1, r4] + lsls r0, 1 + negs r0, r0 + strh r0, [r3, 0x26] + ldrh r1, [r3, 0x22] + adds r1, r0 + adds r0, r3, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + strh r0, [r3, 0x2E] + ldrh r1, [r3, 0x20] + adds r1, r2 + adds r2, r3, 0 + adds r2, 0x28 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + adds r2, r1 + strh r2, [r3, 0x30] + adds r0, 0x8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB0 + bhi _080FBF04 + lsls r0, r2, 16 + asrs r2, r0, 16 + movs r0, 0x8 + negs r0, r0 + cmp r2, r0 + blt _080FBF04 + cmp r2, 0xF8 + ble _080FBF0C +_080FBF04: + movs r0, 0 + b _080FBF0E + .align 2, 0 +_080FBF08: .4byte gUnknown_020388CC +_080FBF0C: + movs r0, 0x1 +_080FBF0E: + strh r0, [r3, 0x32] + movs r1, 0x32 + ldrsh r0, [r3, r1] + cmp r0, 0x1 + bne _080FBF20 + adds r0, r3, 0 + bl sub_80FBF40 + b _080FBF2C +_080FBF20: + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080FBF2C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FBEA4 + + thumb_func_start sub_80FBF34 +sub_80FBF34: @ 80FBF34 + push {lr} + bl sub_80FBF40 + pop {r0} + bx r0 + thumb_func_end sub_80FBF34 + + thumb_func_start sub_80FBF40 +sub_80FBF40: @ 80FBF40 + push {lr} + adds r2, r0, 0 + ldr r0, _080FBF80 @ =gUnknown_020388CC + ldr r0, [r0] + adds r0, 0x7E + ldrb r0, [r0] + cmp r0, 0 + beq _080FBF84 + ldrh r0, [r2, 0x3C] + adds r0, 0x1 + strh r0, [r2, 0x3C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080FBF90 + movs r0, 0 + strh r0, [r2, 0x3C] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080FBF90 + .align 2, 0 +_080FBF80: .4byte gUnknown_020388CC +_080FBF84: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_080FBF90: + pop {r0} + bx r0 + thumb_func_end sub_80FBF40 + + thumb_func_start sub_80FBF94 +sub_80FBF94: @ 80FBF94 + push {lr} + ldr r0, _080FBFB0 @ =gUnknown_020388CC + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x7F + ldrb r0, [r0] + cmp r0, 0 + beq _080FBFAA + adds r1, 0x7E + movs r0, 0x1 + strb r0, [r1] +_080FBFAA: + pop {r0} + bx r0 + .align 2, 0 +_080FBFB0: .4byte gUnknown_020388CC + thumb_func_end sub_80FBF94 + + thumb_func_start sub_80FBFB4 +sub_80FBFB4: @ 80FBFB4 + push {lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + cmp r1, 0x56 + bne _080FBFCA + bl GetSecretBaseMapName + b _080FBFF2 +_080FBFCA: + cmp r1, 0x57 + bhi _080FBFE4 + ldr r0, _080FBFE0 @ =gRegionMapLocations + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r1, [r1] + adds r0, r3, 0 + bl StringCopy + b _080FBFF2 + .align 2, 0 +_080FBFE0: .4byte gRegionMapLocations +_080FBFE4: + cmp r2, 0 + bne _080FBFEA + movs r2, 0x12 +_080FBFEA: + adds r0, r3, 0 + movs r1, 0 + bl StringFill +_080FBFF2: + pop {r1} + bx r1 + thumb_func_end sub_80FBFB4 + + thumb_func_start sub_80FBFF8 +sub_80FBFF8: @ 80FBFF8 + push {lr} + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x56 + beq _080FC014 + cmp r1, 0x57 + bne _080FC020 + ldr r1, _080FC010 @ =gOtherText_Ferry + bl StringCopy + b _080FC026 + .align 2, 0 +_080FC010: .4byte gOtherText_Ferry +_080FC014: + ldr r1, _080FC01C @ =gOtherText_SecretBase + bl StringCopy + b _080FC026 + .align 2, 0 +_080FC01C: .4byte gOtherText_SecretBase +_080FC020: + movs r2, 0 + bl sub_80FBFB4 +_080FC026: + pop {r1} + bx r1 + thumb_func_end sub_80FBFF8 + + thumb_func_start sub_80FC02C +sub_80FC02C: @ 80FC02C + push {lr} + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0x42 + beq _080FC03C + bl sub_80FBFF8 + b _080FC042 +_080FC03C: + ldr r1, _080FC048 @ =gOtherText_Hideout + bl StringCopy +_080FC042: + pop {r1} + bx r1 + .align 2, 0 +_080FC048: .4byte gOtherText_Hideout + thumb_func_end sub_80FC02C + + thumb_func_start sub_80FC04C +sub_80FC04C: @ 80FC04C + push {r4,r5,lr} + ldr r5, [sp, 0xC] + lsls r0, 16 + ldr r4, _080FC070 @ =gRegionMapLocations + lsrs r0, 13 + adds r0, r4 + ldrb r4, [r0] + strh r4, [r1] + ldrb r1, [r0, 0x1] + strh r1, [r2] + ldrb r1, [r0, 0x2] + strh r1, [r3] + ldrb r0, [r0, 0x3] + strh r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC070: .4byte gRegionMapLocations + thumb_func_end sub_80FC04C + + thumb_func_start sub_80FC074 +sub_80FC074: @ 80FC074 + push {r4,lr} + ldr r0, _080FC090 @ =gMain + ldr r1, _080FC094 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _080FC084 + b _080FC1F2 +_080FC084: + lsls r0, 2 + ldr r1, _080FC098 @ =_080FC09C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC090: .4byte gMain +_080FC094: .4byte 0x0000043c +_080FC098: .4byte _080FC09C + .align 2, 0 +_080FC09C: + .4byte _080FC0C4 + .4byte _080FC104 + .4byte _080FC110 + .4byte _080FC120 + .4byte _080FC15C + .4byte _080FC170 + .4byte _080FC184 + .4byte _080FC1A4 + .4byte _080FC1AA + .4byte _080FC1C4 +_080FC0C4: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + b _080FC1E6 +_080FC104: + ldr r0, _080FC10C @ =gWindowConfig_81E7224 + bl SetUpWindowConfig + b _080FC1E6 + .align 2, 0 +_080FC10C: .4byte gWindowConfig_81E7224 +_080FC110: + ldr r0, _080FC11C @ =gWindowConfig_81E7224 + bl InitMenuWindow + bl MenuZeroFillScreen + b _080FC1E6 + .align 2, 0 +_080FC11C: .4byte gWindowConfig_81E7224 +_080FC120: + ldr r4, _080FC158 @ =0x02000008 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0 + movs r1, 0 + bl sub_80FBB3C + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBCF0 + adds r1, r4, 0 + subs r1, 0x8 + ldrh r0, [r1, 0x1C] + strh r0, [r1, 0x6] + movs r2, 0xA4 + lsls r2, 4 + adds r4, r2 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xC + bl StringFill + bl sub_80FC254 + b _080FC1E6 + .align 2, 0 +_080FC158: .4byte 0x02000008 +_080FC15C: + ldr r0, _080FC168 @ =gUnknown_083E773C + ldr r1, _080FC16C @ =0x0600c000 + bl LZ77UnCompVram + b _080FC1E6 + .align 2, 0 +_080FC168: .4byte gUnknown_083E773C +_080FC16C: .4byte 0x0600c000 +_080FC170: + ldr r0, _080FC17C @ =gUnknown_083E7774 + ldr r1, _080FC180 @ =0x0600f000 + bl LZ77UnCompVram + b _080FC1E6 + .align 2, 0 +_080FC17C: .4byte gUnknown_083E7774 +_080FC180: .4byte 0x0600f000 +_080FC184: + ldr r0, _080FC19C @ =gUnknown_083E771C + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere + movs r1, 0x1 + movs r2, 0x90 + movs r3, 0x1 + bl MenuPrint_PixelCoords + b _080FC1E6 + .align 2, 0 +_080FC19C: .4byte gUnknown_083E771C +_080FC1A0: .4byte gOtherText_FlyToWhere +_080FC1A4: + bl sub_80FC31C + b _080FC1E6 +_080FC1AA: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, _080FC1C0 @ =sub_80FC214 + bl SetVBlankCallback + b _080FC1E6 + .align 2, 0 +_080FC1C0: .4byte sub_80FC214 +_080FC1C4: + ldr r1, _080FC1F8 @ =REG_BLDCNT + movs r0, 0 + strh r0, [r1] + subs r1, 0x46 + ldr r2, _080FC1FC @ =0x00001e0d + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + ldr r2, _080FC200 @ =0x00001741 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _080FC204 @ =sub_80FC5B4 + bl sub_80FC244 + ldr r0, _080FC208 @ =sub_80FC228 + bl SetMainCallback2 +_080FC1E6: + ldr r1, _080FC20C @ =gMain + ldr r0, _080FC210 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080FC1F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC1F8: .4byte REG_BLDCNT +_080FC1FC: .4byte 0x00001e0d +_080FC200: .4byte 0x00001741 +_080FC204: .4byte sub_80FC5B4 +_080FC208: .4byte sub_80FC228 +_080FC20C: .4byte gMain +_080FC210: .4byte 0x0000043c + thumb_func_end sub_80FC074 + + thumb_func_start sub_80FC214 +sub_80FC214: @ 80FC214 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_80FC214 + + thumb_func_start sub_80FC228 +sub_80FC228: @ 80FC228 + push {lr} + ldr r0, _080FC240 @ =0x02000000 + ldr r0, [r0] + bl _call_via_r0 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 +_080FC240: .4byte 0x02000000 + thumb_func_end sub_80FC228 + + thumb_func_start sub_80FC244 +sub_80FC244: @ 80FC244 + ldr r1, _080FC250 @ =0x02000000 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0x4] + bx lr + .align 2, 0 +_080FC250: .4byte 0x02000000 + thumb_func_end sub_80FC244 + + thumb_func_start sub_80FC254 +sub_80FC254: @ 80FC254 + push {r4,r5,lr} + ldr r4, _080FC2AC @ =0x02000000 + ldrb r0, [r4, 0x1E] + cmp r0, 0x2 + beq _080FC262 + cmp r0, 0x4 + bne _080FC2EC +_080FC262: + movs r1, 0 + ldr r2, _080FC2B0 @ =gUnknown_083E79C0 + adds r5, r4, 0 +_080FC268: + lsls r0, r1, 3 + adds r4, r0, r2 + ldrh r0, [r5, 0x1C] + ldrh r3, [r4, 0x4] + cmp r0, r3 + bne _080FC2B4 + ldrh r0, [r4, 0x6] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC2BE + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + adds r0, 0x8 + movs r1, 0x11 + movs r2, 0xF + bl MenuPrint + ldrb r0, [r5, 0x1F] + ldr r1, [r4] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1D + movs r2, 0x11 + bl sub_8072B4C + b _080FC310 + .align 2, 0 +_080FC2AC: .4byte 0x02000000 +_080FC2B0: .4byte gUnknown_083E79C0 +_080FC2B4: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080FC268 +_080FC2BE: + movs r0, 0 + cmp r0, 0 + bne _080FC310 + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _080FC2E8 @ =0x02000008 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect + b _080FC310 + .align 2, 0 +_080FC2E8: .4byte 0x02000008 +_080FC2EC: + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _080FC318 @ =0x00000a48 + adds r0, r4, r1 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint + movs r0, 0x10 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect +_080FC310: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FC318: .4byte 0x00000a48 + thumb_func_end sub_80FC254 + + thumb_func_start sub_80FC31C +sub_80FC31C: @ 80FC31C + push {r4,lr} + sub sp, 0x8 + ldr r0, _080FC360 @ =gUnknown_083E784C + ldr r4, _080FC364 @ =0x02000888 + adds r1, r4, 0 + bl LZ77UnCompWram + str r4, [sp] + ldr r1, _080FC368 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0xE0 + lsls r1, 1 + orrs r0, r1 + ldr r1, _080FC36C @ =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 10 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _080FC370 @ =gUnknown_083E79CC + bl LoadSpritePalette + bl sub_80FC374 + bl sub_80FC484 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC360: .4byte gUnknown_083E784C +_080FC364: .4byte 0x02000888 +_080FC368: .4byte 0xffff0000 +_080FC36C: .4byte 0x0000ffff +_080FC370: .4byte gUnknown_083E79CC + thumb_func_end sub_80FC31C + + thumb_func_start sub_80FC374 +sub_80FC374: @ 80FC374 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r0, _080FC3D4 @ =0x0000080f + str r0, [sp, 0xC] + movs r1, 0 + mov r9, r1 + mov r2, sp + adds r2, 0x6 + str r2, [sp, 0x14] + mov r3, sp + adds r3, 0xA + str r3, [sp, 0x18] + mov r0, sp + adds r0, 0x8 + str r0, [sp, 0x10] + add r1, sp, 0x4 + mov r10, r1 +_080FC39E: + ldr r2, [sp, 0x18] + str r2, [sp] + mov r0, r9 + add r1, sp, 0x4 + mov r2, sp + adds r2, 0x6 + ldr r3, [sp, 0x10] + bl sub_80FC04C + mov r3, r10 + ldrh r0, [r3] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r3] + mov r1, sp + ldrh r0, [r1, 0x6] + adds r0, 0x2 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r1, 0x6] + ldr r2, [sp, 0x10] + ldrh r0, [r2] + cmp r0, 0x2 + bne _080FC3D8 + movs r7, 0x1 + b _080FC3E4 + .align 2, 0 +_080FC3D4: .4byte 0x0000080f +_080FC3D8: + ldr r3, [sp, 0x18] + ldrh r0, [r3] + movs r7, 0 + cmp r0, 0x2 + bne _080FC3E4 + movs r7, 0x2 +_080FC3E4: + mov r0, r10 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r3, [sp, 0x14] + movs r0, 0 + ldrsh r2, [r3, r0] + ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080FC458 + ldr r1, _080FC434 @ =gSprites + mov r8, r1 + lsls r4, r5, 4 + adds r0, r4, r5 + lsls r6, r0, 2 + adds r2, r6, r1 + lsls r3, r7, 6 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x1] + ldr r0, [sp, 0xC] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC43C + mov r0, r8 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _080FC438 @ =sub_80FC55C + str r1, [r0] + b _080FC442 + .align 2, 0 +_080FC430: .4byte gSpriteTemplate_83E7A38 +_080FC434: .4byte gSprites +_080FC438: .4byte sub_80FC55C +_080FC43C: + adds r0, r7, 0x3 + lsls r0, 16 + lsrs r7, r0, 16 +_080FC442: + adds r4, r5 + lsls r4, 2 + ldr r0, _080FC480 @ =gSprites + adds r4, r0 + lsls r1, r7, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + mov r2, r9 + strh r2, [r4, 0x2E] +_080FC458: + ldr r0, [sp, 0xC] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0xF + bls _080FC39E + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC480: .4byte gSprites + thumb_func_end sub_80FC374 + + thumb_func_start sub_80FC484 +sub_80FC484: @ 80FC484 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r8, r0 + ldr r6, _080FC54C @ =gUnknown_083E79D4 + ldrh r0, [r6, 0x2] + cmp r0, 0x58 + beq _080FC53C + mov r5, sp + adds r5, 0x6 + add r7, sp, 0x4 + ldr r1, _080FC550 @ =gSprites + mov r9, r1 + movs r0, 0x1C + add r0, r9 + mov r10, r0 +_080FC4AC: + mov r1, r8 + lsls r4, r1, 2 + adds r0, r4, r6 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080FC524 + adds r0, r6, 0x2 + adds r0, r4, r0 + ldrh r6, [r0] + mov r0, sp + adds r0, 0xA + str r0, [sp] + adds r0, r6, 0 + add r1, sp, 0x4 + adds r2, r5, 0 + add r3, sp, 0x8 + bl sub_80FC04C + ldrh r0, [r7] + adds r0, 0x1 + lsls r0, 3 + strh r0, [r7] + ldrh r0, [r5] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r5] + movs r0, 0 + ldrsh r1, [r7, r0] + movs r0, 0 + ldrsh r2, [r5, r0] + ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080FC524 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + mov r1, r9 + adds r4, r2, r1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] + add r2, r10 + ldr r0, _080FC558 @ =sub_80FC55C + str r0, [r2] + adds r0, r4, 0 + movs r1, 0x6 + bl StartSpriteAnim + strh r6, [r4, 0x2E] +_080FC524: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r6, _080FC54C @ =gUnknown_083E79D4 + lsls r0, 2 + adds r1, r6, 0x2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0x58 + bne _080FC4AC +_080FC53C: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC54C: .4byte gUnknown_083E79D4 +_080FC550: .4byte gSprites +_080FC554: .4byte gSpriteTemplate_83E7A38 +_080FC558: .4byte sub_80FC55C + thumb_func_end sub_80FC484 + + thumb_func_start sub_80FC55C +sub_80FC55C: @ 80FC55C + push {lr} + adds r2, r0, 0 + ldr r0, _080FC59C @ =0x02000000 + ldrh r1, [r0, 0x1C] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r1, r0 + bne _080FC5A0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080FC5AE + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsrs r1, r2, 2 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080FC5AE + .align 2, 0 +_080FC59C: .4byte 0x02000000 +_080FC5A0: + movs r0, 0x10 + strh r0, [r2, 0x30] + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x15 + ands r0, r1 + strb r0, [r2] +_080FC5AE: + pop {r0} + bx r0 + thumb_func_end sub_80FC55C + + thumb_func_start sub_80FC5B4 +sub_80FC5B4: @ 80FC5B4 + push {r4,lr} + sub sp, 0x4 + ldr r4, _080FC5C8 @ =0x02000000 + ldrh r1, [r4, 0x4] + cmp r1, 0 + beq _080FC5CC + cmp r1, 0x1 + beq _080FC5E4 + b _080FC5F4 + .align 2, 0 +_080FC5C8: .4byte 0x02000000 +_080FC5CC: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + b _080FC5F4 +_080FC5E4: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080FC5F4 + ldr r0, _080FC5FC @ =sub_80FC600 + bl sub_80FC244 +_080FC5F4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC5FC: .4byte sub_80FC600 + thumb_func_end sub_80FC5B4 + + thumb_func_start sub_80FC600 +sub_80FC600: @ 80FC600 + push {r4,lr} + ldr r0, _080FC620 @ =0x02000000 + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _080FC68A + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080FC68A + lsls r0, 2 + ldr r1, _080FC624 @ =_080FC628 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC620: .4byte 0x02000000 +_080FC624: .4byte _080FC628 + .align 2, 0 +_080FC628: + .4byte _080FC68A + .4byte _080FC68A + .4byte _080FC68A + .4byte _080FC640 + .4byte _080FC646 + .4byte _080FC674 +_080FC640: + bl sub_80FC254 + b _080FC68A +_080FC646: + ldr r4, _080FC668 @ =0x02000000 + ldrb r0, [r4, 0x1E] + cmp r0, 0x2 + beq _080FC652 + cmp r0, 0x4 + bne _080FC68A +_080FC652: + movs r0, 0x5 + bl m4aSongNumStart + ldr r1, _080FC66C @ =0x00000a6e + adds r0, r4, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _080FC670 @ =sub_80FC69C + bl sub_80FC244 + b _080FC68A + .align 2, 0 +_080FC668: .4byte 0x02000000 +_080FC66C: .4byte 0x00000a6e +_080FC670: .4byte sub_80FC69C +_080FC674: + movs r0, 0x5 + bl m4aSongNumStart + ldr r0, _080FC690 @ =0x02000000 + ldr r1, _080FC694 @ =0x00000a6e + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, _080FC698 @ =sub_80FC69C + bl sub_80FC244 +_080FC68A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC690: .4byte 0x02000000 +_080FC694: .4byte 0x00000a6e +_080FC698: .4byte sub_80FC69C + thumb_func_end sub_80FC600 + + thumb_func_start sub_80FC69C +sub_80FC69C: @ 80FC69C + push {r4,lr} + sub sp, 0x4 + ldr r4, _080FC6B0 @ =0x02000000 + ldrh r1, [r4, 0x4] + cmp r1, 0 + beq _080FC6B4 + cmp r1, 0x1 + beq _080FC6CC + b _080FC792 + .align 2, 0 +_080FC6B0: .4byte 0x02000000 +_080FC6B4: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + b _080FC792 +_080FC6CC: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080FC792 + bl sub_80FAB10 + ldr r1, _080FC6F4 @ =0x00000a6e + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FC78C + ldrh r0, [r4, 0x1C] + cmp r0, 0xF + beq _080FC724 + cmp r0, 0xF + bgt _080FC6F8 + cmp r0, 0 + beq _080FC710 + b _080FC748 + .align 2, 0 +_080FC6F4: .4byte 0x00000a6e +_080FC6F8: + cmp r0, 0x3A + beq _080FC708 + cmp r0, 0x49 + bne _080FC748 + movs r0, 0x16 + bl sub_8053538 + b _080FC786 +_080FC708: + movs r0, 0x15 + bl sub_8053538 + b _080FC786 +_080FC710: + ldr r0, _080FC720 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + movs r1, 0xD + cmp r0, 0 + bne _080FC73A + movs r1, 0xC + b _080FC73A + .align 2, 0 +_080FC720: .4byte gSaveBlock2 +_080FC724: + ldr r0, _080FC744 @ =0x00000854 + bl FlagGet + lsls r0, 24 + movs r1, 0xB + cmp r0, 0 + beq _080FC73A + ldrb r0, [r4, 0x1F] + cmp r0, 0 + bne _080FC73A + movs r1, 0x14 +_080FC73A: + adds r0, r1, 0 + bl sub_8053538 + b _080FC786 + .align 2, 0 +_080FC744: .4byte 0x00000854 +_080FC748: + ldr r3, _080FC764 @ =gUnknown_083E7920 + ldr r0, _080FC768 @ =0x02000000 + ldrh r1, [r0, 0x1C] + lsls r0, r1, 1 + adds r2, r0, r1 + adds r0, r3, 0x2 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080FC76C + bl sub_8053538 + b _080FC786 + .align 2, 0 +_080FC764: .4byte gUnknown_083E7920 +_080FC768: .4byte 0x02000000 +_080FC76C: + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + bl warp1_set_2 +_080FC786: + bl sub_80865BC + b _080FC792 +_080FC78C: + ldr r0, _080FC79C @ =sub_808AD58 + bl SetMainCallback2 +_080FC792: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FC79C: .4byte sub_808AD58 + thumb_func_end sub_80FC69C + + thumb_func_start sub_80FC7A0 +sub_80FC7A0: @ 80FC7A0 + push {lr} + ldr r2, _080FC7E8 @ =gUnknown_03005DEC + ldr r1, [r0, 0x4] + str r1, [r2] + ldr r2, _080FC7EC @ =gUnknown_03005E00 + ldrb r1, [r0, 0x1F] + strb r1, [r2] + ldr r2, _080FC7F0 @ =gUnknown_03005DE8 + ldrb r1, [r0, 0x19] + strb r1, [r2] + ldr r2, _080FC7F4 @ =gUnknown_03005DFC + ldrb r1, [r0, 0x1A] + strb r1, [r2] + ldr r2, _080FC7F8 @ =gUnknown_03005DF8 + ldrb r1, [r0, 0x1B] + strb r1, [r2] + ldr r2, _080FC7FC @ =gUnknown_03005DF0 + ldrb r1, [r0, 0x1C] + strb r1, [r2] + ldr r2, _080FC800 @ =gUnknown_03005E04 + ldrb r1, [r0, 0x1D] + strb r1, [r2] + ldr r2, _080FC804 @ =gUnknown_03005DF4 + ldrb r1, [r0, 0x1E] + strb r1, [r2] + ldrb r0, [r0] + subs r0, 0x2 + cmp r0, 0x22 + bls _080FC7DC + b _080FC928 +_080FC7DC: + lsls r0, 2 + ldr r1, _080FC808 @ =_080FC80C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FC7E8: .4byte gUnknown_03005DEC +_080FC7EC: .4byte gUnknown_03005E00 +_080FC7F0: .4byte gUnknown_03005DE8 +_080FC7F4: .4byte gUnknown_03005DFC +_080FC7F8: .4byte gUnknown_03005DF8 +_080FC7FC: .4byte gUnknown_03005DF0 +_080FC800: .4byte gUnknown_03005E04 +_080FC804: .4byte gUnknown_03005DF4 +_080FC808: .4byte _080FC80C + .align 2, 0 +_080FC80C: + .4byte _080FC898 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC8F8 + .4byte _080FC928 + .4byte _080FC89E + .4byte _080FC8A4 + .4byte _080FC8B8 + .4byte _080FC8CA + .4byte _080FC928 + .4byte _080FC8E0 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC8E6 + .4byte _080FC8C4 + .4byte _080FC8EC + .4byte _080FC8F2 + .4byte _080FC928 + .4byte _080FC928 + .4byte _080FC904 +_080FC898: + bl sub_80FCAA4 + b _080FC928 +_080FC89E: + bl sub_80FCB5C + b _080FC928 +_080FC8A4: + bl sub_80FCD54 + ldr r0, _080FC8B4 @ =gUnknown_03005E00 + ldrb r0, [r0] + bl sub_80FCC18 + b _080FC928 + .align 2, 0 +_080FC8B4: .4byte gUnknown_03005E00 +_080FC8B8: + bl sub_80FCD54 + bl sub_80FCEA4 + bl sub_80FCCBC +_080FC8C4: + bl sub_80FCEA4 + b _080FC928 +_080FC8CA: + bl sub_80FCD54 + bl sub_80FD06C + bl sub_80FD06C + bl sub_80FD114 + bl sub_80FCCBC + b _080FC928 +_080FC8E0: + bl sub_80FCF3C + b _080FC928 +_080FC8E6: + bl sub_80FCD54 + b _080FC928 +_080FC8EC: + bl sub_80FD06C + b _080FC928 +_080FC8F2: + bl sub_80FD114 + b _080FC928 +_080FC8F8: + bl sub_80FCAC4 + movs r0, 0x3 + bl sub_80FC92C + b _080FC928 +_080FC904: + bl sub_80FCD54 + bl sub_80FD06C + bl sub_80FD114 + bl sub_80FCCBC + bl sub_80FCB5C + bl sub_80FCB5C + movs r0, 0x2 + bl sub_80FC92C + movs r0, 0x4 + bl sub_80FC9E4 +_080FC928: + pop {r0} + bx r0 + thumb_func_end sub_80FC7A0 + + thumb_func_start sub_80FC92C +sub_80FC92C: @ 80FC92C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r2, 0 + ldr r0, _080FC9CC @ =gUnknown_03005DF0 + mov r8, r0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FC9BE + ldr r1, _080FC9D0 @ =gUnknown_03005DF8 + mov r12, r1 + ldr r3, _080FC9D4 @ =gUnknown_03005E04 + mov r10, r3 + ldr r0, _080FC9D8 @ =gUnknown_03005DE8 + mov r9, r0 +_080FC952: + ldr r1, _080FC9DC @ =gUnknown_03005DFC + ldrb r0, [r1] + adds r0, r2 + mov r3, r10 + ldrb r1, [r3] + muls r0, r1 + lsls r0, 1 + ldr r3, _080FC9E0 @ =gUnknown_03005DEC + ldr r1, [r3] + adds r1, r0 + mov r3, r9 + ldrb r0, [r3] + lsls r0, 1 + adds r3, r1, r0 + movs r4, 0 + adds r5, r2, 0x1 + mov r0, r12 + ldrb r0, [r0] + cmp r4, r0 + bcs _080FC9B2 + movs r6, 0x80 + lsls r6, 8 +_080FC97E: + ldrh r1, [r3] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _080FC9A2 + movs r0, 0x1F + ands r0, r1 + adds r0, r7 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1F + bls _080FC998 + movs r2, 0x1F +_080FC998: + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_080FC9A2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r3, 0x2 + mov r1, r12 + ldrb r1, [r1] + cmp r4, r1 + bcc _080FC97E +_080FC9B2: + lsls r0, r5, 24 + lsrs r2, r0, 24 + mov r3, r8 + ldrb r3, [r3] + cmp r2, r3 + bcc _080FC952 +_080FC9BE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FC9CC: .4byte gUnknown_03005DF0 +_080FC9D0: .4byte gUnknown_03005DF8 +_080FC9D4: .4byte gUnknown_03005E04 +_080FC9D8: .4byte gUnknown_03005DE8 +_080FC9DC: .4byte gUnknown_03005DFC +_080FC9E0: .4byte gUnknown_03005DEC + thumb_func_end sub_80FC92C + + thumb_func_start sub_80FC9E4 +sub_80FC9E4: @ 80FC9E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080FCA8C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCA7C + ldr r1, _080FCA90 @ =gUnknown_03005DF8 + mov r10, r1 +_080FCA02: + ldr r3, _080FCA94 @ =gUnknown_03005DFC + ldrb r0, [r3] + adds r0, r2 + ldr r3, _080FCA98 @ =gUnknown_03005E04 + ldrb r1, [r3] + muls r0, r1 + lsls r0, 1 + ldr r3, _080FCA9C @ =gUnknown_03005DEC + ldr r1, [r3] + adds r1, r0 + ldr r3, _080FCAA0 @ =gUnknown_03005DE8 + ldrb r0, [r3] + lsls r0, 1 + adds r3, r1, r0 + movs r5, 0 + adds r7, r2, 0x1 + mov r0, r10 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FCA70 + movs r1, 0x80 + lsls r1, 8 + mov r9, r1 + movs r0, 0x1F + mov r12, r0 + mov r1, r8 + subs r6, r0, r1 +_080FCA38: + ldrh r1, [r3] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _080FCA60 + movs r4, 0x1F + mov r2, r12 + ands r2, r1 + cmp r2, r6 + ble _080FCA56 + mov r1, r8 + lsrs r0, r1, 1 + subs r0, r4, r0 + lsls r0, 24 + lsrs r2, r0, 24 +_080FCA56: + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r3] +_080FCA60: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r3, 0x2 + mov r0, r10 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FCA38 +_080FCA70: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r1, _080FCA8C @ =gUnknown_03005DF0 + ldrb r1, [r1] + cmp r2, r1 + bcc _080FCA02 +_080FCA7C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCA8C: .4byte gUnknown_03005DF0 +_080FCA90: .4byte gUnknown_03005DF8 +_080FCA94: .4byte gUnknown_03005DFC +_080FCA98: .4byte gUnknown_03005E04 +_080FCA9C: .4byte gUnknown_03005DEC +_080FCAA0: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FC9E4 + + thumb_func_start sub_80FCAA4 +sub_80FCAA4: @ 80FCAA4 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _080FCAC0 @ =0x00000c7f +_080FCAAA: + lsls r0, r4, 16 + lsrs r0, 16 + bl sub_80FD1C8 + adds r4, 0x1 + cmp r4, r5 + bls _080FCAAA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FCAC0: .4byte 0x00000c7f + thumb_func_end sub_80FCAA4 + + thumb_func_start sub_80FCAC4 +sub_80FCAC4: @ 80FCAC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCB44 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCB36 + ldr r0, _080FCB48 @ =gUnknown_03005DEC + mov r8, r0 + ldr r3, _080FCB4C @ =gUnknown_03005DF8 +_080FCADC: + ldr r0, _080FCB50 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCB54 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCB58 @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCB2A + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCB08: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCB1C + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD39C + strh r0, [r4] + ldr r3, [sp] +_080FCB1C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCB08 +_080FCB2A: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCB44 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCADC +_080FCB36: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCB44: .4byte gUnknown_03005DF0 +_080FCB48: .4byte gUnknown_03005DEC +_080FCB4C: .4byte gUnknown_03005DF8 +_080FCB50: .4byte gUnknown_03005DFC +_080FCB54: .4byte gUnknown_03005E04 +_080FCB58: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCAC4 + + thumb_func_start sub_80FCB5C +sub_80FCB5C: @ 80FCB5C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r2, 0 + ldr r0, _080FCC00 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCBF2 + ldr r0, _080FCC04 @ =gUnknown_03005DEC + mov r8, r0 + ldr r3, _080FCC08 @ =gUnknown_03005E04 +_080FCB74: + ldr r0, _080FCC0C @ =gUnknown_03005DFC + ldrb r1, [r0] + ldrb r0, [r3] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCC10 @ =gUnknown_03005DE8 + ldrb r0, [r0] + adds r0, r2 + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + ldrb r0, [r3] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FCC14 @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + adds r7, r2, 0x1 + cmp r5, r0 + bge _080FCBE6 + ldr r6, _080FCC08 @ =gUnknown_03005E04 +_080FCBAA: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FCBD0 + ldrb r2, [r6] + lsls r2, 1 + adds r2, r4, r2 + mov r0, sp + adds r1, r4, 0 + str r3, [sp, 0x4] + bl sub_80FD68C + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r3, [sp, 0x4] +_080FCBD0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r6] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FCC14 @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FCBAA +_080FCBE6: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FCC00 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCB74 +_080FCBF2: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCC00: .4byte gUnknown_03005DF8 +_080FCC04: .4byte gUnknown_03005DEC +_080FCC08: .4byte gUnknown_03005E04 +_080FCC0C: .4byte gUnknown_03005DFC +_080FCC10: .4byte gUnknown_03005DE8 +_080FCC14: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FCB5C + + thumb_func_start sub_80FCC18 +sub_80FCC18: @ 80FCC18 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r2, 0 + ldr r0, _080FCCA4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCC94 + ldr r0, _080FCCA8 @ =gUnknown_03005DEC + mov r9, r0 + ldr r3, _080FCCAC @ =gUnknown_03005DF8 +_080FCC38: + ldr r0, _080FCCB0 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCCB4 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r9 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCCB8 @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCC88 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCC64: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCC7A + adds r0, r4, 0 + mov r1, r8 + str r3, [sp] + bl sub_80FD3D0 + strh r0, [r4] + ldr r3, [sp] +_080FCC7A: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCC64 +_080FCC88: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCCA4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCC38 +_080FCC94: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCCA4: .4byte gUnknown_03005DF0 +_080FCCA8: .4byte gUnknown_03005DEC +_080FCCAC: .4byte gUnknown_03005DF8 +_080FCCB0: .4byte gUnknown_03005DFC +_080FCCB4: .4byte gUnknown_03005E04 +_080FCCB8: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCC18 + + thumb_func_start sub_80FCCBC +sub_80FCCBC: @ 80FCCBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCD3C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCD2E + ldr r0, _080FCD40 @ =gUnknown_03005DEC + mov r8, r0 + ldr r3, _080FCD44 @ =gUnknown_03005DF8 +_080FCCD4: + ldr r0, _080FCD48 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCD4C @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCD50 @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCD22 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCD00: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCD14 + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD4DC + strh r0, [r4] + ldr r3, [sp] +_080FCD14: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCD00 +_080FCD22: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCD3C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCCD4 +_080FCD2E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCD3C: .4byte gUnknown_03005DF0 +_080FCD40: .4byte gUnknown_03005DEC +_080FCD44: .4byte gUnknown_03005DF8 +_080FCD48: .4byte gUnknown_03005DFC +_080FCD4C: .4byte gUnknown_03005E04 +_080FCD50: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCCBC + + thumb_func_start sub_80FCD54 +sub_80FCD54: @ 80FCD54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r0, _080FCE8C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r7, r0 + bcs _080FCDE0 + ldr r0, _080FCE90 @ =gUnknown_03005DEC + mov r8, r0 +_080FCD6A: + ldr r0, _080FCE94 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r7 + ldr r0, _080FCE98 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r2, r8 + ldr r1, [r2] + adds r1, r0 + ldr r0, _080FCE9C @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r5, r1, r0 + adds r4, r5, 0x2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80FD50C + strh r0, [r5] + movs r6, 0x1 + adds r5, r4, 0 + ldr r0, _080FCEA0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + subs r0, 0x1 + adds r7, 0x1 + cmp r6, r0 + bge _080FCDCA +_080FCDA2: + adds r4, r5, 0x2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80FD50C + strh r0, [r5] + subs r1, r5, 0x2 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, r4, 0 + ldr r0, _080FCEA0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + subs r0, 0x1 + cmp r6, r0 + blt _080FCDA2 +_080FCDCA: + subs r1, r5, 0x2 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + lsls r0, r7, 24 + lsrs r7, r0, 24 + ldr r0, _080FCE8C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r7, r0 + bcc _080FCD6A +_080FCDE0: + movs r6, 0 + ldr r0, _080FCEA0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r6, r0 + bcs _080FCE80 + ldr r3, _080FCE90 @ =gUnknown_03005DEC + mov r9, r3 + ldr r0, _080FCE98 @ =gUnknown_03005E04 + mov r8, r0 +_080FCDF2: + ldr r0, _080FCE94 @ =gUnknown_03005DFC + ldrb r0, [r0] + mov r2, r8 + ldrb r1, [r2] + muls r0, r1 + lsls r0, 1 + mov r3, r9 + ldr r2, [r3] + adds r2, r0 + ldr r0, _080FCE9C @ =gUnknown_03005DE8 + ldrb r0, [r0] + adds r0, r6 + lsls r0, 1 + adds r5, r2, r0 + lsls r1, 1 + adds r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + movs r7, 0x1 + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + adds r5, r0 + ldr r0, _080FCE8C @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, 0x1 + cmp r7, r0 + bge _080FCE64 + ldr r4, _080FCE98 @ =gUnknown_03005E04 +_080FCE32: + ldrb r1, [r4] + lsls r1, 1 + adds r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + ldrb r1, [r4] + lsls r1, 1 + subs r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r4] + lsls r0, 1 + adds r5, r0 + ldr r0, _080FCE8C @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r7, r0 + blt _080FCE32 +_080FCE64: + mov r2, r8 + ldrb r1, [r2] + lsls r1, 1 + subs r1, r5, r1 + adds r0, r5, 0 + bl sub_80FD50C + strh r0, [r5] + lsls r0, r6, 24 + lsrs r6, r0, 24 + ldr r0, _080FCEA0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r6, r0 + bcc _080FCDF2 +_080FCE80: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCE8C: .4byte gUnknown_03005DF0 +_080FCE90: .4byte gUnknown_03005DEC +_080FCE94: .4byte gUnknown_03005DFC +_080FCE98: .4byte gUnknown_03005E04 +_080FCE9C: .4byte gUnknown_03005DE8 +_080FCEA0: .4byte gUnknown_03005DF8 + thumb_func_end sub_80FCD54 + + thumb_func_start sub_80FCEA4 +sub_80FCEA4: @ 80FCEA4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FCF24 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FCF16 + ldr r0, _080FCF28 @ =gUnknown_03005DEC + mov r8, r0 + ldr r3, _080FCF2C @ =gUnknown_03005DF8 +_080FCEBC: + ldr r0, _080FCF30 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FCF34 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r4, r8 + ldr r1, [r4] + adds r1, r0 + ldr r0, _080FCF38 @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + adds r6, r2, 0x1 + ldrb r0, [r3] + cmp r5, r0 + bcs _080FCF0A + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FCEE8: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FCEFC + adds r0, r4, 0 + str r3, [sp] + bl sub_80FD53C + strh r0, [r4] + ldr r3, [sp] +_080FCEFC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r5, r0 + bcc _080FCEE8 +_080FCF0A: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FCF24 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FCEBC +_080FCF16: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FCF24: .4byte gUnknown_03005DF0 +_080FCF28: .4byte gUnknown_03005DEC +_080FCF2C: .4byte gUnknown_03005DF8 +_080FCF30: .4byte gUnknown_03005DFC +_080FCF34: .4byte gUnknown_03005E04 +_080FCF38: .4byte gUnknown_03005DE8 + thumb_func_end sub_80FCEA4 + + thumb_func_start sub_80FCF3C +sub_80FCF3C: @ 80FCF3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _080FD068 @ =gUnknown_03005DEC + ldr r4, [r0] + movs r6, 0 + movs r0, 0x80 + lsls r0, 8 + adds r5, r0, 0 +_080FCF54: + movs r7, 0 +_080FCF56: + ldrh r0, [r4] + ands r0, r5 + cmp r0, 0 + bne _080FCF66 + adds r0, r4, 0 + bl sub_80FD53C + strh r0, [r4] +_080FCF66: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, 0x2 + cmp r7, 0x3F + bls _080FCF56 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3F + bls _080FCF54 + movs r7, 0 + ldr r1, _080FD068 @ =gUnknown_03005DEC + mov r10, r1 + mov r3, sp + movs r2, 0x80 + lsls r2, 8 + mov r9, r2 +_080FCF8A: + lsls r0, r7, 1 + mov r2, r10 + ldr r1, [r2] + adds r4, r1, r0 + ldrh r1, [r4] + strh r1, [r3] + mov r1, r9 + strh r1, [r4] + movs r6, 0x1 + adds r4, 0x80 + adds r5, r0, 0 +_080FCFA0: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + ands r0, r2 + cmp r0, 0 + bne _080FCFC0 + adds r2, r4, 0 + adds r2, 0x80 + mov r0, sp + adds r1, r4, 0 + str r3, [sp, 0x4] + bl sub_80FD7AC + strh r0, [r4] + ldr r3, [sp, 0x4] + strh r0, [r3] +_080FCFC0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, 0x80 + cmp r6, 0x3E + bls _080FCFA0 + mov r0, r9 + strh r0, [r4] + mov r1, r10 + ldr r0, [r1] + adds r4, r0, r5 + ldrh r0, [r4] + strh r0, [r3] + mov r2, r9 + strh r2, [r4] + movs r6, 0x1 + adds r4, 0x80 + movs r0, 0x80 + lsls r0, 8 + mov r8, r0 +_080FCFE8: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + adds r5, r4, 0 + adds r5, 0x80 + cmp r0, 0 + bne _080FD008 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + str r3, [sp, 0x4] + bl sub_80FD7AC + strh r0, [r4] + ldr r3, [sp, 0x4] + strh r0, [r3] +_080FD008: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, r5, 0 + cmp r6, 0x3E + bls _080FCFE8 + mov r2, r9 + strh r2, [r4] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3F + bls _080FCF8A + ldr r0, _080FD068 @ =gUnknown_03005DEC + ldr r4, [r0] + movs r6, 0 + movs r0, 0x80 + lsls r0, 8 + mov r8, r0 +_080FD02E: + movs r7, 0 + adds r5, r6, 0x1 +_080FD032: + ldrh r0, [r4] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + bne _080FD044 + adds r0, r4, 0 + bl sub_80FD53C + strh r0, [r4] +_080FD044: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, 0x2 + cmp r7, 0x3F + bls _080FD032 + lsls r0, r5, 24 + lsrs r6, r0, 24 + cmp r6, 0x3F + bls _080FD02E + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD068: .4byte gUnknown_03005DEC + thumb_func_end sub_80FCF3C + + thumb_func_start sub_80FD06C +sub_80FD06C: @ 80FD06C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FD0FC @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FD0EE + ldr r0, _080FD100 @ =gUnknown_03005DEC + mov r8, r0 +_080FD082: + ldr r0, _080FD104 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FD108 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FD10C @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + adds r4, 0x2 + ldr r0, _080FD110 @ =gUnknown_03005DF8 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r2, 0x1 + cmp r5, r0 + bge _080FD0E2 + movs r0, 0x80 + lsls r0, 8 + adds r7, r0, 0 +_080FD0BA: + ldrh r0, [r4] + ands r0, r7 + cmp r0, 0 + bne _080FD0D0 + mov r0, sp + adds r1, r4, 0 + bl sub_80FD568 + strh r0, [r4] + mov r1, sp + strh r0, [r1] +_080FD0D0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FD110 @ =gUnknown_03005DF8 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FD0BA +_080FD0E2: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FD0FC @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FD082 +_080FD0EE: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD0FC: .4byte gUnknown_03005DF0 +_080FD100: .4byte gUnknown_03005DEC +_080FD104: .4byte gUnknown_03005DFC +_080FD108: .4byte gUnknown_03005E04 +_080FD10C: .4byte gUnknown_03005DE8 +_080FD110: .4byte gUnknown_03005DF8 + thumb_func_end sub_80FD06C + + thumb_func_start sub_80FD114 +sub_80FD114: @ 80FD114 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r2, 0 + ldr r0, _080FD1B0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FD1A2 + ldr r0, _080FD1B4 @ =gUnknown_03005DEC + mov r8, r0 + ldr r7, _080FD1B8 @ =gUnknown_03005E04 +_080FD12C: + ldr r0, _080FD1BC @ =gUnknown_03005DFC + ldrb r1, [r0] + ldrb r0, [r7] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FD1C0 @ =gUnknown_03005DE8 + ldrb r0, [r0] + adds r0, r2 + lsls r0, 1 + adds r4, r1, r0 + ldrh r1, [r4] + mov r0, sp + strh r1, [r0] + movs r5, 0x1 + ldrb r0, [r7] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FD1C4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + adds r6, r2, 0x1 + cmp r5, r0 + bge _080FD196 + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FD166: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + bne _080FD180 + mov r0, sp + adds r1, r4, 0 + str r2, [sp, 0x4] + bl sub_80FD568 + strh r0, [r4] + mov r1, sp + strh r0, [r1] + ldr r2, [sp, 0x4] +_080FD180: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r0, [r7] + lsls r0, 1 + adds r4, r0 + ldr r0, _080FD1C4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r5, r0 + blt _080FD166 +_080FD196: + lsls r0, r6, 24 + lsrs r2, r0, 24 + ldr r0, _080FD1B0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FD12C +_080FD1A2: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FD1B0: .4byte gUnknown_03005DF8 +_080FD1B4: .4byte gUnknown_03005DEC +_080FD1B8: .4byte gUnknown_03005E04 +_080FD1BC: .4byte gUnknown_03005DFC +_080FD1C0: .4byte gUnknown_03005DE8 +_080FD1C4: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FD114 + + thumb_func_start sub_80FD1C8 +sub_80FD1C8: @ 80FD1C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + mov r2, sp + ldr r3, _080FD234 @ =gUnknown_083E7A50 + lsls r1, r0, 1 + add r1, r10 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r2, 0x1] + mov r5, sp + adds r0, r3, 0x2 + adds r1, r0 + ldrb r4, [r1] + lsls r2, r4, 24 + lsrs r1, r2, 27 + movs r0, 0x7 + ands r1, r0 + strh r1, [r5, 0x2] + lsrs r2, 25 + mov r9, r2 + movs r0, 0x3 + ands r2, r0 + mov r9, r2 + movs r5, 0x1 + ands r5, r4 + movs r4, 0x1 + mov r8, r4 + cmp r8, r1 + bcs _080FD27A + mov r3, sp +_080FD21A: + cmp r5, 0 + bne _080FD238 + mov r0, r8 + lsls r2, r0, 2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + mov r4, r8 + subs r0, r4 + strb r0, [r1] + ldrb r0, [r3, 0x1] + add r0, r8 + b _080FD24A + .align 2, 0 +_080FD234: .4byte gUnknown_083E7A50 +_080FD238: + mov r0, r8 + lsls r2, r0, 2 + mov r4, sp + adds r1, r4, r2 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r1] + ldrb r0, [r3, 0x1] + subs r0, 0x1 +_080FD24A: + strb r0, [r1, 0x1] + add r2, sp + ldrb r0, [r2] + cmp r0, 0x3F + bhi _080FD25A + ldrb r0, [r2, 0x1] + cmp r0, 0x3F + bls _080FD262 +_080FD25A: + mov r0, r8 + subs r0, 0x1 + strh r0, [r3, 0x2] + b _080FD27A +_080FD262: + ldrh r0, [r3, 0x2] + mov r1, r8 + subs r0, r1 + strh r0, [r2, 0x2] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrh r0, [r3, 0x2] + cmp r8, r0 + bcc _080FD21A +_080FD27A: + movs r2, 0 + mov r8, r2 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r8, r0 + bcc _080FD288 + b _080FD38A +_080FD288: + movs r3, 0x1F +_080FD28A: + ldr r1, _080FD2E8 @ =gUnknown_03005DEC + mov r4, r8 + lsls r0, r4, 2 + mov r2, sp + adds r6, r2, r0 + ldrb r0, [r6, 0x1] + lsls r0, 7 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r6] + lsls r0, 1 + adds r2, r1, r0 + ldrh r1, [r2] + movs r4, 0x80 + lsls r4, 8 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080FD376 + movs r7, 0x1F + ands r7, r1 + lsls r0, r1, 16 + lsrs r5, r0, 21 + ands r5, r3 + lsrs r4, r0, 26 + ands r4, r3 + mov r0, r9 + cmp r0, 0 + blt _080FD36C + cmp r0, 0x1 + ble _080FD2EC + cmp r0, 0x3 + bgt _080FD36C + ldrh r0, [r6, 0x2] + adds r1, r7, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r1, r5, r0 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r7, 0x1F + bls _080FD360 + movs r7, 0x1F + b _080FD360 + .align 2, 0 +_080FD2E8: .4byte gUnknown_03005DEC +_080FD2EC: + mov r1, r10 + lsls r0, r1, 1 + add r0, r10 + ldr r1, _080FD320 @ =gUnknown_083E7A50 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsrs r0, 3 + movs r1, 0x7 + ands r0, r1 + movs r1, 0x3 + str r2, [sp, 0x18] + str r3, [sp, 0x1C] + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x18] + ldr r3, [sp, 0x1C] + cmp r0, 0x1 + beq _080FD33C + cmp r0, 0x1 + bgt _080FD324 + cmp r0, 0 + beq _080FD32A + b _080FD36C + .align 2, 0 +_080FD320: .4byte gUnknown_083E7A50 +_080FD324: + cmp r0, 0x2 + beq _080FD34E + b _080FD36C +_080FD32A: + ldrh r0, [r6, 0x2] + cmp r7, r0 + bcc _080FD338 + subs r0, r7, r0 + lsls r0, 16 + lsrs r7, r0, 16 + b _080FD36C +_080FD338: + movs r7, 0 + b _080FD36C +_080FD33C: + ldrh r0, [r6, 0x2] + cmp r5, r0 + bcc _080FD34A + subs r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + b _080FD36C +_080FD34A: + movs r5, 0 + b _080FD36C +_080FD34E: + ldrh r0, [r6, 0x2] + cmp r4, r0 + bcc _080FD35C + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + b _080FD36C +_080FD35C: + movs r4, 0 + b _080FD36C +_080FD360: + cmp r5, 0x1F + bls _080FD366 + movs r5, 0x1F +_080FD366: + cmp r4, 0x1F + bls _080FD36C + movs r4, 0x1F +_080FD36C: + lsls r0, r4, 10 + lsls r1, r5, 5 + orrs r0, r1 + orrs r7, r0 + strh r7, [r2] +_080FD376: + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r8, r0 + bcs _080FD38A + b _080FD28A +_080FD38A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FD1C8 + + thumb_func_start sub_80FD39C +sub_80FD39C: @ 80FD39C + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + lsls r0, r1, 10 + lsls r2, r1, 5 + orrs r0, r2 + orrs r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FD39C + + thumb_func_start sub_80FD3D0 +sub_80FD3D0: @ 80FD3D0 + push {r4,lr} + lsls r1, 24 + lsrs r4, r1, 24 + ldrh r0, [r0] + movs r2, 0x1F + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r2 + lsrs r0, 26 + ands r0, r2 + cmp r1, 0x10 + bhi _080FD400 + cmp r3, 0x10 + bhi _080FD400 + cmp r0, 0x10 + bhi _080FD400 + adds r0, r4, 0 + bl sub_80FD40C + lsls r0, 16 + lsrs r0, 16 + b _080FD402 +_080FD400: + ldr r0, _080FD408 @ =0x00007fff +_080FD402: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080FD408: .4byte 0x00007fff + thumb_func_end sub_80FD3D0 + + thumb_func_start sub_80FD40C +sub_80FD40C: @ 80FD40C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + mov r8, r0 + movs r6, 0 + movs r7, 0 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _080FD4C4 + lsls r0, 2 + ldr r1, _080FD450 @ =_080FD454 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FD450: .4byte _080FD454 + .align 2, 0 +_080FD454: + .4byte _080FD46C + .4byte _080FD47C + .4byte _080FD48C + .4byte _080FD49A + .4byte _080FD4A8 + .4byte _080FD4B6 +_080FD46C: + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r6, r0, 16 + adds r7, r6, 0 + movs r1, 0 + mov r8, r1 + b _080FD4C4 +_080FD47C: + movs r7, 0 + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + mov r6, r8 + b _080FD4C4 +_080FD48C: + movs r0, 0x15 + subs r0, r5 + lsls r0, 16 + lsrs r7, r0, 16 + movs r6, 0 + mov r8, r7 + b _080FD4C4 +_080FD49A: + movs r7, 0 + movs r6, 0 + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r0, 16 + b _080FD4C2 +_080FD4A8: + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r7, r0, 16 + movs r6, 0 + mov r8, r6 + b _080FD4C4 +_080FD4B6: + movs r7, 0 + movs r0, 0x17 + subs r0, r5 + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0 +_080FD4C2: + mov r8, r0 +_080FD4C4: + lsls r0, r7, 10 + lsls r1, r6, 5 + orrs r0, r1 + mov r1, r8 + orrs r1, r0 + lsls r0, r1, 16 + lsrs r0, 16 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD40C + + thumb_func_start sub_80FD4DC +sub_80FD4DC: @ 80FD4DC + push {lr} + ldrh r0, [r0] + movs r2, 0x1F + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r2 + lsrs r0, 26 + ands r0, r2 + cmp r1, 0x10 + bhi _080FD500 + cmp r3, 0x10 + bhi _080FD500 + cmp r0, 0x10 + bhi _080FD500 + movs r0, 0 + b _080FD502 +_080FD500: + ldr r0, _080FD508 @ =0x00007fff +_080FD502: + pop {r1} + bx r1 + .align 2, 0 +_080FD508: .4byte 0x00007fff + thumb_func_end sub_80FD4DC + + thumb_func_start sub_80FD50C +sub_80FD50C: @ 80FD50C + push {r4,lr} + adds r4, r0, 0 + ldrh r3, [r4] + cmp r3, 0 + beq _080FD534 + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _080FD526 + adds r0, r2, 0 + b _080FD536 +_080FD526: + ldrh r1, [r1] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080FD534 + ldrh r0, [r4] + b _080FD536 +_080FD534: + movs r0, 0 +_080FD536: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FD50C + + thumb_func_start sub_80FD53C +sub_80FD53C: @ 80FD53C + push {r4,lr} + ldrh r1, [r0] + movs r0, 0x1F + movs r3, 0x1F + ands r3, r1 + lsls r1, 16 + lsrs r2, r1, 21 + lsrs r1, 26 + subs r3, r0, r3 + adds r4, r0, 0 + bics r4, r2 + adds r2, r4, 0 + bics r0, r1 + lsls r0, 10 + lsls r2, 5 + orrs r0, r2 + orrs r0, r3 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FD53C + + thumb_func_start sub_80FD568 +sub_80FD568: @ 80FD568 + push {r4-r7,lr} + sub sp, 0x14 + adds r7, r1, 0 + ldrh r4, [r0] + ldrh r5, [r7] + lsls r6, r4, 16 + lsls r0, r5, 16 + mov r12, r0 + cmp r4, r5 + beq _080FD5DA + mov r2, sp + movs r3, 0x1F + movs r1, 0x1F + adds r0, r1, 0 + ands r0, r4 + strh r0, [r2] + lsrs r0, r6, 21 + ands r0, r3 + strh r0, [r2, 0x2] + lsrs r0, r6, 26 + ands r0, r3 + strh r0, [r2, 0x4] + mov r0, sp + ands r1, r5 + strh r1, [r0, 0x6] + mov r1, sp + mov r2, r12 + lsrs r0, r2, 21 + ands r0, r3 + strh r0, [r1, 0x8] + lsrs r0, r2, 26 + ands r0, r3 + strh r0, [r1, 0xA] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0x19 + bls _080FD5C2 + mov r0, sp + ldrh r0, [r0, 0x2] + cmp r0, 0x19 + bls _080FD5C2 + mov r0, sp + ldrh r0, [r0, 0x4] + cmp r0, 0x19 + bhi _080FD5DA +_080FD5C2: + mov r0, sp + ldrh r0, [r0, 0x6] + cmp r0, 0x19 + bls _080FD5DE + mov r0, sp + ldrh r0, [r0, 0x8] + cmp r0, 0x19 + bls _080FD5DE + mov r0, sp + ldrh r0, [r0, 0xA] + cmp r0, 0x19 + bls _080FD5DE +_080FD5DA: + ldrh r0, [r7] + b _080FD684 +_080FD5DE: + movs r4, 0 + add r6, sp, 0xC + mov r7, sp + adds r7, 0x6 + adds r5, r6, 0 +_080FD5E8: + lsls r2, r4, 1 + mov r1, sp + adds r0, r1, r2 + adds r1, r7, r2 + ldrh r3, [r0] + ldrh r0, [r1] + cmp r3, r0 + bls _080FD5FE + adds r1, r5, r2 + subs r0, r3, r0 + b _080FD602 +_080FD5FE: + adds r1, r5, r2 + subs r0, r3 +_080FD602: + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080FD5E8 + adds r1, r6, 0 + ldrh r0, [r1, 0x2] + ldrh r3, [r1] + cmp r3, r0 + bcc _080FD628 + ldrh r2, [r1, 0x4] + cmp r3, r2 + bcc _080FD622 + adds r2, r3, 0 + b _080FD63C +_080FD622: + cmp r0, r2 + bcs _080FD62E + b _080FD636 +_080FD628: + ldrh r2, [r1, 0x4] + cmp r0, r2 + bcc _080FD632 +_080FD62E: + ldrh r2, [r1, 0x2] + b _080FD63C +_080FD632: + cmp r2, r3 + bcc _080FD63A +_080FD636: + ldrh r2, [r1, 0x4] + b _080FD63C +_080FD63A: + ldrh r2, [r6] +_080FD63C: + mov r0, sp + ldrh r1, [r0, 0x6] + lsrs r0, r2, 1 + movs r6, 0x1F + subs r6, r0 + adds r0, r1, 0 + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r0, sp + ldrh r0, [r0, 0x8] + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + ldrh r0, [r0, 0xA] + muls r0, r6 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + lsls r4, 5 + orrs r0, r4 + orrs r5, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r5, 0 +_080FD684: + add sp, 0x14 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD568 + + thumb_func_start sub_80FD68C +sub_80FD68C: @ 80FD68C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + mov r10, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, r10 + ldrh r0, [r0] + cmp r1, r0 + bne _080FD6B4 + ldrh r0, [r2] + cmp r0, r1 + bne _080FD6B4 + mov r1, r10 + ldrh r0, [r1] + b _080FD79C +_080FD6B4: + mov r2, r10 + ldrh r0, [r2] + movs r1, 0x1F + mov r9, r1 + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + lsls r0, 16 + lsrs r2, r0, 21 + mov r1, r9 + ands r1, r2 + mov r8, r1 + lsrs r0, 26 + mov r2, r9 + ands r2, r0 + str r2, [sp, 0x4] + ldrh r2, [r3] + adds r0, r4, 0 + ands r0, r2 + lsls r2, 16 + lsrs r1, r2, 21 + mov r3, r9 + ands r1, r3 + adds r0, r1 + lsrs r2, 26 + ands r2, r3 + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, 0x4] + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, 16 + lsrs r0, r1, 21 + mov r2, r9 + ands r0, r2 + adds r4, r0 + lsrs r1, 26 + ands r1, r2 + adds r4, r1 + adds r0, r4, 0 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r7, r6 + bne _080FD736 + cmp r1, r6 + bne _080FD736 + mov r3, r10 + ldrh r0, [r3] + b _080FD79C +_080FD736: + cmp r7, r6 + bls _080FD73E + subs r0, r7, r6 + b _080FD740 +_080FD73E: + subs r0, r6, r7 +_080FD740: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, r6 + bls _080FD74C + subs r0, r1, r6 + b _080FD74E +_080FD74C: + subs r0, r6, r1 +_080FD74E: + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + bcc _080FD758 + adds r0, r2, 0 +_080FD758: + lsrs r0, 1 + movs r4, 0x1F + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r8 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, [sp, 0x4] + adds r0, r1, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + mov r2, r8 + lsls r1, r2, 5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, 16 + lsrs r0, 16 +_080FD79C: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD68C + + thumb_func_start sub_80FD7AC +sub_80FD7AC: @ 80FD7AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + mov r10, r1 + str r2, [sp] + ldrh r1, [r3] + mov r0, r10 + ldrh r0, [r0] + cmp r1, r0 + bne _080FD7D4 + ldrh r0, [r2] + cmp r0, r1 + bne _080FD7D4 + mov r1, r10 + ldrh r0, [r1] + b _080FD8BA +_080FD7D4: + mov r2, r10 + ldrh r0, [r2] + movs r1, 0x1F + mov r9, r1 + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + lsls r0, 16 + lsrs r2, r0, 21 + mov r1, r9 + ands r1, r2 + mov r8, r1 + lsrs r0, 26 + mov r2, r9 + ands r2, r0 + str r2, [sp, 0x4] + ldrh r2, [r3] + adds r0, r4, 0 + ands r0, r2 + lsls r2, 16 + lsrs r1, r2, 21 + mov r3, r9 + ands r1, r3 + adds r0, r1 + lsrs r2, 26 + ands r2, r3 + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r1, r8 + adds r0, r5, r1 + ldr r2, [sp, 0x4] + adds r0, r2 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, [sp] + ldrh r1, [r3] + ands r4, r1 + lsls r1, 16 + lsrs r0, r1, 21 + mov r2, r9 + ands r0, r2 + adds r4, r0 + lsrs r1, 26 + ands r1, r2 + adds r4, r1 + adds r0, r4, 0 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r7, r6 + bne _080FD856 + cmp r1, r6 + bne _080FD856 + mov r3, r10 + ldrh r0, [r3] + b _080FD8BA +_080FD856: + cmp r7, r6 + bls _080FD85E + subs r0, r7, r6 + b _080FD860 +_080FD85E: + subs r0, r6, r7 +_080FD860: + lsls r0, 16 + lsrs r2, r0, 16 + cmp r1, r6 + bls _080FD86C + subs r0, r1, r6 + b _080FD86E +_080FD86C: + subs r0, r6, r1 +_080FD86E: + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + bcc _080FD878 + adds r0, r2, 0 +_080FD878: + movs r4, 0x1F + subs r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r8 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r1, [sp, 0x4] + adds r0, r1, 0 + muls r0, r4 + movs r1, 0x1F + bl __divsi3 + lsls r0, 16 + lsrs r0, 6 + mov r2, r8 + lsls r1, r2, 5 + orrs r0, r1 + orrs r5, r0 + lsls r0, r5, 16 + lsrs r0, 16 +_080FD8BA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FD7AC + + thumb_func_start sub_80FD8CC +sub_80FD8CC: @ 80FD8CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldrb r1, [r0, 0x1D] + lsrs r5, r1, 3 + ldrb r1, [r0, 0x1E] + lsrs r1, 3 + str r1, [sp, 0x8] + ldr r1, [r0, 0x4] + str r1, [sp] + ldr r2, [r0, 0x10] + str r2, [sp, 0x4] + ldrh r0, [r0, 0x16] + cmp r0, 0x2 + bne _080FD97C + movs r1, 0 + ldr r0, [sp, 0x8] + cmp r1, r0 + bcc _080FD8FA + b _080FDA08 +_080FD8FA: + movs r0, 0 + adds r2, r1, 0x1 + mov r10, r2 + cmp r0, r5 + bcs _080FD96E + adds r2, r1, 0 + muls r2, r5 + mov r9, r2 + lsls r1, 3 + mov r8, r1 +_080FD90E: + movs r4, 0 + lsls r6, r0, 4 + adds r7, r0, 0x1 + add r0, r9 + lsls r0, 6 + ldr r1, [sp, 0x4] + adds r1, r0 + mov r12, r1 +_080FD91E: + lsls r0, r4, 3 + mov r2, r12 + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, 3 + muls r0, r5 + lsls r0, 1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r0, [r2, 0x2] + lsls r0, 8 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r3] + ldrh r0, [r2, 0x6] + lsls r0, 8 + ldrh r1, [r2, 0x4] + orrs r0, r1 + strh r0, [r3, 0x2] + ldrh r0, [r2, 0xA] + lsls r0, 8 + ldrh r1, [r2, 0x8] + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r2, 0xE] + lsls r0, 8 + ldrh r1, [r2, 0xC] + orrs r0, r1 + strh r0, [r3, 0x6] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080FD91E + lsls r0, r7, 16 + lsrs r0, 16 + cmp r0, r5 + bcc _080FD90E +_080FD96E: + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + ldr r2, [sp, 0x8] + cmp r1, r2 + bcc _080FD8FA + b _080FDA08 +_080FD97C: + movs r1, 0 + ldr r0, [sp, 0x8] + cmp r1, r0 + bcs _080FDA08 +_080FD984: + movs r0, 0 + adds r2, r1, 0x1 + mov r10, r2 + cmp r0, r5 + bcs _080FD9FC + adds r2, r1, 0 + muls r2, r5 + mov r9, r2 + lsls r1, 3 + mov r8, r1 +_080FD998: + movs r4, 0 + lsls r6, r0, 4 + adds r7, r0, 0x1 + add r0, r9 + lsls r0, 5 + ldr r1, [sp, 0x4] + adds r1, r0 + mov r12, r1 +_080FD9A8: + lsls r0, r4, 2 + mov r2, r12 + adds r3, r2, r0 + mov r1, r8 + adds r0, r1, r4 + lsls r0, 3 + muls r0, r5 + lsls r0, 1 + ldr r2, [sp] + adds r0, r2, r0 + adds r2, r0, r6 + ldrh r1, [r2, 0x2] + lsls r1, 4 + ldrh r0, [r2] + orrs r1, r0 + ldrh r0, [r2, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2, 0x6] + lsls r0, 12 + orrs r1, r0 + strh r1, [r3] + ldrh r1, [r2, 0xA] + lsls r1, 4 + ldrh r0, [r2, 0x8] + orrs r1, r0 + ldrh r0, [r2, 0xC] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2, 0xE] + lsls r0, 12 + orrs r1, r0 + strh r1, [r3, 0x2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x7 + bls _080FD9A8 + lsls r0, r7, 16 + lsrs r0, 16 + cmp r0, r5 + bcc _080FD998 +_080FD9FC: + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + ldr r2, [sp, 0x8] + cmp r1, r2 + bcc _080FD984 +_080FDA08: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FD8CC + + thumb_func_start sub_80FDA18 +sub_80FDA18: @ 80FDA18 + push {lr} + ldr r2, _080FDA68 @ =gUnknown_03005E0C + ldrb r1, [r0, 0x18] + lsls r1, 4 + strh r1, [r2] + ldr r3, _080FDA6C @ =gUnknown_03005E08 + ldrh r2, [r2] + lsls r2, 1 + ldr r1, [r0, 0x8] + adds r1, r2 + str r1, [r3] + ldr r2, _080FDA70 @ =gUnknown_03005DEC + ldr r1, [r0, 0x4] + str r1, [r2] + ldr r2, _080FDA74 @ =gUnknown_03005DE8 + ldrb r1, [r0, 0x19] + strb r1, [r2] + ldr r2, _080FDA78 @ =gUnknown_03005DFC + ldrb r1, [r0, 0x1A] + strb r1, [r2] + ldr r2, _080FDA7C @ =gUnknown_03005DF8 + ldrb r1, [r0, 0x1B] + strb r1, [r2] + ldr r2, _080FDA80 @ =gUnknown_03005DF0 + ldrb r1, [r0, 0x1C] + strb r1, [r2] + ldr r2, _080FDA84 @ =gUnknown_03005E04 + ldrb r1, [r0, 0x1D] + strb r1, [r2] + ldr r2, _080FDA88 @ =gUnknown_03005DF4 + ldrb r1, [r0, 0x1E] + strb r1, [r2] + ldrh r0, [r0, 0x14] + cmp r0, 0x5 + bhi _080FDADE + lsls r0, 2 + ldr r1, _080FDA8C @ =_080FDA90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FDA68: .4byte gUnknown_03005E0C +_080FDA6C: .4byte gUnknown_03005E08 +_080FDA70: .4byte gUnknown_03005DEC +_080FDA74: .4byte gUnknown_03005DE8 +_080FDA78: .4byte gUnknown_03005DFC +_080FDA7C: .4byte gUnknown_03005DF8 +_080FDA80: .4byte gUnknown_03005DF0 +_080FDA84: .4byte gUnknown_03005E04 +_080FDA88: .4byte gUnknown_03005DF4 +_080FDA8C: .4byte _080FDA90 + .align 2, 0 +_080FDA90: + .4byte _080FDAA8 + .4byte _080FDAB0 + .4byte _080FDAB8 + .4byte _080FDAC2 + .4byte _080FDACC + .4byte _080FDAD6 +_080FDAA8: + movs r0, 0 + bl sub_80FDC18 + b _080FDADE +_080FDAB0: + movs r0, 0x1 + bl sub_80FDC18 + b _080FDADE +_080FDAB8: + bl sub_80FDAE4 + bl sub_80FDF88 + b _080FDADE +_080FDAC2: + bl sub_80FDBE4 + bl sub_80FDED8 + b _080FDADE +_080FDACC: + bl sub_80FDBA8 + bl sub_80FDE28 + b _080FDADE +_080FDAD6: + bl sub_80FDB8C + bl sub_80FDD70 +_080FDADE: + pop {r0} + bx r0 + thumb_func_end sub_80FDA18 + + thumb_func_start sub_80FDAE4 +sub_80FDAE4: @ 80FDAE4 + ldr r2, _080FDB4C @ =gUnknown_03005E08 + ldr r1, [r2] + movs r0, 0 + strh r0, [r1] + ldr r0, [r2] + ldr r2, _080FDB50 @ =0x000018c6 + adds r1, r2, 0 + strh r1, [r0, 0x2] + ldr r2, _080FDB54 @ =0x000077bd + adds r1, r2, 0 + strh r1, [r0, 0x4] + ldr r2, _080FDB58 @ =0x00002d6b + adds r1, r2, 0 + strh r1, [r0, 0x6] + ldr r2, _080FDB5C @ =0x000018dd + adds r1, r2, 0 + strh r1, [r0, 0x8] + ldr r2, _080FDB60 @ =0x00001ba6 + adds r1, r2, 0 + strh r1, [r0, 0xA] + ldr r2, _080FDB64 @ =0x000074c6 + adds r1, r2, 0 + strh r1, [r0, 0xC] + ldr r2, _080FDB68 @ =0x00001bbd + adds r1, r2, 0 + strh r1, [r0, 0xE] + ldr r2, _080FDB6C @ =0x000074dd + adds r1, r2, 0 + strh r1, [r0, 0x10] + ldr r2, _080FDB70 @ =0x000077a6 + adds r1, r2, 0 + strh r1, [r0, 0x12] + ldr r2, _080FDB74 @ =0x0000197d + adds r1, r2, 0 + strh r1, [r0, 0x14] + ldr r2, _080FDB78 @ =0x00001bab + adds r1, r2, 0 + strh r1, [r0, 0x16] + ldr r2, _080FDB7C @ =0x00007566 + adds r1, r2, 0 + strh r1, [r0, 0x18] + ldr r2, _080FDB80 @ =0x00002cdd + adds r1, r2, 0 + strh r1, [r0, 0x1A] + ldr r2, _080FDB84 @ =0x00002fa6 + adds r1, r2, 0 + strh r1, [r0, 0x1C] + ldr r2, _080FDB88 @ =0x000074cb + adds r1, r2, 0 + strh r1, [r0, 0x1E] + bx lr + .align 2, 0 +_080FDB4C: .4byte gUnknown_03005E08 +_080FDB50: .4byte 0x000018c6 +_080FDB54: .4byte 0x000077bd +_080FDB58: .4byte 0x00002d6b +_080FDB5C: .4byte 0x000018dd +_080FDB60: .4byte 0x00001ba6 +_080FDB64: .4byte 0x000074c6 +_080FDB68: .4byte 0x00001bbd +_080FDB6C: .4byte 0x000074dd +_080FDB70: .4byte 0x000077a6 +_080FDB74: .4byte 0x0000197d +_080FDB78: .4byte 0x00001bab +_080FDB7C: .4byte 0x00007566 +_080FDB80: .4byte 0x00002cdd +_080FDB84: .4byte 0x00002fa6 +_080FDB88: .4byte 0x000074cb + thumb_func_end sub_80FDAE4 + + thumb_func_start sub_80FDB8C +sub_80FDB8C: @ 80FDB8C + ldr r2, _080FDBA0 @ =gUnknown_03005E08 + ldr r0, [r2] + movs r1, 0 + strh r1, [r0] + ldr r2, [r2] + strh r1, [r2, 0x2] + ldr r1, _080FDBA4 @ =0x00007fff + adds r0, r1, 0 + strh r0, [r2, 0x4] + bx lr + .align 2, 0 +_080FDBA0: .4byte gUnknown_03005E08 +_080FDBA4: .4byte 0x00007fff + thumb_func_end sub_80FDB8C + + thumb_func_start sub_80FDBA8 +sub_80FDBA8: @ 80FDBA8 + push {r4,r5,lr} + ldr r1, _080FDBE0 @ =gUnknown_03005E08 + ldr r0, [r1] + movs r2, 0 + strh r2, [r0] + ldr r0, [r1] + strh r2, [r0, 0x2] + movs r4, 0 + adds r5, r1, 0 +_080FDBBA: + ldr r0, [r5] + lsls r2, r4, 1 + adds r2, r0 + adds r0, r4, 0x2 + lsls r3, r0, 1 + lsls r1, r0, 11 + lsls r0, 6 + orrs r1, r0 + orrs r1, r3 + strh r1, [r2, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xD + bls _080FDBBA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FDBE0: .4byte gUnknown_03005E08 + thumb_func_end sub_80FDBA8 + + thumb_func_start sub_80FDBE4 +sub_80FDBE4: @ 80FDBE4 + push {r4,lr} + ldr r2, _080FDC14 @ =gUnknown_03005E08 + ldr r1, [r2] + movs r0, 0 + strh r0, [r1] + movs r3, 0 + adds r4, r2, 0 +_080FDBF2: + ldr r0, [r4] + lsls r2, r3, 1 + adds r2, r0 + lsls r0, r3, 10 + lsls r1, r3, 5 + orrs r0, r1 + orrs r0, r3 + strh r0, [r2, 0x2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _080FDBF2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FDC14: .4byte gUnknown_03005E08 + thumb_func_end sub_80FDBE4 + + thumb_func_start sub_80FDC18 +sub_80FDC18: @ 80FDC18 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + movs r1, 0xDF + mov r9, r1 + cmp r0, 0 + bne _080FDC30 + movs r2, 0xFF + mov r9, r2 +_080FDC30: + movs r6, 0 + ldr r3, _080FDCB4 @ =gUnknown_03005E08 + mov r12, r3 + mov r0, r9 + lsls r4, r0, 1 + ldr r5, _080FDCB8 @ =gUnknown_03005DF0 + cmp r6, r9 + bcs _080FDC54 + movs r2, 0 +_080FDC42: + ldr r0, [r3] + lsls r1, r6, 1 + adds r1, r0 + strh r2, [r1] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r9 + bcc _080FDC42 +_080FDC54: + mov r1, r12 + ldr r0, [r1] + adds r0, r4, r0 + ldr r2, _080FDCBC @ =0x00003def + adds r1, r2, 0 + strh r1, [r0] + movs r3, 0 + ldrb r5, [r5] + cmp r3, r5 + bcs _080FDD58 +_080FDC68: + ldr r2, _080FDCC0 @ =gUnknown_03005DEC + ldr r0, _080FDCC4 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r3 + ldr r0, _080FDCC8 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + ldr r1, [r2] + adds r1, r0 + ldr r0, _080FDCCC @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r6, 0 + ldr r0, _080FDCD0 @ =gUnknown_03005DF8 + adds r2, r0, 0 + adds r3, 0x1 + mov r10, r3 + ldrb r3, [r2] + cmp r6, r3 + bcs _080FDD4A + ldr r0, _080FDCD4 @ =gUnknown_03005E0C + mov r8, r0 +_080FDC98: + ldrh r0, [r4] + movs r3, 0x80 + lsls r3, 8 + adds r1, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FDCD8 + mov r1, r8 + ldrh r0, [r1] + strh r0, [r4] + adds r6, 0x1 + adds r7, r4, 0x2 + b _080FDD3E + .align 2, 0 +_080FDCB4: .4byte gUnknown_03005E08 +_080FDCB8: .4byte gUnknown_03005DF0 +_080FDCBC: .4byte 0x00003def +_080FDCC0: .4byte gUnknown_03005DEC +_080FDCC4: .4byte gUnknown_03005DFC +_080FDCC8: .4byte gUnknown_03005E04 +_080FDCCC: .4byte gUnknown_03005DE8 +_080FDCD0: .4byte gUnknown_03005DF8 +_080FDCD4: .4byte gUnknown_03005E0C +_080FDCD8: + adds r0, r4, 0 + bl sub_80FE038 + lsls r0, 16 + lsrs r5, r0, 16 + movs r3, 0x1 + adds r6, 0x1 + adds r7, r4, 0x2 + cmp r3, r9 + bcs _080FDD34 + ldr r0, _080FDD04 @ =gUnknown_03005E08 + ldr r2, [r0] + ldrh r1, [r2, 0x2] + mov r12, r0 + cmp r1, 0 + bne _080FDD08 + strh r5, [r2, 0x2] + mov r2, r8 + ldrh r0, [r2] + adds r0, 0x1 + b _080FDD32 + .align 2, 0 +_080FDD04: .4byte gUnknown_03005E08 +_080FDD08: + mov r2, r12 + ldr r1, [r2] + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r5 + beq _080FDD2C + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r9 + bcs _080FDD34 + lsls r0, r3, 1 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, 0 + bne _080FDD08 + strh r5, [r1] +_080FDD2C: + mov r1, r8 + ldrh r0, [r1] + adds r0, r3 +_080FDD32: + strh r0, [r4] +_080FDD34: + ldr r2, _080FDD68 @ =gUnknown_03005DF8 + cmp r3, r9 + bne _080FDD3E + mov r3, r9 + strh r3, [r4] +_080FDD3E: + lsls r0, r6, 24 + lsrs r6, r0, 24 + adds r4, r7, 0 + ldrb r0, [r2] + cmp r6, r0 + bcc _080FDC98 +_080FDD4A: + mov r1, r10 + lsls r0, r1, 24 + lsrs r3, r0, 24 + ldr r0, _080FDD6C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r3, r0 + bcc _080FDC68 +_080FDD58: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDD68: .4byte gUnknown_03005DF8 +_080FDD6C: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDC18 + + thumb_func_start sub_80FDD70 +sub_80FDD70: @ 80FDD70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r2, 0 + ldr r0, _080FDDC4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDE14 + ldr r0, _080FDDC8 @ =gUnknown_03005DEC + mov r8, r0 +_080FDD84: + ldr r0, _080FDDCC @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDDD0 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDDD4 @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r6, 0 + ldr r0, _080FDDD8 @ =gUnknown_03005DF8 + adds r3, r0, 0 + adds r7, r2, 0x1 + ldrb r0, [r3] + cmp r6, r0 + bcs _080FDE08 + ldr r5, _080FDDDC @ =gUnknown_03005E0C +_080FDDB0: + ldrh r0, [r4] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080FDDE0 + ldrh r0, [r5] + strh r0, [r4] + b _080FDDFA + .align 2, 0 +_080FDDC4: .4byte gUnknown_03005DF0 +_080FDDC8: .4byte gUnknown_03005DEC +_080FDDCC: .4byte gUnknown_03005DFC +_080FDDD0: .4byte gUnknown_03005E04 +_080FDDD4: .4byte gUnknown_03005DE8 +_080FDDD8: .4byte gUnknown_03005DF8 +_080FDDDC: .4byte gUnknown_03005E0C +_080FDDE0: + adds r0, r4, 0 + bl sub_80FD4DC + lsls r0, 16 + cmp r0, 0 + bne _080FDDF2 + ldrh r0, [r5] + adds r0, 0x1 + b _080FDDF6 +_080FDDF2: + ldrh r0, [r5] + adds r0, 0x2 +_080FDDF6: + strh r0, [r4] + ldr r3, _080FDE20 @ =gUnknown_03005DF8 +_080FDDFA: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, 0x2 + ldrb r0, [r3] + cmp r6, r0 + bcc _080FDDB0 +_080FDE08: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDE24 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDD84 +_080FDE14: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDE20: .4byte gUnknown_03005DF8 +_080FDE24: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDD70 + + thumb_func_start sub_80FDE28 +sub_80FDE28: @ 80FDE28 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDE7C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDEC4 + ldr r0, _080FDE80 @ =gUnknown_03005DEC + mov r8, r0 +_080FDE3E: + ldr r0, _080FDE84 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDE88 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDE8C @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDE90 @ =gUnknown_03005DF8 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FDEB8 + ldr r6, _080FDE94 @ =gUnknown_03005E0C + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDE6E: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDE98 + ldrh r0, [r6] + strh r0, [r4] + b _080FDEA8 + .align 2, 0 +_080FDE7C: .4byte gUnknown_03005DF0 +_080FDE80: .4byte gUnknown_03005DEC +_080FDE84: .4byte gUnknown_03005DFC +_080FDE88: .4byte gUnknown_03005E04 +_080FDE8C: .4byte gUnknown_03005DE8 +_080FDE90: .4byte gUnknown_03005DF8 +_080FDE94: .4byte gUnknown_03005E0C +_080FDE98: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE17C + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FDEA8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FDED0 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDE6E +_080FDEB8: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDED4 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDE3E +_080FDEC4: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDED0: .4byte gUnknown_03005DF8 +_080FDED4: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDE28 + + thumb_func_start sub_80FDED8 +sub_80FDED8: @ 80FDED8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDF2C @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FDF74 + ldr r0, _080FDF30 @ =gUnknown_03005DEC + mov r8, r0 +_080FDEEE: + ldr r0, _080FDF34 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDF38 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDF3C @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDF40 @ =gUnknown_03005DF8 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FDF68 + ldr r6, _080FDF44 @ =gUnknown_03005E0C + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDF1E: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDF48 + ldrh r0, [r6] + strh r0, [r4] + b _080FDF58 + .align 2, 0 +_080FDF2C: .4byte gUnknown_03005DF0 +_080FDF30: .4byte gUnknown_03005DEC +_080FDF34: .4byte gUnknown_03005DFC +_080FDF38: .4byte gUnknown_03005E04 +_080FDF3C: .4byte gUnknown_03005DE8 +_080FDF40: .4byte gUnknown_03005DF8 +_080FDF44: .4byte gUnknown_03005E0C +_080FDF48: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE1B0 + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FDF58: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FDF80 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDF1E +_080FDF68: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FDF84 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDEEE +_080FDF74: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FDF80: .4byte gUnknown_03005DF8 +_080FDF84: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDED8 + + thumb_func_start sub_80FDF88 +sub_80FDF88: @ 80FDF88 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r2, 0 + ldr r0, _080FDFDC @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcs _080FE024 + ldr r0, _080FDFE0 @ =gUnknown_03005DEC + mov r8, r0 +_080FDF9E: + ldr r0, _080FDFE4 @ =gUnknown_03005DFC + ldrb r1, [r0] + adds r1, r2 + ldr r0, _080FDFE8 @ =gUnknown_03005E04 + ldrb r0, [r0] + muls r0, r1 + lsls r0, 1 + mov r3, r8 + ldr r1, [r3] + adds r1, r0 + ldr r0, _080FDFEC @ =gUnknown_03005DE8 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r1, r0 + movs r5, 0 + ldr r0, _080FDFF0 @ =gUnknown_03005DF8 + adds r7, r2, 0x1 + ldrb r0, [r0] + cmp r5, r0 + bcs _080FE018 + ldr r6, _080FDFF4 @ =gUnknown_03005E0C + movs r0, 0x80 + lsls r0, 8 + adds r2, r0, 0 +_080FDFCE: + ldrh r0, [r4] + ands r0, r2 + cmp r0, 0 + beq _080FDFF8 + ldrh r0, [r6] + strh r0, [r4] + b _080FE008 + .align 2, 0 +_080FDFDC: .4byte gUnknown_03005DF0 +_080FDFE0: .4byte gUnknown_03005DEC +_080FDFE4: .4byte gUnknown_03005DFC +_080FDFE8: .4byte gUnknown_03005E04 +_080FDFEC: .4byte gUnknown_03005DE8 +_080FDFF0: .4byte gUnknown_03005DF8 +_080FDFF4: .4byte gUnknown_03005E0C +_080FDFF8: + adds r0, r4, 0 + str r2, [sp] + bl sub_80FE0AC + ldrh r1, [r6] + adds r0, r1 + strh r0, [r4] + ldr r2, [sp] +_080FE008: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x2 + ldr r0, _080FE030 @ =gUnknown_03005DF8 + ldrb r0, [r0] + cmp r5, r0 + bcc _080FDFCE +_080FE018: + lsls r0, r7, 24 + lsrs r2, r0, 24 + ldr r0, _080FE034 @ =gUnknown_03005DF0 + ldrb r0, [r0] + cmp r2, r0 + bcc _080FDF9E +_080FE024: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FE030: .4byte gUnknown_03005DF8 +_080FE034: .4byte gUnknown_03005DF0 + thumb_func_end sub_80FDF88 + + thumb_func_start sub_80FE038 +sub_80FE038: @ 80FE038 + push {r4,lr} + ldrh r0, [r0] + movs r1, 0x1F + movs r4, 0x1F + ands r4, r0 + lsls r0, 16 + lsrs r3, r0, 21 + ands r3, r1 + lsrs r2, r0, 26 + ands r2, r1 + movs r1, 0x3 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE05C + movs r0, 0x1C + ands r0, r4 + adds r4, r0, 0x4 +_080FE05C: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE06A + movs r0, 0x1C + ands r0, r3 + adds r3, r0, 0x4 +_080FE06A: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE078 + movs r0, 0x1C + ands r0, r2 + adds r2, r0, 0x4 +_080FE078: + cmp r4, 0x5 + bhi _080FE07E + movs r4, 0x6 +_080FE07E: + cmp r4, 0x1E + bls _080FE084 + movs r4, 0x1E +_080FE084: + cmp r3, 0x5 + bhi _080FE08A + movs r3, 0x6 +_080FE08A: + cmp r3, 0x1E + bls _080FE090 + movs r3, 0x1E +_080FE090: + cmp r2, 0x5 + bhi _080FE096 + movs r2, 0x6 +_080FE096: + cmp r2, 0x1E + bls _080FE09C + movs r2, 0x1E +_080FE09C: + lsls r0, r2, 10 + lsls r1, r3, 5 + orrs r0, r1 + orrs r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FE038 + + thumb_func_start sub_80FE0AC +sub_80FE0AC: @ 80FE0AC + push {lr} + ldrh r0, [r0] + movs r1, 0x1F + movs r3, 0x1F + ands r3, r0 + lsls r0, 16 + lsrs r2, r0, 21 + ands r2, r1 + lsrs r0, 26 + ands r0, r1 + cmp r3, 0xB + bhi _080FE0D0 + cmp r2, 0xA + bhi _080FE0D0 + cmp r0, 0xA + bhi _080FE0D0 + movs r0, 0x1 + b _080FE176 +_080FE0D0: + cmp r3, 0x13 + bls _080FE0F4 + cmp r2, 0x13 + bls _080FE0DC + cmp r0, 0x13 + bhi _080FE100 +_080FE0DC: + cmp r3, 0x13 + bls _080FE0F4 + cmp r2, 0x13 + bls _080FE0EA + cmp r0, 0xE + bhi _080FE100 + b _080FE138 +_080FE0EA: + cmp r0, 0x13 + bls _080FE0F4 + cmp r2, 0xE + bhi _080FE100 + b _080FE114 +_080FE0F4: + cmp r2, 0x13 + bls _080FE104 + cmp r0, 0x13 + bls _080FE104 + cmp r3, 0xE + bls _080FE15C +_080FE100: + movs r0, 0x2 + b _080FE176 +_080FE104: + cmp r3, 0x13 + bls _080FE128 + cmp r2, 0xB + bls _080FE11C + cmp r0, 0xB + bls _080FE118 + cmp r2, r0 + bcs _080FE138 +_080FE114: + movs r0, 0x8 + b _080FE176 +_080FE118: + movs r0, 0xA + b _080FE176 +_080FE11C: + cmp r0, 0xB + bls _080FE124 + movs r0, 0xD + b _080FE176 +_080FE124: + movs r0, 0x4 + b _080FE176 +_080FE128: + cmp r2, 0x13 + bls _080FE14C + cmp r3, 0xB + bls _080FE140 + cmp r0, 0xB + bls _080FE13C + cmp r3, r0 + bcc _080FE15C +_080FE138: + movs r0, 0x7 + b _080FE176 +_080FE13C: + movs r0, 0xB + b _080FE176 +_080FE140: + cmp r0, 0xB + bls _080FE148 + movs r0, 0xE + b _080FE176 +_080FE148: + movs r0, 0x5 + b _080FE176 +_080FE14C: + cmp r0, 0x13 + bls _080FE174 + cmp r3, 0xB + bls _080FE160 + cmp r2, 0xB + bls _080FE168 + cmp r3, r2 + bcs _080FE114 +_080FE15C: + movs r0, 0x9 + b _080FE176 +_080FE160: + cmp r2, 0xB + bls _080FE168 + movs r0, 0xC + b _080FE176 +_080FE168: + cmp r0, 0xB + bls _080FE170 + movs r0, 0xF + b _080FE176 +_080FE170: + movs r0, 0x6 + b _080FE176 +_080FE174: + movs r0, 0x3 +_080FE176: + pop {r1} + bx r1 + thumb_func_end sub_80FE0AC + + thumb_func_start sub_80FE17C +sub_80FE17C: @ 80FE17C + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + movs r1, 0x1E + ands r0, r1 + lsls r0, 16 + cmp r0, 0 + beq _080FE1A8 + lsrs r0, 17 + b _080FE1AA +_080FE1A8: + movs r0, 0x1 +_080FE1AA: + pop {r1} + bx r1 + thumb_func_end sub_80FE17C + + thumb_func_start sub_80FE1B0 +sub_80FE1B0: @ 80FE1B0 + push {lr} + ldrh r1, [r0] + movs r3, 0x1F + movs r0, 0x1F + ands r0, r1 + lsls r1, 16 + lsrs r2, r1, 21 + ands r2, r3 + lsrs r1, 26 + ands r1, r3 + adds r0, r2 + adds r0, r1 + movs r1, 0x3 + bl __divsi3 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80FE1B0 + + thumb_func_start sub_80FE1DC +sub_80FE1DC: @ 80FE1DC + push {lr} + sub sp, 0x8 + bl sub_80FE2B4 + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r3, _080FE218 @ =gUnknown_083EC604 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x4 + bl PrintMenuItems + ldr r0, _080FE21C @ =gUnknown_020388D4 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FE218: .4byte gUnknown_083EC604 +_080FE21C: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE1DC + + thumb_func_start sub_80FE220 +sub_80FE220: @ 80FE220 + push {lr} + ldr r1, _080FE238 @ =gUnknown_020388D4 + movs r0, 0 + strb r0, [r1] + bl ScriptContext2_Enable + bl sub_80FE1DC + bl sub_80FE394 + pop {r0} + bx r0 + .align 2, 0 +_080FE238: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE220 + + thumb_func_start sub_80FE23C +sub_80FE23C: @ 80FE23C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80FE220 + ldr r1, _080FE25C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE260 @ =sub_80FE2EC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE25C: .4byte gTasks +_080FE260: .4byte sub_80FE2EC + thumb_func_end sub_80FE23C + + thumb_func_start sub_80FE264 +sub_80FE264: @ 80FE264 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE23C + ldr r1, _080FE284 @ =0x0201f000 + ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A + str r0, [r1] + adds r0, 0x10 + str r0, [r1, 0x4] + movs r2, 0 + movs r0, 0x10 + strb r0, [r1, 0x8] + strb r2, [r1, 0x9] + pop {r0} + bx r0 + .align 2, 0 +_080FE284: .4byte 0x0201f000 +_080FE288: .4byte gSaveBlock1 + 0x1A1A + thumb_func_end sub_80FE264 + + thumb_func_start sub_80FE28C +sub_80FE28C: @ 80FE28C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE23C + ldr r1, _080FE2AC @ =0x0201f000 + ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688 + str r0, [r1] + adds r0, 0xC + str r0, [r1, 0x4] + movs r0, 0xC + strb r0, [r1, 0x8] + movs r0, 0x1 + strb r0, [r1, 0x9] + pop {r0} + bx r0 + .align 2, 0 +_080FE2AC: .4byte 0x0201f000 +_080FE2B0: .4byte gSaveBlock1 + 0x2688 + thumb_func_end sub_80FE28C + + thumb_func_start sub_80FE2B4 +sub_80FE2B4: @ 80FE2B4 + push {lr} + sub sp, 0x8 + ldr r1, _080FE2E8 @ =gUnknown_083EC654 + mov r0, sp + movs r2, 0x6 + bl memcpy + add r0, sp, 0x4 + movs r1, 0xDF + movs r2, 0x2 + bl LoadPalette + mov r0, sp + adds r0, 0x2 + movs r1, 0xD1 + movs r2, 0x2 + bl LoadPalette + mov r0, sp + movs r1, 0xD8 + movs r2, 0x2 + bl LoadPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FE2E8: .4byte gUnknown_083EC654 + thumb_func_end sub_80FE2B4 + + thumb_func_start sub_80FE2EC +sub_80FE2EC: @ 80FE2EC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, r6, 0 + ldr r0, _080FE368 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r5, 0x80 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _080FE38C + ldr r4, _080FE36C @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FE324 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + ldr r1, _080FE370 @ =gUnknown_020388D4 + strb r0, [r1] + bl sub_80FE394 +_080FE324: + ldrh r1, [r4, 0x2E] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE342 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + ldr r1, _080FE370 @ =gUnknown_020388D4 + strb r0, [r1] + bl sub_80FE394 +_080FE342: + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FE378 + movs r0, 0x5 + bl PlaySE + ldr r1, _080FE374 @ =gUnknown_083EC604 + ldr r0, _080FE370 @ =gUnknown_020388D4 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r6, 0 + bl _call_via_r1 + b _080FE38C + .align 2, 0 +_080FE368: .4byte gPaletteFade +_080FE36C: .4byte gMain +_080FE370: .4byte gUnknown_020388D4 +_080FE374: .4byte gUnknown_083EC604 +_080FE378: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FE38C + movs r0, 0x5 + bl PlaySE + adds r0, r7, 0 + bl gpu_pal_decompress_alloc_tag_and_upload +_080FE38C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FE2EC + + thumb_func_start sub_80FE394 +sub_80FE394: @ 80FE394 + push {lr} + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + ldr r1, _080FE3BC @ =gUnknown_083EC624 + ldr r0, _080FE3C0 @ =gUnknown_020388D4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_080FE3BC: .4byte gUnknown_083EC624 +_080FE3C0: .4byte gUnknown_020388D4 + thumb_func_end sub_80FE394 + + thumb_func_start gpu_pal_decompress_alloc_tag_and_upload +gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0x9 + bl MenuZeroFillWindowRect + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + movs r0, 0x6 + bl FreeSpritePaletteByTag + ldr r0, _080FE404 @ =0x0201f000 + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _080FE40C + ldr r0, _080FE408 @ =gUnknown_0815F399 + bl ScriptContext1_SetupScript + adds r0, r4, 0 + bl DestroyTask + b _080FE412 + .align 2, 0 +_080FE404: .4byte 0x0201f000 +_080FE408: .4byte gUnknown_0815F399 +_080FE40C: + adds r0, r4, 0 + bl sub_8139E24 +_080FE412: + pop {r4} + pop {r0} + bx r0 + thumb_func_end gpu_pal_decompress_alloc_tag_and_upload + + thumb_func_start sub_80FE418 +sub_80FE418: @ 80FE418 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE5AC + pop {r0} + bx r0 + thumb_func_end sub_80FE418 + + thumb_func_start sub_80FE428 +sub_80FE428: @ 80FE428 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080FE464 @ =gUnknown_020388D4 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + bl sub_80FE394 + ldr r1, _080FE468 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE46C @ =sub_80FE2EC + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE464: .4byte gUnknown_020388D4 +_080FE468: .4byte gTasks +_080FE46C: .4byte sub_80FE2EC + thumb_func_end sub_80FE428 + + thumb_func_start sub_80FE470 +sub_80FE470: @ 80FE470 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r0, 0 + mov r8, r1 + mov r9, r2 + adds r5, r3, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072CBC + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r7, _080FE51C @ =gStringVar4 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x5 + mov r10, r0 + strb r0, [r7, 0x1] + strb r5, [r7, 0x2] + adds r7, 0x3 + ldr r1, _080FE520 @ =gUnknown_083EC5E4 + lsls r0, r4, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + adds r0, r4, 0 + bl sub_8134194 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + movs r2, 0x56 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r0, 0xBA + strb r0, [r7] + adds r7, 0x1 + ldr r0, _080FE524 @ =gDecorationInventories + lsls r4, 3 + adds r4, r0 + ldrb r1, [r4, 0x4] + adds r0, r7, 0 + movs r2, 0x68 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + movs r0, 0xFC + strb r0, [r7] + mov r0, r10 + strb r0, [r7, 0x1] + strb r6, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + ldr r0, _080FE51C @ =gStringVar4 + mov r1, r8 + mov r2, r9 + bl MenuPrint + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FE51C: .4byte gStringVar4 +_080FE520: .4byte gUnknown_083EC5E4 +_080FE524: .4byte gDecorationInventories + thumb_func_end sub_80FE470 + + thumb_func_start sub_80FE528 +sub_80FE528: @ 80FE528 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuDrawTextWindow + movs r5, 0 + ldr r1, _080FE574 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r1 +_080FE548: + ldr r0, _080FE578 @ =0x0201f000 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + bne _080FE57C + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080FE57C + cmp r5, 0x6 + beq _080FE57C + cmp r5, 0x7 + beq _080FE57C + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r3, 0xD + bl sub_80FE470 + b _080FE58E + .align 2, 0 +_080FE574: .4byte gTasks +_080FE578: .4byte 0x0201f000 +_080FE57C: + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + movs r1, 0x1 + movs r3, 0xFF + bl sub_80FE470 +_080FE58E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _080FE548 + ldr r0, _080FE5A8 @ =gUnknownText_Exit + movs r1, 0x1 + movs r2, 0x11 + bl MenuPrint + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FE5A8: .4byte gUnknownText_Exit + thumb_func_end sub_80FE528 + + thumb_func_start sub_80FE5AC +sub_80FE5AC: @ 80FE5AC + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FE528 + ldr r0, _080FE5F8 @ =gUnknown_020388F6 + ldrb r0, [r0] + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x9 + bl InitMenu + ldr r1, _080FE5FC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE600 @ =sub_80FE604 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE5F8: .4byte gUnknown_020388F6 +_080FE5FC: .4byte gTasks +_080FE600: .4byte sub_80FE604 + thumb_func_end sub_80FE5AC + + thumb_func_start sub_80FE604 +sub_80FE604: @ 80FE604 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r0, _080FE638 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE61C + b _080FE720 +_080FE61C: + ldr r2, _080FE63C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080FE640 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080FE720 + .align 2, 0 +_080FE638: .4byte gPaletteFade +_080FE63C: .4byte gMain +_080FE640: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080FE656 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080FE720 +_080FE656: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FE70C + movs r0, 0x5 + bl PlaySE + bl GetMenuCursorPos + ldr r4, _080FE6C0 @ =gUnknown_020388F6 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + beq _080FE704 + ldrb r0, [r4] + bl sub_8134194 + ldr r1, _080FE6C4 @ =gUnknown_020388D5 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080FE6DC + ldrb r0, [r4] + bl sub_8134104 + ldr r2, _080FE6C8 @ =gUnknown_020388D0 + ldr r1, _080FE6CC @ =gDecorationInventories + ldrb r0, [r4] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + adds r0, r5, 0 + bl sub_80FEF50 + bl sub_80F944C + ldr r0, _080FE6D0 @ =gUnknown_020388F7 + movs r1, 0x8 + bl sub_80F9480 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r1, _080FE6D4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE6D8 @ =sub_80FE868 + str r1, [r0] + b _080FE720 + .align 2, 0 +_080FE6C0: .4byte gUnknown_020388F6 +_080FE6C4: .4byte gUnknown_020388D5 +_080FE6C8: .4byte gUnknown_020388D0 +_080FE6CC: .4byte gDecorationInventories +_080FE6D0: .4byte gUnknown_020388F7 +_080FE6D4: .4byte gTasks +_080FE6D8: .4byte sub_80FE868 +_080FE6DC: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors + ldr r2, _080FE700 @ =sub_80FE418 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FE720 + .align 2, 0 +_080FE6FC: .4byte gSecretBaseText_NoDecors +_080FE700: .4byte sub_80FE418 +_080FE704: + adds r0, r5, 0 + bl sub_80FE728 + b _080FE720 +_080FE70C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FE720 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80FE728 +_080FE720: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80FE604 + + thumb_func_start sub_80FE728 +sub_80FE728: @ 80FE728 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080FE748 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1E + ldrsh r0, [r0, r1] + cmp r0, 0x3 + beq _080FE74C + adds r0, r2, 0 + bl sub_80FE758 + b _080FE752 + .align 2, 0 +_080FE748: .4byte gTasks +_080FE74C: + adds r0, r2, 0 + bl sub_8109DAC +_080FE752: + pop {r0} + bx r0 + thumb_func_end sub_80FE728 + + thumb_func_start sub_80FE758 +sub_80FE758: @ 80FE758 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _080FE794 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r0, 0x2 + beq _080FE79C + bl sub_80FE1DC + bl MenuDisplayMessageBox + bl sub_80FE394 + ldr r0, _080FE798 @ =sub_80FE2EC + str r0, [r5] + b _080FE7A2 + .align 2, 0 +_080FE794: .4byte gTasks +_080FE798: .4byte sub_80FE2EC +_080FE79C: + adds r0, r4, 0 + bl sub_80B3068 +_080FE7A2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80FE758 + + thumb_func_start sub_80FE7A8 +sub_80FE7A8: @ 80FE7A8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080FE7CC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + movs r2, 0x3 + strh r2, [r1, 0x1E] + ldr r1, _080FE7D0 @ =gUnknown_020388F6 + strb r3, [r1] + bl sub_80FE5AC + pop {r0} + bx r0 + .align 2, 0 +_080FE7CC: .4byte gTasks +_080FE7D0: .4byte gUnknown_020388F6 + thumb_func_end sub_80FE7A8 + + thumb_func_start sub_80FE7D4 +sub_80FE7D4: @ 80FE7D4 + push {lr} + lsls r1, 24 + ldr r2, _080FE7E8 @ =gUnknown_083EC5E4 + lsrs r1, 22 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080FE7E8: .4byte gUnknown_083EC5E4 + thumb_func_end sub_80FE7D4 + + thumb_func_start sub_80FE7EC +sub_80FE7EC: @ 80FE7EC + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FEC94 + ldr r0, _080FE858 @ =gUnknown_020388F6 + ldrb r0, [r0] + bl sub_80FECB8 + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r4, _080FE85C @ =gUnknown_020388F2 + ldr r0, _080FE860 @ =gUnknown_020388F4 + ldrb r0, [r0] + ldrb r1, [r4] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80FECE0 + ldr r0, _080FE864 @ =gUnknown_020388F3 + ldrb r3, [r0] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4] + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x2 + bl InitMenu + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE858: .4byte gUnknown_020388F6 +_080FE85C: .4byte gUnknown_020388F2 +_080FE860: .4byte gUnknown_020388F4 +_080FE864: .4byte gUnknown_020388F3 + thumb_func_end sub_80FE7EC + + thumb_func_start sub_80FE868 +sub_80FE868: @ 80FE868 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80FE7EC + ldr r1, _080FE88C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FE890 @ =sub_80FE948 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FE88C: .4byte gTasks +_080FE890: .4byte sub_80FE948 + thumb_func_end sub_80FE868 + + thumb_func_start sub_80FE894 +sub_80FE894: @ 80FE894 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0 + mov r10, r0 + ldr r6, _080FE920 @ =gUnknown_020388F2 + ldrb r1, [r6] + ldr r4, _080FE924 @ =gUnknown_020388F4 + ldrb r0, [r4] + adds r1, r0 + ldr r2, _080FE928 @ =gUnknown_020388D5 + mov r9, r2 + ldrb r0, [r2] + cmp r1, r0 + bne _080FE8C8 + movs r1, 0x1 + mov r10, r1 +_080FE8C8: + movs r0, 0x5 + bl PlaySE + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0 + beq _080FE8DC + bl MoveMenuCursor + strb r0, [r6] +_080FE8DC: + cmp r7, 0 + beq _080FE8EE + ldrb r0, [r4] + adds r0, r7 + strb r0, [r4] + mov r0, r8 + movs r1, 0x1 + bl sub_80FEABC +_080FE8EE: + ldrb r0, [r6] + ldrb r1, [r4] + adds r0, r1 + mov r2, r9 + ldrb r2, [r2] + cmp r0, r2 + beq _080FE92C + mov r0, r10 + cmp r0, 0 + beq _080FE90E + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow +_080FE90E: + ldrb r0, [r4] + ldrb r6, [r6] + adds r0, r6 + lsls r0, 24 + lsrs r0, 24 + bl sub_80FECE0 + b _080FE938 + .align 2, 0 +_080FE920: .4byte gUnknown_020388F2 +_080FE924: .4byte gUnknown_020388F4 +_080FE928: .4byte gUnknown_020388D5 +_080FE92C: + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect +_080FE938: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FE894 + + thumb_func_start sub_80FE948 +sub_80FE948: @ 80FE948 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080FE980 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080FE95C + b _080FEAAC +_080FE95C: + ldr r0, _080FE984 @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0x40 + bne _080FE9A0 + ldr r0, _080FE988 @ =gUnknown_020388F2 + ldrb r0, [r0] + cmp r0, 0 + beq _080FE98C + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + movs r2, 0 + bl sub_80FE894 + b _080FE9A0 + .align 2, 0 +_080FE980: .4byte gPaletteFade +_080FE984: .4byte gMain +_080FE988: .4byte gUnknown_020388F2 +_080FE98C: + ldr r0, _080FE9C4 @ =gUnknown_020388F4 + ldrb r0, [r0] + cmp r0, 0 + beq _080FE9A0 + movs r2, 0x1 + negs r2, r2 + adds r0, r4, 0 + movs r1, 0 + bl sub_80FE894 +_080FE9A0: + ldr r0, _080FE9C8 @ =gMain + ldrh r1, [r0, 0x30] + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0x80 + bne _080FE9EE + ldr r2, _080FE9CC @ =gUnknown_020388F2 + ldr r1, _080FE9D0 @ =gUnknown_020388F3 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _080FE9D4 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80FE894 + b _080FE9EE + .align 2, 0 +_080FE9C4: .4byte gUnknown_020388F4 +_080FE9C8: .4byte gMain +_080FE9CC: .4byte gUnknown_020388F2 +_080FE9D0: .4byte gUnknown_020388F3 +_080FE9D4: + ldr r0, _080FEA38 @ =gUnknown_020388F4 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r1 + ldr r1, _080FEA3C @ =gUnknown_020388D5 + ldrb r1, [r1] + cmp r0, r1 + beq _080FE9EE + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_80FE894 +_080FE9EE: + ldr r0, _080FEA40 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080FEA7C + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + ldr r2, _080FEA44 @ =gUnknown_020388F5 + ldr r1, _080FEA48 @ =gUnknown_020388F2 + ldr r0, _080FEA38 @ =gUnknown_020388F4 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r1 + strb r0, [r2] + ldr r1, _080FEA3C @ =gUnknown_020388D5 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _080FEA54 + ldr r1, _080FEA4C @ =gUnknown_083EC634 + ldr r2, _080FEA50 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x1E + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + b _080FEA68 + .align 2, 0 +_080FEA38: .4byte gUnknown_020388F4 +_080FEA3C: .4byte gUnknown_020388D5 +_080FEA40: .4byte gMain +_080FEA44: .4byte gUnknown_020388F5 +_080FEA48: .4byte gUnknown_020388F2 +_080FEA4C: .4byte gUnknown_083EC634 +_080FEA50: .4byte gTasks +_080FEA54: + ldr r2, _080FEA74 @ =gUnknown_083EC634 + ldr r1, _080FEA78 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1E + ldrsh r0, [r0, r1] + lsls r0, 3 + adds r0, r2 +_080FEA68: + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + b _080FEAAC + .align 2, 0 +_080FEA74: .4byte gUnknown_083EC634 +_080FEA78: .4byte gTasks +_080FEA7C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FEAAC + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + ldr r1, _080FEAB4 @ =gUnknown_083EC634 + ldr r2, _080FEAB8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + movs r2, 0x1E + ldrsh r0, [r0, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_080FEAAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FEAB4: .4byte gUnknown_083EC634 +_080FEAB8: .4byte gTasks + thumb_func_end sub_80FE948 + + thumb_func_start sub_80FEABC +sub_80FEABC: @ 80FEABC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080FEB58 @ =gUnknown_020388F4 + ldrb r0, [r4] + cmp r0, 0 + bne _080FEADE + movs r0, 0 + bl SetBgTilemapBuffer + ldrb r0, [r4] + cmp r0, 0 + beq _080FEAE8 +_080FEADE: + movs r0, 0 + movs r1, 0x3C + movs r2, 0x8 + bl sub_80F953C +_080FEAE8: + ldr r5, _080FEB58 @ =gUnknown_020388F4 + ldrb r0, [r5] + adds r0, 0x7 + ldr r4, _080FEB5C @ =gUnknown_020388D5 + ldrb r1, [r4] + cmp r0, r1 + bne _080FEAFC + movs r0, 0x1 + bl SetBgTilemapBuffer +_080FEAFC: + ldrb r0, [r5] + adds r0, 0x7 + ldrb r4, [r4] + cmp r0, r4 + bge _080FEB10 + movs r0, 0x1 + movs r1, 0x3C + movs r2, 0x98 + bl sub_80F953C +_080FEB10: + ldrb r4, [r5] + adds r0, r4, 0 + adds r0, 0x8 + cmp r4, r0 + blt _080FEB1C + b _080FEC7E +_080FEB1C: + adds r7, r5, 0 +_080FEB1E: + ldrb r1, [r7] + subs r1, r4, r1 + lsls r0, r1, 25 + movs r2, 0x80 + lsls r2, 18 + adds r0, r2 + lsrs r6, r0, 24 + ldr r0, _080FEB60 @ =gUnknown_020388F7 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080FEB3C + adds r0, r1, 0 + bl sub_80F94F8 +_080FEB3C: + ldr r0, _080FEB5C @ =gUnknown_020388D5 + ldrb r0, [r0] + cmp r4, r0 + bne _080FEB68 + lsls r2, r6, 3 + movs r0, 0x1 + str r0, [sp] + ldr r0, _080FEB64 @ =gUnknownText_Exit + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 + b _080FEC7E + .align 2, 0 +_080FEB58: .4byte gUnknown_020388F4 +_080FEB5C: .4byte gUnknown_020388D5 +_080FEB60: .4byte gUnknown_020388F7 +_080FEB64: .4byte gUnknownText_Exit +_080FEB68: + ldr r0, _080FEBC0 @ =gUnknown_020388D0 + ldr r1, [r0] + adds r2, r1, r4 + ldrb r1, [r2] + mov r12, r0 + adds r5, r4, 0x1 + cmp r1, 0 + bne _080FEB7A + b _080FEC70 +_080FEB7A: + ldr r0, _080FEBC4 @ =0x0201f000 + ldrb r5, [r0, 0x9] + cmp r5, 0x1 + bne _080FEBDC + ldr r0, _080FEBC8 @ =gUnknown_020388F6 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080FEBDC + cmp r0, 0x7 + beq _080FEBDC + ldr r0, _080FEBCC @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r3, 0x1E + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080FEBDC + ldrb r1, [r2] + lsls r1, 5 + ldr r0, _080FEBD0 @ =gDecorations + 0x1 + adds r1, r0 + ldr r0, _080FEBD4 @ =gStringVar1 + bl StringCopy + lsls r2, r6, 3 + str r5, [sp] + ldr r0, _080FEBD8 @ =gUnknown_083EC65A + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 + b _080FEBF8 + .align 2, 0 +_080FEBC0: .4byte gUnknown_020388D0 +_080FEBC4: .4byte 0x0201f000 +_080FEBC8: .4byte gUnknown_020388F6 +_080FEBCC: .4byte gTasks +_080FEBD0: .4byte gDecorations + 0x1 +_080FEBD4: .4byte gStringVar1 +_080FEBD8: .4byte gUnknown_083EC65A +_080FEBDC: + mov r1, r12 + ldr r0, [r1] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 5 + ldr r1, _080FEC00 @ =gDecorations + 0x1 + adds r0, r1 + lsls r2, r6, 3 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x8 + movs r3, 0x68 + bl sub_8072A18 +_080FEBF8: + movs r1, 0 + adds r5, r4, 0x1 + b _080FEC0A + .align 2, 0 +_080FEC00: .4byte gDecorations + 0x1 +_080FEC04: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 +_080FEC0A: + cmp r1, 0xF + bhi _080FEC34 + ldr r0, _080FEC38 @ =gUnknown_020388D6 + adds r0, r1, r0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, r4 + bne _080FEC04 + ldrb r3, [r7] + subs r3, r4, r3 + ldr r1, _080FEC3C @ =gUnknown_020388F7 + adds r1, r3, r1 + lsls r3, 20 + movs r2, 0xC0 + lsls r2, 13 + adds r3, r2 + asrs r3, 16 + movs r0, 0x4 + movs r2, 0x6C + bl sub_80F94A4 +_080FEC34: + movs r1, 0 + b _080FEC46 + .align 2, 0 +_080FEC38: .4byte gUnknown_020388D6 +_080FEC3C: .4byte gUnknown_020388F7 +_080FEC40: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 +_080FEC46: + cmp r1, 0xB + bhi _080FEC70 + ldr r0, _080FEC8C @ =gUnknown_020388E6 + adds r0, r1, r0 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, r4 + bne _080FEC40 + ldrb r3, [r7] + subs r3, r4, r3 + ldr r1, _080FEC90 @ =gUnknown_020388F7 + adds r1, r3, r1 + lsls r3, 20 + movs r0, 0xC0 + lsls r0, 13 + adds r3, r0 + asrs r3, 16 + movs r0, 0x5 + movs r2, 0x6C + bl sub_80F94A4 +_080FEC70: + lsls r0, r5, 16 + lsrs r4, r0, 16 + ldrb r0, [r7] + adds r0, 0x8 + cmp r4, r0 + bge _080FEC7E + b _080FEB1E +_080FEC7E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FEC8C: .4byte gUnknown_020388E6 +_080FEC90: .4byte gUnknown_020388F7 + thumb_func_end sub_80FEABC + + thumb_func_start sub_80FEC94 +sub_80FEC94: @ 80FEC94 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0 + bl sub_80FEABC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FEC94 + + thumb_func_start sub_80FECB8 +sub_80FECB8: @ 80FECB8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xF + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x1 + movs r3, 0xFF + bl sub_80FE470 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FECB8 + + thumb_func_start sub_80FECE0 +sub_80FECE0: @ 80FECE0 + push {lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080FED14 @ =gDecorations + ldr r1, _080FED18 @ =gUnknown_020388D0 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r1] + lsls r0, 5 + adds r2, 0x18 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x30 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r1, 0x80 + movs r2, 0x68 + movs r3, 0x68 + bl sub_8072AB0 + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080FED14: .4byte gDecorations +_080FED18: .4byte gUnknown_020388D0 + thumb_func_end sub_80FECE0 + + thumb_func_start sub_80FED1C +sub_80FED1C: @ 80FED1C + push {lr} + movs r0, 0xF + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuZeroFillWindowRect + movs r0, 0xF + movs r1, 0xC + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_80FED1C + + thumb_func_start sub_80FED3C +sub_80FED3C: @ 80FED3C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r1, _080FED5C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FED60 @ =sub_80FE868 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FED5C: .4byte gTasks +_080FED60: .4byte sub_80FE868 + thumb_func_end sub_80FED3C + + thumb_func_start sub_80FED64 +sub_80FED64: @ 80FED64 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, _080FED7C @ =gUnknown_020388D6 +_080FED6E: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080FED80 + movs r0, 0x1 + b _080FED8C + .align 2, 0 +_080FED7C: .4byte gUnknown_020388D6 +_080FED80: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080FED6E + movs r0, 0 +_080FED8C: + pop {r1} + bx r1 + thumb_func_end sub_80FED64 + + thumb_func_start sub_80FED90 +sub_80FED90: @ 80FED90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r3, 0 + ldr r4, _080FEE30 @ =gUnknown_020388D6 + movs r1, 0 + ldr r2, _080FEE34 @ =gUnknown_020388E6 +_080FEDA4: + adds r0, r3, r4 + strb r1, [r0] + cmp r3, 0xB + bhi _080FEDB0 + adds r0, r3, r2 + strb r1, [r0] +_080FEDB0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080FEDA4 + movs r3, 0 + ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A + mov r10, r0 + ldr r1, _080FEE3C @ =gDecorationInventories + mov r9, r1 + ldr r2, _080FEE40 @ =gUnknown_020388F6 + mov r8, r2 +_080FEDC8: + mov r1, r10 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080FEE5A + movs r1, 0 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcs _080FEE5A + ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A + adds r0, r3 + mov r12, r0 + ldr r7, _080FEE30 @ =gUnknown_020388D6 +_080FEDEA: + ldr r0, _080FEE44 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + adds r4, r1, 0x1 + mov r1, r12 + ldrb r1, [r1] + cmp r0, r1 + bne _080FEE48 + movs r1, 0 + cmp r1, r6 + bcs _080FEE1E + ldrb r0, [r7] + cmp r0, r4 + beq _080FEE1E + ldr r5, _080FEE30 @ =gUnknown_020388D6 + adds r2, r4, 0 +_080FEE0C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r6 + bcs _080FEE1E + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, r2 + bne _080FEE0C +_080FEE1E: + cmp r1, r6 + bne _080FEE48 + adds r0, r6, r7 + strb r4, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + b _080FEE5A + .align 2, 0 +_080FEE30: .4byte gUnknown_020388D6 +_080FEE34: .4byte gUnknown_020388E6 +_080FEE38: .4byte gSaveBlock1 + 0x1A1A +_080FEE3C: .4byte gDecorationInventories +_080FEE40: .4byte gUnknown_020388F6 +_080FEE44: .4byte gUnknown_020388D0 +_080FEE48: + lsls r0, r4, 16 + lsrs r1, r0, 16 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 3 + add r0, r9 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcc _080FEDEA +_080FEE5A: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bls _080FEDC8 + movs r6, 0 + movs r3, 0 + ldr r0, _080FEEE4 @ =gDecorationInventories + mov r8, r0 +_080FEE6C: + ldr r0, _080FEEE8 @ =gSaveBlock1 + ldr r1, _080FEEEC @ =0x00002688 + adds r0, r1 + adds r2, r3, r0 + ldrb r0, [r2] + adds r7, r3, 0x1 + cmp r0, 0 + beq _080FEF0E + movs r1, 0 + ldr r0, _080FEEF0 @ =gUnknown_020388F6 + ldrb r0, [r0] + lsls r0, 3 + add r0, r8 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcs _080FEF0E + adds r5, r2, 0 +_080FEE8E: + ldr r0, _080FEEF4 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + adds r4, r1, 0x1 + ldrb r2, [r5] + cmp r0, r2 + bne _080FEEFC + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80FED64 + lsls r0, 24 + cmp r0, 0 + bne _080FEEFC + movs r1, 0 + cmp r1, r6 + bcs _080FEED0 + ldr r2, _080FEEF8 @ =gUnknown_020388E6 + ldrb r0, [r2] + cmp r0, r4 + beq _080FEED0 + adds r3, r2, 0 + adds r2, r4, 0 +_080FEEBE: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r6 + bcs _080FEED0 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080FEEBE +_080FEED0: + cmp r1, r6 + bne _080FEEFC + ldr r0, _080FEEF8 @ =gUnknown_020388E6 + adds r0, r6, r0 + strb r4, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + b _080FEF0E + .align 2, 0 +_080FEEE4: .4byte gDecorationInventories +_080FEEE8: .4byte gSaveBlock1 +_080FEEEC: .4byte 0x00002688 +_080FEEF0: .4byte gUnknown_020388F6 +_080FEEF4: .4byte gUnknown_020388D0 +_080FEEF8: .4byte gUnknown_020388E6 +_080FEEFC: + lsls r0, r4, 16 + lsrs r1, r0, 16 + ldr r0, _080FEF24 @ =gUnknown_020388F6 + ldrb r0, [r0] + lsls r0, 3 + add r0, r8 + ldrb r0, [r0, 0x4] + cmp r1, r0 + bcc _080FEE8E +_080FEF0E: + lsls r0, r7, 16 + lsrs r3, r0, 16 + cmp r3, 0xB + bls _080FEE6C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080FEF24: .4byte gUnknown_020388F6 + thumb_func_end sub_80FED90 + + thumb_func_start sub_80FEF28 +sub_80FEF28: @ 80FEF28 + push {lr} + ldr r0, _080FEF38 @ =gUnknown_020388D5 + ldrb r1, [r0] + cmp r1, 0x7 + bhi _080FEF40 + ldr r0, _080FEF3C @ =gUnknown_020388F3 + strb r1, [r0] + b _080FEF46 + .align 2, 0 +_080FEF38: .4byte gUnknown_020388D5 +_080FEF3C: .4byte gUnknown_020388F3 +_080FEF40: + ldr r1, _080FEF4C @ =gUnknown_020388F3 + movs r0, 0x7 + strb r0, [r1] +_080FEF46: + pop {r0} + bx r0 + .align 2, 0 +_080FEF4C: .4byte gUnknown_020388F3 + thumb_func_end sub_80FEF28 + + thumb_func_start sub_80FEF50 +sub_80FEF50: @ 80FEF50 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80FED90 + bl sub_80FEF28 + ldr r0, _080FEF6C @ =gUnknown_020388F2 + movs r1, 0 + strb r1, [r0] + ldr r0, _080FEF70 @ =gUnknown_020388F4 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080FEF6C: .4byte gUnknown_020388F2 +_080FEF70: .4byte gUnknown_020388F4 + thumb_func_end sub_80FEF50 + + thumb_func_start sub_80FEF74 +sub_80FEF74: @ 80FEF74 + push {lr} + ldr r0, _080FEFA0 @ =gUnknown_020388F7 + movs r1, 0x8 + bl sub_80F9520 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + .align 2, 0 +_080FEFA0: .4byte gUnknown_020388F7 + thumb_func_end sub_80FEF74 + + thumb_func_start sub_80FEFA4 +sub_80FEFA4: @ 80FEFA4 + push {r4,lr} + movs r2, 0 + ldr r0, _080FEFD0 @ =gUnknown_020388F4 + ldrb r0, [r0] + ldr r1, _080FEFD4 @ =gUnknown_020388F2 + ldrb r1, [r1] + adds r0, r1 + adds r1, r0, 0x1 + ldr r4, _080FEFD8 @ =gUnknown_020388D6 + ldr r3, _080FEFDC @ =gUnknown_020388E6 +_080FEFB8: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, r1 + beq _080FEFCC + cmp r2, 0xB + bhi _080FEFE0 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _080FEFE0 +_080FEFCC: + movs r0, 0 + b _080FEFEC + .align 2, 0 +_080FEFD0: .4byte gUnknown_020388F4 +_080FEFD4: .4byte gUnknown_020388F2 +_080FEFD8: .4byte gUnknown_020388D6 +_080FEFDC: .4byte gUnknown_020388E6 +_080FEFE0: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080FEFB8 + movs r0, 0x1 +_080FEFEC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FEFA4 + + thumb_func_start sub_80FEFF4 +sub_80FEFF4: @ 80FEFF4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080FF028 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080FF00E + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080FF020 +_080FF00E: + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + ldr r0, _080FF02C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080FF030 @ =sub_80FE868 + str r0, [r1] +_080FF020: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF028: .4byte gMain +_080FF02C: .4byte gTasks +_080FF030: .4byte sub_80FE868 + thumb_func_end sub_80FEFF4 + + thumb_func_start sub_80FF034 +sub_80FF034: @ 80FF034 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80FE5AC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FF034 + + thumb_func_start sub_80FF058 +sub_80FF058: @ 80FF058 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080FF08C @ =gUnknown_020388F7 + movs r1, 0x8 + bl sub_80F9520 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl BuyMenuFreeMemory + ldr r1, _080FF090 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080FF094 @ =sub_80FF034 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF08C: .4byte gUnknown_020388F7 +_080FF090: .4byte gTasks +_080FF094: .4byte sub_80FF034 + thumb_func_end sub_80FF058 + + thumb_func_start sub_80FF098 +sub_80FF098: @ 80FF098 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080FF0D4 @ =gUnknown_020388D5 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + ldr r3, _080FF0D8 @ =gUnknown_020388F4 + ldrb r2, [r3] + adds r0, r2, 0x7 + ldrb r1, [r1] + cmp r0, r1 + ble _080FF0BA + cmp r2, 0 + beq _080FF0BA + subs r0, r2, 0x1 + strb r0, [r3] +_080FF0BA: + ldr r0, _080FF0DC @ =gUnknown_020388F6 + ldrb r0, [r0] + bl sub_8134104 + adds r0, r4, 0 + bl sub_80FED90 + bl sub_80FEF28 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF0D4: .4byte gUnknown_020388D5 +_080FF0D8: .4byte gUnknown_020388F4 +_080FF0DC: .4byte gUnknown_020388F6 + thumb_func_end sub_80FF098 + + thumb_func_start sub_80FF0E0 +sub_80FF0E0: @ 80FF0E0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080FF10C @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r4, r2, r3 + ldr r1, _080FF110 @ =gSaveBlock1 + ldrh r0, [r1] + strh r0, [r4, 0xE] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x10] + adds r3, 0x8 + adds r2, r3 + adds r1, r2, 0x2 + adds r0, r2, 0 + bl PlayerGetDestCoords + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF10C: .4byte gTasks +_080FF110: .4byte gSaveBlock1 + thumb_func_end sub_80FF0E0 + + thumb_func_start sub_80FF114 +sub_80FF114: @ 80FF114 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl DrawWholeMapView + ldr r1, _080FF158 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + ldr r3, _080FF15C @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r3 + movs r3, 0xE + ldrsb r3, [r4, r3] + ldrb r4, [r4, 0x10] + lsls r4, 24 + asrs r4, 24 + str r4, [sp] + bl warp1_set + bl warp_in + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF158: .4byte gSaveBlock1 +_080FF15C: .4byte gTasks + thumb_func_end sub_80FF114 + + thumb_func_start sub_80FF160 +sub_80FF160: @ 80FF160 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _080FF188 + ldr r1, _080FF180 @ =gSecretBaseText_NoDecors + ldr r2, _080FF184 @ =sub_80FE428 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FF1A2 + .align 2, 0 +_080FF180: .4byte gSecretBaseText_NoDecors +_080FF184: .4byte sub_80FE428 +_080FF188: + ldr r1, _080FF1A8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0 + strh r1, [r0, 0x1E] + ldr r0, _080FF1AC @ =gUnknown_020388F6 + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_080FF1A2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF1A8: .4byte gTasks +_080FF1AC: .4byte gUnknown_020388F6 + thumb_func_end sub_80FF160 + + thumb_func_start sub_80FF1B0 +sub_80FF1B0: @ 80FF1B0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _080FF1D0 @ =0x0000ffff + cmp r2, 0x22 + beq _080FF1D8 + cmp r2, 0x26 + bne _080FF1E2 + ldr r0, _080FF1D4 @ =gUnknown_083EC97C + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 16 + b _080FF1E2 + .align 2, 0 +_080FF1D0: .4byte 0x0000ffff +_080FF1D4: .4byte gUnknown_083EC97C +_080FF1D8: + ldr r0, _080FF1E8 @ =gUnknown_083EC984 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 28 + lsrs r0, 16 +_080FF1E2: + pop {r1} + bx r1 + .align 2, 0 +_080FF1E8: .4byte gUnknown_083EC984 + thumb_func_end sub_80FF1B0 + + thumb_func_start sub_80FF1EC +sub_80FF1EC: @ 80FF1EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + ldr r4, [sp, 0x54] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x8] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0xC] + lsls r4, 16 + lsrs r4, 16 + str r4, [sp, 0x10] + movs r2, 0 + lsls r0, r3, 16 + cmp r2, r3 + bcc _080FF222 + b _080FF384 +_080FF222: + ldr r1, [sp, 0x8] + str r1, [sp, 0x28] + str r0, [sp, 0x2C] +_080FF228: + ldr r3, [sp, 0x4] + ldr r4, [sp, 0xC] + subs r1, r3, r4 + lsls r0, r2, 16 + asrs r0, 16 + adds r0, 0x1 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r0, 0 + mov r10, r0 + adds r1, r2, 0x1 + str r1, [sp, 0x30] + ldr r3, [sp, 0x28] + cmp r10, r3 + bcc _080FF24C + b _080FF374 +_080FF24C: + ldr r4, [sp, 0x10] + lsls r4, 5 + str r4, [sp, 0x18] + ldr r0, _080FF2B4 @ =gDecorations + 0x1C + adds r0, r4, r0 + str r0, [sp, 0x1C] + ldr r0, _080FF2B8 @ =gDecorations + adds r0, r4, r0 + str r0, [sp, 0x24] + ldr r3, [sp, 0x8] + adds r1, r2, 0 + muls r1, r3 + str r1, [sp, 0x20] +_080FF266: + ldr r0, [sp] + add r0, r10 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, [sp, 0x20] + add r1, r10 + ldr r4, [sp, 0x1C] + ldr r0, [r4] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + lsls r4, r0, 16 + lsls r0, r4, 8 + lsrs r0, 24 + bl sub_8057288 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FF2AC + ldr r3, [sp, 0x24] + ldrb r0, [r3, 0x11] + cmp r0, 0x1 + beq _080FF2BC + lsrs r0, r4, 28 + cmp r0, 0 + beq _080FF2BC +_080FF2AC: + movs r4, 0xC0 + lsls r4, 4 + mov r8, r4 + b _080FF2C0 + .align 2, 0 +_080FF2B4: .4byte gDecorations + 0x1C +_080FF2B8: .4byte gDecorations +_080FF2BC: + movs r0, 0 + mov r8, r0 +_080FF2C0: + ldr r1, [sp, 0x24] + ldrb r0, [r1, 0x11] + lsls r7, r5, 16 + ldr r2, [sp, 0x14] + lsls r2, 16 + mov r9, r2 + cmp r0, 0x3 + beq _080FF2EA + asrs r0, r7, 16 + asrs r1, r2, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80572B0 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1 + cmp r0, 0x1 + beq _080FF2EC +_080FF2EA: + movs r6, 0 +_080FF2EC: + ldr r3, [sp, 0x18] + ldr r4, _080FF334 @ =gDecorations + adds r0, r3, r4 + ldrb r0, [r0] + ldr r4, [sp, 0x20] + add r4, r10 + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_80FF1B0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080FF338 @ =0x0000ffff + cmp r5, r0 + beq _080FF33C + asrs r0, r7, 16 + mov r2, r9 + asrs r1, r2, 16 + ldr r3, [sp, 0x1C] + ldr r2, [r3] + lsls r3, r4, 1 + adds r3, r2 + movs r4, 0x80 + lsls r4, 2 + adds r2, r4, 0 + orrs r6, r2 + ldrh r3, [r3] + adds r2, r6, r3 + mov r3, r8 + orrs r3, r2 + orrs r3, r5 + lsls r2, r3, 16 + lsrs r2, 16 + bl MapGridSetMetatileEntryAt + b _080FF362 + .align 2, 0 +_080FF334: .4byte gDecorations +_080FF338: .4byte 0x0000ffff +_080FF33C: + asrs r0, r7, 16 + mov r2, r9 + asrs r1, r2, 16 + ldr r3, [sp, 0x1C] + ldr r2, [r3] + lsls r3, r4, 1 + adds r3, r2 + movs r4, 0x80 + lsls r4, 2 + adds r2, r4, 0 + orrs r6, r2 + ldrh r3, [r3] + adds r2, r6, r3 + mov r3, r8 + orrs r3, r2 + lsls r2, r3, 16 + lsrs r2, 16 + bl MapGridSetMetatileIdAt +_080FF362: + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldr r4, [sp, 0x28] + cmp r10, r4 + bcs _080FF374 + b _080FF266 +_080FF374: + ldr r1, [sp, 0x30] + lsls r0, r1, 16 + lsrs r2, r0, 16 + ldr r3, [sp, 0x2C] + lsrs r0, r3, 16 + cmp r2, r0 + bcs _080FF384 + b _080FF228 +_080FF384: + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF1EC + + thumb_func_start sub_80FF394 +sub_80FF394: @ 80FF394 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r1, _080FF3BC @ =gDecorations + lsls r0, r2, 5 + adds r0, r1 + ldrb r0, [r0, 0x12] + cmp r0, 0x9 + bhi _080FF46C + lsls r0, 2 + ldr r1, _080FF3C0 @ =_080FF3C4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FF3BC: .4byte gDecorations +_080FF3C0: .4byte _080FF3C4 + .align 2, 0 +_080FF3C4: + .4byte _080FF3EC + .4byte _080FF3F6 + .4byte _080FF400 + .4byte _080FF410 + .4byte _080FF41A + .4byte _080FF424 + .4byte _080FF434 + .4byte _080FF43E + .4byte _080FF44E + .4byte _080FF45E +_080FF3EC: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 + b _080FF408 +_080FF3F6: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + b _080FF408 +_080FF400: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 +_080FF408: + movs r3, 0x1 + bl sub_80FF1EC + b _080FF46C +_080FF410: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x4 + b _080FF42C +_080FF41A: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + b _080FF42C +_080FF424: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 +_080FF42C: + movs r3, 0x2 + bl sub_80FF1EC + b _080FF46C +_080FF434: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x1 + b _080FF456 +_080FF43E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x2 + movs r3, 0x4 + bl sub_80FF1EC + b _080FF46C +_080FF44E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 +_080FF456: + movs r3, 0x3 + bl sub_80FF1EC + b _080FF46C +_080FF45E: + str r2, [sp] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0x3 + movs r3, 0x2 + bl sub_80FF1EC +_080FF46C: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80FF394 + + thumb_func_start sub_80FF474 +sub_80FF474: @ 80FF474 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0 + ldr r0, _080FF54C @ =gMapHeader + mov r8, r0 + ldr r1, _080FF550 @ =gUnknown_0202E8CE + mov r9, r1 + ldr r2, _080FF554 @ =gUnknown_0202E8D0 + mov r10, r2 + ldr r7, _080FF558 @ =gSaveBlock1 +_080FF490: + adds r5, r6, 0 + adds r5, 0xAE + adds r4, r5, 0 + adds r0, r4, 0 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF570 + adds r0, r4, 0 + bl FlagReset + movs r2, 0 + mov r4, r8 + ldr r0, [r4, 0x4] + ldrb r6, [r0] + cmp r2, r6 + bcs _080FF4E0 + ldr r0, [r0, 0x4] + ldrh r0, [r0, 0x14] + cmp r0, r5 + beq _080FF4E0 + ldr r0, _080FF54C @ =gMapHeader + ldr r3, [r0, 0x4] + ldrb r6, [r3] + adds r4, r5, 0 +_080FF4C6: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r6 + bcs _080FF4E0 + ldr r0, [r3, 0x4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x14] + cmp r0, r4 + bne _080FF4C6 +_080FF4E0: + mov r1, r8 + ldr r0, [r1, 0x4] + ldr r1, [r0, 0x4] + lsls r4, r2, 1 + adds r4, r2 + lsls r4, 3 + adds r1, r4, r1 + ldr r2, _080FF55C @ =0x00003f20 + adds r0, r2, 0 + ldrb r1, [r1, 0x1] + adds r0, r1 + ldr r1, _080FF560 @ =gUnknown_02038900 + ldr r1, [r1] + ldr r1, [r1, 0x1C] + ldrh r1, [r1] + bl VarSet + mov r5, r8 + ldr r0, [r5, 0x4] + ldr r0, [r0, 0x4] + adds r4, r0 + ldrb r0, [r4] + mov r6, r9 + strh r0, [r6] + ldr r1, _080FF564 @ =gUnknown_020391A4 + ldrh r1, [r1] + mov r2, r10 + strh r1, [r2] + ldr r1, _080FF568 @ =gUnknown_020391A6 + ldrh r1, [r1] + ldr r4, _080FF56C @ =gUnknown_0202E8D2 + strh r1, [r4] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + bl show_sprite + ldrb r0, [r6] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + mov r5, r10 + movs r6, 0 + ldrsh r3, [r5, r6] + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + bl sub_805C0F8 + mov r6, r9 + ldrb r0, [r6] + ldrb r1, [r7, 0x5] + ldrb r2, [r7, 0x4] + bl sub_805C78C + b _080FF57A + .align 2, 0 +_080FF54C: .4byte gMapHeader +_080FF550: .4byte gUnknown_0202E8CE +_080FF554: .4byte gUnknown_0202E8D0 +_080FF558: .4byte gSaveBlock1 +_080FF55C: .4byte 0x00003f20 +_080FF560: .4byte gUnknown_02038900 +_080FF564: .4byte gUnknown_020391A4 +_080FF568: .4byte gUnknown_020391A6 +_080FF56C: .4byte gUnknown_0202E8D2 +_080FF570: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xD + bls _080FF490 +_080FF57A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF474 + + thumb_func_start sub_80FF58C +sub_80FF58C: @ 80FF58C + push {lr} + movs r1, 0 + ldr r0, _080FF5A8 @ =0x0201f000 + ldrb r2, [r0, 0x8] + cmp r1, r2 + bcs _080FF5B6 + ldr r3, [r0] +_080FF59A: + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080FF5AC + movs r0, 0x1 + b _080FF5B8 + .align 2, 0 +_080FF5A8: .4byte 0x0201f000 +_080FF5AC: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080FF59A +_080FF5B6: + movs r0, 0 +_080FF5B8: + pop {r1} + bx r1 + thumb_func_end sub_80FF58C + + thumb_func_start sub_80FF5BC +sub_80FF5BC: @ 80FF5BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080FF5E4 @ =0x0201f000 + ldrb r0, [r0, 0x9] + cmp r0, 0x1 + bne _080FF5F0 + ldr r0, _080FF5E8 @ =gUnknown_020388F6 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080FF5F0 + cmp r0, 0x7 + beq _080FF5F0 + bl sub_80FEF74 + bl sub_80FED1C + ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace + b _080FF66E + .align 2, 0 +_080FF5E4: .4byte 0x0201f000 +_080FF5E8: .4byte gUnknown_020388F6 +_080FF5EC: .4byte gSecretBaseText_DecorCantPlace +_080FF5F0: + bl sub_80FEFA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF688 + bl sub_80FF58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF62C + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _080FF624 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _080FF628 @ =sub_80FF6AC + str r1, [r0] + b _080FF69C + .align 2, 0 +_080FF624: .4byte gTasks +_080FF628: .4byte sub_80FF6AC +_080FF62C: + bl sub_80FEF74 + bl sub_80FED1C + ldr r0, _080FF654 @ =gStringVar1 + ldr r4, _080FF658 @ =0x0201f000 + ldrb r1, [r4, 0x8] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldrb r0, [r4, 0x9] + cmp r0, 0 + bne _080FF664 + ldr r0, _080FF65C @ =gStringVar4 + ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor + bl StringExpandPlaceholders + b _080FF66C + .align 2, 0 +_080FF654: .4byte gStringVar1 +_080FF658: .4byte 0x0201f000 +_080FF65C: .4byte gStringVar4 +_080FF660: .4byte gSecretBaseText_NoMoreDecor +_080FF664: + ldr r0, _080FF67C @ =gStringVar4 + ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2 + bl StringExpandPlaceholders +_080FF66C: + ldr r1, _080FF67C @ =gStringVar4 +_080FF66E: + ldr r2, _080FF684 @ =sub_80FEFF4 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _080FF69C + .align 2, 0 +_080FF67C: .4byte gStringVar4 +_080FF680: .4byte gSecretBaseText_NoMoreDecor2 +_080FF684: .4byte sub_80FEFF4 +_080FF688: + bl sub_80FEF74 + bl sub_80FED1C + ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready + ldr r2, _080FF6A8 @ =sub_80FEFF4 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080FF69C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080FF6A4: .4byte gSecretBaseText_InUseAlready +_080FF6A8: .4byte sub_80FEFF4 + thumb_func_end sub_80FF5BC + + thumb_func_start sub_80FF6AC +sub_80FF6AC: @ 80FF6AC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080FF6D0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r7, r0, r1 + movs r1, 0xC + ldrsh r0, [r7, r1] + cmp r0, 0x1 + beq _080FF714 + cmp r0, 0x1 + bgt _080FF6D4 + cmp r0, 0 + beq _080FF6DA + b _080FF77A + .align 2, 0 +_080FF6D0: .4byte gTasks +_080FF6D4: + cmp r0, 0x2 + beq _080FF764 + b _080FF77A +_080FF6DA: + ldr r0, _080FF70C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080FF77A + adds r0, r6, 0 + bl sub_80FF0E0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r0, _080FF710 @ =gUnknown_020388F7 + movs r1, 0x8 + bl sub_80F9520 + bl BuyMenuFreeMemory + movs r0, 0x1 + strh r0, [r7, 0xC] + b _080FF77A + .align 2, 0 +_080FF70C: .4byte gPaletteFade +_080FF710: .4byte gUnknown_020388F7 +_080FF714: + ldr r4, _080FF754 @ =gPaletteFade + ldrb r0, [r4, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4, 0x8] + ldr r5, _080FF758 @ =gUnknown_02038900 + ldr r0, _080FF75C @ =gUnknown_020388F5 + ldrb r1, [r0] + ldr r0, _080FF760 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r1, [r0] + adds r0, r5, 0 + bl AddDecorationIconObjectFromFieldObject + adds r0, r6, 0 + bl sub_80FF960 + adds r0, r6, 0 + adds r1, r5, 0 + bl SetUpPlacingDecorationPlayerAvatar + bl pal_fill_black + ldrb r1, [r4, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + movs r0, 0x2 + strh r0, [r7, 0xC] + b _080FF77A + .align 2, 0 +_080FF754: .4byte gPaletteFade +_080FF758: .4byte gUnknown_02038900 +_080FF75C: .4byte gUnknown_020388F5 +_080FF760: .4byte gUnknown_020388D0 +_080FF764: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FF77A + movs r0, 0 + strh r0, [r7, 0x20] + adds r0, r6, 0 + bl sub_810065C +_080FF77A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80FF6AC + + thumb_func_start AddDecorationIconObjectFromFieldObject +AddDecorationIconObjectFromFieldObject: @ 80FF780 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + bl sub_80FEF74 + bl sub_80FED1C + adds r0, r5, 0 + bl sub_81006D0 + lsls r4, 5 + ldr r0, _080FF810 @ =gDecorations + adds r4, r0 + str r4, [r5] + ldrb r0, [r4, 0x11] + cmp r0, 0x4 + beq _080FF834 + adds r0, r5, 0 + bl sub_81008BC + ldr r0, [r5] + ldrb r0, [r0, 0x12] + bl sub_8100930 + adds r0, r5, 0 + bl sub_8100874 + ldr r1, _080FF814 @ =0x00000884 + adds r0, r5, r1 + ldr r1, _080FF818 @ =gMapHeader + ldr r1, [r1] + ldr r2, [r1, 0x14] + ldr r1, [r5] + ldr r1, [r1, 0x1C] + ldrh r1, [r1] + ldr r2, [r2, 0xC] + lsls r1, 4 + adds r1, r2 + ldrh r1, [r1, 0xE] + lsrs r1, 12 + bl sub_810070C + ldr r0, _080FF81C @ =gUnknown_083EC954 + bl LoadSpritePalette + ldr r3, _080FF820 @ =gUnknown_020391A8 + ldr r2, _080FF824 @ =gSprites + ldr r4, _080FF828 @ =gUnknown_03004880 + ldr r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strb r0, [r3] + ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C + ldr r3, _080FF830 @ =gUnknown_083EC900 + ldr r1, [r5] + ldrb r2, [r1, 0x12] + lsls r2, 2 + adds r2, r3 + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x3] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + str r0, [r4, 0x4] + b _080FF87E + .align 2, 0 +_080FF810: .4byte gDecorations +_080FF814: .4byte 0x00000884 +_080FF818: .4byte gMapHeader +_080FF81C: .4byte gUnknown_083EC954 +_080FF820: .4byte gUnknown_020391A8 +_080FF824: .4byte gSprites +_080FF828: .4byte gUnknown_03004880 +_080FF82C: .4byte gSpriteTemplate_83EC93C +_080FF830: .4byte gUnknown_083EC900 +_080FF834: + ldr r2, _080FF888 @ =gUnknown_020391A8 + ldr r6, _080FF88C @ =gSprites + ldr r5, _080FF890 @ =gUnknown_03004880 + ldr r1, [r5, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r0, [r0, 0x2E] + strb r0, [r2] + ldr r0, [r4, 0x1C] + ldrh r0, [r0] + ldr r1, _080FF894 @ =sub_81009A8 + ldr r2, _080FF898 @ =gUnknown_083EC900 + ldrb r3, [r4, 0x12] + lsls r3, 2 + adds r3, r2 + ldrb r2, [r3, 0x2] + ldrb r3, [r3, 0x3] + movs r4, 0x1 + str r4, [sp] + bl AddPseudoFieldObject + lsls r0, 24 + lsrs r0, 24 + str r0, [r5, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x5] +_080FF87E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080FF888: .4byte gUnknown_020391A8 +_080FF88C: .4byte gSprites +_080FF890: .4byte gUnknown_03004880 +_080FF894: .4byte sub_81009A8 +_080FF898: .4byte gUnknown_083EC900 + thumb_func_end AddDecorationIconObjectFromFieldObject + + thumb_func_start SetUpPlacingDecorationPlayerAvatar +SetUpPlacingDecorationPlayerAvatar: @ 80FF89C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080FF8F0 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldrb r2, [r2, 0x12] + ldr r3, _080FF8F4 @ =gUnknown_083EC900 + ldr r0, [r1] + ldrb r4, [r0, 0x12] + lsls r1, r4, 2 + adds r1, r3 + lsls r0, r2, 4 + ldrb r1, [r1, 0x2] + adds r0, r1 + subs r2, 0x1 + lsls r2, 3 + subs r0, r2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r4, 0x2 + beq _080FF8D6 + cmp r4, 0x8 + beq _080FF8D6 + cmp r4, 0x9 + bne _080FF8DE +_080FF8D6: + adds r0, r2, 0 + subs r0, 0x8 + lsls r0, 24 + lsrs r2, r0, 24 +_080FF8DE: + ldr r0, _080FF8F8 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _080FF900 + ldr r1, _080FF8FC @ =SpriteCallbackDummy + str r0, [sp] + movs r0, 0xC1 + b _080FF908 + .align 2, 0 +_080FF8F0: .4byte gTasks +_080FF8F4: .4byte gUnknown_083EC900 +_080FF8F8: .4byte gSaveBlock2 +_080FF8FC: .4byte SpriteCallbackDummy +_080FF900: + ldr r1, _080FF94C @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + movs r0, 0xC2 +_080FF908: + movs r3, 0x48 + bl AddPseudoFieldObject + ldr r1, _080FF950 @ =gUnknown_020391A9 + strb r0, [r1] + ldr r3, _080FF954 @ =gSprites + ldr r0, _080FF950 @ =gUnknown_020391A9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r4, _080FF958 @ =gUnknown_020391A8 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + bl DestroySprite + ldr r0, _080FF95C @ =gUnknown_03004880 + ldr r0, [r0, 0x4] + strb r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FF94C: .4byte SpriteCallbackDummy +_080FF950: .4byte gUnknown_020391A9 +_080FF954: .4byte gSprites +_080FF958: .4byte gUnknown_020391A8 +_080FF95C: .4byte gUnknown_03004880 + thumb_func_end SetUpPlacingDecorationPlayerAvatar + + thumb_func_start sub_80FF960 +sub_80FF960: @ 80FF960 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080FF98C @ =gDecorations + ldr r0, _080FF990 @ =gUnknown_020388F5 + ldrb r1, [r0] + ldr r0, _080FF994 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r2 + ldrb r0, [r0, 0x12] + cmp r0, 0x9 + bls _080FF980 + b _080FFAA6 +_080FF980: + lsls r0, 2 + ldr r1, _080FF998 @ =_080FF99C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FF98C: .4byte gDecorations +_080FF990: .4byte gUnknown_020388F5 +_080FF994: .4byte gUnknown_020388D0 +_080FF998: .4byte _080FF99C + .align 2, 0 +_080FF99C: + .4byte _080FF9C4 + .4byte _080FF9D8 + .4byte _080FF9F0 + .4byte _080FFA08 + .4byte _080FFA1C + .4byte _080FFA30 + .4byte _080FFA44 + .4byte _080FFA64 + .4byte _080FFA7C + .4byte _080FFA94 +_080FF9C4: + ldr r0, _080FF9D4 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + b _080FFA88 + .align 2, 0 +_080FF9D4: .4byte gTasks +_080FF9D8: + ldr r1, _080FF9EC @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x12] + movs r1, 0x1 + b _080FFAA4 + .align 2, 0 +_080FF9EC: .4byte gTasks +_080FF9F0: + ldr r1, _080FFA04 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 + strh r1, [r0, 0x12] + movs r1, 0x1 + b _080FFAA4 + .align 2, 0 +_080FFA04: .4byte gTasks +_080FFA08: + ldr r1, _080FFA18 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x4 + b _080FFAA0 + .align 2, 0 +_080FFA18: .4byte gTasks +_080FFA1C: + ldr r0, _080FFA2C @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x2 + b _080FFA88 + .align 2, 0 +_080FFA2C: .4byte gTasks +_080FFA30: + ldr r1, _080FFA40 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1 + b _080FFAA0 + .align 2, 0 +_080FFA40: .4byte gTasks +_080FFA44: + ldr r0, _080FFA60 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x12] + movs r0, 0x3 + strh r0, [r1, 0x14] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + b _080FFAA6 + .align 2, 0 +_080FFA60: .4byte gTasks +_080FFA64: + ldr r1, _080FFA78 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x2 + strh r1, [r0, 0x12] + movs r1, 0x4 + b _080FFAA4 + .align 2, 0 +_080FFA78: .4byte gTasks +_080FFA7C: + ldr r0, _080FFA90 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r0, 0x3 +_080FFA88: + strh r0, [r1, 0x12] + strh r0, [r1, 0x14] + b _080FFAA6 + .align 2, 0 +_080FFA90: .4byte gTasks +_080FFA94: + ldr r1, _080FFAAC @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3 +_080FFAA0: + strh r1, [r0, 0x12] + movs r1, 0x2 +_080FFAA4: + strh r1, [r0, 0x14] +_080FFAA6: + pop {r0} + bx r0 + .align 2, 0 +_080FFAAC: .4byte gTasks + thumb_func_end sub_80FF960 + + thumb_func_start sub_80FFAB0 +sub_80FFAB0: @ 80FFAB0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080FFAF8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r3, _080FFAFC @ =gSprites + ldr r0, _080FFB00 @ =gUnknown_020391A8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x1 + strh r2, [r0, 0x3C] + ldr r0, _080FFB04 @ =gUnknown_020391A9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x3C] + bl sub_810045C + adds r0, r4, 0 + bl sub_8100038 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFAF8: .4byte gTasks +_080FFAFC: .4byte gSprites +_080FFB00: .4byte gUnknown_020391A8 +_080FFB04: .4byte gUnknown_020391A9 + thumb_func_end sub_80FFAB0 + + thumb_func_start sub_80FFB08 +sub_80FFB08: @ 80FFB08 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080FFB54 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + ldr r3, _080FFB58 @ =gSprites + ldr r0, _080FFB5C @ =gUnknown_020391A8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x1 + strh r2, [r0, 0x3C] + ldr r0, _080FFB60 @ =gUnknown_020391A9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x3C] + bl sub_810045C + ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating + ldr r2, _080FFB68 @ =sub_8100248 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080FFB54: .4byte gTasks +_080FFB58: .4byte gSprites +_080FFB5C: .4byte gUnknown_020391A8 +_080FFB60: .4byte gUnknown_020391A9 +_080FFB64: .4byte gSecretBaseText_CancelDecorating +_080FFB68: .4byte sub_8100248 + thumb_func_end sub_80FFB08 + + thumb_func_start sub_80FFB6C +sub_80FFB6C: @ 80FFB6C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_8057274 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080FFB86 + cmp r4, 0 + beq _080FFB8A +_080FFB86: + movs r0, 0 + b _080FFB8C +_080FFB8A: + movs r0, 0x1 +_080FFB8C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80FFB6C + + thumb_func_start sub_80FFB94 +sub_80FFB94: @ 80FFB94 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r5, r3, 16 + lsls r1, 16 + asrs r1, 16 + ldr r3, _080FFBD0 @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + movs r3, 0xE + ldrsh r0, [r2, r3] + adds r0, 0x7 + cmp r1, r0 + bne _080FFBD4 + lsls r1, r4, 16 + asrs r1, 16 + movs r3, 0x10 + ldrsh r0, [r2, r3] + adds r0, 0x7 + cmp r1, r0 + bne _080FFBD4 + cmp r5, 0 + beq _080FFBD4 + movs r0, 0 + b _080FFBD6 + .align 2, 0 +_080FFBD0: .4byte gTasks +_080FFBD4: + movs r0, 0x1 +_080FFBD6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80FFB94 + + thumb_func_start sub_80FFBDC +sub_80FFBDC: @ 80FFBDC + push {r4-r6,lr} + adds r5, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057274 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FFC1C + ldrb r0, [r5] + cmp r0, 0x21 + bne _080FFC0A + adds r0, r4, 0 + bl sub_8057300 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080FFC18 +_080FFC0A: + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + beq _080FFC1C +_080FFC18: + movs r0, 0x1 + b _080FFC1E +_080FFC1C: + movs r0, 0 +_080FFC1E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80FFBDC + + thumb_func_start sub_80FFC24 +sub_80FFC24: @ 80FFC24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r1, [sp] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r1, _080FFC60 @ =gTasks + lsls r0, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + ldrb r2, [r0, 0x14] + str r2, [sp, 0x4] + ldrb r0, [r0, 0x12] + str r0, [sp, 0x8] + ldr r3, [sp] + ldrb r0, [r3, 0x11] + adds r2, r1, 0 + cmp r0, 0x4 + bls _080FFC56 + b _08100024 +_080FFC56: + lsls r0, 2 + ldr r1, _080FFC64 @ =_080FFC68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080FFC60: .4byte gTasks +_080FFC64: .4byte _080FFC68 + .align 2, 0 +_080FFC68: + .4byte _080FFC7C + .4byte _080FFC7C + .4byte _080FFD68 + .4byte _080FFF1C + .4byte _080FFFA0 +_080FFC7C: + movs r6, 0 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFC86 + b _08100024 +_080FFC86: + mov r1, r10 + lsls r1, 2 + str r1, [sp, 0x1C] +_080FFC8C: + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + ldr r3, _080FFD64 @ =gTasks + adds r0, r3 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + adds r6, 0x1 + str r6, [sp, 0x14] + ldr r0, [sp, 0x8] + cmp r7, r0 + bcs _080FFD56 + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0xC] + asrs r1, 16 + mov r9, r1 +_080FFCB8: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + ldr r2, _080FFD64 @ =gTasks + adds r0, r2 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + adds r0, r6, 0 + mov r1, r9 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp, 0x4] + ldr r1, [sp, 0x14] + subs r0, r3, r1 + ldr r2, [sp, 0x8] + adds r1, r0, 0 + muls r1, r2 + adds r1, r7 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + ldr r1, [sp] + bl sub_80FFBDC + lsls r0, 24 + cmp r0, 0 + bne _080FFD1A + b _080FFFF4 +_080FFD1A: + mov r0, r10 + adds r1, r6, 0 + mov r2, r9 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFD2E + b _080FFFF4 +_080FFD2E: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0xC] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080FFD4A + cmp r4, 0x10 + beq _080FFD4A + b _080FFFF4 +_080FFD4A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFCB8 +_080FFD56: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r2, [sp, 0x4] + cmp r6, r2 + bcc _080FFC8C + b _08100024 + .align 2, 0 +_080FFD64: .4byte gTasks +_080FFD68: + movs r6, 0 + mov r3, r10 + lsls r3, 2 + str r3, [sp, 0x1C] + ldr r0, [sp, 0x4] + subs r0, 0x1 + str r0, [sp, 0x18] + cmp r6, r0 + bge _080FFE54 + adds r0, r3, 0 + add r0, r10 + lsls r0, 3 + str r0, [sp, 0x10] +_080FFD82: + ldr r1, [sp, 0x10] + adds r0, r1, r2 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + adds r6, 0x1 + str r6, [sp, 0x14] + ldr r3, [sp, 0x8] + cmp r7, r3 + bcs _080FFE48 + lsls r0, 16 + str r0, [sp, 0x20] +_080FFDA0: + ldr r1, [sp, 0x10] + adds r0, r1, r2 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + mov r2, r9 + lsls r1, r2, 16 + adds r0, r6, 0 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp, 0x4] + ldr r1, [sp, 0x14] + subs r0, r3, r1 + ldr r2, [sp, 0x8] + adds r1, r0, 0 + muls r1, r2 + adds r1, r7 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + bne _080FFE0C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80FFB6C + lsls r0, 24 + cmp r0, 0 + bne _080FFE0C + b _080FFFF4 +_080FFE0C: + mov r0, r10 + adds r1, r6, 0 + ldr r3, [sp, 0x20] + asrs r2, r3, 16 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFE22 + b _080FFFF4 +_080FFE22: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _080FFE3A + b _080FFFF4 +_080FFE3A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080FFF18 @ =gTasks + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFDA0 +_080FFE48: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r3, [sp, 0x18] + cmp r6, r3 + blt _080FFD82 +_080FFE54: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0xA] + ldr r1, [sp, 0x4] + subs r0, r1 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFE74 + b _08100024 +_080FFE74: + lsls r0, 16 + str r0, [sp, 0x20] +_080FFE78: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + ldr r1, _080FFF18 @ =gTasks + adds r0, r1 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + mov r8, r0 + asrs r6, r0, 16 + mov r2, r9 + lsls r1, r2, 16 + adds r0, r6, 0 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp] + ldr r0, [r3, 0x1C] + lsls r1, r7, 1 + adds r1, r0 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl GetBehaviorByMetatileId + movs r3, 0xF0 + lsls r3, 8 + adds r1, r3, 0 + adds r5, r1, 0 + ands r5, r0 + adds r0, r4, 0 + bl sub_805729C + lsls r0, 24 + cmp r0, 0 + bne _080FFEDA + adds r0, r4, 0 + bl sub_80572B0 + lsls r0, 24 + cmp r0, 0 + bne _080FFEDA + b _080FFFF4 +_080FFEDA: + mov r0, r10 + adds r1, r6, 0 + ldr r3, [sp, 0x20] + asrs r2, r3, 16 + adds r3, r5, 0 + bl sub_80FFB94 + lsls r0, 24 + cmp r0, 0 + bne _080FFEF0 + b _080FFFF4 +_080FFEF0: + mov r1, r8 + lsrs r0, r1, 16 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080FFF0A + cmp r4, 0x10 + bne _080FFFF4 +_080FFF0A: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFE78 + b _08100024 + .align 2, 0 +_080FFF18: .4byte gTasks +_080FFF1C: + movs r6, 0 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFF26 + b _08100024 +_080FFF26: + mov r1, r10 + lsls r0, r1, 2 + add r0, r10 + lsls r1, r0, 3 + ldr r2, _080FFF9C @ =gTasks + adds r0, r1, r2 + ldrh r0, [r0, 0xA] + subs r0, r6 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r7, 0 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcs _080FFF8C + adds r0, r2, 0 + adds r1, r0 + mov r8, r1 + mov r1, r9 + lsls r0, r1, 16 + asrs r5, r0, 16 +_080FFF50: + mov r2, r8 + ldrh r0, [r2, 0x8] + adds r0, r7 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r0, 24 + bl sub_80572B0 + lsls r0, 24 + cmp r0, 0 + beq _080FFFF4 + adds r0, r4, 0 + adds r1, r5, 0x1 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + beq _080FFFF4 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFF50 +_080FFF8C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x4] + cmp r6, r0 + bcc _080FFF26 + b _08100024 + .align 2, 0 +_080FFF9C: .4byte gTasks +_080FFFA0: + mov r3, r10 + lsls r1, r3, 2 + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0xA] + mov r9, r0 + movs r7, 0 + str r1, [sp, 0x1C] + ldr r0, [sp, 0x8] + cmp r7, r0 + bcs _08100024 + adds r6, r2, 0 + mov r1, r9 + lsls r1, 16 + str r1, [sp, 0x20] +_080FFFC0: + ldr r0, [sp, 0x1C] + add r0, r10 + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x8] + adds r0, r7 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + mov r2, r9 + lsls r1, r2, 16 + asrs r1, 16 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, [sp] + ldrb r0, [r3, 0x12] + cmp r0, 0x5 + bne _080FFFF8 +_080FFFE8: + adds r0, r4, 0 + bl sub_80572EC + lsls r0, 24 + cmp r0, 0 + bne _08100004 +_080FFFF4: + movs r0, 0 + b _08100026 +_080FFFF8: + adds r0, r4, 0 + bl sub_80572D8 + lsls r0, 24 + cmp r0, 0 + beq _080FFFE8 +_08100004: + adds r0, r5, 0 + ldr r2, [sp, 0x20] + lsrs r1, r2, 16 + movs r2, 0 + bl GetFieldObjectIdByXYZ + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + bne _080FFFF4 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r3, [sp, 0x8] + cmp r7, r3 + bcc _080FFFC0 +_08100024: + movs r0, 0x1 +_08100026: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80FFC24 + + thumb_func_start sub_8100038 +sub_8100038: @ 8100038 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0810006C @ =gUnknown_020388F5 + ldrb r1, [r0] + ldr r0, _08100070 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r1, 5 + ldr r0, _08100074 @ =gDecorations + adds r1, r0 + adds r0, r4, 0 + bl sub_80FFC24 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100080 + ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere + ldr r2, _0810007C @ =sub_81000A0 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08100092 + .align 2, 0 +_0810006C: .4byte gUnknown_020388F5 +_08100070: .4byte gUnknown_020388D0 +_08100074: .4byte gDecorations +_08100078: .4byte gSecretBaseText_PlaceItHere +_0810007C: .4byte sub_81000A0 +_08100080: + movs r0, 0x20 + bl PlaySE + ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere + ldr r2, _0810009C @ =sub_81006A8 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100092: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100098: .4byte gSecretBaseText_CantBePlacedHere +_0810009C: .4byte sub_81006A8 + thumb_func_end sub_8100038 + + thumb_func_start sub_81000A0 +sub_81000A0: @ 81000A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _081000C0 @ =gUnknown_083EC95C + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081000C0: .4byte gUnknown_083EC95C + thumb_func_end sub_81000A0 + + thumb_func_start sub_81000C4 +sub_81000C4: @ 81000C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_8100174 + ldr r2, _0810010C @ =gDecorations + ldr r0, _08100110 @ =gUnknown_020388F5 + ldrb r1, [r0] + ldr r0, _08100114 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r3, [r0] + lsls r0, r3, 5 + adds r0, r2 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + beq _0810011C + ldr r0, _08100118 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + ldrh r1, [r1, 0xA] + adds r2, r3, 0 + bl sub_80FF394 + b _0810013C + .align 2, 0 +_0810010C: .4byte gDecorations +_08100110: .4byte gUnknown_020388F5 +_08100114: .4byte gUnknown_020388D0 +_08100118: .4byte gTasks +_0810011C: + ldr r2, _0810015C @ =gUnknown_020391A4 + ldr r0, _08100160 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + subs r0, 0x7 + strh r0, [r2] + ldr r2, _08100164 @ =gUnknown_020391A6 + ldrh r0, [r1, 0xA] + subs r0, 0x7 + strh r0, [r2] + ldr r0, _08100168 @ =gUnknown_081A2F7B + bl ScriptContext1_SetupScript +_0810013C: + ldr r2, _0810016C @ =gSprites + ldr r0, _08100170 @ =gUnknown_020391A8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + adds r1, 0x2 + strh r1, [r0, 0x22] + adds r0, r4, 0 + bl sub_810028C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810015C: .4byte gUnknown_020391A4 +_08100160: .4byte gTasks +_08100164: .4byte gUnknown_020391A6 +_08100168: .4byte gUnknown_081A2F7B +_0810016C: .4byte gSprites +_08100170: .4byte gUnknown_020391A8 + thumb_func_end sub_81000C4 + + thumb_func_start sub_8100174 +sub_8100174: @ 8100174 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r3, 0 + ldr r0, _081001B0 @ =0x0201f000 + ldrb r1, [r0, 0x8] + adds r5, r0, 0 + cmp r3, r1 + bcs _0810019A + ldr r4, [r5] +_08100188: + adds r2, r4, r3 + ldrb r0, [r2] + cmp r0, 0 + beq _081001B8 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _08100188 +_0810019A: + ldrb r0, [r5, 0x9] + cmp r0, 0 + bne _08100204 + movs r3, 0 + ldr r0, _081001B4 @ =gUnknown_020388D6 + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0 + bne _081001F0 + b _08100210 + .align 2, 0 +_081001B0: .4byte 0x0201f000 +_081001B4: .4byte gUnknown_020388D6 +_081001B8: + ldr r0, _081001E4 @ =gUnknown_020388F5 + ldrb r1, [r0] + ldr r0, _081001E8 @ =gUnknown_020388D0 + ldr r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, [r5, 0x4] + adds r2, r3 + ldr r0, _081001EC @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + subs r0, 0x7 + lsls r0, 4 + ldrb r1, [r1, 0xA] + subs r1, 0x7 + adds r0, r1 + strb r0, [r2] + b _0810019A + .align 2, 0 +_081001E4: .4byte gUnknown_020388F5 +_081001E8: .4byte gUnknown_020388D0 +_081001EC: .4byte gTasks +_081001F0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xF + bhi _0810023E + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _081001F0 + b _08100236 +_08100204: + movs r3, 0 + ldr r0, _0810021C @ =gUnknown_020388E6 + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0 + bne _08100224 +_08100210: + ldr r0, _08100220 @ =gUnknown_020388F5 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r2] + b _0810023E + .align 2, 0 +_0810021C: .4byte gUnknown_020388E6 +_08100220: .4byte gUnknown_020388F5 +_08100224: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0xB + bhi _0810023E + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _08100224 +_08100236: + ldr r0, _08100244 @ =gUnknown_020388F5 + ldrb r0, [r0] + adds r0, 0x1 + strb r0, [r1] +_0810023E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100244: .4byte gUnknown_020388F5 + thumb_func_end sub_8100174 + + thumb_func_start sub_8100248 +sub_8100248: @ 8100248 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08100268 @ =gUnknown_083EC964 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100268: .4byte gUnknown_083EC964 + thumb_func_end sub_8100248 + + thumb_func_start sub_810026C +sub_810026C: @ 810026C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_810028C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810026C + + thumb_func_start sub_810028C +sub_810028C: @ 810028C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _081002B4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _081002B8 @ =c1_overworld_prev_quest + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081002B4: .4byte gTasks +_081002B8: .4byte c1_overworld_prev_quest + thumb_func_end sub_810028C + + thumb_func_start c1_overworld_prev_quest +c1_overworld_prev_quest: @ 81002BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _081002DC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081002E0 + cmp r0, 0x1 + beq _08100300 + b _0810031C + .align 2, 0 +_081002DC: .4byte gTasks +_081002E0: + bl ScriptContext2_Enable + ldr r0, _081002FC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810031C + adds r0, r4, 0 + bl sub_80FF114 + movs r0, 0x1 + strh r0, [r5, 0xC] + b _0810031C + .align 2, 0 +_081002FC: .4byte gPaletteFade +_08100300: + bl sub_81016F4 + ldr r0, _08100324 @ =0x00000bb8 + bl FreeSpritePaletteByTag + ldr r1, _08100328 @ =gUnknown_0300485C + ldr r0, _0810032C @ =sub_8100364 + str r0, [r1] + ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0810031C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100324: .4byte 0x00000bb8 +_08100328: .4byte gUnknown_0300485C +_0810032C: .4byte sub_8100364 +_08100330: .4byte c2_exit_to_overworld_2_switch + thumb_func_end c1_overworld_prev_quest + + thumb_func_start sub_8100334 +sub_8100334: @ 8100334 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100354 + ldr r0, _0810035C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08100360 @ =sub_80FE948 + str r0, [r1] +_08100354: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810035C: .4byte gTasks +_08100360: .4byte sub_80FE948 + thumb_func_end sub_8100334 + + thumb_func_start sub_8100364 +sub_8100364: @ 8100364 + push {lr} + bl ScriptContext2_Enable + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + bl pal_fill_black + ldr r0, _08100388 @ =sub_8100334 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl sub_80FE7EC + pop {r0} + bx r0 + .align 2, 0 +_08100388: .4byte sub_8100334 + thumb_func_end sub_8100364 + + thumb_func_start sub_810038C +sub_810038C: @ 810038C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _081003BC @ =gTasks + 0x8 + adds r2, r1, r0 + ldr r0, _081003C0 @ =gUnknown_020391AA + ldrb r1, [r0] + adds r3, r0, 0 + cmp r1, 0x1 + bne _081003C4 + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r4, 0xC + ldrsh r1, [r2, r4] + subs r0, r1 + subs r0, 0x6 + cmp r0, 0 + bge _081003C4 + ldrh r0, [r2, 0x2] + adds r0, 0x1 + b _081003DE + .align 2, 0 +_081003BC: .4byte gTasks + 0x8 +_081003C0: .4byte gUnknown_020391AA +_081003C4: + ldrb r0, [r3] + cmp r0, 0x2 + bne _081003E8 + movs r0, 0x2 + ldrsh r1, [r2, r0] + subs r1, 0x7 + ldr r0, _081003E4 @ =gMapHeader + ldr r0, [r0] + ldr r0, [r0, 0x4] + cmp r1, r0 + blt _081003E8 + ldrh r0, [r2, 0x2] + subs r0, 0x1 +_081003DE: + strh r0, [r2, 0x2] + movs r0, 0 + b _0810042A + .align 2, 0 +_081003E4: .4byte gMapHeader +_081003E8: + ldrb r0, [r3] + cmp r0, 0x3 + bne _081003FE + movs r1, 0 + ldrsh r0, [r2, r1] + subs r0, 0x7 + cmp r0, 0 + bge _081003FE + ldrh r0, [r2] + adds r0, 0x1 + b _0810041E +_081003FE: + ldrb r0, [r3] + cmp r0, 0x4 + bne _08100428 + movs r3, 0 + ldrsh r1, [r2, r3] + movs r4, 0xA + ldrsh r0, [r2, r4] + adds r1, r0 + subs r1, 0x8 + ldr r0, _08100424 @ =gMapHeader + ldr r0, [r0] + ldr r0, [r0] + cmp r1, r0 + blt _08100428 + ldrh r0, [r2] + subs r0, 0x1 +_0810041E: + strh r0, [r2] + movs r0, 0 + b _0810042A + .align 2, 0 +_08100424: .4byte gMapHeader +_08100428: + movs r0, 0x1 +_0810042A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810038C + + thumb_func_start sub_8100430 +sub_8100430: @ 8100430 + push {lr} + ldr r0, _08100450 @ =gMain + ldrh r0, [r0, 0x2C] + movs r1, 0xF0 + ands r1, r0 + cmp r1, 0x40 + beq _08100454 + cmp r1, 0x80 + beq _08100454 + cmp r1, 0x20 + beq _08100454 + cmp r1, 0x10 + beq _08100454 + movs r0, 0 + b _08100456 + .align 2, 0 +_08100450: .4byte gMain +_08100454: + movs r0, 0x1 +_08100456: + pop {r1} + bx r1 + thumb_func_end sub_8100430 + + thumb_func_start sub_810045C +sub_810045C: @ 810045C + push {r4,lr} + ldr r1, _08100488 @ =gUnknown_020391AA + movs r0, 0 + strb r0, [r1] + ldr r4, _0810048C @ =gSprites + ldr r3, _08100490 @ =gUnknown_020391A8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r2, 0 + strh r2, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100488: .4byte gUnknown_020391AA +_0810048C: .4byte gSprites +_08100490: .4byte gUnknown_020391A8 + thumb_func_end sub_810045C + + thumb_func_start sub_8100494 +sub_8100494: @ 8100494 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _081004D0 @ =gSprites + ldr r3, _081004D4 @ =gUnknown_020391A8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x36 + ldrsh r6, [r0, r1] + cmp r6, 0 + beq _081004B2 + b _081005DE +_081004B2: + ldr r1, _081004D8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x1C + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _081004E0 + ldr r0, _081004DC @ =gUnknown_083EC96C + movs r3, 0x20 + ldrsh r1, [r2, r3] + lsls r1, 3 + b _081004EE + .align 2, 0 +_081004D0: .4byte gSprites +_081004D4: .4byte gUnknown_020391A8 +_081004D8: .4byte gTasks +_081004DC: .4byte gUnknown_083EC96C +_081004E0: + cmp r0, 0x2 + bne _08100500 + ldr r0, _081004FC @ =gUnknown_083EC96C + movs r3, 0x20 + ldrsh r1, [r2, r3] + lsls r1, 3 + adds r0, 0x4 +_081004EE: + adds r1, r0 + ldr r1, [r1] + adds r0, r4, 0 + bl _call_via_r1 + b _0810063C + .align 2, 0 +_081004FC: .4byte gUnknown_083EC96C +_08100500: + ldr r7, _08100644 @ =gMain + ldrh r1, [r7, 0x2C] + movs r0, 0xF0 + mov r12, r0 + ands r0, r1 + cmp r0, 0x40 + bne _08100534 + ldr r1, _08100648 @ =gUnknown_020391AA + movs r0, 0x1 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0810064C @ =0x0000fffe + strh r1, [r0, 0x34] + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] +_08100534: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x80 + bne _08100564 + ldr r1, _08100648 @ =gUnknown_020391AA + movs r0, 0x2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x34] + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] +_08100564: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x20 + bne _08100594 + ldr r1, _08100648 @ =gUnknown_020391AA + movs r0, 0x3 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0810064C @ =0x0000fffe + strh r1, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x34] + ldrh r0, [r2, 0x8] + subs r0, 0x1 + strh r0, [r2, 0x8] +_08100594: + ldrh r1, [r7, 0x2C] + mov r0, r12 + ands r0, r1 + cmp r0, 0x10 + bne _081005C4 + ldr r1, _08100648 @ =gUnknown_020391AA + movs r0, 0x4 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + strh r1, [r0, 0x32] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x34] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_081005C4: + bl sub_8100430 + lsls r0, 24 + cmp r0, 0 + beq _081005DA + adds r0, r4, 0 + bl sub_810038C + lsls r0, 24 + cmp r0, 0 + bne _081005DE +_081005DA: + bl sub_810045C +_081005DE: + ldr r0, _08100648 @ =gUnknown_020391AA + ldrb r0, [r0] + cmp r0, 0 + beq _0810060C + ldr r3, _08100650 @ =gSprites + ldr r2, _08100654 @ =gUnknown_020391A8 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x36] + adds r1, 0x1 + strh r1, [r0, 0x36] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x36] + movs r0, 0x7 + ands r0, r2 + strh r0, [r1, 0x36] +_0810060C: + ldr r0, _08100658 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r2, r1, r0 + movs r1, 0x1C + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _0810063C + ldr r4, _08100644 @ =gMain + ldrh r1, [r4, 0x2E] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810062E + strh r3, [r2, 0x1C] +_0810062E: + ldrh r1, [r4, 0x2E] + movs r3, 0x2 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810063C + strh r3, [r2, 0x1C] +_0810063C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08100644: .4byte gMain +_08100648: .4byte gUnknown_020391AA +_0810064C: .4byte 0x0000fffe +_08100650: .4byte gSprites +_08100654: .4byte gUnknown_020391A8 +_08100658: .4byte gTasks + thumb_func_end sub_8100494 + + thumb_func_start sub_810065C +sub_810065C: @ 810065C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r2, _08100698 @ =gSprites + ldr r0, _0810069C @ =gUnknown_020391A8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r2, 0 + strh r2, [r0, 0x3C] + ldr r1, _081006A0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1C] + ldr r1, _081006A4 @ =sub_8100494 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100698: .4byte gSprites +_0810069C: .4byte gUnknown_020391A8 +_081006A0: .4byte gTasks +_081006A4: .4byte sub_8100494 + thumb_func_end sub_810065C + + thumb_func_start sub_81006A8 +sub_81006A8: @ 81006A8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081006CC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081006C2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081006C8 +_081006C2: + adds r0, r2, 0 + bl sub_810065C +_081006C8: + pop {r0} + bx r0 + .align 2, 0 +_081006CC: .4byte gMain + thumb_func_end sub_81006A8 + + thumb_func_start sub_81006D0 +sub_81006D0: @ 81006D0 + push {r4,r5,lr} + adds r3, r0, 0 + movs r1, 0 + adds r2, r3, 0 + adds r2, 0x84 + movs r5, 0 + ldr r4, _08100708 @ =0x000007ff +_081006DE: + adds r0, r2, r1 + strb r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r4 + bls _081006DE + movs r1, 0 + adds r2, r3, 0x4 + movs r3, 0 +_081006F2: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3F + bls _081006F2 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100708: .4byte 0x000007ff + thumb_func_end sub_81006D0 + + thumb_func_start sub_810070C +sub_810070C: @ 810070C + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 16 + movs r2, 0 + ldr r0, _0810073C @ =gMapHeader + ldr r0, [r0] + ldr r0, [r0, 0x10] + lsrs r4, r1, 12 + ldr r3, [r0, 0x8] +_0810071E: + lsls r1, r2, 1 + adds r1, r5 + adds r0, r4, r2 + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _0810071E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810073C: .4byte gMapHeader + thumb_func_end sub_810070C + + thumb_func_start sub_8100740 +sub_8100740: @ 8100740 + push {r4-r7,lr} + sub sp, 0x20 + adds r7, r0, 0 + lsls r1, 16 + lsrs r2, r1, 16 + lsrs r3, r1, 26 + cmp r2, 0 + beq _08100754 + ldr r0, _08100784 @ =0x000003ff + ands r2, r0 +_08100754: + movs r5, 0 + ldr r0, _08100788 @ =gMapHeader + ldr r6, [r0] + lsls r4, r2, 5 +_0810075C: + mov r0, sp + adds r2, r0, r5 + ldr r0, [r6, 0x10] + ldr r0, [r0, 0x4] + adds r1, r4, r5 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _0810075C + cmp r3, 0x1 + beq _081007AE + cmp r3, 0x1 + bgt _0810078C + cmp r3, 0 + beq _08100796 + b _0810086A + .align 2, 0 +_08100784: .4byte 0x000003ff +_08100788: .4byte gMapHeader +_0810078C: + cmp r3, 0x2 + beq _0810080E + cmp r3, 0x3 + beq _08100846 + b _0810086A +_08100796: + movs r5, 0 +_08100798: + adds r1, r7, r5 + mov r2, sp + adds r0, r2, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _08100798 + b _0810086A +_081007AE: + movs r5, 0 + movs r6, 0xF +_081007B2: + lsls r4, r5, 2 + adds r4, r7 + adds r5, 0x1 + lsls r3, r5, 2 + subs r0, r3, 0x1 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4] + subs r0, r3, 0x2 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x1] + subs r0, r3, 0x3 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x2] + subs r3, 0x4 + mov r1, sp + adds r0, r1, r3 + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r4, 0x3] + lsls r5, 16 + lsrs r5, 16 + cmp r5, 0x7 + bls _081007B2 + b _0810086A +_0810080E: + movs r5, 0 + movs r3, 0x7 +_08100812: + lsls r2, r5, 2 + adds r2, r7 + subs r1, r3, r5 + lsls r1, 2 + mov r4, sp + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2] + adds r0, r1, 0x1 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, 0x1] + adds r0, r1, 0x2 + add r0, sp + ldrb r0, [r0] + strb r0, [r2, 0x2] + adds r1, 0x3 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _08100812 + b _0810086A +_08100846: + movs r5, 0 + movs r4, 0x1F + movs r6, 0xF +_0810084C: + adds r3, r7, r5 + subs r0, r4, r5 + add r0, sp + ldrb r2, [r0] + lsrs r1, r2, 4 + adds r0, r6, 0 + ands r0, r2 + lsls r0, 4 + adds r1, r0 + strb r1, [r3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _0810084C +_0810086A: + add sp, 0x20 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8100740 + + thumb_func_start sub_8100874 +sub_8100874: @ 8100874 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0810087A: + lsls r0, r4, 5 + adds r0, 0x84 + adds r0, r5, r0 + lsls r2, r4, 1 + adds r1, r5, 0x4 + adds r1, r2 + ldrh r1, [r1] + bl sub_8100740 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3F + bls _0810087A + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8100874 + + thumb_func_start sub_810089C +sub_810089C: @ 810089C + lsls r0, 16 + ldr r1, _081008B4 @ =gMapHeader + ldr r1, [r1] + ldr r1, [r1, 0x14] + ldr r1, [r1, 0xC] + lsrs r0, 15 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _081008B8 @ =0x00000fff + ands r0, r1 + bx lr + .align 2, 0 +_081008B4: .4byte gMapHeader +_081008B8: .4byte 0x00000fff + thumb_func_end sub_810089C + + thumb_func_start sub_81008BC +sub_81008BC: @ 81008BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x12] + movs r6, 0 + ldr r1, _0810092C @ =gUnknown_083EC860 + lsls r5, r0, 4 + adds r0, r5, r1 + ldrb r0, [r0, 0xC] + cmp r6, r0 + bcs _08100920 + adds r7, r1, 0 +_081008D8: + mov r4, r8 + ldm r4!, {r1} + adds r0, r7, 0x4 + adds r0, r5, r0 + ldr r0, [r0] + adds r0, r6 + ldrb r0, [r0] + ldr r1, [r1, 0x1C] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r1, r7, 0 + adds r1, 0x8 + adds r1, r5, r1 + ldr r1, [r1] + adds r1, r6 + lsls r0, 3 + ldrb r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl sub_810089C + adds r2, r5, r7 + ldr r1, [r2] + adds r1, r6 + ldrb r1, [r1] + lsls r1, 1 + adds r4, r1 + strh r0, [r4] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r2, [r2, 0xC] + cmp r6, r2 + bcc _081008D8 +_08100920: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810092C: .4byte gUnknown_083EC860 + thumb_func_end sub_81008BC + + thumb_func_start sub_8100930 +sub_8100930: @ 8100930 + push {r4,r5,lr} + lsls r0, 24 + ldr r3, _08100998 @ =gUnknown_020391AC + movs r1, 0 + strb r1, [r3] + ldrb r2, [r3, 0x1] + subs r1, 0x4 + ands r1, r2 + movs r4, 0xD + negs r4, r4 + ands r1, r4 + movs r2, 0x11 + negs r2, r2 + ands r1, r2 + subs r2, 0x10 + ands r1, r2 + strb r1, [r3, 0x1] + ldr r1, _0810099C @ =gUnknown_083EC900 + lsrs r0, 22 + adds r0, r1 + ldrb r1, [r0] + movs r5, 0x3F + lsls r1, 6 + strb r1, [r3, 0x1] + ldrh r2, [r3, 0x2] + ldr r1, _081009A0 @ =0xfffffe00 + ands r1, r2 + strh r1, [r3, 0x2] + ldrb r2, [r3, 0x3] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + strb r1, [r3, 0x3] + ldrb r0, [r0, 0x1] + lsls r0, 6 + ands r5, r1 + orrs r5, r0 + strb r5, [r3, 0x3] + ldrh r1, [r3, 0x4] + ldr r0, _081009A4 @ =0xfffffc00 + ands r0, r1 + strh r0, [r3, 0x4] + ldrb r0, [r3, 0x5] + ands r4, r0 + movs r0, 0x4 + orrs r4, r0 + movs r0, 0xF + ands r4, r0 + strb r4, [r3, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100998: .4byte gUnknown_020391AC +_0810099C: .4byte gUnknown_083EC900 +_081009A0: .4byte 0xfffffe00 +_081009A4: .4byte 0xfffffc00 + thumb_func_end sub_8100930 + + thumb_func_start sub_81009A8 +sub_81009A8: @ 81009A8 + movs r1, 0 + strh r1, [r0, 0x32] + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + strh r1, [r0, 0x3A] + strh r1, [r0, 0x3C] + ldr r1, _081009BC @ =sub_81009C0 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_081009BC: .4byte sub_81009C0 + thumb_func_end sub_81009A8 + + thumb_func_start sub_81009C0 +sub_81009C0: @ 81009C0 + push {lr} + adds r2, r0, 0 + movs r1, 0x3C + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _081009FA + movs r1, 0x3A + ldrsh r0, [r2, r1] + cmp r0, 0xE + bgt _081009E2 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _081009EC +_081009E2: + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 +_081009EC: + strb r0, [r3] + ldrh r0, [r2, 0x3A] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x3A] + b _08100A06 +_081009FA: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08100A06: + pop {r0} + bx r0 + thumb_func_end sub_81009C0 + + thumb_func_start sub_8100A0C +sub_8100A0C: @ 8100A0C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8100D38 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100A44 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _08100A3C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _08100A40 @ =sub_8100E70 + str r1, [r0] + b _08100A50 + .align 2, 0 +_08100A3C: .4byte gTasks +_08100A40: .4byte sub_8100E70 +_08100A44: + ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse + ldr r2, _08100A5C @ =sub_80FE428 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100A50: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100A58: .4byte gSecretBaseText_NoDecorInUse +_08100A5C: .4byte sub_80FE428 + thumb_func_end sub_8100A0C + + thumb_func_start sub_8100A60 +sub_8100A60: @ 8100A60 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08100A78 @ =0x0201f000 + ldr r1, [r3] + adds r1, r0 + movs r2, 0 + strb r2, [r1] + ldr r1, [r3, 0x4] + adds r1, r0 + strb r2, [r1] + bx lr + .align 2, 0 +_08100A78: .4byte 0x0201f000 + thumb_func_end sub_8100A60 + + thumb_func_start sub_8100A7C +sub_8100A7C: @ 8100A7C + push {r4-r6,lr} + ldr r6, _08100A9C @ =gUnknown_0202E8CE + movs r0, 0 + strh r0, [r6] + ldr r2, _08100AA0 @ =gScriptResult + strh r0, [r2] + ldr r4, _08100AA4 @ =gUnknown_0202E8CC + ldr r1, _08100AA8 @ =gUnknown_02039234 + ldrh r0, [r4] + ldrb r1, [r1] + cmp r0, r1 + bne _08100AB8 + movs r0, 0x1 + strh r0, [r2] + b _08100B0A + .align 2, 0 +_08100A9C: .4byte gUnknown_0202E8CE +_08100AA0: .4byte gScriptResult +_08100AA4: .4byte gUnknown_0202E8CC +_08100AA8: .4byte gUnknown_02039234 +_08100AAC: + ldr r1, _08100AB4 @ =gUnknown_0202E8D0 + ldrb r0, [r2] + strh r0, [r1] + b _08100B0A + .align 2, 0 +_08100AB4: .4byte gUnknown_0202E8D0 +_08100AB8: + ldr r3, _08100B10 @ =gDecorations + ldr r2, _08100B14 @ =0x0201f000 + ldr r1, _08100B18 @ =gUnknown_020391B4 + ldrh r0, [r4] + lsls r0, 3 + adds r4, r0, r1 + ldrb r1, [r4] + ldr r0, [r2] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r3 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + bne _08100B0A + ldrh r0, [r4, 0x4] + strh r0, [r6] + ldrb r0, [r4] + bl sub_8100A60 + movs r1, 0 + ldr r0, _08100B1C @ =gMapHeader + ldr r0, [r0, 0x4] + ldrb r2, [r0] + cmp r1, r2 + bcs _08100B0A + ldr r5, [r0, 0x4] + ldrh r4, [r6] + adds r3, r2, 0 +_08100AF2: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0, r5 + ldrh r0, [r2, 0x14] + cmp r0, r4 + beq _08100AAC + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r3 + bcc _08100AF2 +_08100B0A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100B10: .4byte gDecorations +_08100B14: .4byte 0x0201f000 +_08100B18: .4byte gUnknown_020391B4 +_08100B1C: .4byte gMapHeader + thumb_func_end sub_8100A7C + + thumb_func_start sub_8100B20 +sub_8100B20: @ 8100B20 + push {r4-r6,lr} + movs r2, 0 + ldr r0, _08100B4C @ =gMapHeader + ldr r0, [r0, 0x4] + ldrb r1, [r0] + cmp r2, r1 + bcs _08100B64 + adds r3, r0, 0 + ldr r5, [r3, 0x4] + ldr r0, _08100B50 @ =gUnknown_0202E8CC + ldrh r4, [r0] + ldr r6, _08100B54 @ =gUnknown_0202E8CE +_08100B38: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r5 + ldrh r0, [r1, 0x14] + cmp r0, r4 + bne _08100B58 + ldrb r0, [r1] + strh r0, [r6] + b _08100B64 + .align 2, 0 +_08100B4C: .4byte gMapHeader +_08100B50: .4byte gUnknown_0202E8CC +_08100B54: .4byte gUnknown_0202E8CE +_08100B58: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3] + cmp r2, r0 + bcc _08100B38 +_08100B64: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8100B20 + + thumb_func_start sub_8100B6C +sub_8100B6C: @ 8100B6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r7, 0 + b _08100C64 +_08100B7C: + lsls r3, r7, 3 + ldr r0, _08100BE0 @ =gUnknown_020391B4 + adds r4, r3, r0 + ldrb r1, [r4] + ldr r2, _08100BE4 @ =0x0201f000 + ldr r0, [r2] + adds r0, r1 + ldrb r6, [r0] + lsls r0, r6, 5 + ldr r5, _08100BE8 @ =gDecorations + adds r0, r5 + ldrb r2, [r0, 0x11] + ldr r5, _08100BE4 @ =0x0201f000 + ldr r0, [r5, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r1, r0, 4 + mov r9, r1 + movs r5, 0xF + mov r10, r5 + mov r1, r10 + ands r1, r0 + mov r10, r1 + adds r5, r3, 0 + adds r3, r7, 0x1 + str r3, [sp] + cmp r2, 0x4 + beq _08100C5E + cmp r6, 0x29 + bne _08100BD0 + mov r0, r9 + adds r0, 0x7 + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + bne _08100BD0 + ldrb r0, [r4, 0x2] + adds r0, 0x1 + strb r0, [r4, 0x2] +_08100BD0: + movs r6, 0 + ldr r1, _08100BE0 @ =gUnknown_020391B4 + adds r2, r5, 0 + adds r0, r5, r1 + adds r3, r7, 0x1 + str r3, [sp] + b _08100C4E + .align 2, 0 +_08100BE0: .4byte gUnknown_020391B4 +_08100BE4: .4byte 0x0201f000 +_08100BE8: .4byte gDecorations +_08100BEC: + movs r4, 0 + adds r0, r2, r1 + adds r7, r6, 0x1 + str r7, [sp, 0x4] + ldrb r0, [r0, 0x1] + cmp r4, r0 + bcs _08100C42 + ldr r0, _08100C7C @ =gUnknown_020391B4 + adds r0, r5 + mov r8, r0 + subs r1, r6, 0x7 + str r1, [sp, 0x8] +_08100C04: + adds r0, r4, 0x7 + add r0, r9 + ldr r1, _08100C80 @ =gMapHeader + ldr r3, [r1] + mov r7, r10 + subs r2, r7, r6 + ldr r1, [r3] + muls r2, r1 + mov r7, r9 + adds r1, r7, r4 + adds r1, r2 + ldr r2, [r3, 0xC] + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + movs r3, 0xC0 + lsls r3, 6 + adds r2, r3, 0 + orrs r2, r1 + mov r7, r10 + ldr r3, [sp, 0x8] + subs r1, r7, r3 + bl MapGridSetMetatileEntryAt + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + mov r7, r8 + ldrb r7, [r7, 0x1] + cmp r4, r7 + bcc _08100C04 +_08100C42: + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + lsrs r6, r0, 24 + ldr r1, _08100C7C @ =gUnknown_020391B4 + adds r2, r5, 0 + adds r0, r5, r1 +_08100C4E: + ldrb r0, [r0, 0x2] + cmp r6, r0 + bcc _08100BEC + ldr r2, _08100C7C @ =gUnknown_020391B4 + adds r0, r5, r2 + ldrb r0, [r0] + bl sub_8100A60 +_08100C5E: + ldr r3, [sp] + lsls r0, r3, 24 + lsrs r7, r0, 24 +_08100C64: + ldr r0, _08100C84 @ =gUnknown_02039234 + ldrb r0, [r0] + cmp r7, r0 + bcc _08100B7C + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08100C7C: .4byte gUnknown_020391B4 +_08100C80: .4byte gMapHeader +_08100C84: .4byte gUnknown_02039234 + thumb_func_end sub_8100B6C + + thumb_func_start sub_8100C88 +sub_8100C88: @ 8100C88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08100CAC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _08100CC4 + cmp r0, 0x1 + bgt _08100CB0 + cmp r0, 0 + beq _08100CBA + b _08100D24 + .align 2, 0 +_08100CAC: .4byte gTasks +_08100CB0: + cmp r0, 0x2 + beq _08100CF4 + cmp r0, 0x3 + beq _08100D08 + b _08100D24 +_08100CBA: + bl sub_8100B6C + movs r0, 0x1 + strh r0, [r5, 0xC] + b _08100D24 +_08100CC4: + ldr r0, _08100CEC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08100D24 + bl DrawWholeMapView + ldr r0, _08100CF0 @ =gUnknown_081A2F8A + bl ScriptContext1_SetupScript + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x2 + strh r0, [r5, 0xC] + b _08100D24 + .align 2, 0 +_08100CEC: .4byte gPaletteFade +_08100CF0: .4byte gUnknown_081A2F8A +_08100CF4: + bl ScriptContext2_Enable + adds r0, r4, 0 + bl sub_80FED90 + bl pal_fill_black + movs r0, 0x3 + strh r0, [r5, 0xC] + b _08100D24 +_08100D08: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100D24 + ldr r0, _08100D2C @ =0x0000ffff + strh r0, [r5, 0x22] + ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned + ldr r2, _08100D34 @ =sub_81010F0 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08100D24: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08100D2C: .4byte 0x0000ffff +_08100D30: .4byte gSecretBaseText_DecorReturned +_08100D34: .4byte sub_81010F0 + thumb_func_end sub_8100C88 + + thumb_func_start sub_8100D38 +sub_8100D38: @ 8100D38 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _08100D68 @ =0x0201f000 + adds r4, r0, 0 + ldrb r0, [r4, 0x8] + cmp r2, r0 + bcs _08100D7C + adds r5, r4, 0 + ldr r1, _08100D6C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r1 +_08100D56: + ldr r0, [r5] + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08100D70 + strh r2, [r1, 0x22] + movs r0, 0x1 + b _08100D7E + .align 2, 0 +_08100D68: .4byte 0x0201f000 +_08100D6C: .4byte gTasks +_08100D70: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrb r0, [r4, 0x8] + cmp r2, r0 + bcc _08100D56 +_08100D7C: + movs r0, 0 +_08100D7E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8100D38 + + thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar +SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + bl player_get_direction_lower_nybble + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r3, _08100DD8 @ =gUnknown_020391A8 + ldr r2, _08100DDC @ =gSprites + ldr r4, _08100DE0 @ =gUnknown_03004880 + ldr r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strb r0, [r3] + bl sub_81016C8 + ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + str r0, [r4, 0x4] + ldr r0, _08100DE8 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08100DF0 + ldr r1, _08100DEC @ =SpriteCallbackDummy + str r0, [sp] + movs r0, 0xC1 + b _08100DF8 + .align 2, 0 +_08100DD8: .4byte gUnknown_020391A8 +_08100DDC: .4byte gSprites +_08100DE0: .4byte gUnknown_03004880 +_08100DE4: .4byte gSpriteTemplate_83ECA88 +_08100DE8: .4byte gSaveBlock2 +_08100DEC: .4byte SpriteCallbackDummy +_08100DF0: + ldr r1, _08100E5C @ =SpriteCallbackDummy + movs r0, 0 + str r0, [sp] + movs r0, 0xC2 +_08100DF8: + movs r2, 0x88 + movs r3, 0x48 + bl AddPseudoFieldObject + ldr r1, _08100E60 @ =gUnknown_020391A9 + strb r0, [r1] + ldr r6, _08100E64 @ =gSprites + ldr r0, _08100E60 @ =gUnknown_020391A9 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + movs r4, 0xD + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + movs r2, 0x4 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r5, _08100E68 @ =gUnknown_020391A8 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r0, _08100E6C @ =gUnknown_03004880 + ldr r0, [r0, 0x4] + strb r0, [r5] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r0, 0x5] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100E5C: .4byte SpriteCallbackDummy +_08100E60: .4byte gUnknown_020391A9 +_08100E64: .4byte gSprites +_08100E68: .4byte gUnknown_020391A8 +_08100E6C: .4byte gUnknown_03004880 + thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar + + thumb_func_start sub_8100E70 +sub_8100E70: @ 8100E70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08100E94 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08100EC4 + cmp r0, 0x1 + bgt _08100E98 + cmp r0, 0 + beq _08100E9E + b _08100EE6 + .align 2, 0 +_08100E94: .4byte gTasks + 0x8 +_08100E98: + cmp r0, 0x2 + beq _08100ED2 + b _08100EE6 +_08100E9E: + ldr r0, _08100EC0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08100EE6 + adds r0, r5, 0 + bl sub_80FF0E0 + movs r0, 0x1 + strh r0, [r4, 0x4] + strh r0, [r4, 0xC] + strh r0, [r4, 0xA] + bl sub_8072DEC + b _08100EE6 + .align 2, 0 +_08100EC0: .4byte gPaletteFade +_08100EC4: + bl SetUpPuttingAwayDecorationPlayerAvatar + bl pal_fill_black + movs r0, 0x2 + strh r0, [r4, 0x4] + b _08100EE6 +_08100ED2: + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08100EE6 + strh r0, [r4, 0x18] + adds r0, r5, 0 + bl sub_8100EEC +_08100EE6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8100E70 + + thumb_func_start sub_8100EEC +sub_8100EEC: @ 8100EEC + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r4, _08100F70 @ =gSprites + ldr r3, _08100F74 @ =gUnknown_020391A8 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r6, 0 + strh r6, [r0, 0x3C] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08100F78 @ =sub_8101698 + str r1, [r0] + ldr r2, _08100F7C @ =gUnknown_020391A9 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x88 + strh r1, [r0, 0x20] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x48 + strh r1, [r0, 0x22] + ldr r1, _08100F80 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x1C] + ldr r1, _08100F84 @ =sub_8100494 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08100F70: .4byte gSprites +_08100F74: .4byte gUnknown_020391A8 +_08100F78: .4byte sub_8101698 +_08100F7C: .4byte gUnknown_020391A9 +_08100F80: .4byte gTasks +_08100F84: .4byte sub_8100494 + thumb_func_end sub_8100EEC + + thumb_func_start sub_8100F88 +sub_8100F88: @ 8100F88 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08100FB0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + bl sub_810045C + adds r0, r4, 0 + bl sub_8101024 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08100FB0: .4byte gTasks + thumb_func_end sub_8100F88 + + thumb_func_start sub_8100FB4 +sub_8100FB4: @ 8100FB4 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0810100C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + bl sub_810045C + ldr r3, _08101010 @ =gSprites + ldr r5, _08101014 @ =gUnknown_020391A8 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, _08101018 @ =SpriteCallbackDummy + str r1, [r0] + ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor + ldr r2, _08101020 @ =sub_810156C + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810100C: .4byte gTasks +_08101010: .4byte gSprites +_08101014: .4byte gUnknown_020391A8 +_08101018: .4byte SpriteCallbackDummy +_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor +_08101020: .4byte sub_810156C + thumb_func_end sub_8100FB4 + + thumb_func_start sub_8101024 +sub_8101024: @ 8101024 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8101460 + ldr r0, _08101040 @ =gUnknown_02039234 + ldrb r0, [r0] + cmp r0, 0 + beq _0810104C + ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor + ldr r2, _08101048 @ =sub_8101518 + b _081010B0 + .align 2, 0 +_08101040: .4byte gUnknown_02039234 +_08101044: .4byte gSecretBaseText_ReturnDecor +_08101048: .4byte sub_8101518 +_0810104C: + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + ldr r0, _081010BC @ =gTasks + 0x8 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057238 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08101082 + adds r0, r4, 0 + bl sub_805738C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081010D4 +_08101082: + ldr r3, _081010C0 @ =gSprites + ldr r4, _081010C4 @ =gUnknown_020391A8 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, 0x1C + adds r0, r3 + ldr r1, _081010C8 @ =SpriteCallbackDummy + str r1, [r0] + ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor + ldr r2, _081010D0 @ =sub_810156C +_081010B0: + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _081010E0 + .align 2, 0 +_081010BC: .4byte gTasks + 0x8 +_081010C0: .4byte gSprites +_081010C4: .4byte gUnknown_020391A8 +_081010C8: .4byte SpriteCallbackDummy +_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor +_081010D0: .4byte sub_810156C +_081010D4: + ldr r1, _081010E8 @ =gSecretBaseText_NoDecor + ldr r2, _081010EC @ =sub_81010F0 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_081010E0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081010E8: .4byte gSecretBaseText_NoDecor +_081010EC: .4byte sub_81010F0 + thumb_func_end sub_8101024 + + thumb_func_start sub_81010F0 +sub_81010F0: @ 81010F0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08101114 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810110A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08101110 +_0810110A: + adds r0, r2, 0 + bl sub_8100EEC +_08101110: + pop {r0} + bx r0 + .align 2, 0 +_08101114: .4byte gMain + thumb_func_end sub_81010F0 + + thumb_func_start sub_8101118 +sub_8101118: @ 8101118 + push {lr} + adds r2, r1, 0 + lsls r0, 24 + ldr r1, _08101130 @ =gDecorations + lsrs r0, 19 + adds r0, r1 + ldrb r1, [r0, 0x12] + cmp r1, 0 + bne _08101134 + movs r0, 0x1 + strb r0, [r2, 0x1] + b _08101192 + .align 2, 0 +_08101130: .4byte gDecorations +_08101134: + cmp r1, 0x1 + bne _08101140 + movs r0, 0x2 + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + b _08101194 +_08101140: + cmp r1, 0x2 + bne _0810114C + movs r0, 0x3 + strb r0, [r2, 0x1] + movs r0, 0x1 + b _08101192 +_0810114C: + cmp r1, 0x3 + bne _08101154 + movs r0, 0x4 + b _0810118E +_08101154: + cmp r1, 0x4 + bne _0810115E + movs r0, 0x2 + strb r0, [r2, 0x1] + b _08101192 +_0810115E: + cmp r1, 0x5 + bne _08101166 + movs r0, 0x1 + b _0810118E +_08101166: + cmp r1, 0x6 + bne _08101172 + movs r0, 0x1 + strb r0, [r2, 0x1] + movs r0, 0x3 + b _08101192 +_08101172: + cmp r1, 0x7 + bne _0810117E + movs r0, 0x2 + strb r0, [r2, 0x1] + movs r0, 0x4 + b _08101192 +_0810117E: + cmp r1, 0x8 + bne _08101188 + movs r0, 0x3 + strb r0, [r2, 0x1] + b _08101192 +_08101188: + cmp r1, 0x9 + bne _08101194 + movs r0, 0x3 +_0810118E: + strb r0, [r2, 0x1] + movs r0, 0x2 +_08101192: + strb r0, [r2, 0x2] +_08101194: + pop {r0} + bx r0 + thumb_func_end sub_8101118 + + thumb_func_start sub_8101198 +sub_8101198: @ 8101198 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + ldr r5, _081011F0 @ =gSprites + ldr r6, _081011F4 @ =gUnknown_020391A8 + ldrb r3, [r6] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r5 + adds r2, 0x3E + ldrb r3, [r2] + movs r4, 0x4 + orrs r3, r4 + strb r3, [r2] + ldrb r3, [r6] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r3, r5, 0 + adds r3, 0x1C + adds r2, r3 + ldr r3, _081011F8 @ =SpriteCallbackDummy + str r3, [r2] + ldr r4, _081011FC @ =gUnknown_020391A9 + ldrb r3, [r4] + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r5 + lsrs r0, 20 + adds r0, 0x88 + strh r0, [r2, 0x20] + ldrb r2, [r4] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + lsrs r1, 20 + adds r1, 0x48 + strh r1, [r0, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081011F0: .4byte gSprites +_081011F4: .4byte gUnknown_020391A8 +_081011F8: .4byte SpriteCallbackDummy +_081011FC: .4byte gUnknown_020391A9 + thumb_func_end sub_8101198 + + thumb_func_start sub_8101200 +sub_8101200: @ 8101200 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r2, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0810128C @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r3 + ldrb r0, [r2, 0x8] + subs r0, 0x7 + lsls r0, 24 + lsrs r7, r0, 24 + ldrb r0, [r2, 0xA] + subs r0, 0x7 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _08101290 @ =0x0201f000 + ldr r0, [r2, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r4, r0, 4 + movs r5, 0xF + ands r5, r0 + ldr r0, [r2] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x29 + bne _0810125A + adds r0, r4, 0x7 + adds r1, r5, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0xA3 + lsls r1, 2 + cmp r0, r1 + bne _0810125A + ldrb r0, [r6, 0x2] + subs r0, 0x1 + strb r0, [r6, 0x2] +_0810125A: + cmp r7, r4 + bcc _08101294 + ldrb r1, [r6, 0x1] + adds r0, r4, r1 + cmp r7, r0 + bge _08101294 + ldrb r0, [r6, 0x2] + subs r0, r5, r0 + cmp r8, r0 + ble _08101294 + cmp r8, r5 + bhi _08101294 + subs r0, r7, r4 + adds r0, 0x1 + subs r0, r1, r0 + lsls r0, 24 + lsrs r0, 24 + mov r2, r8 + subs r1, r5, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_8101198 + movs r0, 0x1 + b _08101296 + .align 2, 0 +_0810128C: .4byte gTasks +_08101290: .4byte 0x0201f000 +_08101294: + movs r0, 0 +_08101296: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8101200 + + thumb_func_start sub_81012A0 +sub_81012A0: @ 81012A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _0810130C @ =0x0201f000 + ldr r3, _08101310 @ =gUnknown_020391B4 + ldr r0, _08101314 @ =gUnknown_02039234 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r3 + ldrb r1, [r0] + ldr r0, [r2, 0x4] + adds r0, r1 + ldrb r0, [r0] + lsrs r7, r0, 4 + movs r6, 0xF + ands r6, r0 + movs r5, 0 + ldr r0, _08101318 @ =gSaveBlock1 + mov r8, r0 + mov r9, r3 +_081012CA: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + mov r2, r8 + adds r1, r0, r2 + ldr r2, _0810131C @ =0x00000c24 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r7 + bne _08101328 + ldr r2, _08101320 @ =0x00000c26 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r6 + bne _08101328 + ldr r0, _08101324 @ =0x00000c34 + adds r4, r1, r0 + ldrh r0, [r4] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08101328 + ldr r0, _08101314 @ =gUnknown_02039234 + ldrb r0, [r0] + lsls r0, 3 + add r0, r9 + ldrh r1, [r4] + strh r1, [r0, 0x4] + b _08101332 + .align 2, 0 +_0810130C: .4byte 0x0201f000 +_08101310: .4byte gUnknown_020391B4 +_08101314: .4byte gUnknown_02039234 +_08101318: .4byte gSaveBlock1 +_0810131C: .4byte 0x00000c24 +_08101320: .4byte 0x00000c26 +_08101324: .4byte 0x00000c34 +_08101328: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3F + bls _081012CA +_08101332: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81012A0 + + thumb_func_start sub_8101340 +sub_8101340: @ 8101340 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + b _081013A2 +_0810134A: + ldr r0, [r0] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _0810139C + ldr r0, _08101390 @ =gDecorations + ldrb r2, [r1] + lsls r1, r2, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + bne _0810139C + ldr r5, _08101394 @ =gUnknown_020391B4 + adds r0, r2, 0 + adds r1, r5, 0 + bl sub_8101118 + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r7, 0 + adds r2, r5, 0 + bl sub_8101200 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0810139C + strb r6, [r5] + bl sub_81012A0 + ldr r0, _08101398 @ =gUnknown_02039234 + strb r4, [r0] + movs r0, 0x1 + b _081013AC + .align 2, 0 +_08101390: .4byte gDecorations +_08101394: .4byte gUnknown_020391B4 +_08101398: .4byte gUnknown_02039234 +_0810139C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081013A2: + ldr r0, _081013B4 @ =0x0201f000 + ldrb r1, [r0, 0x8] + cmp r6, r1 + bcc _0810134A + movs r0, 0 +_081013AC: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081013B4: .4byte 0x0201f000 + thumb_func_end sub_8101340 + + thumb_func_start sub_81013B8 +sub_81013B8: @ 81013B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r4, 0 + ldr r7, _08101450 @ =0x0201f000 + ldrb r0, [r7, 0x8] + cmp r4, r0 + bcs _0810143E + adds r6, r7, 0 + ldr r5, _08101454 @ =gUnknown_02039234 +_081013EA: + ldr r0, [r6] + adds r0, r4 + ldrb r1, [r0] + ldr r0, [r6, 0x4] + adds r0, r4 + ldrb r0, [r0] + lsrs r3, r0, 4 + movs r2, 0xF + ands r2, r0 + cmp r1, 0 + beq _08101432 + ldr r0, _08101458 @ =gDecorations + lsls r1, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + bne _08101432 + ldr r0, [sp] + cmp r0, r3 + bhi _08101432 + cmp r10, r2 + bhi _08101432 + cmp r9, r3 + bcc _08101432 + cmp r8, r2 + bcc _08101432 + ldr r0, _0810145C @ =gUnknown_020391B4 + ldrb r1, [r5] + lsls r1, 3 + adds r1, r0 + strb r4, [r1] + bl sub_81012A0 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_08101432: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r7, 0x8] + cmp r4, r0 + bcc _081013EA +_0810143E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101450: .4byte 0x0201f000 +_08101454: .4byte gUnknown_02039234 +_08101458: .4byte gDecorations +_0810145C: .4byte gUnknown_020391B4 + thumb_func_end sub_81013B8 + + thumb_func_start sub_8101460 +sub_8101460: @ 8101460 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _081014B8 @ =gUnknown_02039234 + movs r0, 0 + strb r0, [r4] + adds r0, r6, 0 + bl sub_8101340 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08101504 + movs r5, 0 + ldr r0, _081014BC @ =0x0201f000 + ldrb r1, [r0, 0x8] + cmp r5, r1 + bcs _081014D2 + adds r7, r4, 0 +_08101486: + ldr r0, [r0] + adds r0, r5 + ldrb r1, [r0] + cmp r1, 0 + beq _081014C4 + ldr r4, _081014C0 @ =gUnknown_020391B4 + adds r0, r1, 0 + adds r1, r4, 0 + bl sub_8101118 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8101200 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081014C4 + strb r5, [r4] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + b _081014D2 + .align 2, 0 +_081014B8: .4byte gUnknown_02039234 +_081014BC: .4byte 0x0201f000 +_081014C0: .4byte gUnknown_020391B4 +_081014C4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810150C @ =0x0201f000 + ldrb r1, [r0, 0x8] + cmp r5, r1 + bcc _08101486 +_081014D2: + ldr r0, _08101510 @ =gUnknown_02039234 + ldrb r0, [r0] + cmp r0, 0 + beq _08101504 + ldr r0, _0810150C @ =0x0201f000 + ldr r2, _08101514 @ =gUnknown_020391B4 + ldrb r1, [r2] + ldr r0, [r0, 0x4] + adds r0, r1 + ldrb r1, [r0] + lsrs r0, r1, 4 + movs r3, 0xF + ands r3, r1 + ldrb r1, [r2, 0x2] + subs r1, r3, r1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r2, 0x1] + adds r2, r0 + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + bl sub_81013B8 +_08101504: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810150C: .4byte 0x0201f000 +_08101510: .4byte gUnknown_02039234 +_08101514: .4byte gUnknown_020391B4 + thumb_func_end sub_8101460 + + thumb_func_start sub_8101518 +sub_8101518: @ 8101518 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08101538 @ =gUnknown_083EC9CC + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101538: .4byte gUnknown_083EC9CC + thumb_func_end sub_8101518 + + thumb_func_start sub_810153C +sub_810153C: @ 810153C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _08101564 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _08101568 @ =sub_8100C88 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101564: .4byte gTasks +_08101568: .4byte sub_8100C88 + thumb_func_end sub_810153C + + thumb_func_start sub_810156C +sub_810156C: @ 810156C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _0810158C @ =gUnknown_083EC9D4 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810158C: .4byte gUnknown_083EC9D4 + thumb_func_end sub_810156C + + thumb_func_start sub_8101590 +sub_8101590: @ 8101590 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_81015B0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8101590 + + thumb_func_start sub_81015B0 +sub_81015B0: @ 81015B0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r1, _081015D8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + ldr r1, _081015DC @ =sub_81015E0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081015D8: .4byte gTasks +_081015DC: .4byte sub_81015E0 + thumb_func_end sub_81015B0 + + thumb_func_start sub_81015E0 +sub_81015E0: @ 81015E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08101600 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _08101604 + cmp r0, 0x1 + beq _08101620 + b _08101636 + .align 2, 0 +_08101600: .4byte gTasks +_08101604: + ldr r0, _0810161C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08101636 + adds r0, r4, 0 + bl sub_80FF114 + movs r0, 0x1 + strh r0, [r5, 0xC] + b _08101636 + .align 2, 0 +_0810161C: .4byte gPaletteFade +_08101620: + bl sub_81016F4 + ldr r0, _0810163C @ =gUnknown_0300485C + ldr r1, _08101640 @ =sub_8101678 + str r1, [r0] + ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08101636: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810163C: .4byte gUnknown_0300485C +_08101640: .4byte sub_8101678 +_08101644: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_81015E0 + + thumb_func_start sub_8101648 +sub_8101648: @ 8101648 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08101668 + ldr r0, _08101670 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08101674 @ =sub_80FE2EC + str r0, [r1] +_08101668: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101670: .4byte gTasks +_08101674: .4byte sub_80FE2EC + thumb_func_end sub_8101648 + + thumb_func_start sub_8101678 +sub_8101678: @ 8101678 + push {lr} + bl pal_fill_black + bl MenuDisplayMessageBox + bl sub_80FE220 + ldr r0, _08101694 @ =sub_8101648 + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_08101694: .4byte sub_8101648 + thumb_func_end sub_8101678 + + thumb_func_start sub_8101698 +sub_8101698: @ 8101698 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + strh r0, [r2, 0x2E] + cmp r0, 0xF + ble _081016B8 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081016C4 +_081016B8: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081016C4: + pop {r0} + bx r0 + thumb_func_end sub_8101698 + + thumb_func_start sub_81016C8 +sub_81016C8: @ 81016C8 + push {lr} + ldr r0, _081016DC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _081016E4 + ldr r0, _081016E0 @ =gUnknown_083ECA5C + bl LoadSpritePalette + b _081016EA + .align 2, 0 +_081016DC: .4byte gSaveBlock2 +_081016E0: .4byte gUnknown_083ECA5C +_081016E4: + ldr r0, _081016F0 @ =gUnknown_083ECA64 + bl LoadSpritePalette +_081016EA: + pop {r0} + bx r0 + .align 2, 0 +_081016F0: .4byte gUnknown_083ECA64 + thumb_func_end sub_81016C8 + + thumb_func_start sub_81016F4 +sub_81016F4: @ 81016F4 + push {lr} + movs r0, 0x8 + bl FreeSpritePaletteByTag + pop {r0} + bx r0 + thumb_func_end sub_81016F4 + + thumb_func_start sub_8101700 +sub_8101700: @ 8101700 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _08101728 + ldr r1, _08101720 @ =gSecretBaseText_NoDecors + ldr r2, _08101724 @ =sub_80FE428 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101742 + .align 2, 0 +_08101720: .4byte gSecretBaseText_NoDecors +_08101724: .4byte sub_80FE428 +_08101728: + ldr r1, _08101748 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x1E] + ldr r0, _0810174C @ =gUnknown_020388F6 + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_08101742: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101748: .4byte gTasks +_0810174C: .4byte gUnknown_020388F6 + thumb_func_end sub_8101700 + + thumb_func_start unref_sub_8101750 +unref_sub_8101750: @ 8101750 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_81341D4 + lsls r0, 24 + cmp r0, 0 + bne _08101778 + ldr r1, _08101770 @ =gSecretBaseText_NoDecors + ldr r2, _08101774 @ =sub_80FE428 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101792 + .align 2, 0 +_08101770: .4byte gSecretBaseText_NoDecors +_08101774: .4byte sub_80FE428 +_08101778: + ldr r1, _08101798 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x2 + strh r1, [r0, 0x1E] + ldr r0, _0810179C @ =gUnknown_020388F6 + strb r2, [r0] + adds r0, r4, 0 + bl sub_80FE5AC +_08101792: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101798: .4byte gTasks +_0810179C: .4byte gUnknown_020388F6 + thumb_func_end unref_sub_8101750 + + thumb_func_start sub_81017A0 +sub_81017A0: @ 81017A0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_80FEF74 + bl sub_80FED1C + bl sub_80FEFA4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08101808 + ldr r0, _081017EC @ =gStringVar1 + ldr r1, _081017F0 @ =gUnknown_020388F5 + ldrb r2, [r1] + ldr r1, _081017F4 @ =gUnknown_020388D0 + ldr r1, [r1] + adds r1, r2 + ldrb r1, [r1] + lsls r1, 5 + ldr r2, _081017F8 @ =gDecorations + 0x1 + adds r1, r2 + bl StringCopy + ldr r4, _081017FC @ =gStringVar4 + ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _08101804 @ =sub_8101824 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + b _08101814 + .align 2, 0 +_081017EC: .4byte gStringVar1 +_081017F0: .4byte gUnknown_020388F5 +_081017F4: .4byte gUnknown_020388D0 +_081017F8: .4byte gDecorations + 0x1 +_081017FC: .4byte gStringVar4 +_08101800: .4byte gSecretBaseText_WillBeDiscarded +_08101804: .4byte sub_8101824 +_08101808: + ldr r1, _0810181C @ =gSecretBaseText_DecorInUse + ldr r2, _08101820 @ =sub_80FEFF4 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_08101814: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810181C: .4byte gSecretBaseText_DecorInUse +_08101820: .4byte sub_80FEFF4 + thumb_func_end sub_81017A0 + + thumb_func_start sub_8101824 +sub_8101824: @ 8101824 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _08101844 @ =gUnknown_083ECAA0 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101844: .4byte gUnknown_083ECAA0 + thumb_func_end sub_8101824 + + thumb_func_start sub_8101848 +sub_8101848: @ 8101848 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xE + bl MenuZeroFillWindowRect + ldr r6, _08101890 @ =gUnknown_020388F5 + ldrb r1, [r6] + ldr r5, _08101894 @ =gUnknown_020388D0 + ldr r0, [r5] + adds r0, r1 + ldrb r0, [r0] + bl sub_8109A30 + ldrb r1, [r6] + ldr r0, [r5] + adds r0, r1 + movs r1, 0 + strb r1, [r0] + adds r0, r4, 0 + bl sub_80FF098 + ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway + ldr r2, _0810189C @ =sub_80FEFF4 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08101890: .4byte gUnknown_020388F5 +_08101894: .4byte gUnknown_020388D0 +_08101898: .4byte gSecretBaseText_DecorThrownAway +_0810189C: .4byte sub_80FEFF4 + thumb_func_end sub_8101848 + + thumb_func_start sub_81018A0 +sub_81018A0: @ 81018A0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_81019B0 + ldr r0, _081018B4 @ =sub_81018B8 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_081018B4: .4byte sub_81018B8 + thumb_func_end sub_81018A0 + + thumb_func_start sub_81018B8 +sub_81018B8: @ 81018B8 + push {lr} + ldr r0, _081018D0 @ =gMain + ldr r1, _081018D4 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x6 + bhi _0810194A + lsls r0, 2 + ldr r1, _081018D8 @ =_081018DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081018D0: .4byte gMain +_081018D4: .4byte 0x0000043c +_081018D8: .4byte _081018DC + .align 2, 0 +_081018DC: + .4byte _081018F8 + .4byte _08101902 + .4byte _08101908 + .4byte _08101912 + .4byte _08101918 + .4byte _0810191E + .4byte _08101938 +_081018F8: + bl sub_8101A28 + bl sub_8101BA4 + b _08101922 +_08101902: + bl sub_8101A8C + b _08101922 +_08101908: + bl sub_8101AE0 + bl sub_8101B04 + b _08101922 +_08101912: + bl sub_8101C84 + b _08101922 +_08101918: + bl sub_8101CA0 + b _08101922 +_0810191E: + bl sub_8101CC0 +_08101922: + ldr r1, _08101930 @ =gMain + ldr r0, _08101934 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810194A + .align 2, 0 +_08101930: .4byte gMain +_08101934: .4byte 0x0000043c +_08101938: + bl sub_8101CD4 + bl sub_8101CEC + bl sub_8101A44 + ldr r0, _08101950 @ =sub_8101954 + bl SetMainCallback2 +_0810194A: + pop {r0} + bx r0 + .align 2, 0 +_08101950: .4byte sub_8101954 + thumb_func_end sub_81018B8 + + thumb_func_start sub_8101954 +sub_8101954: @ 8101954 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8101954 + + thumb_func_start sub_810196C +sub_810196C: @ 810196C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _081019A8 @ =REG_WIN0H + ldr r2, _081019AC @ =0x02000000 + adds r0, r2, 0 + adds r0, 0x58 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + adds r0, r2, 0 + adds r0, 0x5A + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + adds r0, r2, 0 + adds r0, 0x5C + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r0, r2, 0 + adds r0, 0x5E + ldrh r0, [r0] + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_081019A8: .4byte REG_WIN0H +_081019AC: .4byte 0x02000000 + thumb_func_end sub_810196C + + thumb_func_start sub_81019B0 +sub_81019B0: @ 81019B0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _081019E4 @ =nullsub_67 + movs r1, 0xFF + bl CreateTask + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _081019E8 @ =gTasks + adds r0, r1 + strh r4, [r0, 0x8] + adds r0, 0xA + adds r1, r5, 0 + bl StoreWordInTwoHalfwords + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081019E4: .4byte nullsub_67 +_081019E8: .4byte gTasks + thumb_func_end sub_81019B0 + + thumb_func_start sub_81019EC +sub_81019EC: @ 81019EC + push {lr} + ldr r0, _08101A18 @ =nullsub_67 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + ldr r0, _08101A1C @ =gTasks + adds r2, r0 + ldr r1, _08101A20 @ =0x02000000 + ldrh r0, [r2, 0x8] + strb r0, [r1, 0x1] + adds r2, 0xA + adds r1, 0x64 + adds r0, r2, 0 + bl LoadWordFromTwoHalfwords + pop {r0} + bx r0 + .align 2, 0 +_08101A18: .4byte nullsub_67 +_08101A1C: .4byte gTasks +_08101A20: .4byte 0x02000000 + thumb_func_end sub_81019EC + + thumb_func_start nullsub_67 +nullsub_67: @ 8101A24 + bx lr + thumb_func_end nullsub_67 + + thumb_func_start sub_8101A28 +sub_8101A28: @ 8101A28 + 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 sub_8101A28 + + thumb_func_start sub_8101A44 +sub_8101A44: @ 8101A44 + push {r4,lr} + ldr r0, _08101A7C @ =sub_810196C + bl SetVBlankCallback + ldr r3, _08101A80 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08101A84 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08101A88 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101A7C: .4byte sub_810196C +_08101A80: .4byte 0x04000208 +_08101A84: .4byte 0x04000200 +_08101A88: .4byte REG_DISPSTAT + thumb_func_end sub_8101A44 + + thumb_func_start sub_8101A8C +sub_8101A8C: @ 8101A8C + 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, _08101AD8 @ =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08101ADC @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_08101AAA: + 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 _08101AAA + 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 +_08101AD8: .4byte 0x040000d4 +_08101ADC: .4byte 0x81000800 + thumb_func_end sub_8101A8C + + thumb_func_start sub_8101AE0 +sub_8101AE0: @ 8101AE0 + sub sp, 0x4 + movs r2, 0xE0 + lsls r2, 19 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r0, _08101AFC @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08101B00 @ =0x81000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + add sp, 0x4 + bx lr + .align 2, 0 +_08101AFC: .4byte 0x040000d4 +_08101B00: .4byte 0x81000200 + thumb_func_end sub_8101AE0 + + thumb_func_start sub_8101B04 +sub_8101B04: @ 8101B04 + push {r4,r5,lr} + ldr r5, _08101B70 @ =REG_BG0CNT + movs r1, 0 + strh r1, [r5] + ldr r2, _08101B74 @ =REG_BG1CNT + strh r1, [r2] + ldr r3, _08101B78 @ =REG_BG2CNT + strh r1, [r3] + ldr r4, _08101B7C @ =REG_BG3CNT + strh r1, [r4] + ldr r0, _08101B80 @ =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] + ldr r1, _08101B84 @ =0x00001f08 + adds r0, r1, 0 + strh r0, [r5] + ldr r1, _08101B88 @ =0x00001c01 + adds r0, r1, 0 + strh r0, [r2] + ldr r2, _08101B8C @ =0x00001d02 + adds r0, r2, 0 + strh r0, [r3] + ldr r1, _08101B90 @ =0x00001e02 + adds r0, r1, 0 + strh r0, [r4] + ldr r0, _08101B94 @ =REG_WININ + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _08101B98 @ =REG_BLDCNT + ldr r2, _08101B9C @ =0x00001048 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08101BA0 @ =0x00000809 + adds r0, r2, 0 + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08101B70: .4byte REG_BG0CNT +_08101B74: .4byte REG_BG1CNT +_08101B78: .4byte REG_BG2CNT +_08101B7C: .4byte REG_BG3CNT +_08101B80: .4byte REG_BG0HOFS +_08101B84: .4byte 0x00001f08 +_08101B88: .4byte 0x00001c01 +_08101B8C: .4byte 0x00001d02 +_08101B90: .4byte 0x00001e02 +_08101B94: .4byte REG_WININ +_08101B98: .4byte REG_BLDCNT +_08101B9C: .4byte 0x00001048 +_08101BA0: .4byte 0x00000809 + thumb_func_end sub_8101B04 + + thumb_func_start sub_8101BA4 +sub_8101BA4: @ 8101BA4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + bl sub_81019EC + ldr r5, _08101C74 @ =0x02000000 + movs r4, 0 + strb r4, [r5] + strb r4, [r5, 0x2] + bl Random + movs r1, 0x1 + ands r1, r0 + strb r1, [r5, 0x3] + strb r4, [r5, 0x4] + movs r0, 0 + strh r4, [r5, 0x8] + strb r0, [r5, 0xA] + strb r0, [r5, 0xB] + ldr r0, _08101C78 @ =gSaveBlock1 + ldr r1, _08101C7C @ =0x00000494 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r5, 0xC] + strh r4, [r5, 0xE] + strh r4, [r5, 0x10] + strh r4, [r5, 0x12] + strh r4, [r5, 0x18] + movs r0, 0x8 + strh r0, [r5, 0x1A] + adds r1, r5, 0 + adds r1, 0x58 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA0 + strh r0, [r1] + adds r0, r5, 0 + adds r0, 0x5C + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl GetCurrentMapMusic + adds r1, r5, 0 + adds r1, 0x60 + strh r0, [r1] + movs r7, 0 + adds r6, r5, 0 + ldr r2, _08101C80 @ =gUnknown_083ECCF8 + mov r9, r2 + movs r0, 0x1C + adds r0, r6 + mov r8, r0 +_08101C14: + lsls r5, r7, 1 + adds r0, r6, 0 + adds r0, 0x22 + adds r0, r5, r0 + movs r1, 0 + strh r1, [r0] + adds r4, r6, 0 + adds r4, 0x28 + adds r4, r5, r4 + ldrb r0, [r6, 0x3] + lsls r0, 1 + lsls r1, r7, 2 + adds r0, r1 + add r0, r9 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x15 + bl __modsi3 + strh r0, [r4] + add r5, r8 + movs r2, 0 + ldrsh r0, [r4, r2] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + movs r2, 0xFC + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r5] + movs r1, 0 + ldrsh r0, [r5, r1] + adds r1, r2, 0 + bl __modsi3 + strh r0, [r5] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08101C14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101C74: .4byte 0x02000000 +_08101C78: .4byte gSaveBlock1 +_08101C7C: .4byte 0x00000494 +_08101C80: .4byte gUnknown_083ECCF8 + thumb_func_end sub_8101BA4 + + thumb_func_start sub_8101C84 +sub_8101C84: @ 8101C84 + push {r4,lr} + ldr r4, _08101C9C @ =gWindowConfig_81E7128 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08101C9C: .4byte gWindowConfig_81E7128 + thumb_func_end sub_8101C84 + + thumb_func_start sub_8101CA0 +sub_8101CA0: @ 8101CA0 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + ldr r1, _08101CBC @ =gOamLimit + movs r0, 0x80 + strb r0, [r1] + bl FreeAllSpritePalettes + bl ResetTasks + pop {r0} + bx r0 + .align 2, 0 +_08101CBC: .4byte gOamLimit + thumb_func_end sub_8101CA0 + + thumb_func_start sub_8101CC0 +sub_8101CC0: @ 8101CC0 + push {lr} + bl sub_8106448 + bl sub_81064B8 + bl sub_81063C0 + pop {r0} + bx r0 + thumb_func_end sub_8101CC0 + + thumb_func_start sub_8101CD4 +sub_8101CD4: @ 8101CD4 + push {lr} + bl sub_8104EA8 + bl sub_8104F8C + bl sub_8103DC8 + bl sub_81050C4 + pop {r0} + bx r0 + thumb_func_end sub_8101CD4 + + thumb_func_start sub_8101CEC +sub_8101CEC: @ 8101CEC + push {lr} + bl sub_8104048 + bl sub_8102DA8 + bl sub_8104C5C + bl sub_8101D04 + pop {r0} + bx r0 + thumb_func_end sub_8101CEC + + thumb_func_start sub_8101D04 +sub_8101D04: @ 8101D04 + push {r4,lr} + ldr r4, _08101D20 @ =sub_8101D24 + 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 +_08101D20: .4byte sub_8101D24 + thumb_func_end sub_8101D04 + + thumb_func_start sub_8101D24 +sub_8101D24: @ 8101D24 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r7, _08101D50 @ =gUnknown_083ECAAC + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r6, _08101D54 @ =0x02000000 + ldr r5, _08101D58 @ =gTasks +_08101D36: + 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 _08101D36 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08101D50: .4byte gUnknown_083ECAAC +_08101D54: .4byte 0x02000000 +_08101D58: .4byte gTasks + thumb_func_end sub_8101D24 + + thumb_func_start sub_8101D5C +sub_8101D5C: @ 8101D5C + push {r4,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 r4, _08101D88 @ =0x02000000 + ldrb r0, [r4, 0x2] + bl sub_810423C + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08101D88: .4byte 0x02000000 + thumb_func_end sub_8101D5C + + thumb_func_start sub_8101D8C +sub_8101D8C: @ 8101D8C + push {lr} + ldr r0, _08101DA8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08101DA2 + ldr r1, _08101DAC @ =0x02000000 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08101DA2: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101DA8: .4byte gPaletteFade +_08101DAC: .4byte 0x02000000 + thumb_func_end sub_8101D8C + + thumb_func_start sub_8101DB0 +sub_8101DB0: @ 8101DB0 + push {lr} + ldr r2, _08101DD8 @ =0x02000000 + movs r0, 0 + strh r0, [r2, 0xE] + strh r0, [r2, 0x12] + strh r0, [r2, 0x18] + ldrb r1, [r2, 0x4] + movs r0, 0xC0 + ands r0, r1 + strb r0, [r2, 0x4] + movs r0, 0x4 + strb r0, [r2] + movs r1, 0xC + ldrsh r0, [r2, r1] + cmp r0, 0 + bgt _08101DDC + movs r0, 0x19 + strb r0, [r2] + b _08101DEC + .align 2, 0 +_08101DD8: .4byte 0x02000000 +_08101DDC: + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _08101DEC + movs r0, 0x3 + strb r0, [r2] + movs r0, 0x4 + bl sub_8104CAC +_08101DEC: + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_8101DB0 + + thumb_func_start sub_8101DF4 +sub_8101DF4: @ 8101DF4 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _08101E06 + ldr r1, _08101E0C @ =0x02000000 + movs r0, 0x4 + strb r0, [r1] +_08101E06: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101E0C: .4byte 0x02000000 + thumb_func_end sub_8101DF4 + + thumb_func_start sub_8101E10 +sub_8101E10: @ 8101E10 + push {lr} + movs r0, 0 + bl sub_8104CAC + ldr r2, _08101E34 @ =0x02000000 + movs r0, 0x5 + strb r0, [r2] + movs r0, 0xC + ldrsh r1, [r2, r0] + ldr r0, _08101E38 @ =0x0000270e + cmp r1, r0 + ble _08101E2C + movs r0, 0x17 + strb r0, [r2] +_08101E2C: + movs r0, 0x1 + pop {r1} + bx r1 + .align 2, 0 +_08101E34: .4byte 0x02000000 +_08101E38: .4byte 0x0000270e + thumb_func_end sub_8101E10 + + thumb_func_start sub_8101E3C +sub_8101E3C: @ 8101E3C + push {r4,lr} + ldr r0, _08101E58 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08101E60 + movs r0, 0 + bl sub_8104AB8 + ldr r1, _08101E5C @ =0x02000000 + movs r0, 0x8 + strb r0, [r1] + b _08101F1A + .align 2, 0 +_08101E58: .4byte gMain +_08101E5C: .4byte 0x02000000 +_08101E60: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08101EC2 + ldr r2, _08101EB8 @ =0x02000000 + movs r1, 0xC + ldrsh r0, [r2, r1] + subs r0, 0x3 + movs r3, 0x12 + ldrsh r1, [r2, r3] + adds r0, r1 + cmp r0, 0 + blt _08101EBC + ldrh r4, [r2, 0x12] + adds r0, r1, 0 + cmp r0, 0x2 + bgt _08101E9C +_08101E84: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8103D50 + lsls r0, r4, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _08101E84 +_08101E9C: + ldr r1, _08101EB8 @ =0x02000000 + ldrh r0, [r1, 0xC] + subs r0, 0x3 + ldrh r3, [r1, 0x12] + adds r0, r3 + strh r0, [r1, 0xC] + movs r0, 0x3 + strh r0, [r1, 0x12] + movs r0, 0x9 + strb r0, [r1] + movs r0, 0x5F + bl PlaySE + b _08101F1A + .align 2, 0 +_08101EB8: .4byte 0x02000000 +_08101EBC: + movs r0, 0x6 + strb r0, [r2] + b _08101F1A +_08101EC2: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08101EEC + ldr r4, _08101F24 @ =0x02000000 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08101EEC + movs r0, 0x5F + bl PlaySE + ldrb r0, [r4, 0x12] + bl sub_8103D50 + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] +_08101EEC: + ldr r0, _08101F24 @ =0x02000000 + movs r2, 0x12 + ldrsh r1, [r0, r2] + ldr r2, _08101F28 @ =gMain + adds r3, r0, 0 + cmp r1, 0x2 + bgt _08101F08 + cmp r1, 0 + beq _08101F0C + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08101F0C +_08101F08: + movs r0, 0x9 + strb r0, [r3] +_08101F0C: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08101F1A + movs r0, 0x15 + strb r0, [r3] +_08101F1A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08101F24: .4byte 0x02000000 +_08101F28: .4byte gMain + thumb_func_end sub_8101E3C + + thumb_func_start sub_8101F2C +sub_8101F2C: @ 8101F2C + push {r4,lr} + adds r4, r0, 0 + bl MenuDisplayMessageBox + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8101F2C + + thumb_func_start sub_8101F44 +sub_8101F44: @ 8101F44 + push {lr} + ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins + bl sub_8101F2C + ldr r1, _08101F5C @ =0x02000000 + movs r0, 0x7 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101F58: .4byte gOtherText_DontHaveThreeCoins +_08101F5C: .4byte 0x02000000 + thumb_func_end sub_8101F44 + + thumb_func_start sub_8101F60 +sub_8101F60: @ 8101F60 + push {lr} + ldr r0, _08101F80 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08101F78 + bl MenuZeroFillScreen + ldr r1, _08101F84 @ =0x02000000 + movs r0, 0x5 + strb r0, [r1] +_08101F78: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101F80: .4byte gMain +_08101F84: .4byte 0x02000000 + thumb_func_end sub_8101F60 + + thumb_func_start sub_8101F88 +sub_8101F88: @ 8101F88 + push {lr} + bl sub_8104AEC + lsls r0, 24 + cmp r0, 0 + beq _08101F9A + ldr r1, _08101FA0 @ =0x02000000 + movs r0, 0x5 + strb r0, [r1] +_08101F9A: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08101FA0: .4byte 0x02000000 + thumb_func_end sub_8101F88 + + thumb_func_start sub_8101FA4 +sub_8101FA4: @ 8101FA4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8102484 + bl sub_8104DA4 + movs r0, 0 + bl sub_8102DEC + movs r0, 0x1 + bl sub_8102DEC + movs r0, 0x2 + bl sub_8102DEC + movs r0, 0 + strh r0, [r4, 0x8] + ldr r4, _08101FDC @ =0x02000000 + ldrb r1, [r4, 0x4] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08101FE0 + bl sub_810430C + movs r0, 0xA + b _08101FE8 + .align 2, 0 +_08101FDC: .4byte 0x02000000 +_08101FE0: + movs r0, 0x1 + bl sub_8104CAC + movs r0, 0xB +_08101FE8: + strb r0, [r4] + ldr r4, _08102004 @ =0x02000000 + movs r0, 0x8 + strh r0, [r4, 0x1A] + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08101FFC + bl dp15_jump_random_unknown + strh r0, [r4, 0x1A] +_08101FFC: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102004: .4byte 0x02000000 + thumb_func_end sub_8101FA4 + + thumb_func_start sub_8102008 +sub_8102008: @ 8102008 + push {lr} + bl sub_810432C + lsls r0, 24 + cmp r0, 0 + beq _08102028 + movs r0, 0x1 + bl sub_8104CAC + ldr r1, _08102030 @ =0x02000000 + ldrb r2, [r1, 0x4] + movs r0, 0xDF + ands r0, r2 + strb r0, [r1, 0x4] + movs r0, 0xB + strb r0, [r1] +_08102028: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102030: .4byte 0x02000000 + thumb_func_end sub_8102008 + + thumb_func_start sub_8102034 +sub_8102034: @ 8102034 + push {lr} + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1D + ble _0810204E + bl sub_81024F0 + ldr r1, _08102054 @ =0x02000000 + movs r0, 0xC + strb r0, [r1] +_0810204E: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102054: .4byte 0x02000000 + thumb_func_end sub_8102034 + + thumb_func_start sub_8102058 +sub_8102058: @ 8102058 + push {r4,lr} + ldr r0, _08102088 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810207E + movs r0, 0x18 + bl PlaySE + ldr r4, _0810208C @ =0x02000000 + ldrb r0, [r4, 0x18] + bl sub_8102E1C + ldrb r0, [r4, 0x18] + bl sub_8103C14 + movs r0, 0xD + strb r0, [r4] +_0810207E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102088: .4byte gMain +_0810208C: .4byte 0x02000000 + thumb_func_end sub_8102058 + + thumb_func_start sub_8102090 +sub_8102090: @ 8102090 + push {r4,lr} + ldr r4, _081020BC @ =0x02000000 + ldrb r0, [r4, 0x18] + bl sub_8102E40 + lsls r0, 24 + cmp r0, 0 + bne _081020C0 + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + movs r1, 0xC + strb r1, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _081020B6 + movs r0, 0xE + strb r0, [r4] +_081020B6: + movs r0, 0x1 + b _081020C2 + .align 2, 0 +_081020BC: .4byte 0x02000000 +_081020C0: + movs r0, 0 +_081020C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102090 + + thumb_func_start sub_81020C8 +sub_81020C8: @ 81020C8 + push {r4,lr} + ldr r4, _08102128 @ =0x02000000 + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + strb r0, [r4, 0x4] + bl sub_81027A0 + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _081020E8 + subs r0, 0x1 + strb r0, [r4, 0xA] + ldrb r0, [r4, 0xB] + adds r0, 0x1 + strb r0, [r4, 0xB] +_081020E8: + ldrh r0, [r4, 0x8] + cmp r0, 0 + beq _081021B4 + movs r0, 0xF + strb r0, [r4] + bl sub_8102A24 + bl sub_8103F70 + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0xE] + subs r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _0810210C + movs r0, 0 + strh r0, [r4, 0x10] +_0810210C: + ldrh r1, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08102130 + ldr r0, _0810212C @ =0x00000185 + bl PlayFanfare + movs r0, 0x6 + bl sub_8104CAC + b _0810215A + .align 2, 0 +_08102128: .4byte 0x02000000 +_0810212C: .4byte 0x00000185 +_08102130: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810214C + ldr r0, _08102148 @ =0x00000185 + bl PlayFanfare + movs r0, 0x5 + bl sub_8104CAC + b _0810215A + .align 2, 0 +_08102148: .4byte 0x00000185 +_0810214C: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare + movs r0, 0x2 + bl sub_8104CAC +_0810215A: + ldr r1, _081021B0 @ =0x02000000 + ldrh r3, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 1 + ands r0, r3 + adds r2, r1, 0 + cmp r0, 0 + beq _08102192 + ldrb r1, [r2, 0x4] + movs r0, 0x3F + ands r0, r1 + movs r1, 0 + strb r0, [r2, 0x4] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r3 + cmp r0, 0 + beq _08102192 + strb r1, [r2, 0xA] + strb r1, [r2, 0xB] + strb r1, [r2, 0x3] + movs r0, 0x80 + lsls r0, 1 + ands r0, r3 + cmp r0, 0 + beq _08102192 + movs r0, 0x1 + strb r0, [r2, 0x3] +_08102192: + ldrh r1, [r2, 0x8] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081021D2 + ldrb r0, [r2, 0x2] + cmp r0, 0xF + bhi _081021D2 + adds r0, 0x1 + strb r0, [r2, 0x2] + ldrb r0, [r2, 0x2] + bl sub_8104064 + b _081021D2 + .align 2, 0 +_081021B0: .4byte 0x02000000 +_081021B4: + movs r0, 0x3 + bl sub_8104CAC + movs r0, 0x14 + strb r0, [r4] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x10] + adds r0, r1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + ldr r1, _081021DC @ =0x0000270f + cmp r0, r1 + ble _081021D2 + strh r1, [r4, 0x10] +_081021D2: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081021DC: .4byte 0x0000270f + thumb_func_end sub_81020C8 + + thumb_func_start sub_81021E0 +sub_81021E0: @ 81021E0 + push {lr} + bl sub_8102A44 + lsls r0, 24 + cmp r0, 0 + beq _081021F2 + ldr r1, _081021F8 @ =0x02000000 + movs r0, 0x10 + strb r0, [r1] +_081021F2: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081021F8: .4byte 0x02000000 + thumb_func_end sub_81021E0 + + thumb_func_start sub_81021FC +sub_81021FC: @ 81021FC + push {r4,lr} + bl sub_8103FA0 + lsls r0, 24 + cmp r0, 0 + beq _08102256 + ldr r4, _08102260 @ =0x02000000 + movs r0, 0x13 + strb r0, [r4] + ldrh r1, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08102220 + movs r0, 0x1C + bl sav12_xor_increment +_08102220: + ldrh r1, [r4, 0x8] + movs r0, 0x4 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08102236 + movs r0, 0 + strh r0, [r4, 0x18] + movs r0, 0x9 + strb r0, [r4] +_08102236: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08102242 + movs r0, 0x11 + strb r0, [r4] +_08102242: + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08102256 + cmp r2, 0 + beq _08102256 + movs r0, 0x4 + bl sub_8104CAC + movs r0, 0x12 + strb r0, [r4] +_08102256: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102260: .4byte 0x02000000 + thumb_func_end sub_81021FC + + thumb_func_start sub_8102264 +sub_8102264: @ 8102264 + push {r4,lr} + bl sub_81040C8 + lsls r0, 24 + cmp r0, 0 + bne _08102294 + ldr r4, _0810229C @ =0x02000000 + movs r0, 0x13 + strb r0, [r4] + ldrh r1, [r4, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08102294 + movs r0, 0x9 + strb r0, [r4] + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _08102294 + movs r0, 0x4 + bl sub_8104CAC + movs r0, 0x12 + strb r0, [r4] +_08102294: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810229C: .4byte 0x02000000 + thumb_func_end sub_8102264 + + thumb_func_start sub_81022A0 +sub_81022A0: @ 81022A0 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _081022C0 + ldr r2, _081022C8 @ =0x02000000 + movs r0, 0x13 + strb r0, [r2] + ldrh r1, [r2, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _081022C0 + movs r0, 0x9 + strb r0, [r2] +_081022C0: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081022C8: .4byte 0x02000000 + thumb_func_end sub_81022A0 + + thumb_func_start sub_81022CC +sub_81022CC: @ 81022CC + push {lr} + movs r0, 0 + bl sub_8103D8C + movs r0, 0x1 + bl sub_8103D8C + movs r0, 0x2 + bl sub_8103D8C + ldr r1, _081022EC @ =0x02000000 + movs r0, 0x2 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081022EC: .4byte 0x02000000 + thumb_func_end sub_81022CC + + thumb_func_start sub_81022F0 +sub_81022F0: @ 81022F0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x40 + ble _0810230C + movs r0, 0 + strh r0, [r1, 0xA] + ldr r1, _08102314 @ =0x02000000 + movs r0, 0x13 + strb r0, [r1] +_0810230C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102314: .4byte 0x02000000 + thumb_func_end sub_81022F0 + + thumb_func_start sub_8102318 +sub_8102318: @ 8102318 + push {lr} + ldr r0, _0810233C @ =gOtherText_QuitGamePrompt + bl sub_8101F2C + movs r0, 0x15 + movs r1, 0x7 + movs r2, 0x1 + bl DisplayYesNoMenu + bl sub_814AB84 + ldr r1, _08102340 @ =0x02000000 + movs r0, 0x16 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810233C: .4byte gOtherText_QuitGamePrompt +_08102340: .4byte 0x02000000 + thumb_func_end sub_8102318 + + thumb_func_start sub_8102344 +sub_8102344: @ 8102344 + push {lr} + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + bne _0810237C + bl MenuZeroFillScreen + movs r0, 0 + bl sub_8103D8C + movs r0, 0x1 + bl sub_8103D8C + movs r0, 0x2 + bl sub_8103D8C + ldr r0, _08102378 @ =0x02000000 + ldrh r1, [r0, 0x12] + ldrh r2, [r0, 0xC] + adds r1, r2 + strh r1, [r0, 0xC] + movs r1, 0x1B + strb r1, [r0] + b _08102392 + .align 2, 0 +_08102378: .4byte 0x02000000 +_0810237C: + cmp r1, 0x1 + beq _08102388 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _08102392 +_08102388: + bl MenuZeroFillScreen + ldr r1, _08102398 @ =0x02000000 + movs r0, 0x5 + strb r0, [r1] +_08102392: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102398: .4byte 0x02000000 + thumb_func_end sub_8102344 + + thumb_func_start sub_810239C +sub_810239C: @ 810239C + push {lr} + ldr r0, _081023B0 @ =gOtherText_MaxCoins + bl sub_8101F2C + ldr r1, _081023B4 @ =0x02000000 + movs r0, 0x18 + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023B0: .4byte gOtherText_MaxCoins +_081023B4: .4byte 0x02000000 + thumb_func_end sub_810239C + + thumb_func_start sub_81023B8 +sub_81023B8: @ 81023B8 + push {lr} + ldr r0, _081023D8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _081023D0 + bl MenuZeroFillScreen + ldr r1, _081023DC @ =0x02000000 + movs r0, 0x5 + strb r0, [r1] +_081023D0: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023D8: .4byte gMain +_081023DC: .4byte 0x02000000 + thumb_func_end sub_81023B8 + + thumb_func_start sub_81023E0 +sub_81023E0: @ 81023E0 + push {lr} + ldr r0, _081023F4 @ =gOtherText_OutOfCoins + bl sub_8101F2C + ldr r1, _081023F8 @ =0x02000000 + movs r0, 0x1A + strb r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_081023F4: .4byte gOtherText_OutOfCoins +_081023F8: .4byte 0x02000000 + thumb_func_end sub_81023E0 + + thumb_func_start sub_81023FC +sub_81023FC: @ 81023FC + push {lr} + ldr r0, _0810241C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08102414 + bl MenuZeroFillScreen + ldr r1, _08102420 @ =0x02000000 + movs r0, 0x1B + strb r0, [r1] +_08102414: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810241C: .4byte gMain +_08102420: .4byte 0x02000000 + thumb_func_end sub_81023FC + + thumb_func_start sub_8102424 +sub_8102424: @ 8102424 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08102454 @ =gSaveBlock1 + ldr r4, _08102458 @ =0x02000000 + ldrh r1, [r4, 0xC] + ldr r2, _0810245C @ =0x00000494 + adds r0, r2 + movs r2, 0 + strh r1, [r0] + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102454: .4byte gSaveBlock1 +_08102458: .4byte 0x02000000 +_0810245C: .4byte 0x00000494 + thumb_func_end sub_8102424 + + thumb_func_start sub_8102460 +sub_8102460: @ 8102460 + push {lr} + ldr r0, _0810247C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08102476 + ldr r0, _08102480 @ =0x02000000 + ldr r0, [r0, 0x64] + bl SetMainCallback2 +_08102476: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810247C: .4byte gPaletteFade +_08102480: .4byte 0x02000000 + thumb_func_end sub_8102460 + + thumb_func_start sub_8102484 +sub_8102484: @ 8102484 + push {r4,lr} + ldr r4, _081024E4 @ =0x02000000 + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _081024DC + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + bne _081024DC + bl sub_8102540 + lsls r0, 24 + cmp r0, 0 + beq _081024C0 + bl sub_8102578 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + beq _081024C0 + ldr r1, _081024E8 @ =gUnknown_083ECE42 + lsls r0, r3, 1 + adds r0, r1 + ldrb r1, [r0] + ldrb r0, [r4, 0x4] + orrs r0, r1 + strb r0, [r4, 0x4] + cmp r3, 0x1 + bne _081024DC +_081024C0: + bl sub_81025BC + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + beq _081024DC + ldr r2, _081024E4 @ =0x02000000 + ldr r1, _081024EC @ =gUnknown_083ECE48 + lsls r0, r3, 1 + adds r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, 0x4] + orrs r0, r1 + strb r0, [r2, 0x4] +_081024DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081024E4: .4byte 0x02000000 +_081024E8: .4byte gUnknown_083ECE42 +_081024EC: .4byte gUnknown_083ECE48 + thumb_func_end sub_8102484 + + thumb_func_start sub_81024F0 +sub_81024F0: @ 81024F0 + push {lr} + ldr r1, _08102508 @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x6] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08102502 + movs r0, 0x1 + strb r0, [r1, 0x6] +_08102502: + pop {r0} + bx r0 + .align 2, 0 +_08102508: .4byte 0x02000000 + thumb_func_end sub_81024F0 + + thumb_func_start sub_810250C +sub_810250C: @ 810250C + push {r4,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + movs r3, 0x1 + ldr r4, _08102528 @ =gUnknown_083ECE3A +_08102518: + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0810252C + adds r0, r2, r4 + ldrb r0, [r0] + b _0810253A + .align 2, 0 +_08102528: .4byte gUnknown_083ECE3A +_0810252C: + lsrs r1, 1 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _08102518 + movs r0, 0 +_0810253A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810250C + + thumb_func_start sub_8102540 +sub_8102540: @ 8102540 + push {r4,lr} + bl Random + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08102568 @ =gUnknown_083ECD04 + ldr r1, _0810256C @ =0x02000000 + movs r3, 0x12 + ldrsh r2, [r1, r3] + ldrb r3, [r1, 0x1] + lsls r1, r3, 1 + adds r1, r3 + subs r1, 0x1 + adds r2, r1 + adds r2, r4 + ldrb r1, [r2] + cmp r1, r0 + bhi _08102570 + movs r0, 0 + b _08102572 + .align 2, 0 +_08102568: .4byte gUnknown_083ECD04 +_0810256C: .4byte 0x02000000 +_08102570: + movs r0, 0x1 +_08102572: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102540 + + thumb_func_start sub_8102578 +sub_8102578: @ 8102578 + push {r4-r6,lr} + movs r5, 0 + ldr r6, _081025B4 @ =gUnknown_083ECD16 +_0810257E: + bl Random + movs r2, 0xFF + ldr r3, _081025B8 @ =0x02000000 + lsls r1, r5, 16 + asrs r4, r1, 16 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 1 + ldrb r3, [r3, 0x1] + adds r1, r3 + adds r1, r6 + ldrb r1, [r1] + ands r2, r0 + cmp r1, r2 + bgt _081025AA + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _0810257E +_081025AA: + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081025B4: .4byte gUnknown_083ECD16 +_081025B8: .4byte 0x02000000 + thumb_func_end sub_8102578 + + thumb_func_start sub_81025BC +sub_81025BC: @ 81025BC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, _08102600 @ =gUnknown_083ECD28 + mov r8, r0 + ldr r5, _08102604 @ =0x02000000 + movs r7, 0x80 + lsls r7, 17 +_081025CE: + bl Random + movs r4, 0xFF + ands r4, r0 + lsls r2, r6, 16 + asrs r1, r2, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldrb r3, [r5, 0x1] + adds r0, r3 + add r0, r8 + ldrb r3, [r0] + cmp r1, 0 + bne _08102608 + ldrb r0, [r5, 0x3] + cmp r0, 0x1 + bne _08102608 + adds r3, 0xA + asrs r0, r7, 16 + cmp r3, r0 + ble _08102622 + adds r3, r0, 0 + b _08102622 + .align 2, 0 +_08102600: .4byte gUnknown_083ECD28 +_08102604: .4byte 0x02000000 +_08102608: + asrs r0, r2, 16 + cmp r0, 0x4 + bne _08102622 + ldrb r0, [r5, 0x3] + cmp r0, 0x1 + bne _08102622 + lsls r0, r3, 16 + ldr r1, _08102648 @ =0xfff60000 + adds r0, r1 + lsrs r3, r0, 16 + cmp r0, 0 + bge _08102622 + movs r3, 0 +_08102622: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, r4 + bgt _08102638 + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081025CE +_08102638: + lsls r0, r6, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08102648: .4byte 0xfff60000 + thumb_func_end sub_81025BC + + thumb_func_start sub_810264C +sub_810264C: @ 810264C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, _08102660 @ =0x02000000 + ldrb r0, [r3, 0x3] + cmp r0, 0 + beq _08102668 + ldr r0, _08102664 @ =gUnknown_083ECDAC + b _0810266A + .align 2, 0 +_08102660: .4byte 0x02000000 +_08102664: .4byte gUnknown_083ECDAC +_08102668: + ldr r0, _0810267C @ =gUnknown_083ECD46 +_0810266A: + lsls r1, r2, 4 + adds r1, r2 + ldrb r3, [r3, 0x2] + adds r1, r3 + adds r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_0810267C: .4byte gUnknown_083ECD46 + thumb_func_end sub_810264C + + thumb_func_start sub_8102680 +sub_8102680: @ 8102680 + push {r4-r6,lr} + ldr r1, _081026A4 @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x5] + bl Random + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl sub_810264C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _081026D2 + movs r6, 0x5 + b _081026AE + .align 2, 0 +_081026A4: .4byte 0x02000000 +_081026A8: + subs r0, r5, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081026AE: + lsls r0, r6, 16 + asrs r5, r0, 16 + cmp r5, 0 + ble _081026CE + bl Random + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r6, 24 + lsrs r0, 24 + bl sub_810264C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcs _081026A8 +_081026CE: + ldr r0, _081026D8 @ =0x02000000 + strb r6, [r0, 0x5] +_081026D2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081026D8: .4byte 0x02000000 + thumb_func_end sub_8102680 + + thumb_func_start sub_81026DC +sub_81026DC: @ 81026DC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + movs r1, 0xFF + ands r1, r0 + ldr r0, _081026FC @ =gUnknown_083ECE12 + lsls r4, 1 + adds r4, r0 + ldrh r4, [r4] + cmp r1, r4 + bcc _08102700 + movs r0, 0 + b _08102702 + .align 2, 0 +_081026FC: .4byte gUnknown_083ECE12 +_08102700: + movs r0, 0x1 +_08102702: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81026DC + + thumb_func_start dp15_jump_random_unknown +dp15_jump_random_unknown: @ 8102708 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _0810271C @ =0x02000000 + movs r2, 0x10 + ldrsh r1, [r0, r2] + ldr r0, _08102720 @ =0x0000012b + cmp r1, r0 + ble _08102724 + movs r4, 0x4 + b _0810273A + .align 2, 0 +_0810271C: .4byte 0x02000000 +_08102720: .4byte 0x0000012b +_08102724: + cmp r1, 0xF9 + ble _0810272C + movs r4, 0x3 + b _0810273A +_0810272C: + cmp r1, 0xC7 + ble _08102734 + movs r4, 0x2 + b _0810273A +_08102734: + cmp r1, 0x95 + ble _0810273A + movs r4, 0x1 +_0810273A: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r5, _0810275C @ =gUnknown_083ECE1C + lsls r4, 2 + adds r0, r4, r5 + ldrb r0, [r0] + cmp r1, r0 + bcs _08102760 + movs r0, 0x4 + b _0810279A + .align 2, 0 +_0810275C: .4byte gUnknown_083ECE1C +_08102760: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 24 + adds r2, r5, 0x2 + adds r2, r4, r2 + ldr r3, _08102790 @ =gUnknown_083ECE30 + ldr r1, _08102794 @ =0x02000000 + ldrb r1, [r1, 0xB] + lsls r1, 1 + adds r1, r3 + ldrb r1, [r1] + ldrb r2, [r2] + adds r1, r2 + lsls r1, 24 + cmp r0, r1 + bcc _08102798 + movs r0, 0x8 + b _0810279A + .align 2, 0 +_08102790: .4byte gUnknown_083ECE30 +_08102794: .4byte 0x02000000 +_08102798: + movs r0, 0x2 +_0810279A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end dp15_jump_random_unknown + + thumb_func_start sub_81027A0 +sub_81027A0: @ 81027A0 + push {r4,lr} + ldr r4, _081027CC @ =0x02000000 + movs r0, 0 + strh r0, [r4, 0x8] + bl sub_81027D0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + ble _081027B8 + bl sub_8102840 +_081027B8: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + ble _081027C4 + bl sub_810290C +_081027C4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081027CC: .4byte 0x02000000 + thumb_func_end sub_81027A0 + + thumb_func_start sub_81027D0 +sub_81027D0: @ 81027D0 + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x2 + bl sub_8102BA4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0x2 + bl sub_8102BA4 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _0810282E + ldr r2, _08102834 @ =0x02000000 + ldr r0, _08102838 @ =gUnknown_083ECE6C + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _0810283C @ =gUnknown_083ECE5A + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0 + bl sub_8103E04 +_0810282E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102834: .4byte 0x02000000 +_08102838: .4byte gUnknown_083ECE6C +_0810283C: .4byte gUnknown_083ECE5A + thumb_func_end sub_81027D0 + + thumb_func_start sub_8102840 +sub_8102840: @ 8102840 + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _0810289E + cmp r1, 0 + bne _0810287C + movs r1, 0x1 +_0810287C: + ldr r2, _08102900 @ =0x02000000 + ldr r0, _08102904 @ =gUnknown_083ECE6C + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _08102908 @ =gUnknown_083ECE5A + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0x1 + bl sub_8103E04 +_0810289E: + movs r0, 0 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _081028FA + cmp r1, 0 + bne _081028D8 + movs r1, 0x1 +_081028D8: + ldr r2, _08102900 @ =0x02000000 + ldr r0, _08102904 @ =gUnknown_083ECE6C + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _08102908 @ =gUnknown_083ECE5A + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] + movs r0, 0x2 + bl sub_8103E04 +_081028FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102900: .4byte 0x02000000 +_08102904: .4byte gUnknown_083ECE6C +_08102908: .4byte gUnknown_083ECE5A + thumb_func_end sub_8102840 + + thumb_func_start sub_810290C +sub_810290C: @ 810290C + push {r4,r5,lr} + movs r0, 0 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _08102968 + cmp r1, 0 + beq _08102962 + ldr r2, _081029C8 @ =0x02000000 + ldr r0, _081029CC @ =gUnknown_083ECE6C + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _081029D0 @ =gUnknown_083ECE5A + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] +_08102962: + movs r0, 0x3 + bl sub_8103E04 +_08102968: + movs r0, 0 + movs r1, 0x3 + bl sub_8102BA4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x1 + movs r1, 0x2 + bl sub_8102BA4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x2 + movs r1, 0x1 + bl sub_8102BA4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81029D4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + beq _081029C2 + cmp r1, 0 + beq _081029BC + ldr r2, _081029C8 @ =0x02000000 + ldr r0, _081029CC @ =gUnknown_083ECE6C + lsls r1, 1 + adds r0, r1, r0 + ldrh r0, [r0] + ldrh r3, [r2, 0xE] + adds r0, r3 + strh r0, [r2, 0xE] + ldr r0, _081029D0 @ =gUnknown_083ECE5A + adds r1, r0 + ldrh r0, [r2, 0x8] + ldrh r1, [r1] + orrs r0, r1 + strh r0, [r2, 0x8] +_081029BC: + movs r0, 0x4 + bl sub_8103E04 +_081029C2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081029C8: .4byte 0x02000000 +_081029CC: .4byte gUnknown_083ECE6C +_081029D0: .4byte gUnknown_083ECE5A + thumb_func_end sub_810290C + + thumb_func_start sub_81029D4 +sub_81029D4: @ 81029D4 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r3, r1 + bne _081029F8 + cmp r3, r2 + bne _081029F8 + ldr r0, _081029F4 @ =gUnknown_083ECE52 + adds r0, r3, r0 + ldrb r0, [r0] + b _08102A1E + .align 2, 0 +_081029F4: .4byte gUnknown_083ECE52 +_081029F8: + cmp r3, 0 + bne _08102A04 + cmp r1, 0 + bne _08102A04 + cmp r2, 0x1 + beq _08102A10 +_08102A04: + cmp r3, 0x1 + bne _08102A14 + cmp r1, 0x1 + bne _08102A14 + cmp r2, 0 + bne _08102A14 +_08102A10: + movs r0, 0x6 + b _08102A1E +_08102A14: + cmp r3, 0x4 + beq _08102A1C + movs r0, 0x9 + b _08102A1E +_08102A1C: + movs r0, 0 +_08102A1E: + pop {r1} + bx r1 + thumb_func_end sub_81029D4 + + thumb_func_start sub_8102A24 +sub_8102A24: @ 8102A24 + push {r4,lr} + ldr r4, _08102A40 @ =sub_8102A64 + adds r0, r4, 0 + movs r1, 0x4 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102A40: .4byte sub_8102A64 + thumb_func_end sub_8102A24 + + thumb_func_start sub_8102A44 +sub_8102A44: @ 8102A44 + push {lr} + ldr r0, _08102A58 @ =sub_8102A64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08102A5C + movs r0, 0 + b _08102A5E + .align 2, 0 +_08102A58: .4byte sub_8102A64 +_08102A5C: + movs r0, 0x1 +_08102A5E: + pop {r1} + bx r1 + thumb_func_end sub_8102A44 + + thumb_func_start sub_8102A64 +sub_8102A64: @ 8102A64 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08102A94 @ =gUnknown_083ECB20 + ldr r2, _08102A98 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_08102A76: + 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 _08102A76 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102A94: .4byte gUnknown_083ECB20 +_08102A98: .4byte gTasks + thumb_func_end sub_8102A64 + + thumb_func_start sub_8102A9C +sub_8102A9C: @ 8102A9C + push {r4,lr} + adds r4, r0, 0 + bl sub_8103E38 + lsls r0, 24 + cmp r0, 0 + beq _08102AC8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, _08102AC4 @ =0x02000000 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08102AC8 + movs r0, 0x2 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _08102ACA + .align 2, 0 +_08102AC4: .4byte 0x02000000 +_08102AC8: + movs r0, 0 +_08102ACA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8102A9C + + thumb_func_start sub_8102AD0 +sub_8102AD0: @ 8102AD0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08102B22 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08102AF6 + movs r0, 0x15 + bl PlaySE +_08102AF6: + ldr r2, _08102B70 @ =0x02000000 + ldrh r0, [r2, 0xE] + subs r0, 0x1 + strh r0, [r2, 0xE] + ldrh r3, [r2, 0xC] + movs r0, 0xC + ldrsh r1, [r2, r0] + ldr r0, _08102B74 @ =0x0000270e + cmp r1, r0 + bgt _08102B0E + adds r0, r3, 0x1 + strh r0, [r2, 0xC] +_08102B0E: + movs r0, 0x8 + strh r0, [r4, 0xA] + ldr r0, _08102B78 @ =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08102B22 + movs r0, 0x4 + strh r0, [r4, 0xA] +_08102B22: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08102B58 + ldr r0, _08102B78 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08102B58 + movs r0, 0x15 + bl PlaySE + ldr r1, _08102B70 @ =0x02000000 + ldrh r0, [r1, 0xE] + ldrh r2, [r1, 0xC] + adds r0, r2 + strh r0, [r1, 0xC] + lsls r0, 16 + asrs r0, 16 + ldr r2, _08102B7C @ =0x0000270f + cmp r0, r2 + ble _08102B54 + strh r2, [r1, 0xC] +_08102B54: + movs r0, 0 + strh r0, [r1, 0xE] +_08102B58: + ldr r0, _08102B70 @ =0x02000000 + movs r1, 0xE + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08102B68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08102B68: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102B70: .4byte 0x02000000 +_08102B74: .4byte 0x0000270e +_08102B78: .4byte gMain +_08102B7C: .4byte 0x0000270f + thumb_func_end sub_8102AD0 + + thumb_func_start sub_8102B80 +sub_8102B80: @ 8102B80 + push {lr} + bl sub_8103E7C + lsls r0, 24 + cmp r0, 0 + beq _08102B9A + ldr r0, _08102BA0 @ =sub_8102A64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_08102B9A: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102BA0: .4byte sub_8102A64 + thumb_func_end sub_8102B80 + + thumb_func_start sub_8102BA4 +sub_8102BA4: @ 8102BA4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r0, _08102BF0 @ =0x02000000 + lsls r2, r4, 1 + adds r0, 0x28 + adds r2, r0 + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r1, 16 + asrs r1, 16 + adds r0, r1 + movs r1, 0x15 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08102BD4 + adds r0, 0x15 + lsls r0, 16 + lsrs r1, r0, 16 +_08102BD4: + ldr r2, _08102BF4 @ =gUnknown_083ECCB2 + lsls r1, 16 + asrs r1, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 2 + adds r0, r4 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102BF0: .4byte 0x02000000 +_08102BF4: .4byte gUnknown_083ECCB2 + thumb_func_end sub_8102BA4 + + thumb_func_start sub_8102BF8 +sub_8102BF8: @ 8102BF8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + movs r6, 0 + ldr r0, _08102C40 @ =0x02000000 + lsls r1, r5, 1 + adds r0, 0x1C + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + beq _08102C20 + ldr r6, _08102C44 @ =0x0000ffff +_08102C20: + lsls r1, r4, 16 + asrs r1, 16 + lsls r0, r6, 16 + asrs r0, 16 + adds r1, r0 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + bl sub_8102BA4 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08102C40: .4byte 0x02000000 +_08102C44: .4byte 0x0000ffff + thumb_func_end sub_8102BF8 + + thumb_func_start sub_8102C48 +sub_8102C48: @ 8102C48 + push {lr} + ldr r1, _08102C7C @ =0x02000000 + movs r2, 0x16 + ldrsh r1, [r1, r2] + lsls r0, 16 + asrs r0, 16 + adds r1, r0 + adds r0, r1, 0 + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08102C6E + adds r0, 0x6 + lsls r0, 16 + lsrs r1, r0, 16 +_08102C6E: + ldr r0, _08102C80 @ =gUnknown_083ECCF1 + lsls r1, 16 + asrs r1, 16 + adds r1, r0 + ldrb r0, [r1] + pop {r1} + bx r1 + .align 2, 0 +_08102C7C: .4byte 0x02000000 +_08102C80: .4byte gUnknown_083ECCF1 + thumb_func_end sub_8102C48 + + thumb_func_start sub_8102C84 +sub_8102C84: @ 8102C84 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + ldr r6, _08102CC8 @ =0x02000000 + lsrs r5, 23 + adds r4, r6, 0 + adds r4, 0x1C + adds r4, r5, r4 + lsls r1, 16 + asrs r1, 16 + ldrh r0, [r4] + adds r1, r0 + strh r1, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0xFC + lsls r1, 1 + bl __modsi3 + strh r0, [r4] + adds r6, 0x28 + adds r5, r6 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl __divsi3 + movs r1, 0x15 + subs r1, r0 + strh r1, [r5] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08102CC8: .4byte 0x02000000 + thumb_func_end sub_8102C84 + + thumb_func_start sub_8102CCC +sub_8102CCC: @ 8102CCC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + ldr r0, _08102D24 @ =0x02000000 + lsls r1, r6, 1 + adds r0, 0x1C + adds r5, r1, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r2, r0, 16 + asrs r1, r2, 16 + cmp r1, 0 + beq _08102D18 + lsls r0, r4, 16 + asrs r0, 16 + cmp r1, r0 + bge _08102D00 + lsrs r4, r2, 16 +_08102D00: + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r6, 0 + bl sub_8102C84 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 +_08102D18: + lsls r0, 16 + asrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08102D24: .4byte 0x02000000 + thumb_func_end sub_8102CCC + + thumb_func_start sub_8102D28 +sub_8102D28: @ 8102D28 + push {r4,lr} + ldr r4, _08102D58 @ =0x02000000 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x14] + adds r0, r1 + strh r0, [r4, 0x14] + movs r1, 0x14 + ldrsh r0, [r4, r1] + movs r1, 0x78 + bl __modsi3 + strh r0, [r4, 0x14] + movs r1, 0x14 + ldrsh r0, [r4, r1] + movs r1, 0x14 + bl __divsi3 + movs r1, 0x6 + subs r1, r0 + strh r1, [r4, 0x16] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08102D58: .4byte 0x02000000 + thumb_func_end sub_8102D28 + + thumb_func_start sub_8102D5C +sub_8102D5C: @ 8102D5C + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, _08102DA4 @ =0x02000000 + movs r1, 0x14 + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + lsls r2, r0, 16 + asrs r1, r2, 16 + cmp r1, 0 + beq _08102D9A + lsls r0, r4, 16 + asrs r0, 16 + cmp r1, r0 + bge _08102D84 + lsrs r4, r2, 16 +_08102D84: + lsls r0, r4, 16 + asrs r0, 16 + bl sub_8102D28 + movs r1, 0x14 + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 +_08102D9A: + lsls r0, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08102DA4: .4byte 0x02000000 + thumb_func_end sub_8102D5C + + thumb_func_start sub_8102DA8 +sub_8102DA8: @ 8102DA8 + push {r4-r7,lr} + movs r4, 0 + ldr r5, _08102DE0 @ =sub_8102E68 + ldr r7, _08102DE4 @ =gTasks + ldr r6, _08102DE8 @ =0x0200003a +_08102DB2: + adds r0, r5, 0 + movs r1, 0x2 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r7 + strh r4, [r1, 0x26] + adds r1, r4, r6 + strb r0, [r1] + bl _call_via_r5 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08102DB2 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08102DE0: .4byte sub_8102E68 +_08102DE4: .4byte gTasks +_08102DE8: .4byte 0x0200003a + thumb_func_end sub_8102DA8 + + thumb_func_start sub_8102DEC +sub_8102DEC: @ 8102DEC + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08102E14 @ =gTasks + ldr r1, _08102E18 @ =0x02000000 + adds r1, 0x3A + adds r0, r1 + ldrb r2, [r0] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r3 + movs r2, 0x1 + strh r2, [r1, 0x8] + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r2, [r0, 0x24] + bx lr + .align 2, 0 +_08102E14: .4byte gTasks +_08102E18: .4byte 0x02000000 + thumb_func_end sub_8102DEC + + thumb_func_start sub_8102E1C +sub_8102E1C: @ 8102E1C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08102E38 @ =gTasks + ldr r1, _08102E3C @ =0x02000000 + adds r1, 0x3A + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x8] + bx lr + .align 2, 0 +_08102E38: .4byte gTasks +_08102E3C: .4byte 0x02000000 + thumb_func_end sub_8102E1C + + thumb_func_start sub_8102E40 +sub_8102E40: @ 8102E40 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08102E60 @ =gTasks + ldr r1, _08102E64 @ =0x02000000 + adds r1, 0x3A + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x24] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_08102E60: .4byte gTasks +_08102E64: .4byte 0x02000000 + thumb_func_end sub_8102E40 + + thumb_func_start sub_8102E68 +sub_8102E68: @ 8102E68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08102E98 @ =gUnknown_083ECB2C + ldr r2, _08102E9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_08102E7A: + 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 _08102E7A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08102E98: .4byte gUnknown_083ECB2C +_08102E9C: .4byte gTasks + thumb_func_end sub_8102E68 + + thumb_func_start sub_8102EA0 +sub_8102EA0: @ 8102EA0 + movs r0, 0 + bx lr + thumb_func_end sub_8102EA0 + + thumb_func_start sub_8102EA4 +sub_8102EA4: @ 8102EA4 + push {lr} + ldrh r0, [r0, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08102EBC @ =0x02000000 + movs r2, 0x1A + ldrsh r1, [r1, r2] + bl sub_8102C84 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08102EBC: .4byte 0x02000000 + thumb_func_end sub_8102EA4 + + thumb_func_start sub_8102EC0 +sub_8102EC0: @ 8102EC0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x8] + ldr r3, _08102F40 @ =0x02000000 + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r1, r3, 0 + adds r1, 0x34 + adds r0, r1 + strh r2, [r0] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r1, r3, 0 + adds r1, 0x2E + adds r0, r1 + strh r2, [r0] + ldrb r0, [r3, 0xA] + cmp r0, 0 + bne _08102F28 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08102F12 + ldrb r0, [r3, 0x6] + cmp r0, 0 + beq _08102F12 + ldr r1, _08102F44 @ =gUnknown_083ECB40 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + cmp r0, 0 + bne _08102F28 +_08102F12: + ldr r1, _08102F40 @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x6] + ldr r1, _08102F48 @ =gUnknown_083ECB4C + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08102F28: + ldr r0, _08102F40 @ =0x02000000 + movs r2, 0x26 + ldrsh r1, [r4, r2] + lsls r1, 1 + adds r0, 0x2E + adds r1, r0 + ldrh r0, [r1] + strh r0, [r4, 0xA] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08102F40: .4byte 0x02000000 +_08102F44: .4byte gUnknown_083ECB40 +_08102F48: .4byte gUnknown_083ECB4C + thumb_func_end sub_8102EC0 + + thumb_func_start sub_8102F4C +sub_8102F4C: @ 8102F4C + push {r4-r7,lr} + sub sp, 0xC + adds r4, r0, 0 + ldr r1, _08102F8C @ =gUnknown_083ECB58 + mov r0, sp + movs r2, 0xA + bl memcpy + ldr r5, _08102F90 @ =0x02000000 + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r6, r0, 1 + adds r7, r5, 0 + adds r7, 0x1C + adds r0, r6, r7 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + beq _08102F94 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1A + ldrsh r1, [r5, r6] + bl sub_8102CCC + b _08102FC8 + .align 2, 0 +_08102F8C: .4byte gUnknown_083ECB58 +_08102F90: .4byte 0x02000000 +_08102F94: + adds r0, r5, 0 + adds r0, 0x2E + adds r1, r6, r0 + ldrh r3, [r1] + movs r6, 0 + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _08102FCC + subs r0, r3, 0x1 + strh r0, [r1] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1A + ldrsh r1, [r5, r2] + bl sub_8102C84 + movs r6, 0x26 + ldrsh r0, [r4, r6] + lsls r0, 1 + adds r0, r7 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl __modsi3 +_08102FC8: + lsls r0, 16 + lsrs r2, r0, 16 +_08102FCC: + cmp r2, 0 + bne _08102FF8 + ldr r1, _08103004 @ =0x02000000 + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r1, 0x2E + adds r0, r1 + movs r6, 0 + ldrsh r1, [r0, r6] + cmp r1, 0 + bne _08102FF8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0xA] + strh r1, [r4, 0xC] +_08102FF8: + movs r0, 0 + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08103004: .4byte 0x02000000 + thumb_func_end sub_8102F4C + + thumb_func_start sub_8103008 +sub_8103008: @ 8103008 + push {r4,lr} + adds r2, r0, 0 + ldr r1, _08103058 @ =0x02000000 + movs r3, 0x26 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r4, r1, 0 + adds r4, 0x22 + adds r0, r4 + ldrh r1, [r2, 0xA] + strh r1, [r0] + ldrh r0, [r2, 0xA] + negs r3, r0 + strh r3, [r2, 0xA] + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08103038 + lsls r0, r3, 16 + asrs r0, 17 + strh r0, [r2, 0xA] +_08103038: + movs r0, 0xA + ldrsh r3, [r2, r0] + cmp r3, 0 + bne _0810304E + strh r3, [r2, 0x8] + strh r3, [r2, 0x24] + movs r1, 0x26 + ldrsh r0, [r2, r1] + lsls r0, 1 + adds r0, r4 + strh r3, [r0] +_0810304E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08103058: .4byte 0x02000000 + thumb_func_end sub_8103008 + + thumb_func_start sub_810305C +sub_810305C: @ 810305C + push {r4,r5,lr} + ldr r4, _0810309C @ =0x02000000 + ldrb r0, [r4, 0x4] + bl sub_810250C + lsls r0, 24 + lsrs r3, r0, 24 + adds r5, r3, 0 + ldrb r1, [r4, 0x4] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _0810307A + movs r5, 0 + movs r3, 0x1 +_0810307A: + ldr r1, _081030A0 @ =gUnknown_083ECB64 + movs r2, 0x12 + ldrsh r0, [r4, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + adds r0, r5, 0 + adds r1, r3, 0 + bl _call_via_r2 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810309C: .4byte 0x02000000 +_081030A0: .4byte gUnknown_083ECB64 + thumb_func_end sub_810305C + + thumb_func_start sub_81030A4 +sub_81030A4: @ 81030A4 + push {r4,r5,lr} + adds r3, r0, 0 + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 16 + asrs r3, 16 + movs r0, 0 + adds r1, r3, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, r4 + beq _081030CC + cmp r0, r5 + bne _081030D8 +_081030CC: + ldr r0, _081030D4 @ =0x02000000 + strb r1, [r0, 0x7] + movs r0, 0x1 + b _081030DA + .align 2, 0 +_081030D4: .4byte 0x02000000 +_081030D8: + movs r0, 0 +_081030DA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81030A4 + + thumb_func_start sub_81030E0 +sub_81030E0: @ 81030E0 + push {r4,lr} + movs r1, 0x1 + lsls r0, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _08103128 + movs r1, 0x2 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _08103128 + movs r1, 0x3 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _0810312C +_08103128: + movs r0, 0x1 + b _0810312E +_0810312C: + movs r0, 0 +_0810312E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81030E0 + + thumb_func_start sub_8103134 +sub_8103134: @ 8103134 + push {lr} + ldr r0, _08103148 @ =0x02000000 + ldrb r1, [r0, 0x4] + movs r0, 0xC2 + ands r0, r1 + cmp r0, 0 + bne _0810314C + movs r0, 0 + b _0810314E + .align 2, 0 +_08103148: .4byte 0x02000000 +_0810314C: + movs r0, 0x1 +_0810314E: + pop {r1} + bx r1 + thumb_func_end sub_8103134 + + thumb_func_start sub_8103154 +sub_8103154: @ 8103154 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + movs r5, 0 + movs r0, 0x2 + mov r9, r0 + ldr r6, _08103194 @ =0x02000000 +_0810316E: + lsls r0, r5, 16 + asrs r4, r0, 16 + mov r1, r9 + subs r0, r1, r4 + lsls r0, 16 + asrs r0, 16 + mov r1, r8 + adds r2, r7, 0 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _08103198 + movs r0, 0x2 + strh r0, [r6, 0x34] + strh r5, [r6, 0x2E] + movs r0, 0x1 + b _081031A6 + .align 2, 0 +_08103194: .4byte 0x02000000 +_08103198: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810316E + movs r0, 0 +_081031A6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8103154 + + thumb_func_start sub_81031B4 +sub_81031B4: @ 81031B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + bl sub_8103134 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _081031E2 + movs r0, 0 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _0810321E +_081031E2: + movs r0, 0x1 + mov r8, r0 + ldr r5, _0810320C @ =0x02000000 + movs r7, 0 +_081031EA: + mov r1, r8 + lsls r0, r1, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + mov r1, r10 + mov r2, r9 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _08103210 + mov r0, r8 + strh r0, [r5, 0x34] + strh r7, [r5, 0x2E] + movs r0, 0x1 + b _081032B2 + .align 2, 0 +_0810320C: .4byte 0x02000000 +_08103210: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + mov r8, r1 + asrs r0, 16 + cmp r0, 0x3 + ble _081031EA +_0810321E: + movs r0, 0x1 + mov r8, r0 + adds r7, r6, 0 + ldr r6, _0810326C @ =0x02000000 +_08103226: + mov r1, r8 + lsls r5, r1, 16 + cmp r7, 0 + bne _0810323A + asrs r0, r5, 16 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _081032A0 +_0810323A: + movs r0, 0x1 + asrs r4, r5, 16 + subs r0, r4 + lsls r0, 16 + asrs r0, 16 + mov r1, r10 + mov r2, r9 + bl sub_81030A4 + lsls r0, 24 + cmp r0, 0 + beq _081032A0 + cmp r4, 0x1 + bne _08103270 + cmp r7, 0 + bne _08103266 + movs r0, 0x3 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _08103270 +_08103266: + movs r0, 0x3 + strh r0, [r6, 0x34] + b _0810329A + .align 2, 0 +_0810326C: .4byte 0x02000000 +_08103270: + asrs r0, r5, 16 + cmp r0, 0x3 + bgt _08103294 + adds r4, r0, 0x1 + cmp r7, 0 + bne _0810328A + lsls r0, r4, 16 + asrs r0, 16 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _08103294 +_0810328A: + movs r0, 0x2 + strh r0, [r6, 0x34] + strh r4, [r6, 0x2E] + movs r0, 0x1 + b _081032B2 +_08103294: + movs r0, 0x1 + strh r0, [r6, 0x34] + mov r0, r8 +_0810329A: + strh r0, [r6, 0x2E] + movs r0, 0x1 + b _081032B2 +_081032A0: + movs r1, 0x80 + lsls r1, 9 + adds r0, r5, r1 + lsrs r1, r0, 16 + mov r8, r1 + asrs r0, 16 + cmp r0, 0x4 + ble _08103226 + movs r0, 0 +_081032B2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81031B4 + + thumb_func_start sub_81032C0 +sub_81032C0: @ 81032C0 + push {lr} + ldr r1, _081032E0 @ =gUnknown_083ECB70 + ldr r0, _081032E4 @ =0x02000000 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_081032E0: .4byte gUnknown_083ECB70 +_081032E4: .4byte 0x02000000 + thumb_func_end sub_81032C0 + + thumb_func_start sub_81032E8 +sub_81032E8: @ 81032E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08103320 @ =0x02000000 + movs r6, 0 + ldrh r1, [r0, 0x34] + mov r8, r1 + movs r1, 0x34 + ldrsh r7, [r0, r1] + adds r5, r0, 0 +_081032FC: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r5, 0x7] + cmp r0, r1 + bne _08103324 + mov r0, r8 + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + movs r0, 0x1 + b _08103332 + .align 2, 0 +_08103320: .4byte 0x02000000 +_08103324: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081032FC + movs r0, 0 +_08103332: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81032E8 + + thumb_func_start sub_810333C +sub_810333C: @ 810333C + push {r4-r7,lr} + bl sub_81032E8 + lsls r0, 24 + cmp r0, 0 + beq _0810339A + ldr r1, _0810338C @ =0x02000000 + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _08103396 + movs r2, 0x30 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _08103396 + cmp r0, 0x4 + beq _08103396 + movs r5, 0 + movs r7, 0x2 + adds r6, r1, 0 +_08103364: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x7] + cmp r0, r1 + beq _08103390 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103364 + b _08103396 + .align 2, 0 +_0810338C: .4byte 0x02000000 +_08103390: + movs r0, 0x2 + strh r0, [r6, 0x36] + strh r5, [r6, 0x30] +_08103396: + movs r0, 0x1 + b _081033D2 +_0810339A: + ldr r1, _081033D8 @ =0x02000000 + movs r2, 0x34 + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _081033D0 + movs r5, 0 + movs r7, 0x2 + adds r6, r1, 0 +_081033AA: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x7] + cmp r0, r1 + beq _08103390 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081033AA +_081033D0: + movs r0, 0 +_081033D2: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081033D8: .4byte 0x02000000 + thumb_func_end sub_810333C + + thumb_func_start sub_81033DC +sub_81033DC: @ 81033DC + push {r4,lr} + ldr r0, _08103414 @ =0x02000000 + ldrb r3, [r0, 0x7] + adds r4, r3, 0 + ldrb r2, [r0, 0x4] + movs r1, 0x40 + ands r1, r2 + cmp r1, 0 + beq _081033F6 + movs r3, 0 + cmp r4, 0 + bne _081033F6 + movs r3, 0x1 +_081033F6: + ldr r1, _08103418 @ =gUnknown_083ECB7C + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r3, 0 + bl _call_via_r1 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08103414: .4byte 0x02000000 +_08103418: .4byte gUnknown_083ECB7C + thumb_func_end sub_81033DC + + thumb_func_start sub_810341C +sub_810341C: @ 810341C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _0810345C @ =0x02000000 + movs r5, 0 + ldrh r1, [r0, 0x36] + mov r8, r1 + movs r1, 0x36 + ldrsh r7, [r0, r1] + adds r6, r0, 0 +_08103438: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r9 + bne _08103460 + mov r0, r8 + strh r0, [r6, 0x38] + strh r5, [r6, 0x32] + movs r0, 0x1 + b _0810346E + .align 2, 0 +_0810345C: .4byte 0x02000000 +_08103460: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103438 + movs r0, 0 +_0810346E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810341C + + thumb_func_start sub_810347C +sub_810347C: @ 810347C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _081034A0 @ =0x02000000 + movs r2, 0x34 + ldrsh r1, [r0, r2] + movs r2, 0x36 + ldrsh r0, [r0, r2] + cmp r1, r0 + bne _081034B4 + adds r0, r6, 0 + bl sub_810341C + lsls r0, 24 + lsrs r0, 24 + b _081034EA + .align 2, 0 +_081034A0: .4byte 0x02000000 +_081034A4: + ldr r0, _081034B0 @ =0x02000000 + strh r5, [r0, 0x32] + mov r1, r8 + strh r1, [r0, 0x38] + movs r0, 0x1 + b _081034EA + .align 2, 0 +_081034B0: .4byte 0x02000000 +_081034B4: + movs r2, 0x1 + mov r8, r2 + cmp r1, 0x1 + bne _081034C0 + movs r0, 0x3 + mov r8, r0 +_081034C0: + movs r5, 0 + mov r7, r8 +_081034C4: + lsls r0, r5, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r6 + beq _081034A4 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081034C4 + movs r0, 0 +_081034EA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810347C + + thumb_func_start sub_81034F4 +sub_81034F4: @ 81034F4 + push {r4,r5,lr} + movs r5, 0 + b _08103500 +_081034FA: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08103500: + lsls r0, r5, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + bl sub_81030E0 + lsls r0, 24 + cmp r0, 0 + bne _081034FA + ldr r0, _0810351C @ =0x02000000 + strh r5, [r0, 0x2E] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810351C: .4byte 0x02000000 + thumb_func_end sub_81034F4 + + thumb_func_start sub_8103520 +sub_8103520: @ 8103520 + push {lr} + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0 + bne _0810352E + movs r0, 0x1 + b _08103538 +_0810352E: + cmp r0, 0x1 + beq _08103536 + movs r0, 0 + b _0810353C +_08103536: + movs r0, 0 +_08103538: + strb r0, [r1] + movs r0, 0x1 +_0810353C: + pop {r1} + bx r1 + thumb_func_end sub_8103520 + + thumb_func_start sub_8103540 +sub_8103540: @ 8103540 + push {lr} + ldr r1, _0810355C @ =gUnknown_083ECB88 + ldr r0, _08103560 @ =0x02000000 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_0810355C: .4byte gUnknown_083ECB88 +_08103560: .4byte 0x02000000 + thumb_func_end sub_8103540 + + thumb_func_start sub_8103564 +sub_8103564: @ 8103564 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r4, _081035D0 @ =0x02000000 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081035E0 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081035E0 + ldrh r0, [r4, 0x2E] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _081035E0 + movs r5, 0 + mov r7, sp + movs r0, 0x2 + mov r8, r0 + adds r6, r4, 0 +_081035AA: + lsls r0, r5, 16 + asrs r4, r0, 16 + mov r0, r8 + subs r1, r0, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _081035D4 + movs r0, 0x2 + strh r0, [r6, 0x36] + strh r5, [r6, 0x30] + b _081035E0 + .align 2, 0 +_081035D0: .4byte 0x02000000 +_081035D4: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081035AA +_081035E0: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103564 + + thumb_func_start j5_08111E84 +j5_08111E84: @ 81035EC + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _08103650 @ =0x02000000 + ldrh r2, [r4, 0x34] + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08103660 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08103660 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _08103660 + movs r6, 0 + mov r7, sp + adds r5, r4, 0 +_0810362A: + ldrh r1, [r5, 0x34] + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _08103654 + ldrh r0, [r5, 0x34] + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + b _08103660 + .align 2, 0 +_08103650: .4byte 0x02000000 +_08103654: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810362A +_08103660: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end j5_08111E84 + + thumb_func_start sub_8103668 +sub_8103668: @ 8103668 + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _0810368C @ =0x02000000 + ldrh r3, [r4, 0x34] + movs r0, 0x34 + ldrsh r2, [r4, r0] + cmp r2, 0 + beq _0810375A + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810375A + cmp r2, 0x2 + bne _081036AE + bl j5_08111E84 + b _0810375A + .align 2, 0 +_0810368C: .4byte 0x02000000 +_08103690: + ldr r0, _0810369C @ =0x02000000 + movs r1, 0 + strh r6, [r0, 0x36] + strh r1, [r0, 0x30] + b _0810375A + .align 2, 0 +_0810369C: .4byte 0x02000000 +_081036A0: + movs r0, 0x2 + strh r0, [r5, 0x36] + adds r0, r4, 0x1 + strh r0, [r5, 0x30] + b _0810375A +_081036AA: + movs r0, 0x3 + b _08103736 +_081036AE: + ldrh r1, [r4, 0x2E] + subs r1, r3, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + mov r1, sp + strb r0, [r1] + mov r0, sp + bl sub_8103520 + lsls r0, 24 + cmp r0, 0 + beq _0810375A + movs r6, 0x2 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + bne _081036D8 + movs r6, 0x3 +_081036D8: + movs r5, 0 + mov r7, sp +_081036DC: + lsls r0, r6, 16 + asrs r4, r0, 16 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _08103690 + lsls r1, r5, 16 + movs r0, 0x80 + lsls r0, 9 + adds r1, r0 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsrs r5, r1, 16 + asrs r1, 16 + cmp r1, 0x1 + ble _081036DC + movs r6, 0x1 + mov r7, sp + ldr r5, _0810373C @ =0x02000000 +_0810370E: + ldrh r1, [r5, 0x34] + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + ldrb r1, [r7] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + bne _0810374E + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _08103740 + cmp r4, 0x2 + ble _081036A0 +_08103736: + strh r0, [r5, 0x36] + strh r6, [r5, 0x30] + b _0810375A + .align 2, 0 +_0810373C: .4byte 0x02000000 +_08103740: + cmp r4, 0x2 + ble _081036AA + movs r0, 0x2 + strh r0, [r5, 0x36] + subs r0, r4, 0x1 + strh r0, [r5, 0x30] + b _0810375A +_0810374E: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0810370E +_0810375A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103668 + + thumb_func_start sub_8103764 +sub_8103764: @ 8103764 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r0, 0 + bne _08103778 + cmp r1, 0x1 + beq _08103780 +_08103778: + cmp r0, 0x1 + bne _08103784 + cmp r2, 0 + bne _08103784 +_08103780: + movs r0, 0x1 + b _08103786 +_08103784: + movs r0, 0 +_08103786: + pop {r1} + bx r1 + thumb_func_end sub_8103764 + + thumb_func_start sub_810378C +sub_810378C: @ 810378C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r0, 0 + bne _081037A6 + cmp r1, 0x1 + bne _081037A6 + cmp r2, 0 + beq _081037B2 +_081037A6: + cmp r0, 0x1 + bne _081037B6 + cmp r1, 0 + bne _081037B6 + cmp r2, 0x1 + bne _081037B6 +_081037B2: + movs r0, 0x1 + b _081037B8 +_081037B6: + movs r0, 0 +_081037B8: + pop {r1} + bx r1 + thumb_func_end sub_810378C + + thumb_func_start sub_81037BC +sub_81037BC: @ 81037BC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + cmp r0, 0 + bne _081037D6 + cmp r1, 0x1 + bne _081037D6 + cmp r2, 0 + beq _08103802 +_081037D6: + cmp r0, 0x1 + bne _081037E2 + cmp r1, 0 + bne _081037E2 + cmp r2, 0x1 + beq _08103802 +_081037E2: + cmp r0, 0 + bne _081037EE + cmp r1, 0 + bne _081037EE + cmp r2, 0x1 + beq _08103802 +_081037EE: + cmp r0, 0x1 + bne _081037FA + cmp r1, 0x1 + bne _081037FA + cmp r2, 0 + beq _08103802 +_081037FA: + cmp r0, r1 + bne _08103806 + cmp r0, r2 + bne _08103806 +_08103802: + movs r0, 0 + b _08103808 +_08103806: + movs r0, 0x1 +_08103808: + pop {r1} + bx r1 + thumb_func_end sub_81037BC + + thumb_func_start sub_810380C +sub_810380C: @ 810380C + push {lr} + ldr r1, _08103828 @ =gUnknown_083ECB94 + ldr r0, _0810382C @ =0x02000000 + movs r2, 0x12 + ldrsh r0, [r0, r2] + subs r0, 0x1 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r0} + bx r0 + .align 2, 0 +_08103828: .4byte gUnknown_083ECB94 +_0810382C: .4byte 0x02000000 + thumb_func_end sub_810380C + + thumb_func_start sub_8103830 +sub_8103830: @ 8103830 + push {r4-r7,lr} + movs r6, 0 + ldr r7, _08103868 @ =0x02000000 + ldrh r1, [r7, 0x2E] + movs r4, 0x2 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x30] + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, r1 + bne _081038A0 + movs r4, 0x2 + b _08103876 + .align 2, 0 +_08103868: .4byte 0x02000000 +_0810386C: + lsls r0, r6, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r6, r0, 16 +_08103876: + lsls r1, r6, 16 + asrs r1, 16 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _0810386C + cmp r5, 0 + bne _08103896 + cmp r0, 0x1 + beq _0810386C +_08103896: + cmp r5, 0x1 + bne _08103900 + cmp r0, 0 + beq _0810386C + b _08103900 +_081038A0: + adds r0, r5, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _08103900 + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081038DC + movs r7, 0x2 +_081038B8: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _08103900 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _081038B8 +_081038DC: + movs r6, 0 + movs r7, 0x2 + b _081038E8 +_081038E2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_081038E8: + lsls r0, r6, 16 + asrs r4, r0, 16 + subs r1, r7, r4 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + beq _081038E2 +_08103900: + ldr r0, _0810390C @ =0x02000000 + strh r6, [r0, 0x32] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810390C: .4byte 0x02000000 + thumb_func_end sub_8103830 + + thumb_func_start sub_8103910 +sub_8103910: @ 8103910 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _08103978 @ =0x02000000 + movs r2, 0x36 + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _081039A6 + ldrh r2, [r4, 0x34] + movs r3, 0x34 + ldrsh r0, [r4, r3] + cmp r0, r1 + bne _081039A6 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081039A6 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r1, [r4, 0x36] + ldrh r0, [r4, 0x30] + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _081039A6 + movs r5, 0 + b _08103982 + .align 2, 0 +_08103978: .4byte 0x02000000 +_0810397C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08103982: + lsls r6, r5, 16 + asrs r5, r6, 16 + cmp r5, 0x4 + bgt _081039A6 + ldr r0, _08103A34 @ =0x02000000 + ldrh r1, [r0, 0x36] + subs r1, r5 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r7, r4 + bne _0810397C + lsrs r6, 16 + str r6, [sp] +_081039A6: + ldr r0, _08103A34 @ =0x02000000 + mov r9, r0 +_081039AA: + movs r5, 0x1 + movs r1, 0 + mov r8, r1 + ldr r2, [sp] + lsls r2, 16 + mov r10, r2 +_081039B6: + mov r3, r9 + ldrh r1, [r3, 0x2E] + lsls r5, 16 + asrs r4, r5, 16 + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, r9 + ldrh r1, [r0, 0x30] + subs r1, r4, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + mov r1, r10 + asrs r0, r1, 16 + subs r4, r0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0x2 + adds r1, r4, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103A38 + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103A24 + mov r2, r9 + ldrb r1, [r2, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103A38 +_08103A24: + mov r3, r8 + lsls r0, r3, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r0, 16 + mov r8, r0 + b _08103A46 + .align 2, 0 +_08103A34: .4byte 0x02000000 +_08103A38: + movs r2, 0x80 + lsls r2, 9 + adds r0, r5, r2 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081039B6 +_08103A46: + mov r3, r8 + cmp r3, 0 + beq _08103A5C + ldr r1, [sp] + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r0, 16 + str r0, [sp] + b _081039AA +_08103A5C: + ldr r0, _08103A74 @ =0x02000000 + mov r3, sp + ldrh r3, [r3] + strh r3, [r0, 0x32] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103A74: .4byte 0x02000000 + thumb_func_end sub_8103910 + + thumb_func_start sub_8103A78 +sub_8103A78: @ 8103A78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_8103910 + ldr r4, _08103B10 @ =0x02000000 + movs r0, 0x36 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08103B20 + ldrh r2, [r4, 0x34] + movs r3, 0x34 + ldrsh r0, [r4, r3] + cmp r0, r1 + beq _08103B20 + ldrb r1, [r4, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08103B20 + ldrh r1, [r4, 0x2E] + subs r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r1, [r4, 0x36] + ldrh r0, [r4, 0x30] + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8103764 + lsls r0, 24 + cmp r0, 0 + beq _08103B20 + movs r1, 0x1 + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0x1 + bne _08103AE0 + movs r1, 0x3 +_08103AE0: + movs r3, 0 + lsls r1, 16 + mov r8, r1 + adds r7, r4, 0 +_08103AE8: + ldrh r2, [r7, 0x32] + lsls r0, r3, 16 + asrs r5, r0, 16 + adds r2, r5, r2 + mov r3, r8 + asrs r1, r3, 16 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r6, r4 + bne _08103B14 + ldrh r0, [r7, 0x32] + adds r0, r5, r0 + strh r0, [r7, 0x32] + b _08103B20 + .align 2, 0 +_08103B10: .4byte 0x02000000 +_08103B14: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _08103AE8 +_08103B20: + ldr r7, _08103B90 @ =0x02000000 +_08103B22: + ldrh r0, [r7, 0x2E] + movs r1, 0x1 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r7, 0x30] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x32] + movs r1, 0x3 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103B94 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103B88 + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103B94 +_08103B88: + ldrh r0, [r7, 0x32] + adds r0, 0x1 + strh r0, [r7, 0x32] + b _08103B22 + .align 2, 0 +_08103B90: .4byte 0x02000000 +_08103B94: + ldr r7, _08103C04 @ =0x02000000 +_08103B96: + ldrh r0, [r7, 0x2E] + movs r1, 0x3 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl sub_8102BF8 + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r7, 0x30] + movs r1, 0x2 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x1 + bl sub_8102BF8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r7, 0x32] + movs r1, 0x1 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + movs r0, 0x2 + bl sub_8102BF8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_81037BC + lsls r0, 24 + cmp r0, 0 + bne _08103C08 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_810378C + lsls r0, 24 + cmp r0, 0 + beq _08103BFC + ldrb r1, [r7, 0x4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08103C08 +_08103BFC: + ldrh r0, [r7, 0x32] + adds r0, 0x1 + strh r0, [r7, 0x32] + b _08103B96 + .align 2, 0 +_08103C04: .4byte 0x02000000 +_08103C08: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8103A78 + + thumb_func_start sub_8103C14 +sub_8103C14: @ 8103C14 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08103C40 @ =sub_8103C48 + adds r0, r5, 0 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103C44 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x26] + bl _call_via_r5 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08103C40: .4byte sub_8103C48 +_08103C44: .4byte gTasks + thumb_func_end sub_8103C14 + + thumb_func_start sub_8103C48 +sub_8103C48: @ 8103C48 + push {r4,lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08103C70 @ =gUnknown_083ECBA0 + ldr r2, _08103C74 @ =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r4, 0x8 + ldrsh r2, [r0, r4] + lsls r2, 2 + adds r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103C70: .4byte gUnknown_083ECBA0 +_08103C74: .4byte gTasks + thumb_func_end sub_8103C48 + + thumb_func_start sub_8103C78 +sub_8103C78: @ 8103C78 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _08103CA8 @ =gUnknown_083ECBAC + movs r2, 0x26 + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x73 + str r1, [sp] + movs r1, 0x62 + movs r2, 0x63 + movs r3, 0x72 + bl sub_81065A8 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103CA8: .4byte gUnknown_083ECBAC + thumb_func_end sub_8103C78 + + thumb_func_start sub_8103CAC +sub_8103CAC: @ 8103CAC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _08103CC4 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08103CC4: + pop {r0} + bx r0 + thumb_func_end sub_8103CAC + + thumb_func_start sub_8103CC8 +sub_8103CC8: @ 8103CC8 + push {r4,lr} + sub sp, 0x4 + lsls r4, r1, 24 + lsrs r4, 24 + ldr r1, _08103CFC @ =gUnknown_083ECBAC + movs r2, 0x26 + ldrsh r0, [r0, r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x53 + str r1, [sp] + movs r1, 0x42 + movs r2, 0x43 + movs r3, 0x52 + bl sub_81065A8 + adds r0, r4, 0 + bl DestroyTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103CFC: .4byte gUnknown_083ECBAC + thumb_func_end sub_8103CC8 + + thumb_func_start sub_8103D00 +sub_8103D00: @ 8103D00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103D20 @ =gUnknown_083EDD08 + lsls r1, r0, 2 + adds r1, r2 + ldr r2, [r1] + ldr r1, _08103D24 @ =gUnknown_083EDD30 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08103D20: .4byte gUnknown_083EDD08 +_08103D24: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103D00 + + thumb_func_start sub_8103D28 +sub_8103D28: @ 8103D28 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103D48 @ =gUnknown_083EDD1C + lsls r1, r0, 2 + adds r1, r2 + ldr r2, [r1] + ldr r1, _08103D4C @ =gUnknown_083EDD30 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0x2 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08103D48: .4byte gUnknown_083EDD1C +_08103D4C: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103D28 + + thumb_func_start sub_8103D50 +sub_8103D50: @ 8103D50 + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + ldr r0, _08103D84 @ =gUnknown_083EDD3B + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bcs _08103D7C + ldr r7, _08103D88 @ =gUnknown_083EDD35 + adds r6, r0, 0 + lsls r5, r1, 1 +_08103D68: + adds r0, r4, r5 + adds r0, r7 + ldrb r0, [r0] + bl sub_8103D00 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08103D68 +_08103D7C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103D84: .4byte gUnknown_083EDD3B +_08103D88: .4byte gUnknown_083EDD35 + thumb_func_end sub_8103D50 + + thumb_func_start sub_8103D8C +sub_8103D8C: @ 8103D8C + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + ldr r0, _08103DC0 @ =gUnknown_083EDD3B + adds r0, r1, r0 + ldrb r0, [r0] + cmp r4, r0 + bcs _08103DB8 + ldr r7, _08103DC4 @ =gUnknown_083EDD35 + adds r6, r0, 0 + lsls r5, r1, 1 +_08103DA4: + adds r0, r4, r5 + adds r0, r7 + ldrb r0, [r0] + bl sub_8103D28 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _08103DA4 +_08103DB8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103DC0: .4byte gUnknown_083EDD3B +_08103DC4: .4byte gUnknown_083EDD35 + thumb_func_end sub_8103D8C + + thumb_func_start sub_8103DC8 +sub_8103DC8: @ 8103DC8 + push {r4-r6,lr} + movs r4, 0 + ldr r6, _08103DF8 @ =gSprites + ldr r5, _08103DFC @ =0x02000044 +_08103DD0: + ldr r0, _08103E00 @ =sub_8103EE4 + bl CreateInvisibleSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + strh r4, [r1, 0x2E] + adds r1, r4, r5 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _08103DD0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08103DF8: .4byte gSprites +_08103DFC: .4byte 0x02000044 +_08103E00: .4byte sub_8103EE4 + thumb_func_end sub_8103DC8 + + thumb_func_start sub_8103E04 +sub_8103E04: @ 8103E04 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08103E30 @ =0x02000000 + adds r1, 0x44 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08103E34 @ =gSprites + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0x30] + movs r1, 0x4 + strh r1, [r0, 0x32] + strh r2, [r0, 0x34] + strh r2, [r0, 0x36] + movs r1, 0x2 + strh r1, [r0, 0x38] + strh r2, [r0, 0x3C] + bx lr + .align 2, 0 +_08103E30: .4byte 0x02000000 +_08103E34: .4byte gSprites + thumb_func_end sub_8103E04 + + thumb_func_start sub_8103E38 +sub_8103E38: @ 8103E38 + push {r4,r5,lr} + movs r2, 0 + ldr r4, _08103E60 @ =0x02000044 + ldr r3, _08103E64 @ =gSprites +_08103E40: + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r3 + movs r5, 0x30 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08103E68 + movs r5, 0x32 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08103E68 + movs r0, 0 + b _08103E74 + .align 2, 0 +_08103E60: .4byte 0x02000044 +_08103E64: .4byte gSprites +_08103E68: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x4 + bls _08103E40 + movs r0, 0x1 +_08103E74: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8103E38 + + thumb_func_start sub_8103E7C +sub_8103E7C: @ 8103E7C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08103E94 @ =0x02000044 +_08103E82: + adds r0, r4, r5 + ldrb r0, [r0] + bl sub_8103EAC + lsls r0, 24 + cmp r0, 0 + bne _08103E98 + movs r0, 0 + b _08103EA4 + .align 2, 0 +_08103E94: .4byte 0x02000044 +_08103E98: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _08103E82 + movs r0, 0x1 +_08103EA4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8103E7C + + thumb_func_start sub_8103EAC +sub_8103EAC: @ 8103EAC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08103EC8 @ =gSprites + adds r1, r0 + movs r2, 0x30 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08103ECC + movs r0, 0x1 + b _08103EDE + .align 2, 0 +_08103EC8: .4byte gSprites +_08103ECC: + ldrh r2, [r1, 0x3C] + movs r3, 0x3C + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08103EDA + movs r0, 0 + strh r0, [r1, 0x30] +_08103EDA: + lsls r0, r2, 24 + lsrs r0, 24 +_08103EDE: + pop {r1} + bx r1 + thumb_func_end sub_8103EAC + + thumb_func_start sub_8103EE4 +sub_8103EE4: @ 8103EE4 + push {r4-r7,lr} + adds r2, r0, 0 + movs r1, 0x30 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08103F66 + ldrh r0, [r2, 0x34] + subs r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08103F4E + movs r0, 0 + strh r0, [r2, 0x3C] + movs r6, 0x1 + strh r6, [r2, 0x34] + ldrh r1, [r2, 0x38] + ldrh r3, [r2, 0x36] + adds r0, r1, r3 + strh r0, [r2, 0x36] + movs r4, 0x4 + ldrh r5, [r2, 0x32] + movs r7, 0x32 + ldrsh r3, [r2, r7] + cmp r3, 0 + beq _08103F20 + movs r4, 0x8 +_08103F20: + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bgt _08103F38 + strh r6, [r2, 0x3C] + negs r0, r1 + strh r0, [r2, 0x38] + cmp r3, 0 + beq _08103F4E + subs r0, r5, 0x1 + strh r0, [r2, 0x32] + b _08103F40 +_08103F38: + cmp r0, r4 + blt _08103F40 + negs r0, r1 + strh r0, [r2, 0x38] +_08103F40: + movs r1, 0x32 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08103F4E + ldrh r0, [r2, 0x34] + lsls r0, 1 + strh r0, [r2, 0x34] +_08103F4E: + ldr r1, _08103F6C @ =gUnknown_083EDD30 + movs r3, 0x2E + ldrsh r0, [r2, r3] + adds r0, r1 + ldrb r0, [r0] + ldrh r3, [r2, 0x36] + lsls r3, 24 + lsrs r3, 24 + adds r1, r3, 0 + adds r2, r3, 0 + bl MultiplyPaletteRGBComponents +_08103F66: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08103F6C: .4byte gUnknown_083EDD30 + thumb_func_end sub_8103EE4 + + thumb_func_start sub_8103F70 +sub_8103F70: @ 8103F70 + push {r4,lr} + ldr r4, _08103F98 @ =sub_8103FE8 + adds r0, r4, 0 + movs r1, 0x6 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08103F9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x1 + strh r2, [r1, 0xE] + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08103F98: .4byte sub_8103FE8 +_08103F9C: .4byte gTasks + thumb_func_end sub_8103F70 + + thumb_func_start sub_8103FA0 +sub_8103FA0: @ 8103FA0 + push {lr} + ldr r0, _08103FC4 @ =sub_8103FE8 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08103FC8 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08103FCC + movs r0, 0 + b _08103FE0 + .align 2, 0 +_08103FC4: .4byte sub_8103FE8 +_08103FC8: .4byte gTasks +_08103FCC: + adds r0, r2, 0 + bl DestroyTask + ldr r0, _08103FE4 @ =gUnknown_083EDDAC + ldr r0, [r0] + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + movs r0, 0x1 +_08103FE0: + pop {r1} + bx r1 + .align 2, 0 +_08103FE4: .4byte gUnknown_083EDDAC + thumb_func_end sub_8103FA0 + + thumb_func_start sub_8103FE8 +sub_8103FE8: @ 8103FE8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _08104040 @ =gTasks + adds r2, r1, r0 + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08104026 + movs r0, 0x4 + strh r0, [r2, 0xA] + ldrh r1, [r2, 0xE] + ldrh r3, [r2, 0xC] + adds r0, r1, r3 + strh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _08104022 + cmp r0, 0x2 + bne _08104026 +_08104022: + negs r0, r1 + strh r0, [r2, 0xE] +_08104026: + ldr r0, _08104044 @ =gUnknown_083EDDA0 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08104040: .4byte gTasks +_08104044: .4byte gUnknown_083EDDA0 + thumb_func_end sub_8103FE8 + + thumb_func_start sub_8104048 +sub_8104048: @ 8104048 + push {lr} + ldr r0, _0810405C @ =sub_81040E8 + movs r1, 0x8 + bl CreateTask + ldr r1, _08104060 @ =0x02000000 + adds r1, 0x3E + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0810405C: .4byte sub_81040E8 +_08104060: .4byte 0x02000000 + thumb_func_end sub_8104048 + + thumb_func_start sub_8104064 +sub_8104064: @ 8104064 + push {r4,lr} + ldr r0, _08104090 @ =0x02000000 + adds r0, 0x3E + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _08104094 @ =gTasks + adds r4, r0 + adds r0, r4, 0 + bl sub_810421C + movs r1, 0x1 + strh r1, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + strh r1, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104090: .4byte 0x02000000 +_08104094: .4byte gTasks + thumb_func_end sub_8104064 + + thumb_func_start sub_8104098 +sub_8104098: @ 8104098 + push {r4,lr} + ldr r0, _081040C0 @ =0x02000000 + adds r0, 0x3E + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, _081040C4 @ =gTasks + adds r4, r0 + adds r0, r4, 0 + bl sub_810421C + movs r0, 0x3 + strh r0, [r4, 0x8] + movs r0, 0x1 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081040C0: .4byte 0x02000000 +_081040C4: .4byte gTasks + thumb_func_end sub_8104098 + + thumb_func_start sub_81040C8 +sub_81040C8: @ 81040C8 + ldr r2, _081040E0 @ =gTasks + ldr r0, _081040E4 @ =0x02000000 + adds r0, 0x3E + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x26] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_081040E0: .4byte gTasks +_081040E4: .4byte 0x02000000 + thumb_func_end sub_81040C8 + + thumb_func_start sub_81040E8 +sub_81040E8: @ 81040E8 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104110 @ =gUnknown_083ECBB4 + ldr r2, _08104114 @ =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 +_08104110: .4byte gUnknown_083ECBB4 +_08104114: .4byte gTasks + thumb_func_end sub_81040E8 + + thumb_func_start nullsub_68 +nullsub_68: @ 8104118 + bx lr + thumb_func_end nullsub_68 + + thumb_func_start sub_810411C +sub_810411C: @ 810411C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + lsls r0, 19 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + asrs r0, 16 + movs r1, 0x14 + bl sub_8105B1C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810411C + + thumb_func_start sub_8104144 +sub_8104144: @ 8104144 + push {r4,lr} + adds r4, r0, 0 + ldr r2, _08104174 @ =gSprites + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3C + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0810419E + ldrh r1, [r4, 0xA] + adds r0, r1, 0x2 + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0 + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1 + bne _08104178 + movs r0, 0x1 + b _0810417E + .align 2, 0 +_08104174: .4byte gSprites +_08104178: + cmp r1, 0x10 + bne _0810417E + movs r0, 0x2 +_0810417E: + lsls r1, r2, 16 + asrs r1, 15 + ldr r2, _081041A4 @ =0x0600e800 + adds r1, r2 + adds r1, 0x80 + ldr r2, _081041A8 @ =gUnknown_083ECBC4 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r4, 0xC] + bl sub_8105B88 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0x26] +_0810419E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081041A4: .4byte 0x0600e800 +_081041A8: .4byte gUnknown_083ECBC4 + thumb_func_end sub_8104144 + + thumb_func_start sub_81041AC +sub_81041AC: @ 81041AC + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xA] + adds r0, r1, 0x2 + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x1 + bne _081041C6 + movs r2, 0x1 + b _081041CC +_081041C6: + cmp r1, 0x10 + bne _081041CC + movs r2, 0x2 +_081041CC: + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _081041F0 + lsls r0, r4, 16 + asrs r0, 15 + ldr r1, _08104214 @ =0x0600e800 + adds r0, r1 + adds r0, 0x80 + ldr r1, _08104218 @ =gUnknown_083ECBC4 + lsls r2, 2 + adds r1, 0x2 + adds r2, r1 + ldrh r1, [r2] + strh r1, [r0] + ldrh r0, [r3, 0xA] + subs r0, 0x1 + strh r0, [r3, 0xA] +_081041F0: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _08104202 + movs r0, 0 + strh r0, [r3, 0xC] +_08104202: + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _0810420E + strh r0, [r3, 0x8] + strh r0, [r3, 0x26] +_0810420E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104214: .4byte 0x0600e800 +_08104218: .4byte gUnknown_083ECBC4 + thumb_func_end sub_81041AC + + thumb_func_start sub_810421C +sub_810421C: @ 810421C + push {lr} + movs r1, 0x2 + adds r2, r0, 0 + adds r2, 0x8 + movs r3, 0 +_08104226: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _08104226 + pop {r0} + bx r0 + thumb_func_end sub_810421C + + thumb_func_start sub_810423C +sub_810423C: @ 810423C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0x3 + ldr r6, _08104268 @ =0x0600e800 + movs r4, 0 + ldr r0, _0810426C @ =gTasks + mov r8, r0 + ldr r1, _08104270 @ =0x02000000 + mov r12, r1 + cmp r4, r5 + bge _081042A6 + ldr r7, _08104274 @ =gUnknown_083ECBC4 +_0810425A: + movs r3, 0 + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + bne _08104278 + movs r3, 0x1 + b _0810427E + .align 2, 0 +_08104268: .4byte 0x0600e800 +_0810426C: .4byte gTasks +_08104270: .4byte 0x02000000 +_08104274: .4byte gUnknown_083ECBC4 +_08104278: + cmp r0, 0xF + bne _0810427E + movs r3, 0x2 +_0810427E: + lsls r2, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r1, r6 + adds r1, 0x80 + lsls r0, r3, 2 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + adds r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, r5 + blt _0810425A +_081042A6: + lsls r1, r4, 16 + asrs r0, r1, 16 + cmp r0, 0xF + bgt _081042F0 + ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2 +_081042B0: + movs r3, 0 + asrs r0, r1, 16 + cmp r0, 0 + bne _081042C0 + movs r3, 0x1 + b _081042C6 + .align 2, 0 +_081042BC: .4byte gUnknown_083ECBC4 + 0x2 +_081042C0: + cmp r0, 0xF + bne _081042C6 + movs r3, 0x2 +_081042C6: + lsls r2, 16 + asrs r2, 16 + lsls r1, r2, 1 + adds r1, r6 + adds r1, 0x80 + lsls r0, r3, 2 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + adds r2, 0x1 + lsls r2, 16 + lsrs r2, 16 + lsls r1, r4, 16 + asrs r0, r1, 16 + cmp r0, 0xF + ble _081042B0 +_081042F0: + mov r0, r12 + adds r0, 0x3E + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + add r0, r8 + strh r5, [r0, 0xA] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810423C + + thumb_func_start sub_810430C +sub_810430C: @ 810430C + push {r4,lr} + ldr r4, _08104328 @ =sub_810434C + adds r0, r4, 0 + movs r1, 0x7 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104328: .4byte sub_810434C + thumb_func_end sub_810430C + + thumb_func_start sub_810432C +sub_810432C: @ 810432C + push {lr} + ldr r0, _08104340 @ =sub_810434C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08104344 + movs r0, 0 + b _08104346 + .align 2, 0 +_08104340: .4byte sub_810434C +_08104344: + movs r0, 0x1 +_08104346: + pop {r1} + bx r1 + thumb_func_end sub_810432C + + thumb_func_start sub_810434C +sub_810434C: @ 810434C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104374 @ =gUnknown_083ECBD0 + ldr r2, _08104378 @ =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 +_08104374: .4byte gUnknown_083ECBD0 +_08104378: .4byte gTasks + thumb_func_end sub_810434C + + thumb_func_start sub_810437C +sub_810437C: @ 810437C + push {lr} + ldr r1, _081043DC @ =0x02000000 + movs r2, 0 + strb r2, [r1, 0xA] + strh r2, [r1, 0x14] + strh r2, [r1, 0x16] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + movs r1, 0x1E + strh r1, [r0, 0xC] + movs r1, 0xA0 + lsls r1, 3 + strh r1, [r0, 0x10] + ldr r0, _081043E0 @ =gSpriteCoordOffsetX + strh r2, [r0] + ldr r0, _081043E4 @ =gSpriteCoordOffsetY + strh r2, [r0] + ldr r0, _081043E8 @ =REG_BG1HOFS + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + movs r0, 0x1E + movs r1, 0 + bl sub_8104A40 + bl sub_81051C0 + bl sub_8105100 + bl sub_81052EC + bl sub_81053A0 + bl sub_810545C + bl sub_8102680 + bl StopMapMusic + movs r0, 0xC4 + lsls r0, 1 + bl PlayNewMapMusic + pop {r0} + bx r0 + .align 2, 0 +_081043DC: .4byte 0x02000000 +_081043E0: .4byte gSpriteCoordOffsetX +_081043E4: .4byte gSpriteCoordOffsetY +_081043E8: .4byte REG_BG1HOFS + thumb_func_end sub_810437C + + thumb_func_start sub_81043EC +sub_81043EC: @ 81043EC + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0810445C @ =gSpriteCoordOffsetX + ldrh r0, [r1] + subs r0, 0x8 + strh r0, [r1] + ldrh r2, [r4, 0xA] + adds r2, 0x8 + strh r2, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + adds r0, 0xF0 + movs r1, 0xFF + ands r0, r1 + lsrs r3, r0, 3 + ldr r1, _08104460 @ =REG_BG1HOFS + ldr r0, _08104464 @ =0x000001ff + ands r2, r0 + strh r2, [r1] + adds r2, r3, 0 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r2, r0 + beq _08104438 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x12 + bgt _08104438 + strh r3, [r4, 0xC] + ldrh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 19 + strh r0, [r4, 0xE] + movs r0, 0xE + ldrsh r1, [r4, r0] + adds r0, r2, 0 + bl sub_8104A40 +_08104438: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0xC7 + ble _0810444A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xE] +_0810444A: + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810445C: .4byte gSpriteCoordOffsetX +_08104460: .4byte REG_BG1HOFS +_08104464: .4byte 0x000001ff + thumb_func_end sub_81043EC + + thumb_func_start sub_8104468 +sub_8104468: @ 8104468 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _08104492 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl sub_8105578 + bl sub_81056F0 +_08104492: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104468 + + thumb_func_start sub_8104498 +sub_8104498: @ 8104498 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r7, r0, 0 + ldr r1, _08104534 @ =gUnknown_083ECC1C + mov r0, sp + movs r2, 0x4 + bl memcpy + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _08104538 @ =gUnknown_083ECC20 + movs r2, 0x8 + bl memcpy + add r6, sp, 0xC + ldr r1, _0810453C @ =gUnknown_083ECC28 + adds r0, r6, 0 + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r7, 0x10] + subs r0, 0x4 + strh r0, [r7, 0x10] + lsls r0, 16 + asrs r0, 24 + movs r5, 0x4 + subs r5, r0 + lsls r4, r5, 1 + add r8, r4 + mov r1, r8 + movs r2, 0 + ldrsh r0, [r1, r2] + bl sub_8105688 + adds r6, r4 + movs r1, 0 + ldrsh r0, [r6, r1] + bl sub_81057E8 + ldr r0, _08104540 @ =0x02000000 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104544 @ =gSprites + adds r0, r1 + mov r2, sp + adds r1, r2, r5 + ldrb r1, [r1] + bl StartSpriteAnimIfDifferent + movs r1, 0x10 + ldrsh r0, [r7, r1] + movs r1, 0x80 + lsls r1, 1 + cmp r0, r1 + bgt _08104526 + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + strh r1, [r7, 0x10] + movs r0, 0 + strh r0, [r7, 0x12] +_08104526: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104534: .4byte gUnknown_083ECC1C +_08104538: .4byte gUnknown_083ECC20 +_0810453C: .4byte gUnknown_083ECC28 +_08104540: .4byte 0x02000000 +_08104544: .4byte gSprites + thumb_func_end sub_8104498 + + thumb_func_start sub_8104548 +sub_8104548: @ 8104548 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + ble _0810458A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + strh r0, [r4, 0x12] + movs r0, 0x2 + bl sub_81057E8 + ldr r0, _08104590 @ =0x02000000 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104594 @ =gSprites + adds r0, r1 + movs r1, 0x3 + bl StartSpriteAnimIfDifferent +_0810458A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104590: .4byte 0x02000000 +_08104594: .4byte gSprites + thumb_func_end sub_8104548 + + thumb_func_start sub_8104598 +sub_8104598: @ 8104598 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrb r0, [r4, 0x10] + adds r0, 0x80 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + ble _081045C4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + strh r0, [r4, 0x12] +_081045C4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104598 + + thumb_func_start sub_81045CC +sub_81045CC: @ 81045CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + ldrb r0, [r4, 0x10] + adds r0, 0x40 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _08104634 + movs r0, 0 + strh r0, [r4, 0x12] + ldr r1, _0810460C @ =0x02000000 + ldrb r0, [r1, 0x5] + cmp r0, 0 + beq _08104610 + ldrb r1, [r1, 0xA] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bgt _0810462E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + b _0810462C + .align 2, 0 +_0810460C: .4byte 0x02000000 +_08104610: + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _0810461E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + b _0810462C +_0810461E: + ldrh r0, [r4, 0x14] + bl sub_81026DC + lsls r0, 24 + cmp r0, 0 + beq _0810462E + movs r0, 0xE +_0810462C: + strh r0, [r4, 0x8] +_0810462E: + ldrh r0, [r4, 0x14] + adds r0, 0x1 + strh r0, [r4, 0x14] +_08104634: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81045CC + + thumb_func_start sub_810463C +sub_810463C: @ 810463C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _08104660 @ =0x02000000 + movs r1, 0x14 + ldrsh r0, [r6, r1] + movs r1, 0x14 + bl __modsi3 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r0, 0 + beq _08104664 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D5C + b _08104688 + .align 2, 0 +_08104660: .4byte 0x02000000 +_08104664: + movs r0, 0x1 + bl sub_8102C48 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6, 0x5] + cmp r0, r1 + beq _08104692 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 24 + bl sub_8102D28 + movs r1, 0x14 + ldrsh r0, [r6, r1] + movs r1, 0x14 + bl __modsi3 +_08104688: + lsls r0, 16 + lsrs r5, r0, 16 + ldrb r0, [r4, 0x10] + adds r0, 0x40 + strh r0, [r4, 0x10] +_08104692: + lsls r0, r5, 16 + asrs r5, r0, 16 + cmp r5, 0 + bne _081046B4 + movs r0, 0x1 + bl sub_8102C48 + ldr r1, _081046BC @ =0x02000000 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x5] + cmp r0, r1 + bne _081046B4 + strh r5, [r4, 0x10] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_081046B4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081046BC: .4byte 0x02000000 + thumb_func_end sub_810463C + + thumb_func_start sub_81046C0 +sub_81046C0: @ 81046C0 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + movs r7, 0 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + ble _08104758 + bl StopMapMusic + bl sub_81056C0 + bl sub_8105804 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r5, _08104710 @ =0x02000000 + ldrb r0, [r5, 0x5] + cmp r0, 0 + bne _0810471C + movs r0, 0xA0 + strh r0, [r4, 0x10] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104714 @ =gSprites + adds r0, r1 + movs r1, 0x5 + bl StartSpriteAnimIfDifferent + ldr r0, _08104718 @ =0x00000187 + bl PlayFanfare + b _08104758 + .align 2, 0 +_08104710: .4byte 0x02000000 +_08104714: .4byte gSprites +_08104718: .4byte 0x00000187 +_0810471C: + movs r0, 0xC0 + strh r0, [r4, 0x10] + adds r6, r5, 0 + adds r6, 0x3F + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08104760 @ =gSprites + adds r0, r4 + movs r1, 0x4 + bl StartSpriteAnimIfDifferent + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2B + strb r7, [r0] + ldrb r0, [r5, 0x2] + cmp r0, 0 + beq _08104750 + bl sub_8104098 + strb r7, [r5, 0x2] +_08104750: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare +_08104758: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104760: .4byte gSprites + thumb_func_end sub_81046C0 + + thumb_func_start sub_8104764 +sub_8104764: @ 8104764 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x10] + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0810477C + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bne _0810478C +_0810477C: + bl sub_81040C8 + lsls r0, 24 + cmp r0, 0 + bne _0810478C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0810478C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104764 + + thumb_func_start sub_8104794 +sub_8104794: @ 8104794 + push {r4,lr} + adds r3, r0, 0 + ldr r1, _081047D4 @ =gSpriteCoordOffsetX + ldrh r0, [r1] + subs r0, 0x8 + strh r0, [r1] + ldrh r2, [r3, 0xA] + adds r2, 0x8 + strh r2, [r3, 0xA] + ldrh r0, [r3, 0xE] + adds r0, 0x8 + strh r0, [r3, 0xE] + movs r1, 0xA + ldrsh r0, [r3, r1] + subs r0, 0x8 + movs r1, 0xFF + ands r0, r1 + lsrs r4, r0, 3 + ldr r1, _081047D8 @ =REG_BG1HOFS + ldr r0, _081047DC @ =0x000001ff + ands r2, r0 + strh r2, [r1] + ldrh r0, [r3, 0xE] + lsls r0, 16 + asrs r0, 19 + cmp r0, 0x19 + bgt _081047E0 + adds r0, r4, 0 + bl sub_8104A88 + b _081047E6 + .align 2, 0 +_081047D4: .4byte gSpriteCoordOffsetX +_081047D8: .4byte REG_BG1HOFS +_081047DC: .4byte 0x000001ff +_081047E0: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_081047E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104794 + + thumb_func_start sub_81047EC +sub_81047EC: @ 81047EC + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _08104834 @ =0x02000000 + movs r6, 0 + strb r6, [r4, 0xB] + ldrb r0, [r4, 0x5] + strb r0, [r4, 0xA] + ldr r0, _08104838 @ =gSpriteCoordOffsetX + strh r6, [r0] + ldr r0, _0810483C @ =REG_BG1HOFS + strh r6, [r0] + movs r0, 0x8 + strh r0, [r4, 0x1A] + bl sub_810514C + bl sub_81054B8 + bl sub_8105524 + adds r0, r4, 0 + adds r0, 0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _08104844 + ldr r0, _08104840 @ =sub_810434C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _0810485A + .align 2, 0 +_08104834: .4byte 0x02000000 +_08104838: .4byte gSpriteCoordOffsetX +_0810483C: .4byte REG_BG1HOFS +_08104840: .4byte sub_810434C +_08104844: + movs r0, 0x4 + bl sub_8104CAC + bl dp15_jump_random_unknown + strh r0, [r5, 0xA] + strh r6, [r5, 0xC] + strh r6, [r5, 0xE] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_0810485A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81047EC + + thumb_func_start sub_8104860 +sub_8104860: @ 8104860 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _0810487C @ =0x02000000 + ldrh r0, [r5, 0x1A] + lsls r6, r0, 16 + asrs r1, r6, 16 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08104880 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081048A2 + .align 2, 0 +_0810487C: .4byte 0x02000000 +_08104880: + movs r1, 0x1C + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + bne _081048A2 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _081048A2 + asrs r0, r6, 17 + strh r0, [r5, 0x1A] +_081048A2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8104860 + + thumb_func_start sub_81048A8 +sub_81048A8: @ 81048A8 + push {lr} + bl sub_8104E18 + lsls r0, 24 + cmp r0, 0 + beq _081048C2 + ldr r0, _081048C8 @ =sub_810434C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_081048C2: + pop {r0} + bx r0 + .align 2, 0 +_081048C8: .4byte sub_810434C + thumb_func_end sub_81048A8 + + thumb_func_start sub_81048CC +sub_81048CC: @ 81048CC + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81054B8 + bl sub_81056C0 + bl sub_8105804 + bl sub_8105854 + ldr r5, _08104934 @ =gSprites + ldr r3, _08104938 @ =0x02000000 + adds r0, r3, 0 + adds r0, 0x4E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r3, 0x3F + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x5 + bl StartSpriteAnimIfDifferent + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + movs r0, 0x4 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + bl StopMapMusic + ldr r0, _0810493C @ =0x00000187 + bl PlayFanfare + movs r0, 0xB2 + bl PlaySE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104934: .4byte gSprites +_08104938: .4byte 0x02000000 +_0810493C: .4byte 0x00000187 + thumb_func_end sub_81048CC + + thumb_func_start sub_8104940 +sub_8104940: @ 8104940 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _081049B8 @ =gSpriteCoordOffsetY + ldrh r1, [r4, 0x10] + strh r1, [r0] + ldr r0, _081049BC @ =REG_BG1VOFS + strh r1, [r0] + ldrh r1, [r4, 0x12] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810495E + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] +_0810495E: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + movs r1, 0x1F + ands r0, r1 + cmp r0, 0 + bne _08104974 + ldrh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 17 + strh r0, [r4, 0x10] +_08104974: + movs r0, 0x10 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081049B0 + bl sub_81058A0 + bl sub_81058C4 + bl sub_8105284 + bl sub_81059E8 + ldr r2, _081049C0 @ =gSprites + ldr r0, _081049C4 @ =0x02000000 + adds r0, 0x4E + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + strh r5, [r4, 0x12] +_081049B0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081049B8: .4byte gSpriteCoordOffsetY +_081049BC: .4byte REG_BG1VOFS +_081049C0: .4byte gSprites +_081049C4: .4byte 0x02000000 + thumb_func_end sub_8104940 + + thumb_func_start sub_81049C8 +sub_81049C8: @ 81049C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _081049F0 @ =gSpriteCoordOffsetY + movs r1, 0 + strh r1, [r0] + ldr r0, _081049F4 @ =REG_BG1VOFS + strh r1, [r0] + bl sub_8105ACC + lsls r0, 24 + cmp r0, 0 + beq _081049EA + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl sub_8105AEC +_081049EA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081049F0: .4byte gSpriteCoordOffsetY +_081049F4: .4byte REG_BG1VOFS + thumb_func_end sub_81049C8 + + thumb_func_start sub_81049F8 +sub_81049F8: @ 81049F8 + push {lr} + ldr r0, _08104A30 @ =gSpriteCoordOffsetX + movs r1, 0 + strh r1, [r0] + ldr r0, _08104A34 @ =REG_BG1HOFS + strh r1, [r0] + ldr r0, _08104A38 @ =0x02000000 + adds r0, 0x60 + ldrh r0, [r0] + bl PlayNewMapMusic + bl sub_810514C + bl sub_8105554 + bl sub_8105524 + bl sub_81059B8 + ldr r0, _08104A3C @ =sub_810434C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_08104A30: .4byte gSpriteCoordOffsetX +_08104A34: .4byte REG_BG1HOFS +_08104A38: .4byte 0x02000000 +_08104A3C: .4byte sub_810434C + thumb_func_end sub_81049F8 + + thumb_func_start sub_8104A40 +sub_8104A40: @ 8104A40 + push {r4-r7,lr} + movs r3, 0x4 + ldr r7, _08104A80 @ =gReelTimeWindowTilemap + lsls r1, 16 + asrs r5, r1, 16 + lsls r0, 16 + asrs r4, r0, 16 + ldr r6, _08104A84 @ =0x0600e000 +_08104A50: + lsls r2, r3, 16 + asrs r2, 16 + subs r1, r2, 0x4 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5, r0 + lsls r0, 1 + adds r0, r7 + ldrh r1, [r0] + lsls r0, r2, 5 + adds r0, r4 + lsls r0, 1 + adds r0, r6 + strh r1, [r0] + adds r2, 0x1 + lsls r2, 16 + lsrs r3, r2, 16 + asrs r2, 16 + cmp r2, 0xE + ble _08104A50 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104A80: .4byte gReelTimeWindowTilemap +_08104A84: .4byte 0x0600e000 + thumb_func_end sub_8104A40 + + thumb_func_start sub_8104A88 +sub_8104A88: @ 8104A88 + push {r4,r5,lr} + movs r2, 0x4 + lsls r0, 16 + asrs r3, r0, 16 + ldr r5, _08104AB4 @ =0x0600e000 + movs r4, 0 +_08104A94: + lsls r1, r2, 16 + asrs r1, 16 + lsls r0, r1, 5 + adds r0, r3 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r2, r1, 16 + asrs r1, 16 + cmp r1, 0xE + ble _08104A94 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104AB4: .4byte 0x0600e000 + thumb_func_end sub_8104A88 + + thumb_func_start sub_8104AB8 +sub_8104AB8: @ 8104AB8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08104AE4 @ =sub_8104B0C + adds r0, r5, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08104AE8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + bl _call_via_r5 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104AE4: .4byte sub_8104B0C +_08104AE8: .4byte gTasks + thumb_func_end sub_8104AB8 + + thumb_func_start sub_8104AEC +sub_8104AEC: @ 8104AEC + push {lr} + ldr r0, _08104B00 @ =sub_8104B0C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08104B04 + movs r0, 0 + b _08104B06 + .align 2, 0 +_08104B00: .4byte sub_8104B0C +_08104B04: + movs r0, 0x1 +_08104B06: + pop {r1} + bx r1 + thumb_func_end sub_8104AEC + + thumb_func_start sub_8104B0C +sub_8104B0C: @ 8104B0C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104B34 @ =gUnknown_083ECC30 + ldr r2, _08104B38 @ =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 +_08104B34: .4byte gUnknown_083ECC30 +_08104B38: .4byte gTasks + thumb_func_end sub_8104B0C + + thumb_func_start sub_8104B3C +sub_8104B3C: @ 8104B3C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8104B3C + + thumb_func_start sub_8104B60 +sub_8104B60: @ 8104B60 + push {lr} + adds r2, r0, 0 + ldr r0, _08104B7C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08104B76 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_08104B76: + pop {r0} + bx r0 + .align 2, 0 +_08104B7C: .4byte gPaletteFade + thumb_func_end sub_8104B60 + + thumb_func_start sub_8104B80 +sub_8104B80: @ 8104B80 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_8104DA4 + bl sub_81065DC + ldr r0, _08104BC0 @ =gWindowConfig_81E7144 + bl BasicInitMenuWindow + ldr r0, _08104BC4 @ =gOtherText_ReelTime + movs r1, 0xA + movs r2, 0x20 + movs r3, 0x1 + bl MenuPrint_PixelCoords + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104BC0: .4byte gWindowConfig_81E7144 +_08104BC4: .4byte gOtherText_ReelTime + thumb_func_end sub_8104B80 + + thumb_func_start sub_8104BC8 +sub_8104BC8: @ 8104BC8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r0, _08104BF8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _08104BF0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08104BF0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104BF8: .4byte gMain + thumb_func_end sub_8104BC8 + + thumb_func_start sub_8104BFC +sub_8104BFC: @ 8104BFC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl MenuZeroFillScreen + ldr r0, _08104C3C @ =gWindowConfig_81E7128 + bl BasicInitMenuWindow + bl sub_81064B8 + ldrb r0, [r4, 0xA] + bl sub_8104CAC + ldr r0, _08104C40 @ =0x02000000 + ldrb r0, [r0, 0x2] + bl sub_810423C + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08104C3C: .4byte gWindowConfig_81E7128 +_08104C40: .4byte 0x02000000 + thumb_func_end sub_8104BFC + + thumb_func_start sub_8104C44 +sub_8104C44: @ 8104C44 + push {lr} + ldr r0, _08104C58 @ =sub_8104B0C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_08104C58: .4byte sub_8104B0C + thumb_func_end sub_8104C44 + + thumb_func_start sub_8104C5C +sub_8104C5C: @ 8104C5C + push {lr} + ldr r0, _08104C9C @ =sub_8104E74 + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _08104CA0 @ =0x02000000 + adds r0, 0x3D + strb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104CA4 @ =gTasks + adds r0, r1 + ldr r1, _08104CA8 @ =0x0000ffff + strh r1, [r0, 0xA] + movs r1, 0x4 + adds r2, r0, 0 + adds r2, 0x8 + movs r3, 0x40 +_08104C86: + lsls r0, r1, 1 + adds r0, r2, r0 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _08104C86 + pop {r0} + bx r0 + .align 2, 0 +_08104C9C: .4byte sub_8104E74 +_08104CA0: .4byte 0x02000000 +_08104CA4: .4byte gTasks +_08104CA8: .4byte 0x0000ffff + thumb_func_end sub_8104C5C + + thumb_func_start sub_8104CAC +sub_8104CAC: @ 8104CAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8104DA4 + ldr r0, _08104D24 @ =0x02000000 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104D28 @ =gTasks + adds r7, r0, r1 + strh r4, [r7, 0xA] + movs r6, 0 + ldr r1, _08104D2C @ =gUnknown_083ED048 + lsls r5, r4, 2 + adds r0, r5, r1 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0xFF + beq _08104D18 + mov r8, r1 +_08104CE0: + mov r0, r8 + adds r4, r5, r0 + ldr r0, [r4] + lsls r2, r6, 2 + adds r2, r0 + ldrb r0, [r2] + ldrb r1, [r2, 0x1] + movs r3, 0x2 + ldrsh r2, [r2, r3] + bl sub_8105BB4 + lsls r0, 24 + lsrs r0, 24 + adds r2, r6, 0x4 + lsls r2, 1 + adds r1, r7, 0 + adds r1, 0x8 + adds r1, r2 + strh r0, [r1] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, [r4] + lsls r0, r6, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08104CE0 +_08104D18: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104D24: .4byte 0x02000000 +_08104D28: .4byte gTasks +_08104D2C: .4byte gUnknown_083ED048 + thumb_func_end sub_8104CAC + + thumb_func_start sub_8104D30 +sub_8104D30: @ 8104D30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r1 + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08104D84 @ =0x02000000 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104D88 @ =gTasks + adds r0, r1 + mov r12, r0 + movs r5, 0x4 + lsls r4, 16 + asrs r6, r4, 16 + lsls r2, 16 + lsls r3, 16 +_08104D5C: + lsls r0, r5, 1 + mov r1, r12 + adds r1, 0x8 + adds r4, r1, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + bne _08104D8C + str r6, [sp] + adds r0, r7, 0 + mov r1, r8 + asrs r2, 16 + asrs r3, 16 + bl sub_8105BF8 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + b _08104D96 + .align 2, 0 +_08104D84: .4byte 0x02000000 +_08104D88: .4byte gTasks +_08104D8C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08104D5C +_08104D96: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8104D30 + + thumb_func_start sub_8104DA4 +sub_8104DA4: @ 8104DA4 + push {r4-r6,lr} + ldr r0, _08104E04 @ =0x02000000 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104E08 @ =gTasks + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + ldr r0, _08104E0C @ =0x0000ffff + cmp r1, r0 + beq _08104DCE + ldr r0, _08104E10 @ =gUnknown_083ED064 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_08104DCE: + movs r5, 0x4 + adds r6, r4, 0 + adds r6, 0x8 +_08104DD4: + lsls r0, r5, 1 + adds r4, r6, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + beq _08104DF4 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08104E14 @ =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0x40 + strh r0, [r4] +_08104DF4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08104DD4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08104E04: .4byte 0x02000000 +_08104E08: .4byte gTasks +_08104E0C: .4byte 0x0000ffff +_08104E10: .4byte gUnknown_083ED064 +_08104E14: .4byte gSprites + thumb_func_end sub_8104DA4 + + thumb_func_start sub_8104E18 +sub_8104E18: @ 8104E18 + push {r4,r5,lr} + ldr r0, _08104E54 @ =0x02000000 + adds r0, 0x3D + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _08104E58 @ =gTasks + adds r0, r1 + movs r2, 0x4 + adds r3, r0, 0 + adds r3, 0x8 + ldr r4, _08104E5C @ =gSprites +_08104E32: + lsls r0, r2, 1 + adds r1, r3, r0 + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, 0x40 + beq _08104E60 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r5, 0x3C + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _08104E60 + movs r0, 0 + b _08104E6C + .align 2, 0 +_08104E54: .4byte 0x02000000 +_08104E58: .4byte gTasks +_08104E5C: .4byte gSprites +_08104E60: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _08104E32 + movs r0, 0x1 +_08104E6C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8104E18 + + thumb_func_start sub_8104E74 +sub_8104E74: @ 8104E74 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, _08104E9C @ =gUnknown_083ECC54 + ldr r2, _08104EA0 @ =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 +_08104E9C: .4byte gUnknown_083ECC54 +_08104EA0: .4byte gTasks + thumb_func_end sub_8104E74 + + thumb_func_start nullsub_69 +nullsub_69: @ 8104EA4 + bx lr + thumb_func_end nullsub_69 + + thumb_func_start sub_8104EA8 +sub_8104EA8: @ 8104EA8 + push {r4-r7,lr} + movs r6, 0 + movs r0, 0x30 +_08104EAE: + movs r4, 0 + lsls r5, r0, 16 + lsls r7, r6, 16 +_08104EB4: + ldr r0, _08104F0C @ =gSpriteTemplate_83ED414 + asrs r1, r5, 16 + movs r2, 0 + movs r3, 0xE + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08104F10 @ =gSprites + adds r1, r0 + ldrb r0, [r1, 0x5] + movs r2, 0xC + orrs r0, r2 + strb r0, [r1, 0x5] + strh r6, [r1, 0x2E] + strh r4, [r1, 0x30] + ldr r0, _08104F14 @ =0x0000ffff + strh r0, [r1, 0x34] + lsls r0, r4, 16 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x77 + ble _08104EB4 + movs r2, 0x80 + lsls r2, 9 + adds r1, r7, r2 + movs r2, 0xA0 + lsls r2, 14 + adds r0, r5, r2 + lsrs r0, 16 + lsrs r6, r1, 16 + asrs r1, 16 + cmp r1, 0x2 + ble _08104EAE + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08104F0C: .4byte gSpriteTemplate_83ED414 +_08104F10: .4byte gSprites +_08104F14: .4byte 0x0000ffff + thumb_func_end sub_8104EA8 + + thumb_func_start sub_8104F18 +sub_8104F18: @ 8104F18 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _08104F88 @ =0x02000000 + movs r0, 0x2E + ldrsh r1, [r5, r0] + lsls r1, 1 + adds r0, r4, 0 + adds r0, 0x1C + adds r1, r0 + ldrh r0, [r5, 0x30] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r5, 0x32] + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0x78 + bl __modsi3 + strh r0, [r5, 0x32] + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r1, 1 + adds r4, 0x22 + adds r1, r4 + ldrh r1, [r1] + adds r1, 0x1C + adds r0, r1 + strh r0, [r5, 0x22] + ldrh r4, [r5, 0x2E] + lsls r4, 24 + lsrs r4, 24 + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0x18 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8102BA4 + lsls r0, 24 + lsrs r0, 24 + bl GetSpriteTileStartByTag + adds r1, r5, 0 + adds r1, 0x40 + strh r0, [r1] + adds r0, r5, 0 + bl SetSpriteSheetFrameTileNum + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08104F88: .4byte 0x02000000 + thumb_func_end sub_8104F18 + + thumb_func_start sub_8104F8C +sub_8104F8C: @ 8104F8C + push {r4-r6,lr} + movs r4, 0xCB + movs r5, 0x1 + ldr r6, _08104FF0 @ =0x0000270f +_08104F94: + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + movs r1, 0x17 + movs r2, 0 + adds r3, r5, 0 + bl sub_8104FF4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 17 + subs r4, 0x7 + lsls r4, 16 + lsrs r4, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, r6 + ble _08104F94 + movs r4, 0xEB + movs r5, 0x1 + ldr r6, _08104FF0 @ =0x0000270f +_08104FC2: + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r0, r4, 0 + movs r1, 0x17 + movs r2, 0x1 + adds r3, r5, 0 + bl sub_8104FF4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 17 + subs r4, 0x7 + lsls r4, 16 + lsrs r4, 16 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, r6 + ble _08104FC2 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08104FF0: .4byte 0x0000270f + thumb_func_end sub_8104F8C + + thumb_func_start sub_8104FF4 +sub_8104FF4: @ 8104FF4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + adds r4, r3, 0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08105060 @ =gSpriteTemplate_83ED42C + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0xD + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, _08105064 @ =gSprites + adds r2, r0 + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + mov r0, r8 + strh r0, [r2, 0x2E] + strh r4, [r2, 0x30] + lsls r4, 16 + asrs r4, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 1 + strh r0, [r2, 0x32] + ldr r0, _08105068 @ =0x0000ffff + strh r0, [r2, 0x34] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105060: .4byte gSpriteTemplate_83ED42C +_08105064: .4byte gSprites +_08105068: .4byte 0x0000ffff + thumb_func_end sub_8104FF4 + + thumb_func_start sub_810506C +sub_810506C: @ 810506C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _081050C0 @ =0x02000000 + ldrh r2, [r1, 0xC] + movs r3, 0x2E + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _0810507E + ldrh r2, [r1, 0xE] +_0810507E: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, r2 + beq _081050B8 + strh r2, [r4, 0x34] + ldrh r1, [r4, 0x32] + adds r0, r2, 0 + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r1, [r4, 0x30] + adds r0, r2, 0 + bl __udivsi3 + lsls r0, 16 + movs r3, 0xE0 + lsls r3, 11 + adds r0, r3 + lsrs r2, r0, 16 + adds r0, r2, 0 + bl GetSpriteTileStartByTag + adds r1, r4, 0 + adds r1, 0x40 + strh r0, [r1] + adds r0, r4, 0 + bl SetSpriteSheetFrameTileNum +_081050B8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081050C0: .4byte 0x02000000 + thumb_func_end sub_810506C + + thumb_func_start sub_81050C4 +sub_81050C4: @ 81050C4 + push {lr} + ldr r0, _081050F4 @ =gSpriteTemplate_83ED444 + movs r1, 0x58 + movs r2, 0x48 + movs r3, 0xF + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _081050F8 @ =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] + ldr r1, _081050FC @ =gUnknown_083ED704 + bl SetSubspriteTables + pop {r0} + bx r0 + .align 2, 0 +_081050F4: .4byte gSpriteTemplate_83ED444 +_081050F8: .4byte gSprites +_081050FC: .4byte gUnknown_083ED704 + thumb_func_end sub_81050C4 + + thumb_func_start sub_8105100 +sub_8105100: @ 8105100 + push {lr} + ldr r0, _08105140 @ =gSpriteTemplate_83ED45C + movs r1, 0x8C + lsls r1, 1 + movs r2, 0x50 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08105144 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + movs r3, 0x4 + orrs r1, r3 + strb r1, [r2, 0x5] + adds r2, 0x3E + ldrb r1, [r2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2] + ldr r1, _08105148 @ =0x02000000 + adds r1, 0x3F + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08105140: .4byte gSpriteTemplate_83ED45C +_08105144: .4byte gSprites +_08105148: .4byte 0x02000000 + thumb_func_end sub_8105100 + + thumb_func_start sub_810514C +sub_810514C: @ 810514C + push {lr} + ldr r0, _08105168 @ =0x02000000 + adds r0, 0x3F + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810516C @ =gSprites + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_08105168: .4byte 0x02000000 +_0810516C: .4byte gSprites + thumb_func_end sub_810514C + + thumb_func_start sub_8105170 +sub_8105170: @ 8105170 + push {lr} + adds r2, r0, 0 + movs r0, 0 + strh r0, [r2, 0x24] + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0x4 + bne _081051B6 + movs r0, 0x8 + strh r0, [r2, 0x24] + strh r0, [r2, 0x26] + adds r0, r2, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0 + beq _081051A4 + adds r0, r2, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _081051B2 + b _081051B6 +_081051A4: + adds r0, r2, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _081051B6 +_081051B2: + ldr r0, _081051BC @ =0x0000fff8 + strh r0, [r2, 0x26] +_081051B6: + pop {r0} + bx r0 + .align 2, 0 +_081051BC: .4byte 0x0000fff8 + thumb_func_end sub_8105170 + + thumb_func_start sub_81051C0 +sub_81051C0: @ 81051C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0810526C @ =gSpriteTemplate_83ED474 + movs r7, 0xB8 + lsls r7, 1 + adds r1, r7, 0 + movs r2, 0x34 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105270 @ =gSprites + mov r10, r1 + adds r2, r0, r1 + ldrb r1, [r2, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + movs r3, 0x4 + mov r9, r3 + mov r1, r9 + orrs r0, r1 + strb r0, [r2, 0x5] + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x2 + mov r8, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1] + ldr r1, _08105274 @ =gUnknown_083ED73C + adds r0, r2, 0 + bl SetSubspriteTables + ldr r6, _08105278 @ =0x02000000 + adds r0, r6, 0 + adds r0, 0x49 + strb r4, [r0] + ldr r0, _0810527C @ =gSpriteTemplate_83ED48C + adds r1, r7, 0 + movs r2, 0x54 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + mov r1, r10 + adds r2, r0, r1 + ldrb r0, [r2, 0x5] + ands r5, r0 + mov r3, r9 + orrs r5, r3 + strb r5, [r2, 0x5] + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r8 + orrs r0, r3 + strb r0, [r1] + ldr r1, _08105280 @ =gUnknown_083ED75C + adds r0, r2, 0 + bl SetSubspriteTables + adds r6, 0x4A + strb r4, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810526C: .4byte gSpriteTemplate_83ED474 +_08105270: .4byte gSprites +_08105274: .4byte gUnknown_083ED73C +_08105278: .4byte 0x02000000 +_0810527C: .4byte gSpriteTemplate_83ED48C +_08105280: .4byte gUnknown_083ED75C + thumb_func_end sub_81051C0 + + thumb_func_start sub_8105284 +sub_8105284: @ 8105284 + push {r4,lr} + ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4 + ldr r1, _081052DC @ =gSpriteCoordOffsetX + ldrh r2, [r1] + movs r1, 0xA8 + subs r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x50 + movs r3, 0x7 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _081052E0 @ =gSprites + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + ldr r1, _081052E4 @ =gUnknown_083ED78C + bl SetSubspriteTables + ldr r0, _081052E8 @ =0x02000000 + adds r0, 0x42 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081052D8: .4byte gSpriteTemplate_83ED4A4 +_081052DC: .4byte gSpriteCoordOffsetX +_081052E0: .4byte gSprites +_081052E4: .4byte gUnknown_083ED78C +_081052E8: .4byte 0x02000000 + thumb_func_end sub_8105284 + + thumb_func_start sub_81052EC +sub_81052EC: @ 81052EC + push {r4-r7,lr} + movs r4, 0 + movs r5, 0 + ldr r6, _08105350 @ =0x0200004b +_081052F4: + ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC + movs r1, 0xB8 + lsls r1, 1 + movs r2, 0 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + ldr r1, _08105358 @ =gSprites + adds r3, r1 + ldrb r2, [r3, 0x5] + movs r7, 0xD + negs r7, r7 + adds r1, r7, 0 + ands r2, r1 + movs r1, 0x4 + orrs r2, r1 + strb r2, [r3, 0x5] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r1, [r1] + movs r2, 0x2 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + strh r5, [r3, 0x3C] + adds r1, r4, r6 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r5, 16 + movs r7, 0xA0 + lsls r7, 13 + adds r0, r7 + lsrs r5, r0, 16 + cmp r4, 0x2 + bls _081052F4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08105350: .4byte 0x0200004b +_08105354: .4byte gSpriteTemplate_83ED4BC +_08105358: .4byte gSprites + thumb_func_end sub_81052EC + + thumb_func_start sub_810535C +sub_810535C: @ 810535C + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0810539C @ =0x02000000 + ldrh r0, [r4, 0x3C] + ldrh r1, [r1, 0x14] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + movs r1, 0x28 + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + adds r1, r0, 0 + adds r1, 0x3B + strh r1, [r4, 0x22] + movs r1, 0x14 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + bl sub_8102C48 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnimIfDifferent + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810539C: .4byte 0x02000000 + thumb_func_end sub_810535C + + thumb_func_start sub_81053A0 +sub_81053A0: @ 81053A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r1, 0xB8 + lsls r1, 1 + ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 + movs r2, 0x64 + movs r3, 0x9 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r7, _08105450 @ =gSprites + adds r2, r0, r7 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x2 + mov r10, r3 + mov r3, r10 + orrs r0, r3 + strb r0, [r1] + ldrb r1, [r2, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + movs r1, 0x4 + mov r8, r1 + mov r3, r8 + orrs r0, r3 + strb r0, [r2, 0x5] + ldr r0, _08105454 @ =gUnknown_083ED7B4 + mov r9, r0 + adds r0, r2, 0 + mov r1, r9 + bl SetSubspriteTables + ldr r6, _08105458 @ =0x02000000 + adds r0, r6, 0 + adds r0, 0x4E + strb r4, [r0] + movs r1, 0x90 + lsls r1, 1 + ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 + movs r2, 0x68 + movs r3, 0x4 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r2, r0, r7 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + mov r3, r10 + orrs r0, r3 + strb r0, [r1] + ldrb r0, [r2, 0x5] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r2, 0x5] + adds r0, r2, 0 + mov r1, r9 + bl SetSubspriteTables + adds r6, 0x4F + strb r4, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810544C: .4byte gSpriteTemplate_83ED4D4 +_08105450: .4byte gSprites +_08105454: .4byte gUnknown_083ED7B4 +_08105458: .4byte 0x02000000 + thumb_func_end sub_81053A0 + + thumb_func_start sub_810545C +sub_810545C: @ 810545C + push {r4,lr} + ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC + movs r1, 0xB8 + lsls r1, 1 + movs r2, 0x4C + movs r3, 0xB + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _081054AC @ =gSprites + adds r0, r1 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r1, _081054B0 @ =gUnknown_083ED7D4 + bl SetSubspriteTables + ldr r0, _081054B4 @ =0x02000000 + adds r0, 0x40 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081054A8: .4byte gSpriteTemplate_83ED4EC +_081054AC: .4byte gSprites +_081054B0: .4byte gUnknown_083ED7D4 +_081054B4: .4byte 0x02000000 + thumb_func_end sub_810545C + + thumb_func_start sub_81054B8 +sub_81054B8: @ 81054B8 + push {r4,r5,lr} + ldr r4, _08105518 @ =0x02000000 + adds r0, r4, 0 + adds r0, 0x40 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C @ =gSprites + adds r0, r1 + bl DestroySprite + movs r5, 0 + adds r4, 0x49 +_081054D4: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _081054D4 + movs r5, 0 + ldr r4, _08105520 @ =0x0200004b +_081054F4: + adds r0, r5, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0810551C @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _081054F4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105518: .4byte 0x02000000 +_0810551C: .4byte gSprites +_08105520: .4byte 0x0200004b + thumb_func_end sub_81054B8 + + thumb_func_start sub_8105524 +sub_8105524: @ 8105524 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810554C @ =0x0200004e +_0810552A: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105550 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0810552A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810554C: .4byte 0x0200004e +_08105550: .4byte gSprites + thumb_func_end sub_8105524 + + thumb_func_start sub_8105554 +sub_8105554: @ 8105554 + push {lr} + ldr r0, _08105570 @ =0x02000000 + adds r0, 0x42 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105574 @ =gSprites + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_08105570: .4byte 0x02000000 +_08105574: .4byte gSprites + thumb_func_end sub_8105554 + + thumb_func_start sub_8105578 +sub_8105578: @ 8105578 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldr r0, _0810561C @ =gSpriteTemplate_83ED504 + mov r10, r0 + movs r1, 0x98 + movs r2, 0x20 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, _08105620 @ =gSprites + mov r9, r2 + adds r3, r1, r2 + ldrb r2, [r3, 0x5] + movs r4, 0xD + negs r4, r4 + adds r1, r4, 0 + ands r1, r2 + movs r2, 0x4 + mov r8, r2 + mov r2, r8 + orrs r1, r2 + strb r1, [r3, 0x5] + adds r5, r3, 0 + adds r5, 0x3F + ldrb r1, [r5] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r5] + ldr r5, _08105624 @ =0x02000000 + adds r1, r5, 0 + adds r1, 0x50 + strb r0, [r1] + movs r0, 0x8 + strh r0, [r3, 0x2E] + ldr r0, _08105628 @ =0x0000ffff + strh r0, [r3, 0x30] + movs r0, 0x1 + negs r0, r0 + strh r0, [r3, 0x32] + movs r6, 0x20 + strh r6, [r3, 0x3C] + mov r0, r10 + movs r1, 0xB8 + movs r2, 0x20 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + mov r2, r9 + adds r3, r1, r2 + ldrb r1, [r3, 0x5] + ands r4, r1 + mov r1, r8 + orrs r4, r1 + strb r4, [r3, 0x5] + adds r5, 0x51 + strb r0, [r5] + movs r0, 0x1 + strh r0, [r3, 0x30] + subs r0, 0x2 + strh r0, [r3, 0x32] + strh r6, [r3, 0x3C] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810561C: .4byte gSpriteTemplate_83ED504 +_08105620: .4byte gSprites +_08105624: .4byte 0x02000000 +_08105628: .4byte 0x0000ffff + thumb_func_end sub_8105578 + + thumb_func_start sub_810562C +sub_810562C: @ 810562C + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + movs r1, 0x2E + ldrsh r4, [r2, r1] + cmp r4, 0 + beq _08105650 + subs r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x2E] + strh r1, [r2, 0x24] + strh r1, [r2, 0x26] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + b _08105682 +_08105650: + 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, 0x30] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _08105682 + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x2E] + strh r4, [r2, 0x34] +_08105682: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810562C + + thumb_func_start sub_8105688 +sub_8105688: @ 8105688 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _081056B8 @ =gSprites + ldr r3, _081056BC @ =0x02000000 + adds r1, r3, 0 + adds r1, 0x50 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x3C] + adds r3, 0x51 + ldrb r2, [r3] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r0, [r1, 0x3C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081056B8: .4byte gSprites +_081056BC: .4byte 0x02000000 + thumb_func_end sub_8105688 + + thumb_func_start sub_81056C0 +sub_81056C0: @ 81056C0 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _081056E8 @ =0x02000050 +_081056C6: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081056EC @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _081056C6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081056E8: .4byte 0x02000050 +_081056EC: .4byte gSprites + thumb_func_end sub_81056C0 + + thumb_func_start sub_81056F0 +sub_81056F0: @ 81056F0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r0, _08105778 @ =gSpriteTemplate_83ED51C + mov r8, r0 + movs r1, 0x48 + movs r2, 0x50 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810577C @ =gSprites + mov r9, r1 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r9 + ldrb r3, [r2, 0x5] + movs r4, 0xD + negs r4, r4 + adds r1, r4, 0 + ands r1, r3 + movs r6, 0x4 + orrs r1, r6 + strb r1, [r2, 0x5] + movs r3, 0 + movs r1, 0x1 + strh r1, [r2, 0x2E] + strh r3, [r2, 0x38] + movs r1, 0x10 + strh r1, [r2, 0x3A] + movs r1, 0x8 + strh r1, [r2, 0x3C] + ldr r5, _08105780 @ =0x02000000 + adds r1, r5, 0 + adds r1, 0x52 + strb r0, [r1] + mov r0, r8 + movs r1, 0x68 + movs r2, 0x50 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r2, [r1, 0x5] + ands r4, r2 + orrs r4, r6 + strb r4, [r1, 0x5] + adds r1, 0x3F + ldrb r2, [r1] + movs r3, 0x1 + orrs r2, r3 + strb r2, [r1] + adds r5, 0x53 + strb r0, [r5] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105778: .4byte gSpriteTemplate_83ED51C +_0810577C: .4byte gSprites +_08105780: .4byte 0x02000000 + thumb_func_end sub_81056F0 + + thumb_func_start sub_8105784 +sub_8105784: @ 8105784 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _081057E0 @ =gUnknown_083ECC58 + mov r0, sp + movs r2, 0x2 + bl memcpy + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081057D6 + ldrh r0, [r4, 0x3A] + subs r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + cmp r0, 0 + bgt _081057D6 + movs r0, 0x7 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r2, _081057E4 @ =0x01030000 + adds r0, r2 + lsrs r0, 16 + movs r2, 0x38 + ldrsh r1, [r4, r2] + add r1, sp + ldrb r3, [r1] + adds r1, r3, 0 + adds r2, r3, 0 + bl MultiplyInvertedPaletteRGBComponents + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3C] + strh r0, [r4, 0x3A] +_081057D6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081057E0: .4byte gUnknown_083ECC58 +_081057E4: .4byte 0x01030000 + thumb_func_end sub_8105784 + + thumb_func_start sub_81057E8 +sub_81057E8: @ 81057E8 + ldr r3, _081057FC @ =gSprites + ldr r1, _08105800 @ =0x02000000 + adds r1, 0x52 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + strh r0, [r1, 0x3C] + bx lr + .align 2, 0 +_081057FC: .4byte gSprites +_08105800: .4byte 0x02000000 + thumb_func_end sub_81057E8 + + thumb_func_start sub_8105804 +sub_8105804: @ 8105804 + push {r4,r5,lr} + movs r0, 0x7 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r1, _08105848 @ =0x01030000 + adds r0, r1 + lsrs r0, 16 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl MultiplyInvertedPaletteRGBComponents + movs r4, 0 + ldr r5, _0810584C @ =0x02000052 +_08105824: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08105850 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _08105824 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105848: .4byte 0x01030000 +_0810584C: .4byte 0x02000052 +_08105850: .4byte gSprites + thumb_func_end sub_8105804 + + thumb_func_start sub_8105854 +sub_8105854: @ 8105854 + push {lr} + ldr r0, _08105888 @ =gSpriteTemplate_83ED534 + movs r1, 0xA8 + movs r2, 0x50 + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810588C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + ands r2, r3 + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1, 0x5] + ldr r1, _08105890 @ =0x02000000 + adds r1, 0x41 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08105888: .4byte gSpriteTemplate_83ED534 +_0810588C: .4byte gSprites +_08105890: .4byte 0x02000000 + thumb_func_end sub_8105854 + + thumb_func_start sub_8105894 +sub_8105894: @ 8105894 + ldr r1, _0810589C @ =gSpriteCoordOffsetY + ldrh r1, [r1] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_0810589C: .4byte gSpriteCoordOffsetY + thumb_func_end sub_8105894 + + thumb_func_start sub_81058A0 +sub_81058A0: @ 81058A0 + push {lr} + ldr r0, _081058BC @ =0x02000000 + adds r0, 0x41 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081058C0 @ =gSprites + adds r0, r1 + bl DestroySprite + pop {r0} + bx r0 + .align 2, 0 +_081058BC: .4byte 0x02000000 +_081058C0: .4byte gSprites + thumb_func_end sub_81058A0 + + thumb_func_start sub_81058C4 +sub_81058C4: @ 81058C4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, _08105938 @ =gUnknown_083ECC5A + mov r0, sp + movs r2, 0x8 + bl memcpy + movs r4, 0 + ldr r5, _0810593C @ =0x02000054 +_081058D6: + ldr r0, _08105940 @ =gSpriteCoordOffsetX + ldrh r0, [r0] + movs r1, 0x50 + subs r1, r0 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08105944 @ =gSpriteTemplate_83ED54C + movs r2, 0x44 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + ldr r1, _08105948 @ =gSprites + adds r3, r1 + ldrb r2, [r3, 0x5] + movs r6, 0xD + negs r6, r6 + adds r1, r6, 0 + ands r2, r1 + movs r1, 0x4 + orrs r2, r1 + strb r2, [r3, 0x5] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r1, [r1] + movs r2, 0x2 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + lsls r1, r4, 1 + add r1, sp + ldrh r1, [r1] + strh r1, [r3, 0x2E] + adds r1, r4, r5 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081058D6 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08105938: .4byte gUnknown_083ECC5A +_0810593C: .4byte 0x02000054 +_08105940: .4byte gSpriteCoordOffsetX +_08105944: .4byte gSpriteTemplate_83ED54C +_08105948: .4byte gSprites + thumb_func_end sub_81058C4 + + thumb_func_start sub_810594C +sub_810594C: @ 810594C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x2 + movs r4, 0 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl Cos + strh r0, [r5, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + movs r1, 0x6 + bl Sin + strh r0, [r5, 0x26] + adds r1, r5, 0 + adds r1, 0x43 + strb r4, [r1] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x7F + ble _08105986 + movs r0, 0x2 + strb r0, [r1] +_08105986: + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _081059B0 + adds r3, r5, 0 + adds r3, 0x3F + ldrb r2, [r3] + lsls r0, r2, 31 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0 + strh r0, [r5, 0x30] +_081059B0: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810594C + + thumb_func_start sub_81059B8 +sub_81059B8: @ 81059B8 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _081059E0 @ =0x02000054 +_081059BE: + adds r0, r4, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081059E4 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _081059BE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081059E0: .4byte 0x02000054 +_081059E4: .4byte gSprites + thumb_func_end sub_81059B8 + + thumb_func_start sub_81059E8 +sub_81059E8: @ 81059E8 + push {r4,lr} + ldr r0, _08105A2C @ =gSpriteTemplate_83ED564 + movs r1, 0xA8 + movs r2, 0x3C + movs r3, 0x8 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105A30 @ =gSprites + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + bl InitSpriteAffineAnim + ldr r0, _08105A34 @ =0x02000000 + adds r0, 0x43 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105A2C: .4byte gSpriteTemplate_83ED564 +_08105A30: .4byte gSprites +_08105A34: .4byte 0x02000000 + thumb_func_end sub_81059E8 + + thumb_func_start sub_8105A38 +sub_8105A38: @ 8105A38 + push {lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x2E] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08105A5A + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08105AB4 + adds r0, r2, 0x1 + strh r0, [r3, 0x2E] + b _08105AB4 +_08105A5A: + cmp r0, 0x1 + bne _08105A96 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x17 + ble _08105AB4 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + movs r0, 0 + strh r0, [r3, 0x32] + b _08105AB4 +_08105A96: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _08105AB4 + movs r0, 0x1 + strh r0, [r3, 0x3C] +_08105AB4: + ldrh r0, [r3, 0x30] + movs r1, 0xFF + ands r1, r0 + adds r1, 0x10 + strh r1, [r3, 0x30] + lsrs r1, 8 + ldrh r0, [r3, 0x26] + subs r0, r1 + strh r0, [r3, 0x26] + pop {r0} + bx r0 + thumb_func_end sub_8105A38 + + thumb_func_start sub_8105ACC +sub_8105ACC: @ 8105ACC + ldr r2, _08105AE4 @ =gSprites + ldr r0, _08105AE8 @ =0x02000000 + adds r0, 0x43 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_08105AE4: .4byte gSprites +_08105AE8: .4byte 0x02000000 + thumb_func_end sub_8105ACC + + thumb_func_start sub_8105AEC +sub_8105AEC: @ 8105AEC + push {r4,lr} + ldr r0, _08105B14 @ =0x02000000 + adds r0, 0x43 + ldrb r0, [r0] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _08105B18 @ =gSprites + adds r4, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105B14: .4byte 0x02000000 +_08105B18: .4byte gSprites + thumb_func_end sub_8105AEC + + thumb_func_start sub_8105B1C +sub_8105B1C: @ 8105B1C + push {r4,lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC + lsls r3, 16 + asrs r3, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r3, 0 + movs r3, 0xC + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _08105B6C @ =gSprites + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x5] + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + bl InitSpriteAffineAnim + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08105B68: .4byte gSpriteTemplate_83ED6CC +_08105B6C: .4byte gSprites + thumb_func_end sub_8105B1C + + thumb_func_start sub_8105B70 +sub_8105B70: @ 8105B70 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08105B84 + movs r0, 0x1 + strh r0, [r2, 0x3C] +_08105B84: + pop {r0} + bx r0 + thumb_func_end sub_8105B70 + + thumb_func_start sub_8105B88 +sub_8105B88: @ 8105B88 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _08105BB0 @ =gSprites + adds r4, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08105BB0: .4byte gSprites + thumb_func_end sub_8105B88 + + thumb_func_start sub_8105BB4 +sub_8105BB4: @ 8105BB4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r3, _08105BF0 @ =gUnknown_083ECF0C + lsrs r1, 22 + adds r3, r1, r3 + ldr r5, [r3] + ldr r3, _08105BF4 @ =gUnknown_083ECE7E + adds r4, r1, r3 + movs r6, 0 + ldrsh r4, [r4, r6] + adds r3, 0x2 + adds r1, r3 + movs r6, 0 + ldrsh r3, [r1, r6] + lsls r2, 16 + asrs r2, 16 + str r2, [sp] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8105BF8 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08105BF0: .4byte gUnknown_083ECF0C +_08105BF4: .4byte gUnknown_083ECE7E + thumb_func_end sub_8105BB4 + + thumb_func_start sub_8105BF8 +sub_8105BF8: @ 8105BF8 + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + ldr r5, [sp, 0x14] + lsls r4, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _08105C58 @ =gUnknown_083EDB5C + lsrs r4, 22 + adds r0, r4, r0 + ldr r0, [r0] + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x10 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _08105C5C @ =gSprites + adds r2, r0, r1 + ldrb r0, [r2, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r2, 0x5] + str r6, [r2, 0x1C] + strh r5, [r2, 0x3A] + movs r0, 0x1 + strh r0, [r2, 0x3C] + ldr r0, _08105C60 @ =gUnknown_083EDBC4 + adds r4, r0 + ldr r1, [r4] + cmp r1, 0 + beq _08105C50 + adds r0, r2, 0 + bl SetSubspriteTables +_08105C50: + adds r0, r7, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08105C58: .4byte gUnknown_083EDB5C +_08105C5C: .4byte gSprites +_08105C60: .4byte gUnknown_083EDBC4 + thumb_func_end sub_8105BF8 + + thumb_func_start sub_8105C64 +sub_8105C64: @ 8105C64 + movs r1, 0 + strh r1, [r0, 0x3C] + bx lr + thumb_func_end sub_8105C64 + + thumb_func_start sub_8105C6C +sub_8105C6C: @ 8105C6C + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldr r1, _08105CE8 @ =gUnknown_083ECC62 + mov r0, sp + movs r2, 0x8 + bl memcpy + add r5, sp, 0x8 + ldr r1, _08105CEC @ =gUnknown_083ECC6A + adds r0, r5, 0 + movs r2, 0x8 + bl memcpy + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _08105CB2 + adds r3, r4, 0 + adds r3, 0x42 + ldrb r2, [r3] + lsls r0, r2, 26 + lsrs r0, 26 + movs r1, 0x1 + eors r1, r0 + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, 0 + strh r0, [r4, 0x30] +_08105CB2: + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x42 + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + beq _08105CDE + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, 0x26] +_08105CDE: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08105CE8: .4byte gUnknown_083ECC62 +_08105CEC: .4byte gUnknown_083ECC6A + thumb_func_end sub_8105C6C + + thumb_func_start sub_8105CF0 +sub_8105CF0: @ 8105CF0 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105CF0 + + thumb_func_start sub_8105D08 +sub_8105D08: @ 8105D08 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105D08 + + thumb_func_start sub_8105D20 +sub_8105D20: @ 8105D20 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x1 + orrs r1, r2 + movs r2, 0x2 + orrs r1, r2 + strb r1, [r3] + bl sub_8105C6C + pop {r0} + bx r0 + thumb_func_end sub_8105D20 + + thumb_func_start sub_8105D3C +sub_8105D3C: @ 8105D3C + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _08105D70 + cmp r0, 0x1 + bgt _08105D52 + cmp r0, 0 + beq _08105D5C + b _08105DA0 +_08105D52: + cmp r0, 0x2 + beq _08105D80 + cmp r0, 0x3 + beq _08105D9C + b _08105DA0 +_08105D5C: + ldrh r0, [r2, 0x20] + adds r0, 0x4 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xCF + ble _08105DA0 + movs r0, 0xD0 + strh r0, [r2, 0x20] + b _08105D8E +_08105D70: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105DA0 + b _08105D8E +_08105D80: + ldrh r0, [r2, 0x20] + adds r0, 0x4 + strh r0, [r2, 0x20] + lsls r0, 16 + ldr r1, _08105D98 @ =0x010f0000 + cmp r0, r1 + ble _08105DA0 +_08105D8E: + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + b _08105DA0 + .align 2, 0 +_08105D98: .4byte 0x010f0000 +_08105D9C: + movs r0, 0 + strh r0, [r2, 0x3C] +_08105DA0: + pop {r0} + bx r0 + thumb_func_end sub_8105D3C + + thumb_func_start sub_8105DA4 +sub_8105DA4: @ 8105DA4 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _08105DD8 + cmp r0, 0x1 + bgt _08105DBA + cmp r0, 0 + beq _08105DC4 + b _08105E02 +_08105DBA: + cmp r0, 0x2 + beq _08105DE8 + cmp r0, 0x3 + beq _08105DFE + b _08105E02 +_08105DC4: + ldrh r0, [r1, 0x20] + subs r0, 0x4 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + bgt _08105E02 + movs r0, 0xD0 + strh r0, [r1, 0x20] + b _08105DF6 +_08105DD8: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105E02 + b _08105DF6 +_08105DE8: + ldrh r0, [r1, 0x20] + subs r0, 0x4 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x90 + bgt _08105E02 +_08105DF6: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _08105E02 +_08105DFE: + movs r0, 0 + strh r0, [r1, 0x3C] +_08105E02: + pop {r0} + bx r0 + thumb_func_end sub_8105DA4 + + thumb_func_start sub_8105E08 +sub_8105E08: @ 8105E08 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bhi _08105EAE + lsls r0, 2 + ldr r1, _08105E20 @ =_08105E24 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08105E20: .4byte _08105E24 + .align 2, 0 +_08105E24: + .4byte _08105E3C + .4byte _08105E52 + .4byte _08105E70 + .4byte _08105E84 + .4byte _08105E94 + .4byte _08105EAA +_08105E3C: + ldr r0, _08105E6C @ =0x02000000 + ldrb r1, [r0, 0xA] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08105E52: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08105EAE + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0 + strh r0, [r4, 0x30] + b _08105EAE + .align 2, 0 +_08105E6C: .4byte 0x02000000 +_08105E70: + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xCF + ble _08105EAE + movs r0, 0xD0 + strh r0, [r4, 0x20] + b _08105EA2 +_08105E84: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5A + ble _08105EAE + b _08105EA2 +_08105E94: + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF7 + ble _08105EAE +_08105EA2: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _08105EAE +_08105EAA: + movs r0, 0 + strh r0, [r4, 0x3C] +_08105EAE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8105E08 + + thumb_func_start sub_8105EB4 +sub_8105EB4: @ 8105EB4 + push {lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0x1 + beq _08105EE2 + cmp r0, 0x1 + bgt _08105ECA + cmp r0, 0 + beq _08105ED0 + b _08105F50 +_08105ECA: + cmp r0, 0x2 + beq _08105F00 + b _08105F50 +_08105ED0: + adds r2, r3, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] +_08105EE2: + ldrh r0, [r3, 0x22] + adds r0, 0x8 + strh r0, [r3, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + ble _08105F50 + movs r0, 0x70 + strh r0, [r3, 0x22] + movs r0, 0x10 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _08105F50 +_08105F00: + movs r0, 0x32 + ldrsh r2, [r3, r0] + cmp r2, 0 + bne _08105F46 + ldrh r0, [r3, 0x22] + ldrh r1, [r3, 0x30] + subs r0, r1 + strh r0, [r3, 0x22] + negs r1, r1 + strh r1, [r3, 0x30] + ldrh r0, [r3, 0x34] + adds r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _08105F46 + lsls r0, r1, 16 + asrs r0, 18 + strh r0, [r3, 0x30] + strh r2, [r3, 0x34] + adds r1, r0, 0 + cmp r1, 0 + bne _08105F46 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + strh r1, [r3, 0x3C] + adds r2, r3, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08105F46: + ldrh r0, [r3, 0x32] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r3, 0x32] +_08105F50: + pop {r0} + bx r0 + thumb_func_end sub_8105EB4 + + thumb_func_start sub_8105F54 +sub_8105F54: @ 8105F54 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08105F66 + cmp r0, 0x1 + beq _08105F7C + b _08105F98 +_08105F66: + ldrh r0, [r1, 0x30] + adds r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _08105F98 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + b _08105F98 +_08105F7C: + ldrh r0, [r1, 0x22] + adds r0, 0x2 + strh r0, [r1, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2F + ble _08105F98 + movs r0, 0x30 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + movs r0, 0 + strh r0, [r1, 0x3C] +_08105F98: + pop {r0} + bx r0 + thumb_func_end sub_8105F54 + + thumb_func_start sub_8105F9C +sub_8105F9C: @ 8105F9C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08105FAE + cmp r0, 0x1 + beq _08106000 + b _0810604E +_08105FAE: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x20 + ble _0810604E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x5 + strh r0, [r4, 0x30] + ldrb r0, [r4, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r2, _08105FFC @ =REG_MOSAIC + ldrh r1, [r4, 0x30] + lsls r0, r1, 4 + orrs r0, r1 + lsls r0, 8 + strh r0, [r2] + b _0810604E + .align 2, 0 +_08105FFC: .4byte REG_MOSAIC +_08106000: + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r4, 0x30] + subs r0, r1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bge _08106016 + movs r0, 0 + strh r0, [r4, 0x30] +_08106016: + ldr r2, _08106054 @ =REG_MOSAIC + ldrh r1, [r4, 0x30] + lsls r0, r1, 4 + orrs r0, r1 + lsls r0, 8 + strh r0, [r2] + ldrh r1, [r4, 0x32] + movs r0, 0xFF + ands r0, r1 + adds r0, 0x80 + strh r0, [r4, 0x32] + movs r0, 0x30 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _0810604E + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnim +_0810604E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106054: .4byte REG_MOSAIC + thumb_func_end sub_8105F9C + + thumb_func_start sub_8106058 +sub_8106058: @ 8106058 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x2 + bgt _081060A8 + ldr r1, _081060A4 @ =gUnknown_083EDE10 + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081060E4 + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + movs r0, 0 + strh r0, [r5, 0x32] + b _081060E4 + .align 2, 0 +_081060A4: .4byte gUnknown_083EDE10 +_081060A8: + ldr r1, _081060F8 @ =gUnknown_083EDE10 + movs r2, 0x30 + ldrsh r0, [r5, r2] + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldrh r0, [r5, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + ble _081060E4 + strh r1, [r5, 0x30] + strh r1, [r5, 0x32] +_081060E4: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnimIfDifferent + movs r0, 0 + strh r0, [r5, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081060F8: .4byte gUnknown_083EDE10 + thumb_func_end sub_8106058 + + thumb_func_start sub_81060FC +sub_81060FC: @ 81060FC + push {r4-r6,lr} + sub sp, 0x30 + adds r4, r0, 0 + ldr r1, _08106138 @ =gUnknown_083ECC72 + mov r0, sp + movs r2, 0x10 + bl memcpy + add r6, sp, 0x10 + ldr r1, _0810613C @ =gUnknown_083ECC82 + adds r0, r6, 0 + movs r2, 0x10 + bl memcpy + add r5, sp, 0x20 + ldr r1, _08106140 @ =gUnknown_083ECC92 + adds r0, r5, 0 + movs r2, 0x10 + bl memcpy + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08106174 + cmp r0, 0x1 + bgt _08106144 + cmp r0, 0 + beq _0810614A + b _081061C0 + .align 2, 0 +_08106138: .4byte gUnknown_083ECC72 +_0810613C: .4byte gUnknown_083ECC82 +_08106140: .4byte gUnknown_083ECC92 +_08106144: + cmp r0, 0x2 + beq _08106188 + b _081061C0 +_0810614A: + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r4, 0x26] + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r5, r0 + ldrh r0, [r0] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08106174: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _081061C0 + b _081061BA +_08106188: + ldrh r0, [r4, 0x24] + movs r2, 0x24 + ldrsh r1, [r4, r2] + cmp r1, 0 + ble _08106196 + subs r0, 0x4 + b _0810619C +_08106196: + cmp r1, 0 + bge _0810619E + adds r0, 0x4 +_0810619C: + strh r0, [r4, 0x24] +_0810619E: + ldrh r0, [r4, 0x26] + movs r2, 0x26 + ldrsh r1, [r4, r2] + cmp r1, 0 + ble _081061AC + subs r0, 0x4 + b _081061B2 +_081061AC: + cmp r1, 0 + bge _081061B4 + adds r0, 0x4 +_081061B2: + strh r0, [r4, 0x26] +_081061B4: + ldr r0, [r4, 0x24] + cmp r0, 0 + bne _081061C0 +_081061BA: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_081061C0: + add sp, 0x30 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81060FC + + thumb_func_start sub_81061C8 +sub_81061C8: @ 81061C8 + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldr r1, _0810622C @ =gUnknown_083ECCA2 + mov r0, sp + movs r2, 0x10 + bl memcpy + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081061EA + adds r0, r1, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0xC + strh r0, [r4, 0x30] +_081061EA: + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3A + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08106224 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] +_08106224: + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810622C: .4byte gUnknown_083ECCA2 + thumb_func_end sub_81061C8 + + thumb_func_start sub_8106230 +sub_8106230: @ 8106230 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _0810627A + cmp r0, 0x1 + bgt _08106248 + cmp r0, 0 + beq _08106252 + b _0810634A +_08106248: + cmp r0, 0x2 + beq _081062C4 + cmp r0, 0x3 + beq _081062FC + b _0810634A +_08106252: + ldr r2, _081062BC @ =0x02000000 + adds r1, r2, 0 + adds r1, 0x5C + movs r0, 0x2F + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x3F + strh r0, [r1] + subs r1, 0x4 + ldr r0, _081062C0 @ =0x00002088 + strh r0, [r1] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_0810627A: + ldrh r0, [r5, 0x30] + adds r2, r0, 0x2 + strh r2, [r5, 0x30] + adds r0, 0xB2 + strh r0, [r5, 0x32] + movs r1, 0xF0 + subs r1, r2 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + ble _08106296 + movs r0, 0xD0 + strh r0, [r5, 0x32] +_08106296: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xCF + bgt _081062A2 + movs r0, 0xD0 + strh r0, [r5, 0x34] +_081062A2: + ldr r2, _081062BC @ =0x02000000 + ldrh r0, [r5, 0x32] + lsls r0, 8 + ldrh r1, [r5, 0x34] + orrs r0, r1 + adds r1, r2, 0 + adds r1, 0x58 + strh r0, [r1] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x33 + ble _0810634A + b _0810633C + .align 2, 0 +_081062BC: .4byte 0x02000000 +_081062C0: .4byte 0x00002088 +_081062C4: + ldr r6, _08106354 @ =0x02000000 + movs r1, 0x12 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _0810634A + ldr r1, _08106358 @ =SpriteCallbackDummy + movs r4, 0 + str r4, [sp] + movs r0, 0x5 + movs r2, 0xD0 + movs r3, 0x74 + bl sub_8104D30 + adds r1, r6, 0 + adds r1, 0x58 + ldr r0, _0810635C @ =0x0000c0e0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xD1 + lsls r0, 7 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x2F + strh r0, [r1] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + strh r4, [r5, 0x30] +_081062FC: + ldrh r0, [r5, 0x30] + adds r2, r0, 0x2 + strh r2, [r5, 0x30] + adds r0, 0xC2 + strh r0, [r5, 0x32] + movs r1, 0xE0 + subs r1, r2 + strh r1, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD0 + ble _08106318 + movs r0, 0xD0 + strh r0, [r5, 0x32] +_08106318: + movs r1, 0x34 + ldrsh r0, [r5, r1] + cmp r0, 0xCF + bgt _08106324 + movs r0, 0xD0 + strh r0, [r5, 0x34] +_08106324: + ldr r2, _08106354 @ =0x02000000 + ldrh r0, [r5, 0x32] + lsls r0, 8 + ldrh r1, [r5, 0x34] + orrs r0, r1 + adds r1, r2, 0 + adds r1, 0x58 + strh r0, [r1] + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0xF + ble _0810634A +_0810633C: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + adds r1, r2, 0 + adds r1, 0x5C + movs r0, 0x3F + strh r0, [r1] +_0810634A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08106354: .4byte 0x02000000 +_08106358: .4byte SpriteCallbackDummy +_0810635C: .4byte 0x0000c0e0 + thumb_func_end sub_8106230 + + thumb_func_start nullsub_70 +nullsub_70: @ 8106360 + bx lr + thumb_func_end nullsub_70 + + thumb_func_start sub_8106364 +sub_8106364: @ 8106364 + ldr r1, _0810636C @ =REG_MOSAIC + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_0810636C: .4byte REG_MOSAIC + thumb_func_end sub_8106364 + + thumb_func_start sub_8106370 +sub_8106370: @ 8106370 + push {r4,lr} + ldr r0, _08106398 @ =gUnknown_083EDE20 + ldr r4, [r0] + movs r0, 0x6 + bl IndexOfSpritePaletteTag + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 17 + adds r1, r0 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106398: .4byte gUnknown_083EDE20 + thumb_func_end sub_8106370 + + thumb_func_start sub_810639C +sub_810639C: @ 810639C + ldr r2, _081063BC @ =0x02000000 + adds r1, r2, 0 + adds r1, 0x58 + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0xA0 + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x5C + movs r1, 0x3F + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_081063BC: .4byte 0x02000000 + thumb_func_end sub_810639C + + thumb_func_start sub_81063C0 +sub_81063C0: @ 81063C0 + push {r4,lr} + bl sub_8106404 + ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx + ldr r4, _081063F4 @ =0x02010000 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _081063F8 @ =gUnknown_083EDE8C + movs r1, 0xC8 + lsls r1, 6 + adds r4, r1 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _081063FC @ =gUnknown_083EDC2C + bl LoadSpriteSheets + ldr r0, _08106400 @ =gSlotMachineSpritePalettes + bl LoadSpritePalettes + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081063F0: .4byte gSlotMachineReelTimeLights_Gfx +_081063F4: .4byte 0x02010000 +_081063F8: .4byte gUnknown_083EDE8C +_081063FC: .4byte gUnknown_083EDC2C +_08106400: .4byte gSlotMachineSpritePalettes + thumb_func_end sub_81063C0 + + thumb_func_start sub_8106404 +sub_8106404: @ 8106404 + push {r4,r5,lr} + ldr r3, _0810643C @ =0x02010000 + movs r2, 0 + ldr r5, _08106440 @ =gUnknown_083EDCDC + ldr r0, _08106444 @ =gUnknown_083EDCE4 + ldr r4, [r0] +_08106410: + movs r1, 0 + adds r2, 0x1 +_08106414: + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r3] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + adds r3, 0x1 + cmp r1, 0x1F + bls _08106414 + lsls r0, r2, 24 + lsrs r2, r0, 24 + cmp r2, 0x3F + bls _08106410 + adds r0, r5, 0 + bl LoadSpriteSheet + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810643C: .4byte 0x02010000 +_08106440: .4byte gUnknown_083EDCDC +_08106444: .4byte gUnknown_083EDCE4 + thumb_func_end sub_8106404 + + thumb_func_start sub_8106448 +sub_8106448: @ 8106448 + push {r4-r7,lr} + ldr r0, _081064A0 @ =gSlotMachine_Gfx + ldr r4, _081064A4 @ =0x02010000 + adds r1, r4, 0 + bl sub_800D238 + movs r3, 0xC0 + lsls r3, 19 + movs r5, 0xE9 + lsls r5, 5 + ldr r1, _081064A8 @ =0x040000d4 + ldr r6, _081064AC @ =0x80000800 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08106468: + str r4, [r1] + str r3, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, r2 + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _08106468 + str r4, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, _081064B0 @ =gUnknown_08E95A18 + movs r1, 0 + movs r2, 0xA0 + bl LoadPalette + ldr r0, _081064B4 @ =gUnknown_083EDE24 + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081064A0: .4byte gSlotMachine_Gfx +_081064A4: .4byte 0x02010000 +_081064A8: .4byte 0x040000d4 +_081064AC: .4byte 0x80000800 +_081064B0: .4byte gUnknown_08E95A18 +_081064B4: .4byte gUnknown_083EDE24 + thumb_func_end sub_8106448 + + thumb_func_start sub_81064B8 +sub_81064B8: @ 81064B8 + push {lr} + ldr r0, _081064D0 @ =gUnknown_08E95AB8 + ldr r1, _081064D4 @ =0x0600e800 + movs r2, 0xA0 + lsls r2, 2 + bl CpuSet + bl sub_81064D8 + pop {r0} + bx r0 + .align 2, 0 +_081064D0: .4byte gUnknown_08E95AB8 +_081064D4: .4byte 0x0600e800 + thumb_func_end sub_81064B8 + + thumb_func_start sub_81064D8 +sub_81064D8: @ 81064D8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, _0810658C @ =0x0600f000 + movs r3, 0x4 + movs r0, 0xC0 + lsls r0, 1 + mov r12, r0 + movs r1, 0xC0 + lsls r1, 2 + mov r9, r1 + movs r2, 0xA0 + lsls r2, 1 + mov r8, r2 +_081064F6: + movs r0, 0 + lsls r4, r3, 16 + asrs r5, r4, 16 +_081064FC: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r5, r2 + lsls r1, 1 + adds r1, r6 + mov r7, r8 + adds r3, r1, r7 + ldr r7, _08106590 @ =0x00002051 + adds r0, r7, 0 + strh r0, [r3] + movs r0, 0xD0 + lsls r0, 2 + adds r3, r1, r0 + ldr r7, _08106594 @ =0x00002851 + adds r0, r7, 0 + strh r0, [r3] + mov r0, r12 + adds r3, r1, r0 + ldr r7, _08106598 @ =0x00002061 + adds r0, r7, 0 + strh r0, [r3] + add r1, r9 + ldr r3, _0810659C @ =0x00002861 + adds r0, r3, 0 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x3 + ble _081064FC + asrs r3, r4, 16 + lsls r1, r3, 1 + adds r1, r6 + mov r5, r12 + adds r2, r1, r5 + adds r7, 0x5D + adds r0, r7, 0 + strh r0, [r2] + add r1, r9 + ldr r2, _081065A0 @ =0x000028be + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x7 + ldr r5, _081065A4 @ =0x000020bf + adds r2, r5, 0 +_08106558: + lsls r1, r0, 16 + asrs r1, 16 + lsls r0, r1, 5 + adds r0, r3 + lsls r0, 1 + adds r0, r6 + strh r2, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, 0xB + ble _08106558 + movs r7, 0xA0 + lsls r7, 11 + adds r0, r4, r7 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _081064F6 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810658C: .4byte 0x0600f000 +_08106590: .4byte 0x00002051 +_08106594: .4byte 0x00002851 +_08106598: .4byte 0x00002061 +_0810659C: .4byte 0x00002861 +_081065A0: .4byte 0x000028be +_081065A4: .4byte 0x000020bf + thumb_func_end sub_81064D8 + + thumb_func_start sub_81065A8 +sub_81065A8: @ 81065A8 + push {r4-r6,lr} + ldr r5, [sp, 0x10] + lsls r0, 16 + asrs r0, 15 + ldr r6, _081065D0 @ =0x0600ebc0 + adds r4, r0, r6 + strh r1, [r4] + ldr r4, _081065D4 @ =0x0600ebc2 + adds r1, r0, r4 + strh r2, [r1] + adds r6, 0x40 + adds r1, r0, r6 + strh r3, [r1] + ldr r1, _081065D8 @ =0x0600ec02 + adds r0, r1 + strh r5, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081065D0: .4byte 0x0600ebc0 +_081065D4: .4byte 0x0600ebc2 +_081065D8: .4byte 0x0600ec02 + thumb_func_end sub_81065A8 + + thumb_func_start sub_81065DC +sub_81065DC: @ 81065DC + push {r4,r5,lr} + ldr r0, _08106624 @ =gUnknown_08E95FB8 + ldr r1, _08106628 @ =0x0600e800 + movs r2, 0xA0 + lsls r2, 2 + bl CpuSet + ldr r5, _0810662C @ =0x0600f000 + movs r1, 0 + movs r4, 0 +_081065F0: + movs r0, 0 + lsls r3, r1, 16 + asrs r2, r3, 11 +_081065F6: + lsls r1, r0, 16 + asrs r1, 16 + adds r0, r2, r1 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + asrs r1, 16 + cmp r1, 0x1D + ble _081065F6 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _081065F0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08106624: .4byte gUnknown_08E95FB8 +_08106628: .4byte 0x0600e800 +_0810662C: .4byte 0x0600f000 + thumb_func_end sub_81065DC + + thumb_func_start sub_8106630 +sub_8106630: @ 8106630 + push {r4-r7,lr} + ldr r2, _0810665C @ =0x02015de0 + subs r4, r2, 0x2 + subs r5, r2, 0x1 + ldr r3, _08106660 @ =gSaveBlock1 + subs r0, 0x1 + lsls r1, r0, 5 + adds r1, r3 + ldr r3, _08106664 @ =0x00002dfc + adds r1, r3 + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r6,r7} + stm r2!, {r6,r7} + strb r0, [r4] + movs r0, 0 + strb r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810665C: .4byte 0x02015de0 +_08106660: .4byte gSaveBlock1 +_08106664: .4byte 0x00002dfc + thumb_func_end sub_8106630 + + thumb_func_start sub_8106668 +sub_8106668: @ 8106668 + push {lr} + bl sub_8106674 + pop {r0} + bx r0 + thumb_func_end sub_8106668 + + thumb_func_start sub_8106674 +sub_8106674: @ 8106674 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _08106694 @ =gMain + ldr r2, _08106698 @ =0x0000043c + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x4 + bls _08106688 + b _081067E0 +_08106688: + lsls r0, 2 + ldr r1, _0810669C @ =_081066A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106694: .4byte gMain +_08106698: .4byte 0x0000043c +_0810669C: .4byte _081066A0 + .align 2, 0 +_081066A0: + .4byte _081066B4 + .4byte _081066D8 + .4byte _08106734 + .4byte _0810675C + .4byte _0810678C +_081066B4: + bl remove_some_task + movs r0, 0 + bl SetVBlankCallback + ldr r1, _081066D0 @ =gUnknown_03005E8C + ldr r0, _081066D4 @ =0x02015de0 + str r0, [r1] + movs r0, 0x1 + bl sub_8106A10 + bl sub_81069CC + b _0810676E + .align 2, 0 +_081066D0: .4byte gUnknown_03005E8C +_081066D4: .4byte 0x02015de0 +_081066D8: + bl ResetPaletteFade + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _08106724 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _08106728 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_081066F2: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _081066F2 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetSpriteData + ldr r1, _0810672C @ =gMain + ldr r2, _08106730 @ =0x0000043c + adds r1, r2 + b _08106774 + .align 2, 0 +_08106724: .4byte 0x040000d4 +_08106728: .4byte 0x85000400 +_0810672C: .4byte gMain +_08106730: .4byte 0x0000043c +_08106734: + ldrh r0, [r4, 0x20] + bl SeedRng + bl InitKeys + ldr r0, _08106750 @ =0x02000000 + ldr r1, _08106754 @ =0x00015ddf + adds r0, r1 + ldrb r0, [r0] + bl sub_81068FC + ldr r2, _08106758 @ =0x0000043c + adds r1, r4, r2 + b _08106774 + .align 2, 0 +_08106750: .4byte 0x02000000 +_08106754: .4byte 0x00015ddf +_08106758: .4byte 0x0000043c +_0810675C: + ldr r1, _0810677C @ =0x02000000 + ldr r2, _08106780 @ =0x00015dde + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl sub_8107090 +_0810676E: + ldr r1, _08106784 @ =gMain + ldr r0, _08106788 @ =0x0000043c + adds r1, r0 +_08106774: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081067E0 + .align 2, 0 +_0810677C: .4byte 0x02000000 +_08106780: .4byte 0x00015dde +_08106784: .4byte gMain +_08106788: .4byte 0x0000043c +_0810678C: + ldr r1, _081067E8 @ =0x02000000 + ldr r2, _081067EC @ =0x00015dde + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl sub_8106918 + ldr r0, _081067F0 @ =gUnknown_083F6140 + movs r1, 0 + movs r2, 0x2 + bl LoadPalette + movs r1, 0xA0 + lsls r1, 19 + movs r4, 0 + str r4, [sp] + ldr r0, _081067F4 @ =0x040000d4 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _081067F8 @ =0x85000100 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r0, 0x2 + bl BeginFastPaletteFade + ldr r0, _081067FC @ =sub_8106AAC + bl SetVBlankCallback + ldr r0, _08106800 @ =gUnknown_03000750 + strb r4, [r0] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08106804 @ =sub_8106808 + bl SetMainCallback2 +_081067E0: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081067E8: .4byte 0x02000000 +_081067EC: .4byte 0x00015dde +_081067F0: .4byte gUnknown_083F6140 +_081067F4: .4byte 0x040000d4 +_081067F8: .4byte 0x85000100 +_081067FC: .4byte sub_8106AAC +_08106800: .4byte gUnknown_03000750 +_08106804: .4byte sub_8106808 + thumb_func_end sub_8106674 + + thumb_func_start sub_8106808 +sub_8106808: @ 8106808 + push {lr} + bl sub_810682C + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8106808 + + thumb_func_start sub_8106818 +sub_8106818: @ 8106818 + push {lr} + ldr r0, _08106828 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08106828: .4byte gMain + thumb_func_end sub_8106818 + + thumb_func_start sub_810682C +sub_810682C: @ 810682C + push {lr} + sub sp, 0x4 + ldr r3, _08106844 @ =gUnknown_03000750 + ldrb r1, [r3] + cmp r1, 0x1 + beq _08106880 + cmp r1, 0x1 + bgt _08106848 + cmp r1, 0 + beq _0810684E + b _081068E6 + .align 2, 0 +_08106844: .4byte gUnknown_03000750 +_08106848: + cmp r1, 0x2 + beq _081068C0 + b _081068E6 +_0810684E: + ldr r0, _08106874 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810685E + movs r0, 0x1 + strb r0, [r3] +_0810685E: + ldr r0, _08106878 @ =gUnknown_03000756 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _0810687C @ =gUnknown_03000754 + ldrh r0, [r1] + cmp r0, 0 + beq _081068E6 + subs r0, 0x1 + b _081068E4 + .align 2, 0 +_08106874: .4byte gPaletteFade +_08106878: .4byte gUnknown_03000756 +_0810687C: .4byte gUnknown_03000754 +_08106880: + ldr r0, _081068B4 @ =gMain + ldrh r2, [r0, 0x2E] + ands r1, r2 + cmp r1, 0 + bne _08106892 + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _081068A4 +_08106892: + movs r0, 0x2 + strb r0, [r3] + subs r0, 0x3 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_081068A4: + ldr r0, _081068B8 @ =gUnknown_03000756 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _081068BC @ =gUnknown_03000754 + movs r0, 0 + b _081068E4 + .align 2, 0 +_081068B4: .4byte gMain +_081068B8: .4byte gUnknown_03000756 +_081068BC: .4byte gUnknown_03000754 +_081068C0: + ldr r0, _081068EC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081068D2 + ldr r0, _081068F0 @ =sub_8106818 + bl SetMainCallback2 +_081068D2: + ldr r0, _081068F4 @ =gUnknown_03000756 + ldrb r0, [r0] + cmp r0, 0 + beq _081068E6 + ldr r1, _081068F8 @ =gUnknown_03000754 + ldrh r0, [r1] + cmp r0, 0x1D + bhi _081068E6 + adds r0, 0x1 +_081068E4: + strh r0, [r1] +_081068E6: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_081068EC: .4byte gPaletteFade +_081068F0: .4byte sub_8106818 +_081068F4: .4byte gUnknown_03000756 +_081068F8: .4byte gUnknown_03000754 + thumb_func_end sub_810682C + + thumb_func_start sub_81068FC +sub_81068FC: @ 81068FC + push {r4,lr} + ldr r4, _08106914 @ =gWindowConfig_81E7160 + adds r0, r4, 0 + bl InitMenuWindow + adds r0, r4, 0 + bl SetUpWindowConfig + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106914: .4byte gWindowConfig_81E7160 + thumb_func_end sub_81068FC + + thumb_func_start sub_8106918 +sub_8106918: @ 8106918 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + beq _081069BE + ldr r2, _08106974 @ =gUnknown_03005E40 + ldr r6, _08106978 @ =gUnknown_03005E8C + ldr r0, [r6] + ldrb r0, [r0, 0xA] + cmp r3, 0x7 + bhi _08106988 + ldr r1, _0810697C @ =gUnknown_083F60AC + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08106980 @ =gContestText_ContestWinner + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0x16 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFC + strb r0, [r2] + movs r0, 0x16 + strb r0, [r2, 0x1] + adds r2, 0x2 + ldr r1, _08106984 @ =gOtherText_Unknown1 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0xB + bl StringCopy10 + movs r1, 0x6 + b _081069AE + .align 2, 0 +_08106974: .4byte gUnknown_03005E40 +_08106978: .4byte gUnknown_03005E8C +_0810697C: .4byte gUnknown_083F60AC +_08106980: .4byte gContestText_ContestWinner +_08106984: .4byte gOtherText_Unknown1 +_08106988: + ldr r4, _081069C4 @ =gUnknown_083F60C0 + lsls r5, r0, 3 + adds r0, r5, r4 + ldr r1, [r0] + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + ldr r1, [r6] + adds r1, 0xB + bl StringCopy10 + adds r2, r0, 0 + adds r4, 0x4 + adds r5, r4 + ldr r1, [r5] + bl StringCopy + movs r1, 0x3 +_081069AE: + movs r2, 0xE + ldr r0, _081069C8 @ =gUnknown_03005E40 + lsls r1, 3 + adds r1, 0x1 + lsls r2, 3 + movs r3, 0x1 + bl MenuPrint_PixelCoords +_081069BE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081069C4: .4byte gUnknown_083F60C0 +_081069C8: .4byte gUnknown_03005E40 + thumb_func_end sub_8106918 + + thumb_func_start sub_81069CC +sub_81069CC: @ 81069CC + movs r0, 0x80 + lsls r0, 19 + movs r3, 0 + strh r3, [r0] + ldr r2, _081069FC @ =0x04000200 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08106A00 @ =REG_BG0CNT + ldr r2, _08106A04 @ =0x00000c42 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08106A08 @ =0x00000a45 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08106A0C @ =REG_BLDCNT + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + bx lr + .align 2, 0 +_081069FC: .4byte 0x04000200 +_08106A00: .4byte REG_BG0CNT +_08106A04: .4byte 0x00000c42 +_08106A08: .4byte 0x00000a45 +_08106A0C: .4byte REG_BLDCNT + thumb_func_end sub_81069CC + + thumb_func_start sub_8106A10 +sub_8106A10: @ 8106A10 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08106A34 + ldr r0, _08106A28 @ =gUnknown_03000756 + strb r1, [r0] + ldr r0, _08106A2C @ =gUnknown_03000752 + strh r1, [r0] + ldr r0, _08106A30 @ =gUnknown_03000754 + strh r1, [r0] + b _08106A46 + .align 2, 0 +_08106A28: .4byte gUnknown_03000756 +_08106A2C: .4byte gUnknown_03000752 +_08106A30: .4byte gUnknown_03000754 +_08106A34: + ldr r1, _08106A4C @ =gUnknown_03000756 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08106A50 @ =gUnknown_03000752 + movs r0, 0xF + strh r0, [r1] + ldr r1, _08106A54 @ =gUnknown_03000754 + movs r0, 0x1E + strh r0, [r1] +_08106A46: + pop {r0} + bx r0 + .align 2, 0 +_08106A4C: .4byte gUnknown_03000756 +_08106A50: .4byte gUnknown_03000752 +_08106A54: .4byte gUnknown_03000754 + thumb_func_end sub_8106A10 + + thumb_func_start sub_8106A58 +sub_8106A58: @ 8106A58 + push {lr} + ldr r0, _08106A68 @ =gUnknown_03000756 + ldrb r1, [r0] + cmp r1, 0 + bne _08106A70 + ldr r0, _08106A6C @ =REG_MOSAIC + strh r1, [r0] + b _08106A92 + .align 2, 0 +_08106A68: .4byte gUnknown_03000756 +_08106A6C: .4byte REG_MOSAIC +_08106A70: + ldr r1, _08106A98 @ =REG_BG1CNT + ldr r2, _08106A9C @ =0x00000a45 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _08106AA0 @ =gUnknown_03000752 + ldr r0, _08106AA4 @ =gUnknown_03000754 + ldrh r1, [r0] + lsrs r1, 1 + strh r1, [r2] + ldr r3, _08106AA8 @ =REG_MOSAIC + lsls r0, r1, 12 + lsls r2, r1, 8 + orrs r0, r2 + lsls r2, r1, 4 + orrs r0, r2 + orrs r0, r1 + strh r0, [r3] +_08106A92: + pop {r0} + bx r0 + .align 2, 0 +_08106A98: .4byte REG_BG1CNT +_08106A9C: .4byte 0x00000a45 +_08106AA0: .4byte gUnknown_03000752 +_08106AA4: .4byte gUnknown_03000754 +_08106AA8: .4byte REG_MOSAIC + thumb_func_end sub_8106A58 + + thumb_func_start sub_8106AAC +sub_8106AAC: @ 8106AAC + push {lr} + bl sub_8106A58 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8106AAC + + thumb_func_start sub_8106AC4 +sub_8106AC4: @ 8106AC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r4, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r4, 24 + lsrs r4, 24 + ldr r7, _08106B28 @ =gUnknown_03005E8C + ldr r0, [r7] + ldr r1, [r0, 0x4] + ldr r2, [r0] + adds r0, r6, 0 + bl species_and_otid_get_pal + ldr r1, _08106B2C @ =gUnknown_03005E90 + mov r8, r1 + ldr r1, [r1] + bl LZDecompressVram + cmp r4, 0 + bne _08106B40 + lsls r0, r6, 3 + ldr r1, _08106B30 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08106B34 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08106B38 @ =gUnknown_081FAF4C + ldr r5, [r4, 0x4] + str r5, [sp] + str r6, [sp, 0x4] + ldr r4, [r7] + ldr r4, [r4] + str r4, [sp, 0x8] + bl sub_800D334 + mov r2, r8 + ldr r1, [r2] + ldr r0, _08106B3C @ =gUnknown_03005E10 + ldr r2, [r0] + adds r0, r5, 0 + bl sub_8106B90 + b _08106B74 + .align 2, 0 +_08106B28: .4byte gUnknown_03005E8C +_08106B2C: .4byte gUnknown_03005E90 +_08106B30: .4byte gMonFrontPicTable +_08106B34: .4byte gMonFrontPicCoords +_08106B38: .4byte gUnknown_081FAF4C +_08106B3C: .4byte gUnknown_03005E10 +_08106B40: + lsls r0, r6, 3 + ldr r1, _08106B80 @ =gMonBackPicTable + adds r0, r1 + ldr r1, _08106B84 @ =gMonBackPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08106B88 @ =gUnknown_081FAF4C + ldr r5, [r4] + str r5, [sp] + str r6, [sp, 0x4] + ldr r4, [r7] + ldr r4, [r4] + str r4, [sp, 0x8] + bl sub_800D334 + mov r0, r8 + ldr r1, [r0] + ldr r0, _08106B8C @ =gUnknown_03005E10 + ldr r2, [r0] + adds r0, r5, 0 + bl sub_8106B90 +_08106B74: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08106B80: .4byte gMonBackPicTable +_08106B84: .4byte gMonBackPicCoords +_08106B88: .4byte gUnknown_081FAF4C +_08106B8C: .4byte gUnknown_03005E10 + thumb_func_end sub_8106AC4 + + thumb_func_start sub_8106B90 +sub_8106B90: @ 8106B90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r10, r0 + mov r9, r1 + str r2, [sp] + movs r0, 0 +_08106BA4: + movs r3, 0 + adds r1, r0, 0x1 + str r1, [sp, 0x4] + lsls r0, 3 + str r0, [sp, 0x8] +_08106BAE: + movs r1, 0 + adds r2, r3, 0x1 + mov r8, r2 + ldr r7, [sp, 0x8] + adds r0, r7, r3 + lsls r0, 5 + mov r12, r0 + lsls r4, r3, 3 +_08106BBE: + movs r3, 0 + lsls r0, r1, 2 + adds r6, r1, 0x1 + mov r2, r12 + adds r5, r2, r0 + ldr r7, [sp, 0x8] + adds r0, r7, r1 + lsls r0, 7 + ldr r1, [sp] + adds r2, r0, r1 +_08106BD2: + lsrs r0, r3, 1 + adds r0, r5, r0 + add r0, r10 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _08106BE6 + lsrs r1, 4 + b _08106BEA +_08106BE6: + movs r0, 0xF + ands r1, r0 +_08106BEA: + cmp r1, 0 + bne _08106BFC + adds r0, r4, r3 + lsls r0, 1 + adds r0, r2 + movs r7, 0x80 + lsls r7, 8 + adds r1, r7, 0 + b _08106C08 +_08106BFC: + adds r0, r4, r3 + lsls r0, 1 + adds r0, r2 + lsls r1, 1 + add r1, r9 + ldrh r1, [r1] +_08106C08: + strh r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _08106BD2 + lsls r0, r6, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _08106BBE + mov r1, r8 + lsls r0, r1, 16 + lsrs r3, r0, 16 + cmp r3, 0x7 + bls _08106BAE + ldr r2, [sp, 0x4] + lsls r0, r2, 16 + lsrs r0, 16 + cmp r0, 0x7 + bls _08106BA4 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8106B90 + + thumb_func_start sub_8106C40 +sub_8106C40: @ 8106C40 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08106C7C @ =gPictureFramePalettes + movs r2, 0x80 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + cmp r4, 0x1 + beq _08106C5E + b _08106DB4 +_08106C5E: + ldr r0, _08106C80 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _08106D1C + lsls r0, 2 + ldr r1, _08106C84 @ =_08106C88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106C7C: .4byte gPictureFramePalettes +_08106C80: .4byte gUnknown_03005E8C +_08106C84: .4byte _08106C88 + .align 2, 0 +_08106C88: + .4byte _08106C9C + .4byte _08106CB4 + .4byte _08106CCC + .4byte _08106CE4 + .4byte _08106D08 +_08106C9C: + ldr r0, _08106CAC @ =gPictureFrameTiles_0 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CB0 @ =gPictureFrameTilemap_0 + b _08106CF0 + .align 2, 0 +_08106CAC: .4byte gPictureFrameTiles_0 +_08106CB0: .4byte gPictureFrameTilemap_0 +_08106CB4: + ldr r0, _08106CC4 @ =gPictureFrameTiles_1 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CC8 @ =gPictureFrameTilemap_1 + b _08106CF0 + .align 2, 0 +_08106CC4: .4byte gPictureFrameTiles_1 +_08106CC8: .4byte gPictureFrameTilemap_1 +_08106CCC: + ldr r0, _08106CDC @ =gPictureFrameTiles_2 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106CE0 @ =gPictureFrameTilemap_2 + b _08106CF0 + .align 2, 0 +_08106CDC: .4byte gPictureFrameTiles_2 +_08106CE0: .4byte gPictureFrameTilemap_2 +_08106CE4: + ldr r0, _08106CFC @ =gPictureFrameTiles_3 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106D00 @ =gPictureFrameTilemap_3 +_08106CF0: + ldr r1, _08106D04 @ =gUnknown_03005E10 + ldr r1, [r1] + bl RLUnCompWram + b _08106D1C + .align 2, 0 +_08106CFC: .4byte gPictureFrameTiles_3 +_08106D00: .4byte gPictureFrameTilemap_3 +_08106D04: .4byte gUnknown_03005E10 +_08106D08: + ldr r0, _08106D98 @ =gPictureFrameTiles_4 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106D9C @ =gPictureFrameTilemap_4 + ldr r1, _08106DA0 @ =gUnknown_03005E10 + ldr r1, [r1] + bl RLUnCompWram +_08106D1C: + movs r1, 0 + ldr r5, _08106DA4 @ =0x06006000 + ldr r0, _08106DA8 @ =0x00001015 + adds r4, r0, 0 +_08106D24: + movs r3, 0 + lsls r2, r1, 5 +_08106D28: + adds r0, r2, r3 + lsls r0, 1 + adds r0, r5 + strh r4, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _08106D28 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bls _08106D24 + movs r1, 0 + ldr r0, _08106DAC @ =0x0600608c + mov r12, r0 + ldr r7, _08106DA0 @ =gUnknown_03005E10 +_08106D4C: + movs r3, 0 + adds r6, r1, 0x1 + lsls r5, r1, 5 + lsls r4, r1, 6 +_08106D54: + adds r2, r5, r3 + lsls r2, 1 + add r2, r12 + ldr r0, [r7] + adds r0, r4, r0 + lsls r1, r3, 1 + adds r0, r1 + adds r0, 0x8C + ldrh r0, [r0] + strh r0, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x11 + bls _08106D54 + lsls r0, r6, 24 + lsrs r1, r0, 24 + cmp r1, 0x9 + bls _08106D4C + movs r3, 0 + ldr r4, _08106DB0 @ =0x0600608e + ldr r2, _08106DA0 @ =gUnknown_03005E10 +_08106D80: + lsls r1, r3, 1 + adds r1, r4 + ldr r0, [r2] + adds r0, 0x8E + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xF + bls _08106D80 + b _08106E86 + .align 2, 0 +_08106D98: .4byte gPictureFrameTiles_4 +_08106D9C: .4byte gPictureFrameTilemap_4 +_08106DA0: .4byte gUnknown_03005E10 +_08106DA4: .4byte 0x06006000 +_08106DA8: .4byte 0x00001015 +_08106DAC: .4byte 0x0600608c +_08106DB0: .4byte 0x0600608e +_08106DB4: + cmp r5, 0x7 + bhi _08106DD0 + ldr r0, _08106DC8 @ =gPictureFrameTiles_5 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106DCC @ =gPictureFrameTilemap_5 + b _08106E60 + .align 2, 0 +_08106DC8: .4byte gPictureFrameTiles_5 +_08106DCC: .4byte gPictureFrameTilemap_5 +_08106DD0: + ldr r0, _08106DF0 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _08106E86 + lsls r0, 2 + ldr r1, _08106DF4 @ =_08106DF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106DF0: .4byte gUnknown_03005E8C +_08106DF4: .4byte _08106DF8 + .align 2, 0 +_08106DF8: + .4byte _08106E0C + .4byte _08106E24 + .4byte _08106E3C + .4byte _08106E54 + .4byte _08106E74 +_08106E0C: + ldr r0, _08106E1C @ =gPictureFrameTiles_0 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E20 @ =gPictureFrameTilemap_0 + b _08106E60 + .align 2, 0 +_08106E1C: .4byte gPictureFrameTiles_0 +_08106E20: .4byte gPictureFrameTilemap_0 +_08106E24: + ldr r0, _08106E34 @ =gPictureFrameTiles_1 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E38 @ =gPictureFrameTilemap_1 + b _08106E60 + .align 2, 0 +_08106E34: .4byte gPictureFrameTiles_1 +_08106E38: .4byte gPictureFrameTilemap_1 +_08106E3C: + ldr r0, _08106E4C @ =gPictureFrameTiles_2 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E50 @ =gPictureFrameTilemap_2 + b _08106E60 + .align 2, 0 +_08106E4C: .4byte gPictureFrameTiles_2 +_08106E50: .4byte gPictureFrameTilemap_2 +_08106E54: + ldr r0, _08106E68 @ =gPictureFrameTiles_3 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E6C @ =gPictureFrameTilemap_3 +_08106E60: + ldr r1, _08106E70 @ =0x06006000 + bl RLUnCompVram + b _08106E86 + .align 2, 0 +_08106E68: .4byte gPictureFrameTiles_3 +_08106E6C: .4byte gPictureFrameTilemap_3 +_08106E70: .4byte 0x06006000 +_08106E74: + ldr r0, _08106E8C @ =gPictureFrameTiles_4 + movs r1, 0xC0 + lsls r1, 19 + bl RLUnCompVram + ldr r0, _08106E90 @ =gPictureFrameTilemap_4 + ldr r1, _08106E94 @ =0x06006000 + bl RLUnCompVram +_08106E86: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08106E8C: .4byte gPictureFrameTiles_4 +_08106E90: .4byte gPictureFrameTilemap_4 +_08106E94: .4byte 0x06006000 + thumb_func_end sub_8106C40 + + thumb_func_start sub_8106E98 +sub_8106E98: @ 8106E98 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08106ED0 @ =gMain + ldr r1, _08106ED4 @ =gOamData_83F6138 + ldr r2, [r1, 0x4] + ldr r1, [r1] + str r1, [r4, 0x3C] + str r2, [r4, 0x40] + adds r3, r4, 0 + adds r3, 0x40 + ldrh r2, [r3] + ldr r1, _08106ED8 @ =0xfffffc00 + ands r1, r2 + strh r1, [r3] + ldrh r1, [r4, 0x3E] + ldr r0, _08106EDC @ =0xfffffe00 + ands r0, r1 + movs r1, 0x58 + orrs r0, r1 + strh r0, [r4, 0x3E] + adds r1, r4, 0 + adds r1, 0x3C + movs r0, 0x18 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08106ED0: .4byte gMain +_08106ED4: .4byte gOamData_83F6138 +_08106ED8: .4byte 0xfffffc00 +_08106EDC: .4byte 0xfffffe00 + thumb_func_end sub_8106E98 + + thumb_func_start sub_8106EE0 +sub_8106EE0: @ 8106EE0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x7 + bhi _08106EF8 + ldr r0, _08106EF4 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrb r0, [r0, 0xA] + b _08106F08 + .align 2, 0 +_08106EF4: .4byte gUnknown_03005E8C +_08106EF8: + ldr r0, _08106F18 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrb r0, [r0, 0xA] + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_08106F08: + cmp r0, 0x4 + bhi _08106F46 + lsls r0, 2 + ldr r1, _08106F1C @ =_08106F20 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106F18: .4byte gUnknown_03005E8C +_08106F1C: .4byte _08106F20 + .align 2, 0 +_08106F20: + .4byte _08106F34 + .4byte _08106F38 + .4byte _08106F3C + .4byte _08106F40 + .4byte _08106F44 +_08106F34: + movs r0, 0x9 + b _08106F46 +_08106F38: + movs r0, 0xD + b _08106F46 +_08106F3C: + movs r0, 0x2 + b _08106F46 +_08106F40: + movs r0, 0x24 + b _08106F46 +_08106F44: + movs r0, 0x6 +_08106F46: + pop {r1} + bx r1 + thumb_func_end sub_8106EE0 + + thumb_func_start sub_8106F4C +sub_8106F4C: @ 8106F4C + ldr r0, _08106F5C @ =gUnknown_03005E90 + ldr r1, _08106F60 @ =0x02017e00 + str r1, [r0] + ldr r0, _08106F64 @ =gUnknown_03005E10 + ldr r2, _08106F68 @ =0xffffe000 + adds r1, r2 + str r1, [r0] + bx lr + .align 2, 0 +_08106F5C: .4byte gUnknown_03005E90 +_08106F60: .4byte 0x02017e00 +_08106F64: .4byte gUnknown_03005E10 +_08106F68: .4byte 0xffffe000 + thumb_func_end sub_8106F4C + + thumb_func_start sub_8106F6C +sub_8106F6C: @ 8106F6C + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08106FAC @ =gUnknown_03005E20 + ldr r0, _08106FB0 @ =gUnknown_03005E10 + ldr r0, [r0] + str r0, [r1, 0x4] + ldr r0, _08106FB4 @ =gUnknown_03005E90 + ldr r0, [r0] + str r0, [r1, 0x8] + movs r2, 0 + strb r2, [r1, 0x18] + ldr r0, _08106FB8 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrb r0, [r0] + strb r0, [r1, 0x1F] + strb r2, [r1, 0x19] + strb r2, [r1, 0x1A] + movs r0, 0x40 + strb r0, [r1, 0x1B] + strb r0, [r1, 0x1C] + strb r0, [r1, 0x1D] + strb r0, [r1, 0x1E] + subs r0, r3, 0x2 + adds r4, r1, 0 + cmp r0, 0x22 + bhi _08107050 + lsls r0, 2 + ldr r1, _08106FBC @ =_08106FC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08106FAC: .4byte gUnknown_03005E20 +_08106FB0: .4byte gUnknown_03005E10 +_08106FB4: .4byte gUnknown_03005E90 +_08106FB8: .4byte gUnknown_03005E8C +_08106FBC: .4byte _08106FC0 + .align 2, 0 +_08106FC0: + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _0810704C + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _08107050 + .4byte _0810704C +_0810704C: + movs r0, 0x3 + b _08107052 +_08107050: + movs r0, 0x1 +_08107052: + strh r0, [r4, 0x14] + movs r0, 0x2 + strh r0, [r4, 0x16] + strb r3, [r4] + ldr r0, _08107088 @ =0x06010000 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl sub_80FC7A0 + adds r0, r4, 0 + bl sub_80FDA18 + adds r0, r4, 0 + bl sub_80FD8CC + ldr r0, _0810708C @ =gUnknown_03005E90 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x80 + lsls r2, 2 + bl LoadPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08107088: .4byte 0x06010000 +_0810708C: .4byte gUnknown_03005E90 + thumb_func_end sub_8106F6C + + thumb_func_start sub_8107090 +sub_8107090: @ 8107090 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + bl sub_8106F4C + ldr r0, _081070D0 @ =gUnknown_03005E8C + ldr r0, [r0] + ldrh r0, [r0, 0x8] + movs r1, 0 + bl sub_8106AC4 + adds r0, r4, 0 + bl sub_8106EE0 + lsls r0, 24 + lsrs r0, 24 + bl sub_8106F6C + adds r0, r4, 0 + bl sub_8106E98 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8106C40 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081070D0: .4byte gUnknown_03005E8C + thumb_func_end sub_8107090 + + .align 2, 0 @ Don't pad with nop. -- cgit v1.2.3