.include "constants/gba_constants.s" .include "constants/species_constants.s" .include "asm/macros.s" .syntax unified .text thumb_func_start sub_80B5054 sub_80B5054: @ 80B5054 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B5098 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B50A4 ldr r1, _080B509C movs r0, 0xFF strh r0, [r1] ldr r1, _080B50A0 lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B5138 movs r0, 0x1 b _080B50A6 .align 2, 0 _080B5098: .4byte sub_80B52B4 _080B509C: .4byte gScriptResult _080B50A0: .4byte gMultichoiceLists _080B50A4: movs r0, 0 _080B50A6: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B5054 thumb_func_start sub_80B50B0 sub_80B50B0: @ 80B50B0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r4, 24 lsrs r4, 24 ldr r0, _080B5100 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B510C ldr r1, _080B5104 movs r0, 0xFF strh r0, [r1] ldr r1, _080B5108 lsls r0, r5, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r6, [sp] str r4, [sp, 0x4] mov r0, r8 adds r1, r7, 0 bl sub_80B5138 movs r0, 0x1 b _080B510E .align 2, 0 _080B5100: .4byte sub_80B52B4 _080B5104: .4byte gScriptResult _080B5108: .4byte gMultichoiceLists _080B510C: movs r0, 0 _080B510E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B50B0 thumb_func_start GetStringWidthInTilesForScriptMenu GetStringWidthInTilesForScriptMenu: @ 80B511C push {lr} adds r1, r0, 0 ldr r0, _080B5134 bl GetStringWidthGivenWindowConfig lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r0, r1, 3 pop {r1} bx r1 .align 2, 0 _080B5134: .4byte gWindowConfig_81E6CE4 thumb_func_end GetStringWidthInTilesForScriptMenu thumb_func_start sub_80B5138 sub_80B5138: @ 80B5138 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r10, r3 ldr r3, [sp, 0x34] ldr r4, [sp, 0x38] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x8] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] mov r1, r10 ldr r0, [r1] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r5, r0, 16 movs r4, 0x1 cmp r4, r8 bcs _080B5198 _080B517A: lsls r0, r4, 3 add r0, r10 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r5, r0 bcs _080B518E adds r5, r0, 0 _080B518E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _080B517A _080B5198: lsls r0, r5, 24 lsrs r7, r0, 24 mov r1, r9 adds r0, r7, r1 adds r0, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1D bls _080B51B8 mov r0, r9 adds r0, 0x1D subs r0, r7 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0x1D _080B51B8: mov r1, r8 lsls r0, r1, 1 adds r0, 0x1 ldr r1, [sp, 0x8] lsls r4, r1, 24 asrs r4, 24 adds r4, r0 lsls r4, 24 lsrs r4, 24 mov r0, r9 adds r2, r7, 0 adds r3, r4, 0 bl MenuDrawTextWindow mov r6, r9 adds r6, 0x1 lsls r6, 24 lsrs r6, 24 ldr r5, [sp, 0x8] adds r5, 0x1 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 mov r3, r10 bl PrintMenuItems ldr r0, [sp, 0x10] str r0, [sp] mov r1, r9 subs r0, r7, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 adds r1, r6, 0 adds r2, r5, 0 mov r3, r8 bl InitMenu ldr r0, [sp, 0xC] str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r0, r9 ldr r1, [sp, 0x8] adds r2, r7, 0 adds r3, r4, 0 bl sub_80B5230 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_80B5138 thumb_func_start sub_80B5230 sub_80B5230: @ 80B5230 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [sp, 0x1C] mov r8, r0 ldr r0, [sp, 0x20] mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 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 ldr r0, _080B5298 movs r1, 0x50 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B529C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] strh r6, [r1, 0xC] ldr r3, [sp] strh r3, [r1, 0xE] mov r0, r8 strh r0, [r1, 0x10] mov r0, r9 cmp r0, 0x3 bls _080B52A0 movs r0, 0x1 b _080B52A2 .align 2, 0 _080B5298: .4byte sub_80B52B4 _080B529C: .4byte gTasks _080B52A0: movs r0, 0 _080B52A2: strh r0, [r1, 0x12] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80B5230 thumb_func_start sub_80B52B4 sub_80B52B4: @ 80B52B4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080B52E0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B534E ldr r2, _080B52E4 lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r0, r2 movs r2, 0x12 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0 bne _080B52E8 bl ProcessMenuInputNoWrap b _080B52EC .align 2, 0 _080B52E0: .4byte gPaletteFade _080B52E4: .4byte gTasks _080B52E8: bl ProcessMenuInput _080B52EC: lsls r0, 24 lsrs r0, 24 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B534E adds r0, 0x1 cmp r1, r0 bne _080B5328 ldr r0, _080B5320 adds r1, r5, r4 lsls r1, 3 adds r1, r0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 bne _080B534E movs r0, 0x5 bl PlaySE ldr r1, _080B5324 movs r0, 0x7F strh r0, [r1] b _080B532C .align 2, 0 _080B5320: .4byte gTasks _080B5324: .4byte gScriptResult _080B5328: ldr r0, _080B5354 strh r1, [r0] _080B532C: bl sub_8072DEC ldr r0, _080B5358 adds r3, r5, r4 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl MenuZeroFillWindowRect adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _080B534E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B5354: .4byte gScriptResult _080B5358: .4byte gTasks thumb_func_end sub_80B52B4 thumb_func_start Multichoice Multichoice: @ 80B535C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _080B539C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B53A8 ldr r1, _080B53A0 movs r0, 0xFF strh r0, [r1] ldr r1, _080B53A4 lsls r0, r4, 3 adds r0, r1 ldrb r2, [r0, 0x4] ldr r3, [r0] str r5, [sp] adds r0, r7, 0 adds r1, r6, 0 bl sub_80B53B4 movs r0, 0x1 b _080B53AA .align 2, 0 _080B539C: .4byte sub_80B52B4 _080B53A0: .4byte gScriptResult _080B53A4: .4byte gMultichoiceLists _080B53A8: movs r0, 0 _080B53AA: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end Multichoice thumb_func_start sub_80B53B4 sub_80B53B4: @ 80B53B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r3, 0 ldr r3, [sp, 0x28] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 mov r10, r3 ldr r0, [r7] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 movs r5, 0x1 cmp r5, r6 bcs _080B5408 _080B53EA: lsls r0, r5, 3 adds r0, r7 ldr r0, [r0] bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bcs _080B53FE adds r4, r0, 0 _080B53FE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _080B53EA _080B5408: lsls r4, 24 lsrs r4, 24 add r4, r8 adds r4, 0x2 lsls r4, 24 lsrs r4, 24 lsls r0, r6, 1 adds r0, 0x1 mov r1, r9 lsls r5, r1, 24 asrs r5, 24 adds r5, r0 lsls r5, 24 lsrs r5, 24 mov r0, r8 adds r2, r6, 0 adds r3, r7, 0 bl PrintMenuItems movs r0, 0 str r0, [sp] mov r1, r8 subs r0, r4, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r2, r9 adds r3, r6, 0 bl InitMenu mov r0, r10 str r0, [sp] str r6, [sp, 0x4] mov r0, r8 mov r1, r9 adds r2, r4, 0 adds r3, r5, 0 bl sub_80B5230 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_80B53B4 thumb_func_start yes_no_box yes_no_box: @ 80B546C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r6, _080B54B4 adds r0, r6, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B54C0 ldr r1, _080B54B8 movs r0, 0xFF strh r0, [r1] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl DisplayYesNoMenu adds r0, r6, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B54BC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] strh r4, [r1, 0xA] movs r0, 0x1 b _080B54C2 .align 2, 0 _080B54B4: .4byte task_yes_no_maybe _080B54B8: .4byte gScriptResult _080B54BC: .4byte gTasks _080B54C0: movs r0, 0 _080B54C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end yes_no_box thumb_func_start unref_sub_80B54C8 unref_sub_80B54C8: @ 80B54C8 push {lr} ldr r0, _080B54D8 ldrh r0, [r0] cmp r0, 0xFF beq _080B54DC movs r0, 0x1 b _080B54DE .align 2, 0 _080B54D8: .4byte gScriptResult _080B54DC: movs r0, 0 _080B54DE: pop {r1} bx r1 thumb_func_end unref_sub_80B54C8 thumb_func_start task_yes_no_maybe task_yes_no_maybe: @ 80B54E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080B5504 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x4 bgt _080B5508 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080B556A .align 2, 0 _080B5504: .4byte gTasks _080B5508: bl ProcessMenuInputNoWrap lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080B552C cmp r1, r0 bgt _080B5524 subs r0, 0x1 cmp r1, r0 beq _080B556A b _080B5542 _080B5524: cmp r1, 0 beq _080B553C cmp r1, 0x1 bne _080B5542 _080B552C: movs r0, 0x5 bl PlaySE ldr r1, _080B5538 movs r0, 0 b _080B5540 .align 2, 0 _080B5538: .4byte gScriptResult _080B553C: ldr r1, _080B5570 movs r0, 0x1 _080B5540: strh r0, [r1] _080B5542: ldr r0, _080B5574 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] ldrb r1, [r1, 0xA] adds r2, r0, 0x6 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0x5 lsls r3, 24 lsrs r3, 24 bl MenuZeroFillWindowRect adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _080B556A: pop {r4} pop {r0} bx r0 .align 2, 0 _080B5570: .4byte gScriptResult _080B5574: .4byte gTasks thumb_func_end task_yes_no_maybe thumb_func_start sub_80B5578 sub_80B5578: @ 80B5578 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r4, 24 lsrs r5, r4, 24 movs r7, 0 ldr r0, _080B55B8 mov r10, r0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080B55BC movs r0, 0 b _080B5670 .align 2, 0 _080B55B8: .4byte sub_80B5684 _080B55BC: ldr r1, _080B5620 movs r0, 0xFF strh r0, [r1] ldr r0, _080B5624 lsls r4, r6, 3 adds r0, r4, r0 ldrb r6, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] str r7, [sp, 0x8] mov r0, r9 mov r1, r8 adds r2, r6, 0 movs r3, 0 bl sub_807274C mov r0, r10 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, r6, 24 lsrs r1, r0, 24 lsrs r0, 25 cmp r0, r5 bcc _080B55FE movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _080B5606 _080B55FE: cmp r5, 0x1 beq _080B5606 cmp r1, r5 bne _080B5628 _080B5606: ldr r0, _080B5624 adds r0, r4, r0 ldrb r0, [r0, 0x4] adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x1 mov r2, r8 lsls r1, r2, 24 b _080B563A .align 2, 0 _080B5620: .4byte gScriptResult _080B5624: .4byte gMultichoiceLists _080B5628: adds r0, r6, 0 adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x3 mov r3, r8 lsls r1, r3, 24 _080B563A: asrs r1, 24 adds r1, r0 lsls r1, 24 lsrs r7, r1, 24 adds r0, r5, 0 bl sub_807288C lsls r0, 24 lsrs r0, 24 ldr r2, _080B5680 mov r3, r10 lsls r1, r3, 2 add r1, r10 lsls r1, 3 adds r1, r2 mov r2, r9 strh r2, [r1, 0x8] mov r3, r8 strh r3, [r1, 0xA] add r0, r9 adds r0, 0x2 strh r0, [r1, 0xC] strh r7, [r1, 0xE] mov r0, sp ldrh r0, [r0, 0xC] strh r0, [r1, 0x10] movs r0, 0x1 _080B5670: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080B5680: .4byte gTasks thumb_func_end sub_80B5578 thumb_func_start sub_80B5684 sub_80B5684: @ 80B5684 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80727CC lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080B56F4 adds r0, 0x1 cmp r1, r0 bne _080B56CC ldr r2, _080B56C4 lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r0, r2 movs r2, 0x10 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0 bne _080B56F4 movs r0, 0x5 bl PlaySE ldr r1, _080B56C8 movs r0, 0x7F strh r0, [r1] b _080B56D2 .align 2, 0 _080B56C4: .4byte gTasks _080B56C8: .4byte gScriptResult _080B56CC: ldr r0, _080B56FC strh r1, [r0] lsls r4, r5, 2 _080B56D2: bl sub_8072DEC ldr r0, _080B5700 adds r3, r4, r5 lsls r3, 3 adds r3, r0 ldrb r0, [r3, 0x8] ldrb r1, [r3, 0xA] ldrb r2, [r3, 0xC] ldrb r3, [r3, 0xE] bl MenuZeroFillWindowRect adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts _080B56F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080B56FC: .4byte gScriptResult _080B5700: .4byte gTasks thumb_func_end sub_80B5684 thumb_func_start sp109_CreatePCMenu sp109_CreatePCMenu: @ 80B5704 push {lr} ldr r0, _080B5724 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080B572C ldr r1, _080B5728 movs r0, 0xFF strh r0, [r1] bl CreatePCMenu movs r0, 0x1 b _080B572E .align 2, 0 _080B5724: .4byte sub_80B52B4 _080B5728: .4byte gScriptResult _080B572C: movs r0, 0 _080B572E: pop {r1} bx r1 thumb_func_end sp109_CreatePCMenu thumb_func_start CreatePCMenu CreatePCMenu: @ 80B5734 push {r4-r7,lr} sub sp, 0x8 ldr r0, _080B5758 bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080B575C bl GetStringWidthInTilesForScriptMenu lsls r0, 16 lsrs r0, 16 cmp r4, r0 bls _080B5760 lsls r0, r4, 24 lsrs r5, r0, 24 b _080B5762 .align 2, 0 _080B5758: .4byte gPCText_PlayersPC _080B575C: .4byte gPCText_SomeonesPC _080B5760: movs r5, 0x8 _080B5762: ldr r0, _080B5798 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57A4 movs r7, 0x4 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x9 bl MenuDrawTextWindow ldr r0, _080B579C movs r1, 0x1 movs r2, 0x5 bl MenuPrint ldr r0, _080B57A0 movs r1, 0x1 movs r2, 0x7 bl MenuPrint b _080B57C0 .align 2, 0 _080B5798: .4byte 0x00000804 _080B579C: .4byte gPCText_HallOfFame _080B57A0: .4byte gPCText_LogOff _080B57A4: movs r7, 0x3 adds r4, r5, 0x2 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 movs r1, 0 movs r3, 0x7 bl MenuDrawTextWindow ldr r0, _080B57DC movs r1, 0x1 movs r2, 0x5 bl MenuPrint _080B57C0: adds r6, r4, 0 ldr r0, _080B57E0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080B57E8 ldr r0, _080B57E4 movs r1, 0x1 movs r2, 0x1 bl MenuPrint b _080B57F2 .align 2, 0 _080B57DC: .4byte gPCText_LogOff _080B57E0: .4byte 0x0000084b _080B57E4: .4byte gPCText_LanettesPC _080B57E8: ldr r0, _080B5830 movs r1, 0x1 movs r2, 0x1 bl MenuPrint _080B57F2: ldr r0, _080B5834 movs r1, 0x1 movs r2, 0x3 bl MenuPrint movs r4, 0 str r4, [sp] adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x1 adds r3, r7, 0 bl InitMenu lsls r2, r6, 24 lsrs r2, 24 lsls r3, r7, 1 adds r3, 0x1 str r4, [sp] str r7, [sp, 0x4] movs r0, 0 movs r1, 0 bl sub_80B5230 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080B5830: .4byte gPCText_SomeonesPC _080B5834: .4byte gPCText_PlayersPC thumb_func_end CreatePCMenu thumb_func_start sub_80B5838 sub_80B5838: @ 80B5838 push {lr} bl MenuDisplayMessageBox ldr r0, _080B584C movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r0} bx r0 .align 2, 0 _080B584C: .4byte gUnknown_081A0A01 thumb_func_end sub_80B5838 thumb_func_start task_picbox task_picbox: @ 80B5850 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080B5874 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080B58BE cmp r0, 0x1 bgt _080B5878 cmp r0, 0 beq _080B5894 b _080B58BE .align 2, 0 _080B5874: .4byte gTasks _080B5878: cmp r0, 0x2 beq _080B5882 cmp r0, 0x3 beq _080B58A0 b _080B58BE _080B5882: movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B589C adds r0, r1 bl FreeResourcesAndDestroySprite _080B5894: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080B58BE .align 2, 0 _080B589C: .4byte gSprites _080B58A0: 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 _080B58BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_picbox thumb_func_start sub_80B58C4 sub_80B58C4: @ 80B58C4 push {r4-r7,lr} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r4, _080B595C adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080B596C adds r2, r6, 0 adds r2, 0x9 lsls r2, 24 lsrs r2, 24 adds r3, r5, 0 adds r3, 0xA lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 bl MenuDrawTextWindow adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080B5960 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0 strh r0, [r4, 0x8] strh r7, [r4, 0xA] lsls r1, r6, 19 movs r0, 0xA0 lsls r0, 14 adds r1, r0 asrs r1, 16 lsls r2, r5, 19 adds r2, r0 asrs r2, 16 adds r0, r7, 0 movs r3, 0 bl CreateMonSprite_PicBox lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] strh r6, [r4, 0xE] strh r5, [r4, 0x10] ldr r3, _080B5964 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080B5968 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x1 b _080B596E .align 2, 0 _080B595C: .4byte task_picbox _080B5960: .4byte gTasks _080B5964: .4byte gSprites _080B5968: .4byte SpriteCallbackDummy _080B596C: movs r0, 0 _080B596E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80B58C4 thumb_func_start picbox_close picbox_close: @ 80B5974 push {lr} ldr r0, _080B5998 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080B59A4 ldr r0, _080B599C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] ldr r0, _080B59A0 b _080B59A6 .align 2, 0 _080B5998: .4byte task_picbox _080B599C: .4byte gTasks _080B59A0: .4byte sub_80B59AC _080B59A4: movs r0, 0 _080B59A6: pop {r1} bx r1 thumb_func_end picbox_close thumb_func_start sub_80B59AC sub_80B59AC: @ 80B59AC push {lr} ldr r0, _080B59C0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080B59C4 movs r0, 0 b _080B59C6 .align 2, 0 _080B59C0: .4byte task_picbox _080B59C4: movs r0, 0x1 _080B59C6: pop {r1} 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 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 ldr r1, _080B5A18 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bhi _080B5A96 lsls r0, 2 ldr r1, _080B5A1C 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 ldr r0, _080B5A80 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 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 ldr r4, _080B5B04 ldrh r0, [r4, 0x4] strh r0, [r1] adds r1, 0x4 ldrh r0, [r4, 0x6] strh r0, [r1] ldr r2, _080B5B08 ldrh r1, [r2] ldr r3, _080B5B0C 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 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _080B5B78 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 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 adds r4, r0 ldr r6, _080B5BE0 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 bl SetVBlankCallback ldr r3, _080B5C40 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _080B5C44 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _080B5C48 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 movs r5, 0x80 lsls r5, 5 ldr r7, _080B5C9C 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 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080B5CC0 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 movs r1, 0 strh r1, [r5] ldr r2, _080B5D30 strh r1, [r2] ldr r3, _080B5D34 strh r1, [r3] ldr r4, _080B5D38 strh r1, [r4] ldr r0, _080B5D3C 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 adds r0, r1, 0 strh r0, [r2] ldr r2, _080B5D44 adds r0, r2, 0 strh r0, [r3] ldr r1, _080B5D48 adds r0, r1, 0 strh r0, [r4] ldr r1, _080B5D4C movs r2, 0xC8 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080B5D50 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 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 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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _080B5EA0 ldr r5, _080B5EA4 _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 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 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 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 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 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 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 ldr r4, _080B6034 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080B60AA ldr r0, _080B60B4 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 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 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 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 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 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B620C 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080B6238 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 ldr r2, _080B6268 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 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 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 lsls r1, 1 adds r0, r1, r0 ldrh r3, [r0] adds r0, r6, r3 strh r0, [r2] ldr r0, _080B637C 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 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 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 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 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080B645C 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080B649C 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 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 lsrs r0, 15 adds r2, r0, r2 ldr r1, _080B65D0 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 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 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 ldr r2, _080B6664 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 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 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 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 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 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 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 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite ldr r4, _080B67E4 strb r0, [r4, 0xF] ldr r5, _080B67E8 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 lsls r0, 16 asrs r0, 16 ldr r1, _080B6808 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 ldrb r1, [r1, 0xF] lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r1, _080B6854 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 ldrb r3, [r2, 0xF] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 ldr r3, _080B6874 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 ldr r4, _080B68D0 ldrb r1, [r4, 0xF] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] ldr r1, _080B68D4 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 ldr r4, _080B6910 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 ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6934 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 ldr r0, _080B6954 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 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 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 movs r1, 0xCC movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _080B6AFC strb r0, [r1, 0x10] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _080B6B00 adds r4, r5 ldr r1, _080B6B04 adds r0, r4, 0 bl SetSubspriteTables ldr r0, _080B6B08 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 adds r0, r2, 0 bl SetSubspriteTables ldr r0, _080B6B10 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 ldrb r1, [r2, 0x10] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B6B30 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 _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 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 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 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 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 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 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 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 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 adds r0, r4 ldr r5, _080B6CFC adds r1, r5, 0 bl SetSubspriteTables ldr r0, _080B6D00 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 ldrh r1, [r4, 0x2] subs r1, 0x1 lsls r1, 3 adds r1, 0x4 ldr r0, _080B6D90 lsls r1, 16 asrs r1, 16 movs r2, 0x28 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, _080B6D94 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 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 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 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 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 ldr r0, _080B6E60 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 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 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 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 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 adds r4, r0 ldr r1, _080B6EF8 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 ldrh r0, [r3, 0x3E] ldr r1, _080B6F3C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ldr r1, _080B752C ldr r1, [r1, 0x38] bl StringCopy ldr r4, _080B7530 ldr r1, _080B7534 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _080B7538 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 bl LoadSpriteSheets ldr r0, _080B7554 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 ldr r3, _080B75A0 ldrh r0, [r3] lsls r0, 5 movs r1, 0xC0 lsls r1, 19 adds r0, r1 ldr r1, _080B75A4 str r4, [r1] str r0, [r1, 0x4] ldr r2, _080B75A8 str r2, [r1, 0x8] ldr r0, [r1, 0x8] ldrh r0, [r3] lsls r0, 5 ldr r3, _080B75AC 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 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r4, _080B760C ldr r5, _080B7610 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080B7648 ldr r2, _080B764C 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 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 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 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 ldr r1, _080B7694 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 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 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 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 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 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 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 ldr r4, _080B77F0 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 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 ldr r4, _080B7830 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 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 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 bl BasicInitMenuWindow ldr r1, _080B78E8 ldr r4, _080B78EC ldrb r0, [r4, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r1, _080B78F0 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 ldr r1, _080B7918 movs r3, 0x3E ldrsh r2, [r1, r3] movs r1, 0xB muls r1, r2 ldr r2, _080B791C 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 mov r0, sp movs r2, 0x2 bl memcpy ldr r0, _080B795C 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 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 adds r1, r4, 0 bl StringCopy ldr r0, _080B79A4 bl BasicInitMenuWindow ldr r0, _080B799C 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 b _080B79D4 .align 2, 0 _080B79C8: .4byte 0x000f423f _080B79CC: str r1, [r2] ldr r0, _080B79DC 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 cmp r1, r0 bls _080B7A10 movs r2, 0x7 b _080B7A46 .align 2, 0 _080B7A0C: .4byte 0x000f423f _080B7A10: ldr r0, _080B7A1C cmp r1, r0 bls _080B7A20 movs r2, 0x6 b _080B7A46 .align 2, 0 _080B7A1C: .4byte 0x0001869f _080B7A20: ldr r0, _080B7A2C cmp r1, r0 bls _080B7A30 movs r2, 0x5 b _080B7A46 .align 2, 0 _080B7A2C: .4byte 0x00002710 _080B7A30: ldr r0, _080B7A90 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 sub_80729D8 _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 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 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 adds r5, r1, 0 ldr r0, _080B7BE4 mov r12, r0 ldr r1, _080B7BE8 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 bl LoadCompressedObjectPic ldr r0, _080B7C8C bl LoadCompressedObjectPalette ldr r0, _080B7C90 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 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 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080B7CE0 adds r0, r1 bl DestroySpriteAndFreeResources ldr r0, _080B7CE4 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 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] ldr r1, _080B7D08 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 ldr r1, _080B7D20 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 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 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 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 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 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 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 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 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 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 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 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 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F28: ldr r0, _080B7F38 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 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 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 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B7F8A: ldr r0, _080B7F9C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ldrh r0, [r5, 0x8] lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x2] ldr r1, _080B83F8 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 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 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 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 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 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 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 ldr r4, _080B8640 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 ldr r2, _080B8648 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 ldr r4, _080B8694 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 ldr r2, _080B869C 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 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 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 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 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 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 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 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 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 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 ldrb r0, [r0, 0x11] movs r1, 0x1E bl sub_80B13EC _080B88B0: ldr r0, _080B88C8 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 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 _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 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 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 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 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 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 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 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 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 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 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 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 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 ldr r1, _080B8EF4 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 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 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 ldrb r0, [r0, 0x11] movs r1, 0x36 bl sub_80B1404 _080B8F68: ldr r0, _080B8F78 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 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 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 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 ldr r0, _080B9080 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 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 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 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 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 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 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 ldr r0, _080B9368 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 ldr r1, [r1] movs r2, 0xE1 lsls r2, 2 bl memcpy ldr r2, _080B9370 adds r0, r6, r2 ldr r1, _080B9374 ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r1, _080B9378 adds r0, r6, r1 ldr r1, _080B937C ldr r1, [r1] movs r2, 0x40 bl memcpy ldr r2, _080B9380 adds r0, r6, r2 ldr r1, _080B9384 ldr r1, [r1] movs r2, 0x28 bl memcpy ldr r5, _080B9388 ldr r4, _080B938C ldr r0, _080B9390 adds r1, r4, r0 adds r0, r5, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9394 adds r1, r4, r2 adds r0, r5, 0 adds r0, 0x38 movs r2, 0x38 bl memcpy ldr r0, _080B9398 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8041324 ldr r1, _080B939C adds r0, r6, r1 ldr r1, _080B93A0 ldr r1, [r1] movs r2, 0x78 bl memcpy ldr r2, _080B93A4 adds r0, r6, r2 ldr r1, _080B93A8 ldr r1, [r1] movs r2, 0xA4 bl memcpy bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080B935C bl sub_8126338 ldr r2, _080B93AC 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 ldr r6, _080B9434 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 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80C0514 ldr r1, _080B943C adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B1C ldr r1, _080B9440 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80FA4E4 ldr r1, _080B9444 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl sub_80B9C6C ldr r1, _080B9448 adds r0, r5, r1 adds r1, r6, 0 adds r2, r4, 0 bl sub_80B9B70 ldr r0, _080B944C 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 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 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 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080B94A8: .4byte gUnknown_03004B28 _080B94AC: .4byte _080B94B0 .align 2, 0 _080B94B0: .4byte _080B94C8 .4byte _080B951C .4byte _080B9550 .4byte _080B9570 .4byte _080B95AC .4byte _080B95C0 _080B94C8: ldr r0, _080B950C ldrb r0, [r0] bl sub_8007270 movs r0, 0x80 lsls r0, 7 movs r1, 0x1 bl VarSet ldr r1, _080B9510 movs r0, 0 strb r0, [r1] bl sub_80B92AC bl sub_80C71D8 movs r0, 0x1 strh r0, [r4] ldr r0, _080B9514 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] ldr r0, _080B9518 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 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 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 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 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 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 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 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 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 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 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 ldrb r0, [r0] cmp r0, 0 beq _080B97D6 ldr r4, _080B975C 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 str r0, [r5] ldr r4, _080B97B4 adds r1, r5, 0 adds r1, 0xC adds r0, r4, 0 bl sub_80B9A50 ldr r0, _080B97B8 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 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 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 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 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 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 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 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 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 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 adds r1, r0 ldr r0, _080B9A14 str r0, [r1] ldr r0, _080B9A18 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080B9A3C str r0, [r1] ldr r1, _080B9A40 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 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 ldr r0, _080B9A84 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 _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 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 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 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 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 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 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 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 ldr r1, _080B9F34 adds r0, r4, r1 adds r1, r6, 0 movs r2, 0x38 bl memcpy ldr r2, _080B9F38 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 ldrh r1, [r4] bl VarSet ldr r0, _080B9FA8 ldr r1, _080B9FAC bl StringCopy ldrh r1, [r4] ldr r0, _080B9FB0 cmp r1, r0 bne _080BA000 ldr r0, _080B9FB4 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 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 ldrh r1, [r4] bl VarSet ldr r0, _080B9FF0 ldr r1, _080B9FF4 bl StringCopy b _080BA000 .align 2, 0 _080B9FEC: .4byte 0x00004001 _080B9FF0: .4byte gStringVar1 _080B9FF4: .4byte gLinkPlayers + 0x8 _080B9FF8: ldr r0, _080BA008 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 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _080BA09C lsls r0, 2 ldr r1, _080BA034 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 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 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 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 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080BA214 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 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 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r0, _080BA220 bl SetUpWindowConfig ldr r0, _080BA224 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 strh r4, [r0] adds r0, 0x4 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x4 strh r4, [r0] ldr r1, _080BA22C ldr r2, _080BA230 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 strh r4, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r1, _080BA238 movs r2, 0x1 strh r2, [r1] ldrh r0, [r1] orrs r0, r2 strh r0, [r1] ldr r2, _080BA23C ldrh r0, [r2] movs r1, 0x8 orrs r0, r1 strh r0, [r2] ldr r0, _080BA240 bl SetVBlankCallback ldr r0, _080BA244 bl SetMainCallback2 ldr r1, _080BA248 adds r0, r1, 0 strh r0, [r6] ldr r0, _080BA24C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BA250 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 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 mov r0, sp movs r2, 0x9 bl memcpy add r7, sp, 0xC ldr r1, _080BA358 adds r0, r7, 0 movs r2, 0x4 bl memcpy add r0, sp, 0x10 mov r8, r0 ldr r1, _080BA35C movs r2, 0x4 bl memcpy add r5, sp, 0x14 ldr r1, _080BA360 adds r0, r5, 0 movs r2, 0xD bl memcpy add r4, sp, 0x24 ldr r1, _080BA364 adds r0, r4, 0 movs r2, 0xC bl memcpy add r6, sp, 0x30 ldr r1, _080BA368 adds r0, r6, 0 movs r2, 0xE bl memcpy ldr r0, _080BA36C 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 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, _080BA374 str r1, [r0] ldr r1, _080BA378 ldr r2, _080BA37C adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA380 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] bl sub_80BA6B8 ldr r1, _080BA3F0 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 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 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 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 ldrh r1, [r2, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BA434 ldr r0, _080BA42C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA430 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA454 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA474 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 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 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BA56C 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 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 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 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 strb r6, [r0] b _080BA64C .align 2, 0 _080BA644: .4byte gUnknown_020387B0 _080BA648: ldr r0, _080BA658 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080BA688 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BA6AA adds r0, r2, 0 bl DestroyTask ldr r0, _080BA6B4 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 ldr r2, _080BA6D8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6DC b _080BA6EC .align 2, 0 _080BA6D4: .4byte REG_WIN1H _080BA6D8: .4byte 0x000011df _080BA6DC: .4byte 0x00002957 _080BA6E0: ldr r1, _080BA6F4 ldr r2, _080BA6F8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BA6FC _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 mov r0, sp movs r2, 0xA bl memcpy mov r0, sp adds r0, 0xC str r0, [sp, 0xB4] ldr r1, _080BA9EC movs r2, 0xB bl memcpy mov r2, sp adds r2, 0x18 str r2, [sp, 0xB8] ldr r1, _080BA9F0 adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x24 str r0, [sp, 0xBC] ldr r1, _080BA9F4 movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x30 str r2, [sp, 0xC0] ldr r1, _080BA9F8 adds r0, r2, 0 movs r2, 0xA bl memcpy mov r0, sp adds r0, 0x3C str r0, [sp, 0xC4] ldr r1, _080BA9FC movs r2, 0xA bl memcpy mov r2, sp adds r2, 0x48 str r2, [sp, 0xC8] ldr r1, _080BAA00 adds r0, r2, 0 movs r2, 0xA bl memcpy add r4, sp, 0x54 ldr r1, _080BAA04 adds r0, r4, 0 movs r2, 0xA bl memcpy add r7, sp, 0x60 ldr r1, _080BAA08 adds r0, r7, 0 movs r2, 0xA bl memcpy add r0, sp, 0x6C mov r10, r0 ldr r1, _080BAA0C movs r2, 0xA bl memcpy add r2, sp, 0x78 mov r9, r2 ldr r1, _080BAA10 mov r0, r9 movs r2, 0xA bl memcpy add r0, sp, 0x84 mov r8, r0 ldr r1, _080BAA14 movs r2, 0x9 bl memcpy add r6, sp, 0x90 ldr r1, _080BAA18 adds r0, r6, 0 movs r2, 0x9 bl memcpy add r5, sp, 0x9C ldr r1, _080BAA1C 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 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r0, _080BAA24 movs r1, 0 strb r1, [r0] ldr r0, _080BAA28 strb r1, [r0] ldr r0, _080BAA2C strb r1, [r0] ldr r0, _080BAA30 movs r2, 0 str r2, [r0] ldr r0, _080BAA34 strb r2, [r0] ldr r1, _080BAA38 movs r0, 0x1 strb r0, [r1] ldr r0, _080BAA3C 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 ldr r2, [sp, 0xAC] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r1, _080BAA44 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 ldrh r2, [r1, 0x2E] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080BAAA8 movs r1, 0x80 lsls r1, 19 ldr r2, _080BAA94 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BAA98 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BAA9C adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BAAA0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BAAA4 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 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 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 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 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 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 ldrb r0, [r0] cmp r0, 0 beq _080BAC0C lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC08 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 b _080BAC98 .align 2, 0 _080BAC18: .4byte voicegroup_8452590 _080BAC1C: ldr r0, _080BAC30 ldrb r0, [r0] cmp r0, 0 beq _080BAC38 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC34 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 b _080BAC98 .align 2, 0 _080BAC44: .4byte voicegroup_8452B90 _080BAC48: ldr r0, _080BAC5C ldrb r0, [r0] cmp r0, 0 beq _080BAC64 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC60 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 b _080BAC98 .align 2, 0 _080BAC70: .4byte voicegroup_8453190 _080BAC74: ldr r0, _080BAC88 ldrb r0, [r0] cmp r0, 0 beq _080BAC90 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080BAC8C 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 _080BAC98: adds r0, r1 bl SetPokemonCryTone ldr r1, _080BACD0 str r0, [r1] _080BACA2: ldr r0, _080BACD0 ldr r0, [r0] cmp r0, 0 beq _080BACC6 ldr r5, _080BACD4 bl IsPokemonCryPlaying strb r0, [r5] ldr r4, _080BACD8 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 mov r0, sp movs r2, 0x40 bl memcpy ldr r6, _080BAD54 ldr r5, _080BAD58 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 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 ldrb r0, [r0] movs r1, 0x1B movs r2, 0x10 movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE08 ldrb r0, [r0] movs r1, 0x1B movs r2, 0xE movs r3, 0x1 bl sub_80BAE78 ldr r0, _080BAE0C 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 mov r0, sp movs r2, 0x2 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _080BAE70 movs r2, 0x2 bl memcpy ldr r6, _080BAE74 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 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 mov r0, sp movs r2, 0x3 bl memcpy add r6, sp, 0x4 ldr r1, _080BB020 adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x8 ldr r1, _080BB024 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 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r1, _080BB02C 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BB034 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 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 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 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 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB0F4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB0F8 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BB0FC lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB100 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 ldr r5, _080BB13C 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 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 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 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 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 mov r0, sp movs r2, 0x5 bl memcpy add r5, sp, 0x8 ldr r1, _080BB21C adds r0, r5, 0 movs r2, 0x5 bl memcpy ldr r4, _080BB220 ldr r0, [r4] movs r1, 0x7 movs r2, 0x2 movs r3, 0x3 bl sub_80BAE78 ldr r1, _080BB224 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 bl SetUpWindowConfig ldr r0, _080BB378 bl InitMenuWindow ldr r1, _080BB37C movs r0, 0x1 strh r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, _080BB380 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 6 orrs r0, r1 ldr r1, _080BB384 ands r0, r1 movs r1, 0xE8 lsls r1, 13 orrs r0, r1 ldr r1, _080BB388 ands r0, r1 movs r1, 0xC0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x4] ldr r1, _080BB38C ldr r0, [sp, 0x8] ands r0, r1 movs r1, 0xF0 lsls r1, 5 orrs r0, r1 ldr r1, _080BB390 ands r0, r1 movs r1, 0x4 orrs r0, r1 str r0, [sp, 0x8] movs r1, 0 ldr r0, _080BB394 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 ldr r0, [sp, 0xC] ands r0, r1 ldr r1, _080BB384 ands r0, r1 movs r1, 0xF0 lsls r1, 12 orrs r0, r1 ldr r1, _080BB388 ands r0, r1 movs r1, 0xD0 lsls r1, 20 orrs r0, r1 str r0, [sp, 0xC] ldr r1, _080BB390 ldr r0, [r4, 0x4] ands r0, r1 movs r1, 0xC orrs r0, r1 ldr r1, _080BB38C ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 str r0, [r4, 0x4] movs r1, 0 ldr r0, _080BB394 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 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r1, _080BB39C ldr r2, _080BB3A0 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080BB3A4 adds r0, r2, 0 strh r0, [r1] subs r1, 0xE adds r2, 0x3D adds r0, r2, 0 strh r0, [r1] ldr r0, _080BB3A8 movs r1, 0x2 bl m4aMPlayFadeOutTemporarily ldr r1, _080BB3AC adds r0, r5, r6 lsls r0, 3 adds r0, r1 ldr r1, _080BB3B0 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 ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BB3D4 ldr r0, _080BB47C 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 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 ldrh r1, [r0, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BB42E ldr r2, _080BB47C 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 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080BB472 movs r1, 0x80 lsls r1, 19 ldr r2, _080BB480 adds r0, r2, 0 strh r0, [r1] adds r1, 0x40 ldr r2, _080BB484 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080BB488 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r1, _080BB48C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BB490 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 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 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 ldr r1, _080BB5E0 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 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 ldr r1, _080BB630 lsls r0, r3, 2 adds r0, r3 lsls r0, 5 adds r0, r1 ldr r1, _080BB634 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _080BB5F8 movs r0, 0x1 strh r0, [r4] ldr r0, _080BB638 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 ldr r1, _080BB658 adds r0, r1 ldrb r1, [r0] cmp r1, 0 beq _080BB660 ldr r1, _080BB65C movs r0, 0x1 strh r0, [r1] b _080BB664 .align 2, 0 _080BB654: .4byte gSaveBlock1 _080BB658: .4byte 0x00001a08 _080BB65C: .4byte gScriptResult _080BB660: ldr r0, _080BB668 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 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 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 lsrs r3, r1, 24 ldr r5, _080BB74C _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 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 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 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 mov r8, r1 adds r7, r0, 0 mov r4, sp mov r6, r12 _080BB834: ldr r0, _080BB84C 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 ldr r0, _080BB94C ldrb r1, [r0] ldr r3, _080BB950 adds r0, r2, r3 strb r1, [r0] movs r3, 0 ldr r0, _080BB954 adds r2, r0 ldr r4, _080BB958 _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 movs r1, 0 bl VarSet ldr r6, _080BB960 adds r0, r6, 0 bl sub_80BB8A8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _080BB964 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 ldr r1, _080BB96C 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 adds r6, r1, 0 _080BB990: lsls r0, r2, 2 adds r0, r2 lsls r0, 5 adds r0, r4 ldr r1, _080BB9E4 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 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 ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r2, _080BBA44 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 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 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 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r2, _080BBADC lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BBAE0 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 ldr r1, _080BBAE8 str r1, [r0] ldr r0, _080BBAEC 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 movs r1, 0 bl CreateTask movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, _080BBB20 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 ldrb r0, [r0, 0x17] cmp r0, 0x9 bne _080BBB48 ldr r0, _080BBB44 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BBB8C 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBC52 ldr r0, _080BBC60 ldrb r0, [r0] movs r1, 0xA bl __udivsi3 ldr r1, _080BBC64 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 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 ldr r0, _080BBC70 str r0, [r1] ldr r0, _080BBC74 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 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080BBCA4 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 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 bl VarGet lsls r0, 16 lsrs r5, r0, 16 movs r1, 0 mov r0, sp strh r1, [r0] ldr r6, _080BBD74 mov r4, sp ldr r0, _080BBD78 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 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 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 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 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 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 bl VarGet lsls r0, 16 lsrs r4, r0, 16 bl CurrentMapIsSecretBase lsls r0, 24 cmp r0, 0 bne _080BBE08 ldr r0, _080BBE04 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 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 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 adds r0, r3 ldrb r0, [r0, 0x11] cmp r0, 0x4 beq _080BBE4E b _080BBF5E _080BBE4E: movs r5, 0 ldr r0, _080BBF88 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 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 ldr r2, [sp, 0x8] adds r1, r2, r6 ldrb r0, [r1] lsrs r0, 4 strh r0, [r7] ldr r6, _080BBF94 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 adds r0, r5, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080BBF9C strh r0, [r1] ldrh r0, [r1] mov r2, r9 ldrb r1, [r2] lsls r1, 5 ldr r3, _080BBFA0 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 strh r0, [r1] ldr r2, _080BBF8C ldrh r0, [r2] adds r0, 0xAE lsls r0, 16 lsrs r0, 16 bl FlagReset ldr r3, _080BBF9C ldrb r0, [r3] mov r4, r10 ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] bl show_sprite ldr r5, _080BBF9C 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 ldrb r0, [r1] mov r2, r10 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_805C78C ldr r3, _080BBF8C 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 bl VarGet ldr r5, _080BBFD0 ldr r4, _080BBFD4 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 _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 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 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 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 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 ldr r1, _080BC0F0 str r1, [r0] ldr r0, _080BC0F4 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 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 ldr r1, _080BC130 adds r0, r1 ldr r1, _080BC134 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080BC13C ldr r1, _080BC138 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 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 ldr r4, _080BC178 _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 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 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 ldr r5, _080BC218 ldr r4, _080BC21C 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 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 bl VarGet lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 ldr r0, _080BC260 adds r4, r0 ldr r5, _080BC264 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC28C 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 adds r1, r6, 0x1 str r1, [sp] adds r1, r3, 0 _080BC322: adds r0, r1, r4 lsls r0, 1 ldr r5, _080BC428 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 adds r0, r1, r2 strh r5, [r0] ldr r5, _080BC430 adds r0, r5, r2 mov r1, r9 strh r1, [r0] ldr r2, _080BC434 adds r0, r2, r6 mov r5, r9 strb r5, [r0] ldr r1, _080BC438 adds r0, r1, r3 mov r2, r9 str r2, [r0] ldr r3, _080BC43C 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 _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 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 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r5, _080BC42C adds r1, r5, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData ldr r2, _080BC430 adds r1, r2, r7 strh r0, [r1] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, _080BC434 add r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0 bl GetMonData ldr r1, _080BC438 add r1, r8 str r0, [r1] adds r0, r4, 0 bl sub_80BC298 ldr r1, _080BC43C 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 ldr r0, _080BC460 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 ldr r4, [r0, 0x4] movs r6, 0 ldrb r0, [r4, 0x3] cmp r6, r0 bcs _080BC504 ldr r3, _080BC4D0 _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 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 ldr r0, _080BC534 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 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 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 movs r0, 0x2 b _080BC5B0 .align 2, 0 _080BC5A8: .4byte gScriptResult _080BC5AC: ldr r1, _080BC5B8 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 ldrb r0, [r0] bl sub_80BC14C ldr r2, _080BC5FC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BC600 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 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 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 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080BC690 str r1, [r0] b _080BC6A0 .align 2, 0 _080BC688: .4byte gUnknown_03004B28 _080BC68C: .4byte gTasks _080BC690: .4byte sub_80BC824 _080BC694: ldr r1, _080BC6A8 ldr r2, _080BC6AC 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 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 gUnknown_03004B28 _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 _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 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 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 gUnknown_03004B28 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 adds r4, r0, r1 ldr r2, _080BC85C 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 gUnknown_03004B28 _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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BC9E0 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 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 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 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 ldrb r1, [r4, 0x8] bl sub_80BC190 ldr r4, _080BCAE0 ldr r1, _080BCAE4 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080BCAE8 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 gUnknown_03004B28 _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 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 adds r4, r6, r7 movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect ldr r2, _080BCB84 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 5 adds r0, r2 ldr r1, _080BCB88 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 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080BCB80: .4byte gUnknown_03004B28 _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 ldr r2, _080BCBBC 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080BCBF4 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 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 str r0, [r4] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BCC4C: .4byte gUnknown_03004B28 _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 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 bl ScriptContext1_SetupScript b _080BCC92 .align 2, 0 _080BCC84: .4byte 0x00004054 _080BCC88: .4byte gUnknown_0815F399 _080BCC8C: ldr r0, _080BCCA0 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r1 ldr r1, _080BCCE0 adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x5 bl __umodsi3 ldr r1, _080BCCE4 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 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 b _080BCD72 .align 2, 0 _080BCD08: .4byte 0x00004054 _080BCD0C: .4byte UnknownString_81A1BB2 _080BCD10: cmp r0, 0x1 bne _080BCD1C ldr r0, _080BCD18 b _080BCD72 .align 2, 0 _080BCD18: .4byte UnknownString_81A1F67 _080BCD1C: cmp r0, 0x2 bne _080BCD28 ldr r0, _080BCD24 b _080BCD72 .align 2, 0 _080BCD24: .4byte UnknownString_81A2254 _080BCD28: cmp r0, 0x3 bne _080BCD34 ldr r0, _080BCD30 b _080BCD72 .align 2, 0 _080BCD30: .4byte UnknownString_81A25C3 _080BCD34: cmp r0, 0x4 bne _080BCD40 ldr r0, _080BCD3C b _080BCD72 .align 2, 0 _080BCD3C: .4byte UnknownString_81A2925 _080BCD40: cmp r0, 0x5 bne _080BCD4C ldr r0, _080BCD48 b _080BCD72 .align 2, 0 _080BCD48: .4byte UnknownString_81A1D74 _080BCD4C: cmp r0, 0x6 bne _080BCD58 ldr r0, _080BCD54 b _080BCD72 .align 2, 0 _080BCD54: .4byte UnknownString_81A20C9 _080BCD58: cmp r0, 0x7 bne _080BCD64 ldr r0, _080BCD60 b _080BCD72 .align 2, 0 _080BCD60: .4byte UnknownString_81A2439 _080BCD64: cmp r1, 0x8 beq _080BCD70 ldr r0, _080BCD6C b _080BCD72 .align 2, 0 _080BCD6C: .4byte UnknownString_81A2B2A _080BCD70: ldr r0, _080BCD78 _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 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 5 ldr r0, _080BCE00 adds r0, r7 mov r10, r0 ldr r1, _080BCE04 adds r1, r7 mov r9, r1 ldr r2, _080BCE08 adds r2, r7 mov r8, r2 ldr r0, _080BCE0C 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 adds r0, r7, r2 adds r1, r0 strh r3, [r1] adds r2, r5, r6 ldr r1, _080BCE14 adds r0, r7, r1 adds r0, r2, r0 adds r1, r5, 0x5 strb r1, [r0] ldr r1, _080BCE18 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 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 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 bl VarGet ldr r2, _080BCE84 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 5 adds r1, r2 ldr r0, _080BCE88 ldrb r0, [r0] ldr r2, _080BCE8C 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 bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080BCF08 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080BCED4 movs r3, 0 ldr r7, _080BCF0C ldr r4, _080BCF10 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 bl FlagSet _080BCED4: ldr r4, _080BCF14 lsls r0, r5, 24 lsrs r0, 24 bl sub_80BCCA4 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r2, _080BCF18 ldr r1, _080BCF0C lsls r0, r5, 2 adds r0, r5 lsls r0, 5 adds r0, r1 ldr r1, _080BCF10 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 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 gUnknown_03004B28 _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 lsls r4, r0, 2 adds r4, r0 lsls r4, 5 adds r4, r2 ldr r2, _080BD068 adds r0, r4, r2 movs r2, 0xA0 bl memcpy ldr r0, _080BD06C 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 ldr r3, _080BD154 _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 ldr r3, _080BD198 _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 _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 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 lsls r1, r2, 2 adds r1, r2 lsls r1, 5 adds r1, r0 ldr r0, _080BD250 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 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 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 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 movs r5, 0x10 negs r5, r5 ldr r4, _080BD79C _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 ldr r6, _080BD79C 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 adds r2, r7, r0 ldrh r1, [r2] ldr r0, _080BD7A4 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 movs r4, 0 ldr r0, _080BD7F4 adds r5, r6, r0 _080BD7B4: lsls r2, r3, 3 adds r2, r3 lsls r2, 2 adds r1, r2, r6 ldr r7, _080BD7F8 adds r0, r1, r7 strb r4, [r0] ldr r0, _080BD7FC 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 ldr r2, _080BD878 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080BD834 adds r2, r1, 0 ldr r1, _080BD87C _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 ldr r0, _080BD87C 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 adds r0, r5, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _080BD884 ldr r2, _080BD880 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 ldr r3, _080BD8F8 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 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 bl FlagSet bl CheckForBigMovieOrEmergencyNewsOnTV lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080BD92C cmp r0, 0x2 beq _080BD97E ldr r0, _080BD93C 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 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 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 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 ldr r0, _080BDA28 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080BDA2C 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 _080BDA36: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldr r4, _080BDA60 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 ldrh r1, [r2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDAA8 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 ldr r1, _080BDAFC adds r0, r2, r1 movs r3, 0 movs r1, 0 strh r1, [r0] ldr r4, _080BDB00 adds r0, r2, r4 strh r1, [r0] adds r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r0, _080BDB04 adds r1, r2, r0 ldr r0, _080BDB08 strh r0, [r1] adds r4, 0x6 adds r1, r2, r4 movs r0, 0 strb r0, [r1] ldr r0, _080BDB0C adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BDB10 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 ldr r3, _080BDB6C ldrh r1, [r3, 0x6] ldr r4, _080BDB70 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 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 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 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 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 adds r0, r5, r4 b _080BDBE4 .align 2, 0 _080BDBDC: .4byte 0x00002b1a _080BDBE0: ldr r1, _080BDC08 adds r0, r5, r1 _080BDBE4: ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _080BDBEC: bl TakeTVShowInSearchOfTrainersOffTheAir ldr r0, _080BDC0C ldr r4, _080BDC10 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 ldr r0, _080BDC74 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 ldrb r0, [r0, 0x14] ldr r1, _080BDC7C 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 ldr r1, _080BDC98 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 ldr r2, _080BDCC0 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 ldr r1, _080BDCD8 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 ldr r1, _080BDD04 adds r4, r0, r1 ldrh r0, [r4] ldr r5, _080BDD08 cmp r0, r5 beq _080BDD10 ldr r0, _080BDD0C 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 ldr r1, _080BDD34 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 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 movs r0, 0xE strh r0, [r1] ldr r1, _080BDDB4 movs r0, 0xD b _080BDE3A .align 2, 0 _080BDDB0: .4byte gUnknown_0202E8CC _080BDDB4: .4byte gUnknown_0202E8CE _080BDDB8: ldr r1, _080BDDC4 movs r0, 0x5 strh r0, [r1] ldr r1, _080BDDC8 movs r0, 0x6 b _080BDE3A .align 2, 0 _080BDDC4: .4byte gUnknown_0202E8CC _080BDDC8: .4byte gUnknown_0202E8CE _080BDDCC: ldr r1, _080BDDD8 movs r0, 0x12 strh r0, [r1] ldr r1, _080BDDDC movs r0, 0x11 b _080BDE3A .align 2, 0 _080BDDD8: .4byte gUnknown_0202E8CC _080BDDDC: .4byte gUnknown_0202E8CE _080BDDE0: ldr r1, _080BDDEC movs r0, 0x15 strh r0, [r1] ldr r1, _080BDDF0 movs r0, 0x16 b _080BDE3A .align 2, 0 _080BDDEC: .4byte gUnknown_0202E8CC _080BDDF0: .4byte gUnknown_0202E8CE _080BDDF4: ldr r1, _080BDE00 movs r0, 0x8 strh r0, [r1] ldr r1, _080BDE04 movs r0, 0x9 b _080BDE3A .align 2, 0 _080BDE00: .4byte gUnknown_0202E8CC _080BDE04: .4byte gUnknown_0202E8CE _080BDE08: ldr r1, _080BDE14 movs r0, 0x13 strh r0, [r1] ldr r1, _080BDE18 movs r0, 0x14 b _080BDE3A .align 2, 0 _080BDE14: .4byte gUnknown_0202E8CC _080BDE18: .4byte gUnknown_0202E8CE _080BDE1C: ldr r1, _080BDE28 movs r0, 0x17 strh r0, [r1] ldr r1, _080BDE2C movs r0, 0x18 b _080BDE3A .align 2, 0 _080BDE28: .4byte gUnknown_0202E8CC _080BDE2C: .4byte gUnknown_0202E8CE _080BDE30: ldr r1, _080BDE40 movs r0, 0xA strh r0, [r1] ldr r1, _080BDE44 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 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BDEA6 lsls r0, 2 ldr r1, _080BDE64 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 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 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 adds r0, r1 adds r1, r5, 0 adds r1, 0x2A bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080BDF16 b _080BE012 _080BDF16: ldr r0, _080BDFA0 bl sub_80BF74C ldr r1, _080BDFA4 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 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BDFA0 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 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 mov r12, r0 adds r3, r5, 0 adds r3, 0x13 ldr r1, _080BE020 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 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 SkipExtCtrlCodes _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 ldrb r0, [r4] cmp r0, 0x19 beq _080BE048 ldr r1, _080BE068 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 ldrh r0, [r1, 0x28] strh r0, [r4, 0x4] ldrh r0, [r1, 0x6] strh r0, [r4, 0x8] ldr r0, _080BE070 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 bl sub_80BF77C lsls r0, 24 cmp r0, 0 bne _080BE112 movs r1, 0 movs r5, 0 ldr r2, _080BE11C _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 ldrb r0, [r7] cmp r0, 0x1 bne _080BE112 ldr r6, _080BE124 adds r0, r6, 0 bl sub_80BF74C ldr r4, _080BE128 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 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 ldrb r0, [r0, 0x14] strb r0, [r4, 0x12] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BE134 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 ldrb r1, [r6] cmp r1, 0x6 bne _080BE224 ldr r0, _080BE230 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r2, _080BE234 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 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 SkipExtCtrlCodes _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 bl sub_80BF484 ldr r0, _080BE27C adds r5, r4, r0 adds r0, r5, 0 bl sub_80BF720 ldr r1, _080BE280 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 ldr r1, _080BE308 adds r0, r7, r1 bl sub_80BF720 ldr r1, _080BE30C 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 ldrb r2, [r1] movs r1, 0x7 ands r1, r2 movs r2, 0x8 negs r2, r2 ands r0, r2 orrs r0, r1 ldr r1, _080BE314 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 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080BE31C 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 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BE388 adds r6, r0, r1 movs r0, 0x7 strb r0, [r6] movs r0, 0x1 strb r0, [r6, 0x1] adds r0, r6, 0x2 ldr r4, _080BE38C adds r1, r4, 0 bl StringCopy adds r0, r6, 0 adds r0, 0xC ldr r2, _080BE390 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 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 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 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 bl sub_80BF77C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080BE458 ldr r6, _080BE464 adds r0, r6, 0 bl sub_80BF74C ldr r5, _080BE468 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 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 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 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 ldrh r0, [r0] cmp r0, 0x1 beq _080BE548 ldr r0, _080BE558 mov r8, r0 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r6, _080BE55C adds r0, r6 ldr r4, _080BE560 movs r1, 0x2 adds r2, r4, 0 bl GetMonData ldr r1, _080BE564 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 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE56C 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 SkipExtCtrlCodes _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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r2, _080BE5F4 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 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 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE650 adds r4, r0 movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x1] adds r0, r4, 0 adds r0, 0x10 ldr r1, _080BE654 bl StringCopy bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BE658 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 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE698 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 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 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080BE764 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 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 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 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 SkipExtCtrlCodes 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 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BE836 movs r1, 0 ldr r3, _080BE840 ldr r2, _080BE844 _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 bl sub_80BF77C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080BE836 ldr r6, _080BE84C adds r0, r6, 0 bl sub_80BF720 ldr r4, _080BE850 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 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 ldr r2, _080BE8B8 adds r1, r0, r2 movs r3, 0 movs r2, 0 strh r2, [r1] ldr r4, _080BE8BC 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 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 ldr r2, _080BE934 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _080BE94C movs r3, 0 adds r5, r1, 0 ldr r7, _080BE938 adds r6, r5, r7 _080BE906: lsls r0, r3, 3 adds r0, r3 lsls r2, r0, 2 adds r1, r2, r5 ldr r7, _080BE938 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 ldr r3, _080BE970 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 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 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 adds r0, r5, 0 bl sub_80BF74C ldr r4, _080BEA40 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 ldrh r0, [r1] strb r0, [r4, 0x2] ldrh r0, [r1] lsrs r0, 8 strb r0, [r4, 0x3] ldr r0, _080BEA48 ldrh r0, [r0] strh r0, [r4, 0x4] adds r0, r4, 0 adds r0, 0x13 ldr r1, _080BEA4C 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 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 ldrb r0, [r1] cmp r0, 0x19 bne _080BEA84 ldrh r0, [r1, 0x2] cmp r0, 0x13 bhi _080BEA80 ldr r2, _080BEA7C 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 ldr r0, _080BEB10 bl sub_80BF77C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080BEB04 ldr r0, _080BEB14 adds r7, r5, r0 adds r0, r7, 0 bl sub_80BF74C ldr r4, _080BEB18 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 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 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080BEBA6 ldr r6, _080BEBB0 adds r0, r6, 0 bl sub_80BEBC8 ldr r5, _080BEBB4 strb r0, [r5] lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080BEBA6 ldr r0, _080BEBB8 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 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 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 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 lsrs r0, 22 adds r0, r1 ldr r2, _080BEC34 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r3, _080BEC38 adds r1, r0, r3 strb r2, [r1] ldr r1, _080BEC3C 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 _080BEC46: ldr r3, _080BEC80 lsls r2, r1, 2 adds r0, r2, r3 ldr r4, _080BEC84 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 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 _080BECA6: lsls r0, r2, 2 adds r1, r0, r3 ldr r4, _080BECD0 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 movs r0, 0 b _080BED86 .align 2, 0 _080BECFC: .4byte gScriptResult _080BED00: ldr r0, _080BED2C lsls r1, 2 adds r4, r1, r0 ldr r0, _080BED30 adds r1, r4, r0 ldrh r0, [r1] cmp r0, 0 bne _080BED5C ldr r2, _080BED34 adds r1, r4, r2 movs r0, 0x2 strb r0, [r1] ldr r0, _080BED38 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 cmp r0, 0x13 bgt _080BED40 ldr r1, _080BED3C 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 ldr r2, _080BED58 _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 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, _080BED94 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r1, _080BED98 ldr r2, _080BED9C adds r0, r4, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl ShowFieldMessage _080BED82: ldr r1, _080BEDA0 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 _080BEDB8: lsls r0, r2, 2 adds r1, r0, r4 ldr r5, _080BEDE4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, r3 bne _080BEDEC ldr r2, _080BEDE8 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 ldrh r1, [r0, 0x4] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _080BEE3A ldr r0, _080BEE2C ldrh r0, [r0] cmp r0, 0x1A beq _080BEE0E b _080BEE3A .align 2, 0 _080BEE28: .4byte gSaveBlock1 _080BEE2C: .4byte gUnknown_0202E8DE _080BEE30: ldr r0, _080BEE40 ldrh r1, [r0, 0x4] ldr r0, _080BEE44 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 ldr r3, _080BEE80 _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 mov r8, r0 _080BEE94: lsls r0, r5, 2 mov r1, r8 adds r2, r0, r1 ldr r3, _080BEEBC adds r1, r2, r3 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _080BEEEC ldr r1, _080BEEC0 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 adds r4, r2, r3 ldrb r0, [r4] cmp r0, 0 bne _080BEEDE ldr r0, _080BEF08 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 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 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF4C ldr r1, [r1, 0x14] bl StringCopy b _080BEF98 .align 2, 0 _080BEF48: .4byte gUnknown_083D1464 _080BEF4C: .4byte gUnknown_083CE048 _080BEF50: ldr r1, _080BEF64 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF68 ldr r1, [r1, 0x18] bl StringCopy b _080BEF98 .align 2, 0 _080BEF64: .4byte gUnknown_083D1464 _080BEF68: .4byte gUnknown_083CE048 _080BEF6C: ldr r1, _080BEF80 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEF84 ldr r1, [r1, 0x1C] bl StringCopy b _080BEF98 .align 2, 0 _080BEF80: .4byte gUnknown_083D1464 _080BEF84: .4byte gUnknown_083CE048 _080BEF88: ldr r1, _080BEF9C lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFA0 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 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 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BEFEC ldr r1, [r1] bl StringCopy b _080BF054 .align 2, 0 _080BEFE8: .4byte gUnknown_083D1464 _080BEFEC: .4byte gUnknown_083CE048 _080BEFF0: ldr r1, _080BF004 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF008 ldr r1, [r1, 0x4] bl StringCopy b _080BF054 .align 2, 0 _080BF004: .4byte gUnknown_083D1464 _080BF008: .4byte gUnknown_083CE048 _080BF00C: ldr r1, _080BF020 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF024 ldr r1, [r1, 0x8] bl StringCopy b _080BF054 .align 2, 0 _080BF020: .4byte gUnknown_083D1464 _080BF024: .4byte gUnknown_083CE048 _080BF028: ldr r1, _080BF03C lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF040 ldr r1, [r1, 0xC] bl StringCopy b _080BF054 .align 2, 0 _080BF03C: .4byte gUnknown_083D1464 _080BF040: .4byte gUnknown_083CE048 _080BF044: ldr r1, _080BF058 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080BF05C 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF084 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 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 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 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 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 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 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 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 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 ldr r0, _080BF290 adds r4, r3, r0 _080BF26A: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r2, r0, r3 ldr r6, _080BF290 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r5 bne _080BF2AE ldr r3, _080BF294 adds r0, r2, r3 ldrb r2, [r0] cmp r2, 0x1 bne _080BF29C ldr r0, _080BF298 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 movs r0, 0 strh r0, [r1] ldr r0, _080BF2E4 ldrh r0, [r0] subs r0, 0x1 cmp r0, 0x6 bhi _080BF330 lsls r0, 2 ldr r1, _080BF2E8 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 ldrh r0, [r0] cmp r0, 0 bne _080BF384 ldr r4, _080BF390 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080BF394 adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r1, r0 ldr r0, _080BF398 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r0, _080BF39C movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3A0 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 ldrh r0, [r0] cmp r0, 0 bne _080BF3CC ldr r0, _080BF3D4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF3D8 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 ldrh r0, [r0] cmp r0, 0 bne _080BF448 ldr r6, _080BF454 bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r5, 0x64 muls r0, r5 ldr r4, _080BF458 adds r0, r4 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r1, r0 ldr r0, _080BF45C 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 movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 ldr r0, _080BF464 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF468 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 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 ldrh r0, [r0] cmp r0, 0 bne _080BF4AC ldr r0, _080BF4B4 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4B8 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 ldrh r0, [r0] cmp r0, 0 bne _080BF4E4 ldr r0, _080BF4EC movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080BF4F0 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 adds r4, r0 ldr r5, _080BF534 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 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 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 lsls r4, 2 adds r4, r0 ldr r0, [r4] movs r1, 0xB muls r1, r5 ldr r2, _080BF670 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 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 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 bl sub_80BF720 ldr r1, _080BF704 strb r0, [r1] ldr r2, _080BF708 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 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 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 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 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 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 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 ldr r0, _080BF998 ldrh r2, [r0] ldr r3, _080BF99C _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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BF9E4 adds r0, r1 ldr r4, _080BF9E8 movs r1, 0x2 adds r2, r4, 0 bl GetMonData ldr r0, _080BF9EC 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 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 adds r0, r6 ldr r2, _080BFAA8 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 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 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFAD8 adds r0, r1 ldr r2, _080BFADC 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB08 adds r0, r1 ldr r4, _080BFB0C 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080BFB3C adds r0, r1 movs r1, 0x1 movs r2, 0 bl GetMonData cmp r4, r0 bne _080BFB44 ldr r1, _080BFB40 movs r0, 0 b _080BFB48 .align 2, 0 _080BFB38: .4byte gUnknown_0202E8CC _080BFB3C: .4byte gPlayerParty _080BFB40: .4byte gScriptResult _080BFB44: ldr r1, _080BFB50 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 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 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFBCC ldr r0, _080BFBD4 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 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 movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0x1 bne _080BFC6C ldr r0, _080BFC44 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080BFC54 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, 0 bne _080BFC6C ldr r0, _080BFC48 ldr r1, _080BFC4C bl StringCopy ldr r0, _080BFC50 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 ldr r1, _080BFCB8 bl StringCopy ldr r0, _080BFCBC movs r1, 0x1 bl VarSet _080BFC6C: ldr r4, _080BFCBC 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 ldr r1, _080BFCB8 bl StringCopy b _080BFD10 .align 2, 0 _080BFCB4: .4byte gStringVar1 _080BFCB8: .4byte gOtherText_Mom _080BFCBC: .4byte 0x00004003 _080BFCC0: ldr r0, _080BFCCC ldr r1, _080BFCD0 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 ldr r1, _080BFCFC 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 ldr r1, _080BFD1C 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 movs r1, 0 bl VarSet ldr r0, _080BFD40 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 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 movs r2, 0xE1 lsls r2, 2 adds r1, r4, r2 movs r3, 0xE1 lsls r3, 3 adds r2, r4, r3 ldr r5, _080BFDB8 adds r3, r4, r5 bl sub_80BFE24 b _080BFDFC .align 2, 0 _080BFDB4: .4byte gSaveBlock1 + 0x2738 _080BFDB8: .4byte 0x00000a8c _080BFDBC: ldr r1, _080BFDC8 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 _080BFDD4: ldr r5, _080BFDE4 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 adds r0, r5, 0 bl sub_80BFE24 _080BFDFC: ldr r4, _080BFE20 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 strb r0, [r1] _080BFE50: movs r6, 0 ldr r0, _080BFEA0 ldrb r1, [r0] cmp r6, r1 bcs _080BFE50 mov r10, r0 _080BFE5C: cmp r6, 0 bne _080BFE64 ldr r2, _080BFEA4 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 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 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 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 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 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 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 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 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 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 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 lsls r2, r6, 3 adds r1, r2, r6 lsls r1, 2 adds r1, r0 ldr r0, _080C01FC adds r1, r0 ldrb r0, [r1] cmp r0, 0x29 bls _080C01EE b _080C038C _080C01EE: lsls r0, 2 ldr r1, _080C0200 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 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 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 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 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 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 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 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 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 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 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 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080C03C4 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 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r1 ldr r1, _080C0404 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 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C0444 movs r2, 0 ldr r6, _080C0450 ldr r4, _080C0454 movs r3, 0 ldr r5, _080C0458 _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 _080C0462: lsls r0, r5, 3 adds r0, r5 lsls r0, 2 adds r4, r0, r6 ldr r1, _080C0498 adds r0, r4, r1 ldrb r0, [r0] bl sub_80BFB54 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C0484 ldr r0, _080C049C 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 ldr r4, _080C050C _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 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 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 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 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 _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 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 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 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 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 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 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 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r2, 2 adds r1, r2 ldr r2, _080C06E4 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 _080C0756: lsls r0, r4, 2 adds r0, r5 ldr r1, _080C0784 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 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C07B2 movs r1, 0 ldr r4, _080C07BC ldr r3, _080C07C0 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 ldr r0, _080C07FC ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldr r2, _080C0800 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 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C094C adds r4, r0, r1 ldr r1, _080C0950 movs r0, 0 strh r0, [r1] ldr r0, _080C0954 ldrb r5, [r0] cmp r5, 0x8 bls _080C093C b _080C0B7A _080C093C: lsls r0, r5, 2 ldr r1, _080C0958 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 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 adds r0, r1 adds r1, r4, 0 adds r1, 0x8 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080C09CC ldr r1, _080C09C8 movs r0, 0x8 b _080C0B78 .align 2, 0 _080C09C0: .4byte gStringVar1 _080C09C4: .4byte gSpeciesNames _080C09C8: .4byte gUnknown_020387E8 _080C09CC: ldr r1, _080C09D4 movs r0, 0x1 b _080C0B78 .align 2, 0 _080C09D4: .4byte gUnknown_020387E8 _080C09D8: ldr r0, _080C0A04 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0A08 adds r1, r2 bl StringCopy ldr r0, _080C0A0C 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 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 movs r0, 0x3 b _080C0B78 .align 2, 0 _080C0A2C: .4byte gStringVar1 _080C0A30: .4byte gUnknown_020387E8 _080C0A34: ldr r1, _080C0A3C movs r0, 0x4 b _080C0B78 .align 2, 0 _080C0A3C: .4byte gUnknown_020387E8 _080C0A40: ldr r0, _080C0A68 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0A6C 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 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A68: .4byte gStringVar1 _080C0A6C: .4byte gStringVar2 _080C0A70: .4byte gUnknown_020387E8 _080C0A74: ldr r0, _080C0A9C adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0AA0 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 movs r0, 0x5 b _080C0B78 .align 2, 0 _080C0A9C: .4byte gStringVar1 _080C0AA0: .4byte gStringVar2 _080C0AA4: .4byte gUnknown_020387E8 _080C0AA8: ldr r0, _080C0AD4 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 ldrh r1, [r4, 0x6] bl sub_80EB3FC ldrh r0, [r4, 0x14] cmp r0, 0 beq _080C0AE0 ldr r1, _080C0ADC movs r0, 0x6 b _080C0B78 .align 2, 0 _080C0AD4: .4byte gStringVar1 _080C0AD8: .4byte gStringVar3 _080C0ADC: .4byte gUnknown_020387E8 _080C0AE0: ldr r1, _080C0AE8 movs r0, 0x7 b _080C0B78 .align 2, 0 _080C0AE8: .4byte gUnknown_020387E8 _080C0AEC: ldr r0, _080C0B1C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B20 adds r1, r2 bl StringCopy ldr r0, _080C0B24 ldrh r2, [r4, 0x14] movs r1, 0xD muls r1, r2 ldr r2, _080C0B28 adds r1, r2 bl StringCopy ldr r0, _080C0B2C ldrh r1, [r4, 0x6] bl sub_80EB3FC ldr r1, _080C0B30 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 adds r1, r4, 0 adds r1, 0x16 ldrb r2, [r4, 0x1E] bl sub_80C08FC ldr r0, _080C0B5C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B60 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 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C0B90 adds r1, r2 bl StringCopy _080C0B74: ldr r1, _080C0B94 movs r0, 0x2 _080C0B78: strb r0, [r1] _080C0B7A: ldr r0, _080C0B98 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0BCC adds r4, r0, r1 ldr r1, _080C0BD0 movs r0, 0 strh r0, [r1] ldr r0, _080C0BD4 ldrb r5, [r0] adds r2, r0, 0 cmp r5, 0xE bls _080C0BBE b _080C0DDE _080C0BBE: lsls r0, r5, 2 ldr r1, _080C0BD8 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 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0C44 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0C48 adds r1, r2 bl StringCopy ldrh r0, [r4, 0x16] cmp r0, 0x6 bls _080C0C50 ldr r1, _080C0C4C 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 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 movs r0, 0x3 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C7C: .4byte gUnknown_020387E8 _080C0C80: ldr r1, _080C0C88 movs r0, 0x4 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0C88: .4byte gUnknown_020387E8 _080C0C8C: ldr r0, _080C0CAC 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 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0CD4 ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0CD8 adds r1, r2 bl StringCopy b _080C0CA2 .align 2, 0 _080C0CD0: .4byte gStringVar1 _080C0CD4: .4byte gStringVar2 _080C0CD8: .4byte gSpeciesNames _080C0CDC: ldr r0, _080C0D08 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0D0C ldrh r2, [r4, 0x14] movs r1, 0xB muls r1, r2 ldr r2, _080C0D10 adds r1, r2 bl StringCopy ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D18 _080C0CFE: ldr r1, _080C0D14 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 movs r0, 0x6 strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D20: .4byte gUnknown_020387E8 _080C0D24: ldr r0, _080C0D2C adds r1, r4, 0 adds r1, 0xC b _080C0D46 .align 2, 0 _080C0D2C: .4byte gStringVar1 _080C0D30: ldr r0, _080C0D38 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 adds r1, r4, 0x2 _080C0D46: ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0D58 movs r0, 0xB strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D54: .4byte gStringVar1 _080C0D58: .4byte gUnknown_020387E8 _080C0D5C: ldr r0, _080C0D74 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldrb r0, [r4, 0x1B] cmp r0, 0 bne _080C0D7C ldr r1, _080C0D78 movs r0, 0xC strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D74: .4byte gStringVar1 _080C0D78: .4byte gUnknown_020387E8 _080C0D7C: ldr r1, _080C0D84 movs r0, 0xD strb r0, [r1] b _080C0DDE .align 2, 0 _080C0D84: .4byte gUnknown_020387E8 _080C0D88: ldr r0, _080C0DB0 ldrh r1, [r4, 0x18] bl sub_80EB3FC ldr r0, _080C0DB4 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DB8 adds r1, r4, 0 adds r1, 0xC ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r1, _080C0DBC 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 adds r1, r4, 0x2 ldrb r2, [r4, 0x1D] bl sub_80C08FC ldr r0, _080C0DF4 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, _080C0DF8 adds r1, r2 bl StringCopy bl TVShowDone _080C0DDE: ldr r0, _080C0DFC 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C0E30 adds r5, r0, r1 ldr r1, _080C0E34 movs r0, 0 strh r0, [r1] ldr r0, _080C0E38 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xC bls _080C0E22 b _080C1014 _080C0E22: lsls r0, r6, 2 ldr r1, _080C0E3C 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 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r0, _080C0E9C ldrb r1, [r5, 0x12] movs r2, 0 bl sub_80FBFB4 ldrh r0, [r5, 0xC] cmp r0, 0xFE bls _080C0EA4 ldr r1, _080C0EA0 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 movs r0, 0x1 strb r0, [r1] b _080C1014 .align 2, 0 _080C0EAC: .4byte gUnknown_020387E8 _080C0EB0: ldr r0, _080C0EEC adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0EF0 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 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 movs r0, 0x6 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F24: .4byte gUnknown_020387E8 _080C0F28: ldr r1, _080C0F30 movs r0, 0xA strb r0, [r1] b _080C1014 .align 2, 0 _080C0F30: .4byte gUnknown_020387E8 _080C0F34: ldr r4, _080C0F5C 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 movs r0, 0x7 strb r0, [r1] b _080C1014 .align 2, 0 _080C0F5C: .4byte gStringVar2 _080C0F60: .4byte gUnknown_020387E8 _080C0F64: ldr r4, _080C0F8C 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 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 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C0FF0 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 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 movs r0, 0xC strb r0, [r1] b _080C1014 .align 2, 0 _080C1000: .4byte gUnknown_020387E8 _080C1004: ldr r0, _080C1028 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x3] bl sub_80C08FC bl TVShowDone _080C1014: ldr r0, _080C102C 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1064 adds r6, r0, r1 ldr r1, _080C1068 movs r0, 0 strh r0, [r1] ldr r0, _080C106C ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x12 bls _080C1054 b _080C138A _080C1054: lsls r0, r7, 2 ldr r1, _080C1070 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 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC ldr r0, _080C10F8 ldrh r2, [r6, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C10FC adds r1, r2 bl StringCopy ldr r0, _080C1100 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r4, _080C1104 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 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 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 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 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 ldr r4, _080C11C0 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 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 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 ldr r4, _080C121C 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 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 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 ldr r4, _080C1274 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 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 ldr r4, _080C12C8 ldrb r2, [r6, 0x1F] adds r1, r4, 0 bl sub_80C08FC ldrh r1, [r6, 0x2] movs r0, 0xB muls r1, r0 ldr r0, _080C12CC 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 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 ldr r1, _080C130C 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 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 ldr r4, _080C1360 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 adds r1, r0 adds r0, r4, 0 bl StringCopy _080C1354: ldr r1, _080C1368 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 adds r1, r6, 0x4 ldrb r2, [r6, 0x1F] bl sub_80C08FC ldr r0, _080C13A4 adds r1, r6, 0 adds r1, 0xF ldrb r2, [r6, 0x1E] bl sub_80C08FC bl TVShowDone _080C138A: ldr r0, _080C13A8 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C13DC adds r5, r0, r1 ldr r1, _080C13E0 movs r0, 0 strh r0, [r1] ldr r0, _080C13E4 ldrb r6, [r0] adds r2, r0, 0 cmp r6, 0xB bls _080C13CE b _080C15DC _080C13CE: lsls r0, r6, 2 ldr r1, _080C13E8 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 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1454 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C1458 adds r1, r2 bl StringCopy ldr r0, _080C145C adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldrb r0, [r5, 0xF] cmp r0, 0x1 bne _080C1464 ldr r1, _080C1460 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 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 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 movs r0, 0x3 strb r0, [r1] b _080C15DC .align 2, 0 _080C149C: .4byte gStringVar2 _080C14A0: .4byte gUnknown_020387E8 _080C14A4: ldr r1, _080C14AC movs r0, 0x4 strb r0, [r1] b _080C15DC .align 2, 0 _080C14AC: .4byte gUnknown_020387E8 _080C14B0: ldr r0, _080C14D8 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C14DC ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C14E0 adds r1, r2 bl StringCopy ldr r0, _080C14E4 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 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1518 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C151C adds r1, r2 bl StringCopy _080C150A: ldr r1, _080C1520 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 adds r1, r5, 0 adds r1, 0x13 ldrb r2, [r5, 0x2] bl sub_80C08FC ldr r0, _080C1568 ldrh r2, [r5, 0x10] movs r1, 0xB muls r1, r2 ldr r2, _080C156C adds r1, r2 bl StringCopy ldr r0, _080C1570 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC ldr r4, _080C1574 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 ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15A0 adds r1, r2 bl StringCopy ldr r0, _080C15A4 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 ldrh r1, [r5, 0x10] movs r4, 0xB muls r1, r4 ldr r2, _080C15CC adds r1, r2 bl StringCopy ldr r0, _080C15D0 adds r1, r5, 0x4 ldrb r2, [r5, 0x3] bl sub_80C08FC _080C15C2: ldr r0, _080C15D4 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 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1624 adds r4, r0, r1 ldr r1, _080C1628 movs r0, 0 strh r0, [r1] ldr r0, _080C162C ldrb r5, [r0] cmp r5, 0x6 bls _080C1614 b _080C173C _080C1614: lsls r0, r5, 2 ldr r1, _080C1630 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 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C1678 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C167C adds r1, r2 bl StringCopy ldr r1, _080C1680 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 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r0, _080C16BC ldrb r1, [r4, 0x12] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C16C0 ldrh r2, [r4, 0xE] movs r1, 0xB muls r1, r2 ldr r2, _080C16C4 adds r1, r2 bl StringCopy ldrb r0, [r4, 0x11] cmp r0, 0x1 bne _080C16CC ldr r1, _080C16C8 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 movs r0, 0x2 strb r0, [r1] b _080C173C .align 2, 0 _080C16D4: .4byte gUnknown_020387E8 _080C16D8: ldr r0, _080C1708 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 movs r0, 0x5 strb r0, [r1] b _080C173C .align 2, 0 _080C1708: .4byte gStringVar1 _080C170C: .4byte gUnknown_020387E8 _080C1710: ldr r1, _080C1718 movs r0, 0x4 strb r0, [r1] b _080C173C .align 2, 0 _080C1718: .4byte gUnknown_020387E8 _080C171C: ldr r0, _080C1730 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x2] bl sub_80C08FC ldr r1, _080C1734 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 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1784 adds r5, r0, r1 ldr r1, _080C1788 movs r0, 0 strh r0, [r1] ldr r0, _080C178C ldrb r7, [r0] adds r6, r0, 0 cmp r7, 0x33 bls _080C1776 b _080C1960 _080C1776: lsls r0, r7, 2 ldr r1, _080C1790 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 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC ldr r0, _080C188C ldrh r2, [r5, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1890 adds r1, r2 bl StringCopy ldr r1, _080C1894 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 movs r0, 0x2 strb r0, [r1] b _080C1960 .align 2, 0 _080C18B4: .4byte gUnknown_020387E8 _080C18B8: ldr r1, _080C18C0 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 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 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 movs r0, 0x1 strb r0, [r1] b _080C196C .align 2, 0 _080C1934: .4byte gStringVar4 _080C1938: .4byte gUnknown_020387E8 _080C193C: ldr r4, _080C1958 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 movs r0, 0x3 strb r0, [r1] b _080C196C .align 2, 0 _080C1958: .4byte gStringVar4 _080C195C: .4byte gUnknown_020387E8 _080C1960: ldr r0, _080C1974 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C19A8 adds r5, r0, r1 ldr r1, _080C19AC movs r0, 0 strh r0, [r1] ldr r0, _080C19B0 ldrb r6, [r0] adds r7, r0, 0 cmp r6, 0x32 bls _080C199A b _080C1AF0 _080C199A: lsls r0, r6, 2 ldr r1, _080C19B4 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 adds r1, r5, 0 adds r1, 0x10 ldrb r2, [r5, 0x18] bl sub_80C08FC adds r0, r5, 0 bl sub_80BF79C ldr r1, _080C1AA4 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 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 movs r0, 0x1 strb r0, [r1] b _080C1AFC .align 2, 0 _080C1AE8: .4byte gStringVar4 _080C1AEC: .4byte gUnknown_020387E8 _080C1AF0: ldr r0, _080C1B04 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1B34 adds r4, r0, r1 ldr r1, _080C1B38 movs r0, 0 strh r0, [r1] ldr r6, _080C1B3C 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 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1B7C ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1B80 adds r1, r2 bl StringCopy ldr r0, _080C1B84 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 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BB4 ldrh r2, [r4, 0x2] movs r1, 0xB muls r1, r2 ldr r2, _080C1BB8 adds r1, r2 bl StringCopy ldr r0, _080C1BBC 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 adds r1, r4, 0x5 ldrb r2, [r4, 0xD] bl sub_80C08FC ldr r0, _080C1BEC ldrh r1, [r4, 0x1E] bl sub_80EB3FC bl TVShowDone _080C1BD6: ldr r0, _080C1BF0 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 ldrh r0, [r0] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080C1C44 adds r4, r0 ldr r0, _080C1C48 ldrb r1, [r4, 0x10] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1C4C ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _080C1C50 adds r1, r2 bl StringCopy bl TVShowDone bl StartMassOutbreak ldr r1, _080C1C54 ldr r0, _080C1C58 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 movs r1, 0 strh r1, [r0] ldr r0, _080C1C80 ldrb r7, [r0] adds r2, r0, 0 cmp r7, 0x8 bls _080C1C70 b _080C1DF8 _080C1C70: lsls r0, r7, 2 ldr r1, _080C1C84 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 ldr r4, _080C1CD4 ldr r2, _080C1CD8 adds r1, r4, r2 ldrb r1, [r1] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1CDC adds r4, r0 ldrb r0, [r4] cmp r0, 0x1 bls _080C1CE4 ldr r1, _080C1CE0 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 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 ldr r1, _080C1D10 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 ldr r4, _080C1D8C ldr r2, _080C1D90 adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1D94 adds r1, r5 bl StringCopy ldr r0, _080C1D98 ldr r2, _080C1D9C adds r1, r4, r2 ldrh r2, [r1] movs r1, 0xD muls r1, r2 ldr r2, _080C1DA0 adds r1, r2 bl StringCopy ldr r0, _080C1DA4 ldr r1, _080C1DA8 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1DAC 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 ldr r4, _080C1E10 ldr r2, _080C1E14 adds r1, r4, r2 ldrh r1, [r1] bl sub_80EB3FC ldr r0, _080C1E18 ldr r2, _080C1E1C adds r1, r4, r2 ldrh r1, [r1] movs r6, 0xB muls r1, r6 ldr r5, _080C1E20 adds r1, r5 bl StringCopy ldr r0, _080C1E24 ldr r1, _080C1E28 adds r4, r1 ldrh r1, [r4] muls r1, r6 adds r1, r5 bl StringCopy ldr r1, _080C1E2C movs r0, 0x1 strh r0, [r1] ldr r1, _080C1E30 movs r0, 0 strb r0, [r1] bl TakeTVShowInSearchOfTrainersOffTheAir _080C1DF8: ldr r0, _080C1E34 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1E60 adds r4, r0, r1 ldr r0, _080C1E64 movs r1, 0 strh r1, [r0] ldrb r0, [r4, 0x2] ldrb r2, [r4, 0x3] cmp r0, r2 bcs _080C1E6C ldr r0, _080C1E68 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 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 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EB4 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1EB8 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 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0x6] bl sub_80C08FC ldr r0, _080C1EFC ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1F00 adds r1, r2 bl StringCopy ldrb r1, [r4, 0x2] movs r0, 0x2 bl sub_80BF088 bl TVShowDone _080C1EE4: ldr r0, _080C1F04 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C1F34 adds r4, r0, r1 ldr r1, _080C1F38 movs r0, 0 strh r0, [r1] ldr r6, _080C1F3C 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 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 ldrh r2, [r4, 0x8] movs r1, 0xB muls r1, r2 ldr r2, _080C1F88 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 adds r1, r4, 0 adds r1, 0x13 ldrb r2, [r4, 0xB] bl sub_80C08FC ldr r0, _080C1FCC ldrb r1, [r4, 0xA] movs r2, 0 bl sub_80FBFB4 ldr r0, _080C1FD0 ldrh r2, [r4, 0x4] movs r1, 0xB muls r1, r2 ldr r2, _080C1FD4 adds r1, r2 bl StringCopy bl TVShowDone _080C1FB6: ldr r0, _080C1FD8 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 movs r0, 0x1 strh r0, [r1] ldr r1, _080C2004 movs r0, 0 strb r0, [r1] ldr r2, _080C2008 ldr r0, _080C200C ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080C2010 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 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 adds r0, r4, 0 bl SetUpWindowConfig ldr r0, _080C20F4 adds r1, r4, 0 bl InitWindowFromConfig ldr r1, _080C20F8 movs r2, 0xF8 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C20FC adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080C2100 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080C2104 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2108 movs r2, 0 strh r2, [r0] adds r1, 0x3A ldr r3, _080C210C adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 subs r3, 0x11 adds r0, r3, 0 strh r0, [r1] ldr r0, _080C2110 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 strh r2, [r0] ldr r0, _080C2118 strh r2, [r0] ldr r0, _080C211C strh r2, [r0] ldr r0, _080C2120 strh r2, [r0] ldr r0, _080C2124 strh r2, [r0] ldr r0, _080C2128 strh r2, [r0] ldr r0, _080C212C strh r2, [r0] ldr r0, _080C2130 strh r2, [r0] ldr r0, _080C2134 strh r2, [r0] ldr r0, _080C2138 strh r2, [r0] ldr r0, _080C213C strh r2, [r0] ldr r0, _080C2140 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 mov r12, r0 movs r5, 0 ldr r1, _080C2210 movs r4, 0x80 lsls r4, 5 ldr r6, _080C2214 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 ldr r1, _080C221C bl LZDecompressVram ldr r0, _080C2220 ldr r1, _080C2224 bl LZDecompressVram ldr r0, _080C2228 ldr r1, _080C222C bl LZDecompressVram bl sub_80C37E4 ldr r0, _080C2230 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette ldr r0, _080C2234 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 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 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 _080C2242: ldr r2, _080C2268 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 ldrb r0, [r0] cmp r5, r0 bne _080C2294 ldr r0, _080C228C ldr r1, _080C2290 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 _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 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 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r0, _080C22F4 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 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 ldr r1, _080C2338 adds r2, r4, r5 lsls r2, 18 ldr r3, _080C233C 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 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 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 movs r1, 0x5 bl CreateTask strb r0, [r4, 0x2] ldr r0, _080C2418 bl SetMainCallback2 ldr r1, _080C241C movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2420 ldr r2, _080C2424 adds r0, r2, 0 strh r0, [r1] ldr r0, _080C2428 movs r1, 0x14 bl CreateTask bl sub_80C3F00 movs r0, 0xDF lsls r0, 1 bl PlayBGM ldr r0, _080C242C 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 ldr r0, _080C24C4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24C8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24CC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24D8 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24DC ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _080C24E0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 ldr r0, _080C24E4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24E8 ldrh r0, [r0] strh r0, [r1] subs r1, 0x2 ldr r0, _080C24EC ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _080C24F0 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C254E ldr r0, _080C2530 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2540 ldr r0, _080C2534 bl sub_80C3698 ldr r1, _080C2538 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C253C 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 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080C2558 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 ldrb r0, [r0] cmp r0, 0 beq _080C258C bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C258C ldr r0, _080C2598 movs r1, 0 bl CreateTask ldr r1, _080C259C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C25A0 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 ldr r2, _080C25BC 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 ldr r0, _080C25F8 ldrb r1, [r0, 0x2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080C25FC 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 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 movs r1, 0x14 bl CreateTask ldr r4, _080C264C ldr r0, _080C2650 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 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 ldr r0, _080C26B8 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 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 ldrb r0, [r0, 0x4] cmp r0, 0x2 bne _080C26D4 movs r0, 0 strh r0, [r5, 0x8] ldr r0, _080C26E0 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 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 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 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 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 ldrb r3, [r5, 0x4] cmp r3, 0 bne _080C27CC ldr r1, _080C27C0 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 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 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C27E8 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 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 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 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 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 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 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 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 _080C2904: ldr r0, _080C2930 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 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 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 movs r1, 0xA bl CreateTask ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r4, 0 ldr r1, _080C2998 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 ldrb r0, [r2] ldr r1, _080C29F8 ldr r3, _080C29FC 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 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 adds r1, r4, r1 adds r0, r3, 0 bl StringCopy _080C2A10: ldr r0, _080C2A58 ldr r1, _080C2A5C adds r1, r4, r1 bl StringCopy ldr r1, _080C2A60 mov r0, sp bl StringExpandPlaceholders ldr r0, _080C2A64 ldrb r1, [r0] mov r0, sp bl sub_80C3158 mov r0, sp bl sub_80C34AC lsls r0, 16 asrs r0, 16 ldr r2, _080C2A68 movs r3, 0x88 lsls r3, 3 movs r1, 0x90 bl sub_80C34CC _080C2A42: ldr r0, _080C2A6C 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 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 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 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 movs r0, 0xF0 strh r0, [r1] ldr r1, _080C2BC8 ldr r3, _080C2BCC adds r0, r3, 0 strh r0, [r1] movs r1, 0 ldr r3, _080C2BD0 ldrb r0, [r3] lsls r4, r7, 2 mov r10, r4 ldr r2, _080C2BD4 ldr r5, _080C2BD8 mov r12, r5 ldr r4, _080C2BDC mov r8, r4 ldr r5, _080C2BE0 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 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 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 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 str r1, [r2] ldr r2, _080C2BE4 movs r3, 0xC0 lsls r3, 9 adds r1, r2, r3 strb r0, [r1, 0x8] ldr r0, _080C2BF4 bl LoadCompressedObjectPic ldr r0, _080C2BF8 bl LoadCompressedObjectPalette ldr r0, _080C2BFC movs r1, 0xA bl CreateTask ldr r0, _080C2C00 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 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 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 ldr r0, _080C2CA0 ldrb r1, [r0, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080C2CA4 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 ldrb r0, [r0, 0x6] cmp r0, 0x2 bne _080C2D04 ldr r3, _080C2CE4 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 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 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 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C2D66 ldr r0, _080C2D70 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 lsls r6, r7, 2 cmp r0, 0 bne _080C2D5A ldr r5, _080C2D74 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 adds r1, r6, r7 lsls r1, 3 adds r1, r0 ldr r0, _080C2D7C 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 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C2DBC ldr r0, _080C2DB0 bl sub_80C3698 bl sub_800832C ldr r1, _080C2DB4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2DB8 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C2DD4 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 ldrb r1, [r0] cmp r1, 0 bne _080C2DFC ldr r0, _080C2E08 strb r1, [r0] bl sub_80C3764 ldr r1, _080C2E0C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C2E10 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 ldr r0, _080C2E84 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bl sub_80BE284 movs r0, 0x2 bl sub_810FB10 ldr r0, _080C2E88 ldrb r0, [r0] bl sub_80B2A7C movs r0, 0xFE bl sub_80B2A7C ldr r4, _080C2E8C ldr r0, _080C2E90 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 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C2E9C 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 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 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 ldrb r0, [r0, 0x3] bl DestroyTask ldr r0, _080C2EE4 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 _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 strh r3, [r0] adds r0, 0x4 strh r3, [r0] adds r0, r5, 0 bl DestroyTask ldr r0, _080C2F24 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 ldrh r3, [r2] adds r0, r3, 0x2 strh r0, [r2] ldr r4, _080C2F60 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 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 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r2, [r4, 0xA] ldr r3, _080C3004 movs r0, 0x6B movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C3008 movs r0, 0x68 movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C300C movs r0, 0x6E movs r1, 0x1 bl BlendPalette _080C2FE6: ldr r1, _080C3000 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 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 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 adds r1, r2 ldr r2, _080C30A4 str r0, [r2] str r1, [r2, 0x4] ldr r0, _080C30A8 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 _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 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 _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 movs r5, 0xA0 lsls r5, 16 _080C3116: ldr r1, _080C3150 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 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 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 mov r8, r1 ldr r7, _080C32C8 ldr r2, _080C32CC ldr r6, _080C32D0 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 ldr r1, _080C32D8 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 mov r10, r0 ldr r1, _080C32D4 bl sub_80034D4 mov r0, sp ldrh r4, [r0] lsls r4, 5 ldr r1, _080C32C8 adds r7, r4, r1 ldr r0, _080C32E0 mov r9, r0 ldr r1, _080C32E4 mov r8, r1 adds r1, r7, 0 mov r2, r8 bl CpuSet mov r5, r9 adds r5, 0x80 ldr r0, _080C32E8 adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet ldr r0, _080C32EC adds r1, r4, r0 adds r0, r5, 0 mov r2, r8 bl CpuSet mov r0, r9 adds r0, 0x40 ldr r1, _080C32F0 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 str r0, [sp, 0x14] ldr r1, _080C32F8 str r1, [sp, 0x18] ldr r0, _080C32FC mov r10, r0 ldr r1, _080C3300 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 adds r1, r7, 0 mov r2, r8 bl CpuSet movs r0, 0xC0 lsls r0, 2 adds r1, r7, r0 ldr r0, _080C33D0 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 ldr r5, _080C33D8 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 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} add r5, sp, 0x18 ldr r6, _080C349C movs r4, 0x7 _080C33F2: adds r0, r6, 0 bl LoadSpriteSheet adds r6, 0x8 subs r4, 0x1 cmp r4, 0 bge _080C33F2 ldr r0, _080C34A0 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 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 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 mov r8, r4 ldrb r5, [r4] lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r5, _080C3518 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 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 ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _080C355C 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 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 str r1, [r0, 0x1C] ldr r0, _080C3584 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 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 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 movs r1, 0x2 strb r1, [r0, 0x4] ldrh r3, [r2, 0x38] ldr r1, _080C362C 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 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 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 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 movs r0, 0xF0 strh r0, [r1] ldr r2, _080C3758 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 ldr r2, _080C3760 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 ldrb r0, [r0, 0x1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r3, _080C37CC 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 ldr r6, _080C37D4 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 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080C37DC ldr r2, _080C37E0 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 ldrb r0, [r0] adds r1, r5, 0 ands r1, r0 cmp r1, 0 beq _080C3814 ldr r0, _080C380C ldr r3, _080C3810 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 ldrh r2, [r0] cmp r2, 0 bne _080C383C movs r4, 0x1 ldr r0, _080C3834 ldr r3, _080C3838 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 ldr r3, _080C3858 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 ldr r3, _080C3880 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 ldr r3, _080C38C4 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 ldrh r0, [r0] cmp r0, 0 bne _080C38CC movs r6, 0 ldr r0, _080C38C0 ldr r3, _080C38C4 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 ldr r3, _080C38E8 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 ldr r3, _080C390C 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 ldr r3, _080C3938 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 ldr r3, _080C3988 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 lsls r4, r6, 12 ldr r2, _080C3984 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 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 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 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 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 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 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 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 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 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 adds r0, r1 adds r2, 0x11 strh r2, [r0] ldr r1, _080C3B2C 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 ldrb r0, [r1] ldr r2, _080C3BC4 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 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 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 str r2, [r0] mov r1, r12 ldr r0, _080C3BD4 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 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 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 str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x30] ldr r1, _080C3CB4 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 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 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 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 mov r8, r0 ldrb r0, [r0, 0x7] cmp r0, 0x27 bhi _080C3DBE ldr r4, _080C3DE0 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 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 adds r0, r1, 0 ands r4, r0 ldr r0, _080C3DEC 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 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 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 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C3E9C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r5, [r1, 0xA] ldr r0, _080C3EA0 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 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 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 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 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 mov r1, r10 adds r5, r1, r0 adds r0, r4, 0 movs r1, 0xA bl __divsi3 str r0, [r5] ldr r0, _080C40A4 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 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 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 adds r0, r2 ldr r2, _080C4184 adds r1, r2, 0 strh r1, [r0] ldr r0, _080C4188 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 ands r0, r3 ldr r1, _080C4190 cmp r0, r1 bls _080C4146 movs r0, 0x80 lsls r0, 9 adds r3, r0 _080C4146: ldr r1, _080C4194 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 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 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 adds r0, r1 strh r2, [r0] ldr r0, _080C422C 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 ands r0, r3 ldr r1, _080C4234 cmp r0, r1 bls _080C41FA movs r2, 0x80 lsls r2, 9 adds r3, r2 _080C41FA: ldr r1, _080C4238 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 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 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 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 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 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 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 b _080C43B6 .align 2, 0 _080C43B0: .4byte 0x0000504c _080C43B4: ldr r3, _080C43EC _080C43B6: adds r1, r0, r3 adds r0, r5, r2 lsls r0, 1 ldr r2, _080C43F0 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 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080C4430 adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r5, 0 beq _080C4422 ldr r4, _080C4434 ldrb r0, [r4] ldr r1, _080C4438 ldrb r1, [r1] bl sub_80AE398 ldrb r0, [r4] bl sub_80AE82C _080C4422: ldr r0, _080C443C 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 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080C4468 adds r2, r1, r0 ldr r0, _080C446C ldrh r0, [r0] cmp r0, 0x4 bhi _080C44B2 lsls r0, 2 ldr r1, _080C4470 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 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 ldr r0, _080C44EC ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080C44D4 b _080C465E _080C44D4: ldr r0, _080C44F0 ldrh r0, [r0] cmp r0, 0x4 bls _080C44DE b _080C465E _080C44DE: lsls r0, 2 ldr r1, _080C44F4 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 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C454C adds r0, r4 movs r1, 0x32 bl GetMonData lsls r0, 24 lsrs r1, r0, 24 mov r0, sp strb r1, [r0] ldr r0, _080C4550 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 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C4590 adds r0, r5 movs r1, 0x33 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4594 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 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C45D4 adds r0, r5 movs r1, 0x34 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C45D8 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 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C461C adds r0, r5 movs r1, 0x35 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4620 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 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080C466C adds r0, r5 movs r1, 0x36 bl GetMonData strb r0, [r4] mov r0, sp ldrb r2, [r0] ldr r0, _080C4670 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 adds r1, r0 adds r0, r5, 0 bl StringCopy ldr r0, _080C46E4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C46DA ldr r0, _080C46E8 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 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4720 ldr r0, _080C4714 ldr r1, _080C4718 ldrh r2, [r1] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r2, _080C471C 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 ldr r1, _080C4738 ldrh r1, [r1] lsls r1, 6 ldr r2, _080C473C 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 ldr r1, _080C4754 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 ldr r4, _080C4798 ldr r0, _080C479C 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 ldr r1, _080C47B8 ldr r0, _080C47BC 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 ldrb r0, [r2] ldr r3, _080C47EC 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 ldrb r0, [r3] ldr r1, _080C4834 ldr r4, _080C4838 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 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 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 ldrb r0, [r2] ldr r3, _080C4888 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C48BA adds r0, r2, 0 bl DestroyTask ldr r0, _080C48C4 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 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 ldr r1, _080C490C ldr r0, _080C4910 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C4932 adds r0, r2, 0 bl DestroyTask ldr r0, _080C493C 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 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 ldr r1, _080C497C 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 adds r0, r6, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _080C49BC adds r0, r4, 0 adds r1, r6, 0 bl SetTaskFuncWithFollowupFunc ldr r1, _080C49C0 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 ldrb r0, [r0] bl sub_80AE098 ldr r1, _080C49E8 ldr r2, _080C49EC 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 ldr r2, _080C4A08 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 ldr r2, _080C4A24 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 ldr r2, _080C4A40 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 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 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 gUnknown_03004B28 _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 _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 strb r0, [r1] ldr r0, _080C4B00 ldrb r0, [r0] bl sub_80AE82C ldr r1, _080C4B04 ldr r2, _080C4B08 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 gUnknown_03004B28 _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 ldr r2, _080C4B30 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 ldrh r0, [r0] cmp r0, 0x1 bne _080C4B90 bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C4B9E ldr r0, _080C4B88 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C4B8C 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C4BC8 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 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 ldr r1, _080C4C20 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 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 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 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 ldrh r0, [r0] cmp r0, 0x4 bhi _080C4CB8 lsls r0, 2 ldr r1, _080C4C90 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 lsls r0, 5 adds r0, r1 ldr r1, _080C4CD4 adds r0, r1 ldrh r1, [r0] cmp r1, 0 bne _080C4CDC ldr r0, _080C4CD8 strh r1, [r0] b _080C4CE2 .align 2, 0 _080C4CD0: .4byte gSaveBlock1 _080C4CD4: .4byte 0x00002e04 _080C4CD8: .4byte gUnknown_0202E8CC _080C4CDC: ldr r1, _080C4CE8 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 ldr r1, _080C4D2C ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C4D40 ldr r0, _080C4D30 ldrh r0, [r0] cmp r0, 0x3 bne _080C4D40 ldr r1, _080C4D34 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C4D38 cmp r1, r0 ble _080C4D40 ldr r1, _080C4D3C 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 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 ldr r1, _080C4D7C 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 mov r12, r0 ldr r1, _080C4EA4 mov r8, r1 ldr r2, _080C4EA8 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 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C4EB8 ldr r0, _080C4EB0 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 ldr r2, _080C4EB4 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 lsls r1, r6, 6 ldr r2, _080C4EDC 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 strh r4, [r0] b _080C4EEA .align 2, 0 _080C4ED8: .4byte gStringVar2 _080C4EDC: .4byte gUnknown_0203857D _080C4EE0: .4byte gUnknown_0202E8D0 _080C4EE4: ldr r1, _080C4EFC 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 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 ldrb r0, [r6] cmp r0, 0 beq _080C4F40 bl sub_80AAF30 ldr r4, _080C4F58 ldr r0, _080C4F5C 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 adds r4, r1 strb r0, [r4] movs r0, 0x3 bl sub_80B2A7C strb r5, [r6] _080C4F40: ldr r0, _080C4F64 bl SetMainCallback2 ldr r1, _080C4F68 ldr r0, _080C4F6C 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 ldr r4, _080C4FAC ldrb r1, [r4, 0x15] bl VarSet ldr r0, _080C4FB0 adds r1, r4, 0 adds r1, 0x55 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB4 adds r1, r4, 0 adds r1, 0x95 ldrb r1, [r1] bl VarSet ldr r0, _080C4FB8 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 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _080C5020 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 ldr r1, _080C5028 ldrb r2, [r1] adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _080C5038 ldr r0, _080C502C ldrh r0, [r0] cmp r0, 0x3 bne _080C5038 ldr r1, _080C5030 lsls r0, r2, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, _080C5034 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 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 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 ldr r0, _080C5144 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 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 adds r0, r1 ldr r1, _080C5150 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] ldr r4, _080C5154 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 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 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 ldr r2, _080C5160 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080C5184 ldr r0, _080C518C 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 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 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 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C524C ldr r4, _080C5248 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 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 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C5294 ldr r2, _080C5284 ldr r1, [r2] ldr r0, _080C5288 muls r0, r1 ldr r1, _080C528C adds r0, r1 str r0, [r2] lsrs r0, 16 ldr r4, _080C5290 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 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 ldrb r0, [r0] cmp r8, r0 bcs _080C535C ldr r1, _080C5370 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 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 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 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 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 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 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080C554C: movs r0, 0x64 muls r0, r3 ldr r1, _080C5564 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 ldr r0, _080C557C 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 ldrb r1, [r0] cmp r1, 0 bne _080C5598 ldr r0, _080C5594 strh r1, [r0] b _080C559E .align 2, 0 _080C5590: .4byte gUnknown_02039270 _080C5594: .4byte gScriptResult _080C5598: ldr r1, _080C55A8 movs r0, 0x1 strh r0, [r1] _080C559E: ldr r0, _080C55AC 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 ldr r0, _080C55C4 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 ldrb r4, [r0] cmp r4, 0 bne _080C55E4 bl copy_player_party_from_sav1 ldr r0, _080C55E0 strh r4, [r0] b _080C55EE .align 2, 0 _080C55DC: .4byte gUnknown_02039270 _080C55E0: .4byte gScriptResult _080C55E4: bl sub_80C5604 ldr r1, _080C55FC movs r0, 0x1 strh r0, [r1] _080C55EE: ldr r0, _080C5600 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 mov r1, sp bl CpuSet movs r5, 0 movs r7, 0x64 ldr r6, _080C5678 mov r4, sp _080C561E: ldr r0, _080C567C 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 ldr r2, _080C5680 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 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 adds r4, r0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0x7 bl sub_803FCD4 adds r0, r4, 0 movs r1, 0x37 mov r2, sp bl SetMonData ldr r5, _080C5724 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 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 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 gUnknown_03004B28 _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 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 bl ShowFieldMessage ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080C581A .align 2, 0 _080C5808: .4byte UnknownString_81A1132 _080C580C: ldr r0, _080C5820 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 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 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 _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 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 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 ldr r3, _080C5A80 bl __adddf3 _080C5A32: ldr r2, _080C5A84 ldr r3, _080C5A88 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 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 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 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 bl sub_80C5A08 ldr r0, _080C5B5C movs r1, 0xB muls r1, r4 ldr r2, _080C5B60 adds r1, r2 bl StringCopy ldrh r1, [r5] movs r0, 0x81 lsls r0, 8 cmp r1, r0 bne _080C5B6C ldr r0, _080C5B64 ldr r1, _080C5B68 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 ldr r1, _080C5B80 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 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 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 bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5BD8 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 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 bl GetVarPointer adds r1, r0, 0 ldr r0, _080C5C08 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 bl GetVarPointer adds r1, r0, 0 ldr r4, _080C5C30 ldr r0, _080C5C34 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 mov r0, sp movs r2, 0x7 bl memcpy mov r8, r4 cmp r6, 0xA bhi _080C5CB2 cmp r5, 0x40 bhi _080C5CB2 ldr r0, _080C5CC4 ldr r1, _080C5CC8 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 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 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5D68 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5D6C 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 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 str r7, [r0] movs r4, 0 ldr r5, _080C5D78 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 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 ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0 bne _080C5DF0 ldr r0, [r1, 0x10] ldr r2, _080C5E14 movs r1, 0x10 bl BlendPalettes ldr r0, _080C5E18 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 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r0, _080C5ECC ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080C5ED0 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 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 str r7, [r0] movs r5, 0 ldr r6, _080C5EDC 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 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 strh r0, [r1, 0x30] ldr r1, _080C5F8C 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 movs r0, 0xFF strh r0, [r1] adds r1, 0x4 movs r0, 0x10 strh r0, [r1] ldr r0, _080C5F94 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 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 movs r1, 0x10 bl BlendPalettes ldr r0, _080C5FE8 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 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 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 movs r0, 0x8F strh r0, [r1] b _080C606C .align 2, 0 _080C6060: .4byte REG_VCOUNT _080C6064: .4byte REG_BLDCNT _080C6068: ldr r0, _080C6074 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 ldrh r1, [r0] movs r0, 0xFF ands r0, r1 strh r0, [r2] mov r0, sp ldrh r1, [r0] ldr r0, _080C60B4 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 movs r0, 0 b _080C60C0 .align 2, 0 _080C60B0: .4byte REG_VCOUNT _080C60B4: .4byte gUnknown_020387EC _080C60B8: .4byte REG_BLDY _080C60BC: ldr r1, _080C60C8 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 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 movs r1, 0 bl BlendPalettes ldr r0, _080C612C 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 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 ldrh r1, [r2] movs r5, 0x2 orrs r1, r5 strh r1, [r2] ldr r3, _080C61F4 ldrh r1, [r3] movs r2, 0x10 orrs r1, r2 strh r1, [r3] ldr r4, _080C61F8 ldrh r2, [r4] movs r6, 0 strh r6, [r4] ldr r3, _080C61FC ldrh r1, [r3] orrs r1, r5 strh r1, [r3] strh r2, [r4] ldr r2, _080C6200 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 ldrh r1, [r3] ldr r2, _080C624C adds r0, r2, 0 ands r0, r1 strh r0, [r3] ldr r3, _080C6250 ldrh r1, [r3] ldr r0, _080C6254 ands r0, r1 strh r0, [r3] ldr r4, _080C6258 ldrh r3, [r4] movs r0, 0 strh r0, [r4] ldr r5, _080C625C ldrh r1, [r5] adds r0, r2, 0 ands r0, r1 strh r0, [r5] strh r3, [r4] ldr r0, _080C6260 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 ldr r1, _080C627C 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 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 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 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 ldr r0, _080C6324 str r0, [r1] ldr r1, _080C6328 ldr r0, _080C632C 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 ldr r0, _080C6354 str r0, [r1] ldr r1, _080C6358 ldr r0, _080C635C 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 ldr r0, _080C6390 str r0, [r1] ldr r1, _080C6394 ldr r0, _080C6398 _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 ldr r0, _080C63B4 ldrb r0, [r0] str r0, [r1] ldr r0, _080C63B8 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 sub_80C63BC sub_80C63BC: @ 80C63BC push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C63E0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C63E4 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 sub_80C63BC 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 sub_80C63FC sub_80C63FC: @ 80C63FC push {r4,lr} bl sub_80C6280 ldr r0, _080C643C ldr r3, _080C6440 ldr r1, _080C6444 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 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 sub_80C63FC 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 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 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 ldr r0, _080C64C0 ldrb r0, [r0] str r0, [r1] ldr r0, _080C64C4 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 sub_80C64C8 sub_80C64C8: @ 80C64C8 push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C64EC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C64F0 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 sub_80C64C8 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 sub_80C6508 sub_80C6508: @ 80C6508 push {r4,lr} ldr r1, _080C6580 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] bl MapGridGetMetatileBehaviorAt adds r2, r0, 0 ldr r1, _080C6584 adds r0, r1, 0 ands r2, r0 cmp r2, 0x96 bne _080C652A ldr r1, _080C6588 movs r0, 0 str r0, [r1, 0x1C] _080C652A: cmp r2, 0x9C bne _080C6534 ldr r1, _080C6588 movs r0, 0x2 str r0, [r1, 0x1C] _080C6534: bl sub_80C6280 ldr r0, _080C658C ldr r3, _080C6590 ldr r1, _080C6594 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 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 sub_80C6508 thumb_func_start sub_80C6598 sub_80C6598: @ 80C6598 push {r4,lr} adds r4, r0, 0 movs r0, 0x9B bl PlaySE ldr r0, _080C65BC ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A movs r0, 0 strb r1, [r2] strh r0, [r4, 0x2E] ldr r0, _080C65C0 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 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 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 ldr r0, _080C6624 ldrb r0, [r0] str r0, [r1] ldr r0, _080C6628 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 sub_80C662C sub_80C662C: @ 80C662C push {lr} bl oei_task_add lsls r0, 24 lsrs r0, 24 ldr r2, _080C6650 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, _080C6654 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 sub_80C662C 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 sub_80C666C sub_80C666C: @ 80C666C push {r4,lr} bl sub_80C6280 ldr r0, _080C66AC ldr r3, _080C66B0 ldr r1, _080C66B4 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 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 sub_80C666C 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 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 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 sub_80C6718 sub_80C6718: @ 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 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C675C 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 sub_80C6718 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 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 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6788: .4byte gUnknown_03004B28 _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 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 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 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C68E8 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 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 gUnknown_03004B28 _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 sub_80C69BC sub_80C69BC: @ 80C69BC movs r0, 0 bx lr thumb_func_end sub_80C69BC thumb_func_start sub_80C69C0 sub_80C69C0: @ 80C69C0 movs r0, 0 bx lr thumb_func_end sub_80C69C0 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 adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt subs r6, r4, 0x1 ldr r2, _080C6A10 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 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 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6AA8 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 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 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 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 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080C6C60 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 ldr r2, _080C6D2C 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 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 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 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 sub_80C6D3C sub_80C6D3C: @ 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 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 ldr r3, _080C6DB4 ldr r1, _080C6DB8 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 ldr r3, _080C6DE4 ldr r1, _080C6DE8 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 ldr r3, _080C6E18 ldr r1, _080C6E1C 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 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 ldr r3, _080C6E5C ldr r1, _080C6E60 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 sub_80C6D3C 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 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 bl MapGridGetMetatileIdAt ldr r1, _080C6E94 cmp r0, r1 bne _080C6E9C ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 ldr r2, _080C6E98 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 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6EDC 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 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 ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, _080C6F20 bl MapGridSetMetatileIdAt ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] bl CurrentMapDrawMetatileAt movs r0, 0 strh r0, [r5, 0x2E] ldr r0, _080C6F24 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 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 cmp r1, r0 beq _080C6FF4 adds r0, 0x40 cmp r1, r0 bne _080C6FFA ldr r0, _080C6FA0 movs r1, 0x64 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, _080C6FA4 ldr r1, _080C6FA8 bl StringCopy ldr r1, _080C6FAC 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 movs r1, 0x32 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _080C6FD0 ldr r1, _080C6FD4 bl StringCopy ldr r1, _080C6FD8 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 movs r0, 0x1 b _080C6FF8 .align 2, 0 _080C6FE4: .4byte gScriptResult _080C6FE8: ldr r1, _080C6FF0 movs r0, 0x2 b _080C6FF8 .align 2, 0 _080C6FF0: .4byte gScriptResult _080C6FF4: ldr r1, _080C7004 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 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 gUnknown_03004B28 _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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C70B8 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7124 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C712C 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080C7188 adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _080C7194 ldr r1, _080C718C 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 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 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 bl LoadSpritePalette ldr r0, _080C7230 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 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 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 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 adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] adds r0, 0x1E bl sub_80C72A8 ldr r4, _080C7368 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 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 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 gUnknown_03004B28 _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 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 gUnknown_03004B28 _080C73B8: ldr r2, _080C7474 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 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 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 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 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 gUnknown_03004B28 _080C74C8: ldr r1, _080C7524 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 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 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 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C7550: .4byte gUnknown_03004B28 _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 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 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 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 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 movs r0, 0xB movs r1, 0x8 bl MapGridSetMetatileIdAt ldr r2, _080C76EC movs r0, 0xB movs r1, 0x9 bl MapGridSetMetatileIdAt ldr r2, _080C76F0 movs r0, 0xB movs r1, 0xA bl MapGridSetMetatileIdAt bl DrawWholeMapView bl ScriptContext2_Enable movs r0, 0 str r0, [sp] ldr r1, _080C76F4 ldr r2, _080C76F8 mov r0, sp bl CpuFastSet ldr r0, _080C76FC 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 bl FuncIsActiveTask lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080C7744 ldr r4, _080C7750 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 adds r4, r0, r1 ldr r0, _080C77D0 bl GetVarPointer adds r6, r0, 0 ldr r7, _080C77D4 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 gUnknown_03004B28 _080C77D0: .4byte 0x000040b4 _080C77D4: .4byte gSaveBlock1 + 0x4 _080C77D8: cmp r2, 0x2 beq _080C783E cmp r2, 0x3 beq _080C7878 b _080C7896 _080C77E2: ldr r0, _080C77F8 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 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 b _080C7866 .align 2, 0 _080C785C: .4byte gUnknown_083D295F _080C7860: ldrb r1, [r7, 0x1] ldrb r2, [r7] ldr r3, _080C7874 _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 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 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 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 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 ldr r0, _080C7950 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 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 bl FlagSet ldr r0, _080C7994 bl FlagSet movs r0, 0x80 lsls r0, 7 bl FlagSet ldr r0, _080C7998 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 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 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 ldrb r0, [r4] cmp r3, r0 bge _080C79F8 ldr r6, _080C7A04 _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 ldr r0, _080C7AA4 str r0, [r1] ldr r1, _080C7AA8 movs r0, 0x7 b _080C7AB6 .align 2, 0 _080C7AA0: .4byte gUnknown_02038800 _080C7AA4: .4byte gUnknown_083D2964 _080C7AA8: .4byte gUnknown_02038804 _080C7AAC: ldr r1, _080C7ACC ldr r0, _080C7AD0 str r0, [r1] ldr r1, _080C7AD4 movs r0, 0xE _080C7AB6: strb r0, [r1] movs r1, 0 ldr r3, _080C7AD8 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 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 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 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 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 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 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 b _080C7BE8 .align 2, 0 _080C7BDC: .4byte gUnknown_02038800 _080C7BE0: .4byte gSpriteTemplate_83D60A4 _080C7BE4: mov r1, sp ldr r0, _080C7C7C _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 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 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 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 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 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 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 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 adds r5, r6, r0 ldrb r0, [r5] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _080C7E84 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 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 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 mov r10, r1 _080C7EB8: adds r0, r4, 0 bl sub_80C7A08 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r0, _080C7F5C 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 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 ldr r2, [r1] lsls r1, r6, 3 adds r1, r2 ldrb r1, [r1, 0x4] ldr r2, _080C7FB4 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 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 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 b _080C802A .align 2, 0 _080C8004: .4byte gUnknown_083D60BC _080C8008: cmp r0, 0x1 bne _080C8014 ldr r3, _080C8010 b _080C802A .align 2, 0 _080C8010: .4byte gUnknown_083D60CC _080C8014: cmp r0, 0x3 bne _080C8020 ldr r3, _080C801C b _080C802A .align 2, 0 _080C801C: .4byte gUnknown_083D60DC _080C8020: cmp r3, 0x4 beq _080C8028 movs r0, 0xFF b _080C8038 _080C8028: ldr r3, _080C803C _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 ldrb r0, [r0] cmp r6, r0 bge _080C8172 lsls r0, r4, 16 asrs r7, r0, 16 _080C80E2: ldr r0, _080C8164 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 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 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 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 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 movs r0, 0x1E strb r0, [r1] ldr r1, _080C81E0 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 movs r0, 0 strb r0, [r1] ldr r1, _080C8204 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 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 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 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 ldrb r0, [r0] cmp r0, 0 beq _080C8268 ldr r0, _080C8264 bl SetMainCallback2 b _080C82B0 .align 2, 0 _080C8260: .4byte gUnknown_02038808 _080C8264: .4byte c2_exit_to_overworld_2_switch _080C8268: ldr r0, _080C8288 ldrb r0, [r0] cmp r0, 0x8 bne _080C829C ldr r0, _080C828C bl ScriptContext2_RunNewScript bl warp_in ldr r1, _080C8290 ldr r0, _080C8294 str r0, [r1] ldr r0, _080C8298 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 bl ScriptContext1_SetupScript bl ScriptContext1_Stop ldr r0, _080C82B8 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 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 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 _080C8302: ldr r1, _080C8348 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 strh r3, [r0] ldr r1, _080C8350 ldrb r0, [r2, 0x8] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, _080C8354 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 ldr r2, _080C8378 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 movs r7, 0x5 ldrsb r7, [r0, r7] mov r4, sp ldr r0, _080C83EC 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 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 ldr r2, _080C8414 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 ldrh r1, [r2] ldr r0, _080C8438 cmp r1, r0 beq _080C8440 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C843C 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 ldrh r1, [r2] ldr r0, _080C8468 cmp r1, r0 beq _080C8470 adds r0, r1, 0 lsls r0, 4 ldr r1, _080C846C 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 mov r6, sp adds r6, 0x2 ldr r7, _080C84EC 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 _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 ldrh r1, [r3] ldr r0, _080C8568 cmp r1, r0 beq _080C8574 ldr r0, _080C856C ldr r2, _080C8570 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 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 ldr r6, _080C863C ldr r4, _080C8640 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C865C 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 ldrb r0, [r0] cmp r0, 0 beq _080C868E bl GetMultiplayerId ldr r1, _080C8698 strb r0, [r1] bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C868E ldr r1, _080C869C 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 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 ldr r1, _080C87A0 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87A4 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 ldr r1, _080C87C8 ldrb r1, [r1] lsls r1, 6 ldr r2, _080C87CC 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 ldr r6, _080C881C movs r5, 0 mov r10, r0 movs r2, 0xFF mov r8, r2 _080C87EA: lsls r1, r7, 8 ldr r0, _080C8820 adds r1, r0 mov r0, r10 movs r2, 0x40 bl memcpy ldr r0, _080C8824 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 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 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 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 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 ldr r4, _080C8930 adds r1, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _080C8934 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 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 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 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 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 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 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 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _080C8A90 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 ldr r3, _080C8ACC 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 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 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 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 ldr r1, _080C8B6C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8B70 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 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 ldr r1, _080C8BD0 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8BD4 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 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 ldr r1, _080C8C10 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C14 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 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 ldr r1, _080C8C64 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8C68 adds r1, r2 movs r2, 0x4 _080C8C48: bl memcpy _080C8C4C: ldr r1, _080C8C6C 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 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 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 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 ldr r1, _080C8D1C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D20 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 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 ldr r1, _080C8D80 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8D84 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 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 b _080C8DD8 .align 2, 0 _080C8DB0: .4byte 0x02019328 _080C8DB4: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _080C8E16 ldr r0, _080C8DC8 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 _080C8DD8: ldr r1, _080C8E00 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8E04 adds r1, r2 movs r2, 0x4 _080C8DE4: bl memcpy _080C8DE8: ldr r1, _080C8E08 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 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 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 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 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 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 ldr r1, _080C8F2C ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8F30 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 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 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 ldr r1, _080C8FA4 ldrb r1, [r1] lsls r1, 8 ldr r2, _080C8FA8 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 ldrh r0, [r1] cmp r0, 0xAF bne _080C8FD8 ldr r1, _080C8FD4 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 adds r1, r2, r4 lsls r1, 3 adds r1, r0 ldr r2, _080C900C 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 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 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 ldr r0, _080C9080 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 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 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 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 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C9180 mov r1, sp ldr r0, _080C918C ldrh r0, [r0] strh r0, [r1, 0x20] ldr r1, _080C9190 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C91C8 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 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 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 ldr r0, _080C9278 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 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 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 ldr r0, _080C9398 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 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 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 ldr r0, _080C9404 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 ldr r0, [r0, 0x4] adds r1, r4, 0 bl ItemfinderCheckForHiddenItems lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C943C ldr r0, _080C9434 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080C9438 str r0, [r1] b _080C9448 .align 2, 0 _080C9430: .4byte gMapHeader _080C9434: .4byte gTasks _080C9438: .4byte sub_80C9458 _080C943C: ldr r1, _080C9450 ldr r2, _080C9454 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 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 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 str r1, [r0] b _080C9516 .align 2, 0 _080C94AC: .4byte gUnknown_03004B28 _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 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 adds r0, r3, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C94FC 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 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 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 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 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 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 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 gUnknown_03004B28 _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 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 adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C9A24 ldr r1, _080C9A30 ldr r2, _080C9A34 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 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 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 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 ldr r2, _080C9AC4 adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField _080C9AAE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C9AB4: .4byte gUnknown_03004B28 _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 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 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 ldr r0, _080C9B34 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 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 ldr r1, _080C9B94 adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, _080C9B98 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 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 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 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 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 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 ldr r0, _080C9C44 ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C48 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 ldr r0, _080C9C74 ldrh r0, [r0] bl itemid_get_x28 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] ldr r2, _080C9C78 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 ldr r0, _080C9CCC str r0, [r1] ldr r1, _080C9CD0 ldr r0, _080C9CD4 str r0, [r1] ldr r1, _080C9CD8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080C9CDC lsrs r1, r2, 16 movs r3, 0 strh r1, [r0, 0x18] strh r2, [r0, 0x1A] ldr r1, _080C9CE0 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 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 ldrh r0, [r0] movs r1, 0x1 bl sub_80A9538 bl ScriptContext2_Enable ldr r0, _080C9D2C 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 ldr r0, _080C9D54 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 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 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 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 ldr r1, _080C9DC8 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 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 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 strb r5, [r0] _080C9E10: ldr r1, _080C9E30 ldr r0, _080C9E34 str r0, [r1] ldr r1, _080C9E38 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 ldr r1, _080C9E54 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 ldr r1, _080C9E70 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 ldr r1, _080C9E8C 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 ldrh r1, [r0] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bls _080C9EC8 ldr r1, _080C9EC0 ldr r2, _080C9EC4 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 ldr r2, _080C9EE0 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080C9F0C 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 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 ldr r0, _080C9F6C ldrh r0, [r0] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _080C9F70 adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r4, _080C9F74 ldr r1, _080C9F78 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080C9F7C 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 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 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 ldr r1, _080C9FD8 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 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 bl sub_80A3E0C ldrh r0, [r4] ldr r1, _080CA008 bl itemid_copy_name ldr r0, _080CA00C ldr r1, _080CA010 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 adds r0, r5, 0 bl VarGet lsls r0, 16 cmp r0, 0 bne _080CA060 ldr r0, _080CA054 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 ldr r2, _080CA05C 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 ldr r2, _080CA078 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 ldrh r0, [r0] ldr r1, _080CA094 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 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 ldr r2, _080CA0D8 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 ldrh r0, [r0] cmp r0, 0x2B bne _080CA124 ldr r0, _080CA110 bl FlagSet ldr r0, _080CA114 bl FlagReset bl sub_80CA07C ldr r0, _080CA118 ldr r1, _080CA11C bl StringExpandPlaceholders ldr r1, _080CA120 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 bl FlagSet ldr r0, _080CA15C bl FlagReset bl sub_80CA07C ldr r0, _080CA160 ldr r1, _080CA164 bl StringExpandPlaceholders ldr r1, _080CA168 lsls r0, r5, 2 adds r0, r5 _080CA146: lsls r0, 3 adds r0, r1 ldr r1, _080CA16C 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080CA1C0 ldr r2, _080CA1C4 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 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 ldr r0, _080CA208 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 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 ldr r1, _080CA240 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 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 ldr r2, _080CA290 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 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 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 ldrh r0, [r4] movs r1, 0x1 bl sub_80A9538 ldrh r0, [r4] bl sub_803F378 adds r1, r0, 0 ldr r2, _080CA30C 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 ldr r0, _080CA360 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 adds r0, r1 ldr r1, _080CA368 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 ldr r2, _080CA370 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080CA390 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 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080CA3F0 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 ldr r1, _080CA40C 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 ldr r1, _080CA428 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 ldr r1, _080CA444 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 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 ldr r1, _080CA49C bl GetMonNickname ldr r4, _080CA4A0 ldr r1, _080CA4A4 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _080CA4A8 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 ldr r2, _080CA4C4 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 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080CA504 bl sub_80C9FDC ldr r1, _080CA4FC ldr r2, _080CA500 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 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 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 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 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 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 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 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 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 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 ldrh r0, [r0] bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 bhi _080CA6E4 lsls r0, 2 ldr r1, _080CA670 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 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 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 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 ldrh r0, [r0, 0xA] strh r0, [r4, 0x36] ldr r0, _080CA764 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA7F4 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 str r0, [r4, 0x1C] ldr r1, _080CA7FC 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 ldrb r1, [r5, 0x6] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x4] strh r0, [r4, 0x2E] ldr r5, _080CA84C 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 str r0, [r4, 0x1C] ldr r1, _080CA854 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 ldrh r0, [r6, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080CA8AC 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 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 ldrb r0, [r0] bl sub_8079E90 adds r0, 0x1 b _080CA8EE .align 2, 0 _080CA8E0: .4byte gUnknown_0202F7C9 _080CA8E4: ldr r0, _080CA924 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 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 movs r0, 0xF strh r0, [r1] strh r2, [r1, 0x2] movs r0, 0x50 strh r0, [r1, 0x4] strh r2, [r1, 0x6] ldr r4, _080CA9A0 ldr r0, _080CA9A4 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 ldrh r0, [r6, 0x6] strh r0, [r4, 0x2E] ldr r5, _080CA9F0 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 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAB38 ldr r1, _080CAB7C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAB38: ldr r4, _080CAB7C ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080CAB80 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 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 str r0, [r4, 0x1C] ldr r1, _080CABBC 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 str r0, [r4, 0x1C] ldr r1, _080CABF4 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 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 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 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 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 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CAD34 ldr r0, _080CAD30 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 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 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 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 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 ldrb r0, [r0] bl sub_8079E90 subs r0, 0x1 b _080CADFE .align 2, 0 _080CADF0: .4byte gUnknown_0202F7C8 _080CADF4: ldr r0, _080CAE10 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 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 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 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 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 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CAFF0 ldr r1, _080CB028 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080CAFF0: ldr r6, _080CB028 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0 bne _080CB030 ldr r4, _080CB02C 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 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 ldrh r0, [r0, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080CB084 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080CB07C 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 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 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 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 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 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 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 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 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 ldrh r1, [r0, 0xE] ldr r0, _080CB2CC 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r2, _080CB3A0 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 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 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 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 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 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 ldrh r1, [r0, 0xE] ldr r0, _080CB488 cmp r1, r0 bne _080CB494 ldr r0, _080CB48C 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 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 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 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CB4F6 ldr r1, _080CB534 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 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 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 str r0, [r5, 0x1C] ldr r1, _080CB598 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 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 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 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 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 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 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 str r0, [r1, 0x1C] ldr r1, _080CB70C 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 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080CB7E8 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 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 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 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 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 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 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 _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 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 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 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 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 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 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 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 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 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 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 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 adds r5, r0, r1 ldr r4, _080CBF4C 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 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 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 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 adds r6, r0, r1 movs r0, 0xC ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080CBFA4 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 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 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 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 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 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 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0 bne _080CC490 ldr r0, _080CC48C b _080CC492 .align 2, 0 _080CC488: .4byte gUnknown_03004B00 _080CC48C: .4byte gUnknown_0202F7C8 _080CC490: ldr r0, _080CC4B0 _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 ldrh r0, [r1, 0x6] strh r0, [r4, 0x32] ldr r0, _080CC4B8 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 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 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 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 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 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 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 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 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 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 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 b _080CC6FA .align 2, 0 _080CC6F4: .4byte gUnknown_0202F7C8 _080CC6F8: ldr r4, _080CC734 _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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CC854 ldr r2, _080CC850 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 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 str r0, [r4, 0x1C] ldr r1, _080CC880 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 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 str r0, [r5, 0x1C] ldr r4, _080CC8C4 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CC910 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 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 str r0, [r5, 0x1C] ldr r0, _080CC96C 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 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 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 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 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 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 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 str r0, [r6, 0x1C] ldr r0, _080CCAAC 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 movs r0, 0x3 strh r0, [r4, 0x2E] ldr r0, _080CCB68 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 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 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 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 ldrh r0, [r4, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCC74 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 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 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 ldrh r0, [r1, 0x2] adds r0, 0x8 strh r0, [r1, 0x2] _080CCD3A: ldr r6, _080CCD9C ldrb r0, [r6] movs r1, 0 bl sub_8077EE4 lsls r0, 24 ldr r4, _080CCD98 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 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080CCDFC 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 movs r3, 0xFD lsls r3, 6 adds r0, r3, 0 strh r0, [r1] ldr r3, _080CCE04 ldrh r1, [r5, 0x3C] lsls r0, r1, 8 subs r2, r1 orrs r0, r2 strh r0, [r3] ldr r0, _080CCE08 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 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 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 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 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 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 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 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080CCF68 ldrh r0, [r4, 0x3C] lsls r0, 8 ldrh r1, [r4, 0x3A] orrs r0, r1 strh r0, [r2] ldr r0, _080CCF6C 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 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 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD18C 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 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CD1AC ldr r0, _080CD1A8 b _080CD1AE .align 2, 0 _080CD1A4: .4byte gUnknown_03004B00 _080CD1A8: .4byte gUnknown_0202F7C8 _080CD1AC: ldr r0, _080CD1F0 _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 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 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 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r5, 0 bl sub_807867C _080CD248: ldr r1, _080CD268 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CD270 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD2A8 ldr r0, _080CD2A4 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080CD360 ldr r1, _080CD35C 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 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 strh r0, [r4, 0x34] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080CD37E: ldr r0, _080CD390 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 str r1, [r0, 0x1C] ldr r1, _080CD404 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 str r0, [r5, 0x1C] ldr r1, _080CD434 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 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 str r0, [r5, 0x1C] ldr r1, _080CD4B4 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 str r0, [r2, 0x1C] ldr r1, _080CD4DC 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 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 str r0, [r5, 0x1C] ldr r1, _080CD510 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 adds r7, r6, 0 b _080CD54C .align 2, 0 _080CD530: .4byte 0x0000fff8 _080CD534: ldr r7, _080CD538 b _080CD54A .align 2, 0 _080CD538: .4byte 0x0000fff8 _080CD53C: movs r7, 0x8 ldr r6, _080CD544 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 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 str r0, [r5, 0x1C] ldr r1, _080CD5A4 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 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 adds r0, r2 lsls r1, 4 ldr r3, _080CD63C 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 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 ldrh r1, [r0, 0xE] ldr r0, _080CD674 cmp r1, r0 bne _080CD66C movs r0, 0 strh r0, [r2, 0x30] strh r0, [r2, 0x2E] ldr r0, _080CD678 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 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 adds r0, r4, 0 ands r1, r0 ldr r0, _080CD76C ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldr r1, _080CD770 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 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 b _080CD7C2 .align 2, 0 _080CD7AC: .4byte sub_80CD7CC _080CD7B0: ldr r0, _080CD7B4 b _080CD7C2 .align 2, 0 _080CD7B4: .4byte sub_80CD8A8 _080CD7B8: ldr r0, _080CD7BC b _080CD7C2 .align 2, 0 _080CD7BC: .4byte sub_80CD8F8 _080CD7C0: ldr r0, _080CD7C8 _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 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 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD814 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD818 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 ldr r4, _080CD89C 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 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 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 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 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strh r0, [r4, 0x34] ldr r1, _080CD8F0 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CD8F4 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 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 ldr r4, _080CD95C 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 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 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 ldr r2, _080CDA78 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 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 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 ldr r1, _080CDB10 ldr r2, _080CDB14 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 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 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 _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 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 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 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 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 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 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 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 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 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 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDD90 ldr r4, _080CDD8C b _080CDD92 .align 2, 0 _080CDD88: .4byte gUnknown_03004B00 _080CDD8C: .4byte gUnknown_0202F7C8 _080CDD90: ldr r4, _080CDDD0 _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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CDDD8 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 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE18 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDE20 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 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r1, _080CDE6C ldr r2, _080CDE70 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CDEAC 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 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 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080CDF28 ldr r4, _080CDF24 b _080CDF2A .align 2, 0 _080CDF20: .4byte gUnknown_03004B00 _080CDF24: .4byte gUnknown_0202F7C8 _080CDF28: ldr r4, _080CDF64 _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 ldrh r0, [r0, 0x6] strh r0, [r5, 0x30] ldr r0, _080CDF6C 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 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 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 ldrb r0, [r4] movs r1, 0 bl sub_8077ABC lsls r0, 24 ldr r5, _080CE100 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 ldrh r1, [r0, 0xE] ldr r0, _080CE104 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 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 ldr r0, _080CE130 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 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080CE1A8 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 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 str r0, [r5, 0x1C] ldr r1, _080CE20C 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 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 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 ldrb r0, [r0] cmp r4, r0 bcs _080CE2BC ldr r6, _080CE2CC ldr r5, _080CE2D0 _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 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 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 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 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 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 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r2, _080CE3A8 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 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 mov r1, r8 ands r1, r0 mov r8, r1 ldr r0, _080CE4C0 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 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 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 lsls r4, r0 mov r1, r10 orrs r4, r1 ldr r0, _080CE4CC str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _080CE4D0 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 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 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 _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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080CE65E movs r2, 0 ldr r3, _080CE60C movs r5, 0x14 adds r5, r3 mov r12, r5 ldr r7, _080CE610 mov r8, r7 ldr r6, _080CE614 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 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 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 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 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 b _080CE726 .align 2, 0 _080CE6F4: .4byte gUnknown_03004B00 _080CE6F8: .4byte gUnknown_0202F7C9 _080CE6FC: .4byte 0xffffec00 _080CE700: ldr r0, _080CE740 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 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 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 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 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 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 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 _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 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 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 str r0, [r6] ldr r0, _080CE8EC 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 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 _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 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080CE968 ldr r0, _080CE948 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 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 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 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 bl oamt_set_x3A_32 ldr r0, _080CEA1C 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 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 _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 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 ldr r6, _080CEAD0 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 _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 ldrb r1, [r4] adds r0, r5, 0 bl StartSpriteAnim ldr r2, _080CEB68 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 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 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 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 ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080CED06 ldr r1, _080CED70 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 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 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 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 _080CEE16: ldr r4, _080CEE54 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 str r0, [r5, 0x1C] ldr r1, _080CEE5C 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 ldrb r1, [r5, 0x2] adds r0, r4, 0 bl StartSpriteAnim ldr r2, _080CEEDC 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 _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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CEFB8 ldr r0, _080CEFB4 b _080CEFBA .align 2, 0 _080CEFB0: .4byte gUnknown_03004B00 _080CEFB4: .4byte gUnknown_0202F7C8 _080CEFB8: ldr r0, _080CEFF8 _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 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080CF004 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF05C ldr r0, _080CF058 b _080CF05E .align 2, 0 _080CF054: .4byte gUnknown_03004B00 _080CF058: .4byte gUnknown_0202F7C8 _080CF05C: ldr r0, _080CF07C _080CF05E: ldrb r0, [r0] adds r1, r4, 0 bl sub_80CEF44 movs r0, 0 strh r0, [r4, 0x2E] ldr r1, _080CF080 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF084 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF0B8 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF0D8 ldr r0, _080CF0D4 b _080CF0DA .align 2, 0 _080CF0D0: .4byte gUnknown_03004B00 _080CF0D4: .4byte gUnknown_0202F7C8 _080CF0D8: ldr r0, _080CF12C _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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF134 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 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF1E4 ldr r0, _080CF1E0 b _080CF1E6 .align 2, 0 _080CF1DC: .4byte gUnknown_03004B00 _080CF1E0: .4byte gUnknown_0202F7C8 _080CF1E4: ldr r0, _080CF208 _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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080CF260 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080CF2CC 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080CF2EC ldr r0, _080CF2E8 b _080CF2EE .align 2, 0 _080CF2E4: .4byte gUnknown_03004B00 _080CF2E8: .4byte gUnknown_0202F7C8 _080CF2EC: ldr r0, _080CF308 _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 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 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 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 ldr r0, _080CF414 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 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 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 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 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 str r0, [r4, 0x1C] ldr r1, _080CF48C 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 str r1, [r0, 0x1C] ldr r1, _080CF4B4 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 ldr r0, _080CF508 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8078E70 ldr r1, _080CF50C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080CF510 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 ldr r0, _080CF548 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 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 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 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 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 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 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 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 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 str r0, [r4, 0x1C] ldr r1, _080CF68C 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 str r0, [r4, 0x1C] ldr r1, _080CF6B0 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 str r1, [r0, 0x1C] ldr r1, _080CF6D8 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 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080CF722 .align 2, 0 _080CF6FC: .4byte gUnknown_03004B00 _080CF700: ldr r0, _080CF7C8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080CF722 ldr r1, _080CF7CC 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 ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r6, _080CF7CC 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 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 str r0, [r5, 0x1C] ldr r1, _080CF7DC 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 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 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 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 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 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 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 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 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 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 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 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 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x10] ldr r3, _080CFB64 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 ldr r0, _080CFBB8 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 adds r0, r2, r7 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x10] ldr r2, _080CFBC0 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 ldrb r0, [r5] movs r1, 0 bl sub_8077ABC ldr r1, _080CFC28 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 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080CFC34 ldr r4, _080CFC30 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 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 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 mov r2, sp ldr r3, _080CFC98 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 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 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 mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r5, r0, r1 ldr r4, _080CFD80 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 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r2, _080CFD88 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 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 ldr r3, _080CFDB0 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 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 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 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 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 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 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 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 lsrs r0, 24 ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 lsrs r7, r0, 16 ldr r0, _080CFF44 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 str r0, [r5, 0x1C] ldr r1, _080CFF4C 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 strh r1, [r0, 0x32] ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] ldr r1, _080CFF64 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 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 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 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 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 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 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 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 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 str r0, [r4, 0x1C] ldr r1, _080D0174 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 movs r0, 0x10 mov r8, r0 ldr r6, _080D01F8 ldr r0, _080D01FC 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 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 str r0, [r5, 0x1C] ldr r1, _080D0208 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 movs r2, 0x10 mov r9, r2 ldr r6, _080D02C0 ldr r7, _080D02C4 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 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 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 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 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 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 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x50 strh r1, [r0, 0x8] ldr r1, _080D0424 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 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 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 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 ldrb r0, [r0] bl sub_8079E90 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x16] ldr r0, _080D04DC 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 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 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 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 adds r0, r1 bl obj_delete_but_dont_free_vram b _080D06EE .align 2, 0 _080D0654: .4byte gSprites _080D0658: ldr r5, _080D06FC 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 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 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 adds r4, r0, r1 ldr r5, _080D0774 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D07A8 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 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 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 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 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 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 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 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0900 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 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 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 _080D097E: strh r0, [r4, 0x30] ldr r0, _080D09B4 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D09BC 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D09DC ldr r0, _080D09D8 b _080D09DE .align 2, 0 _080D09D4: .4byte gUnknown_03004B00 _080D09D8: .4byte gUnknown_0202F7C8 _080D09DC: ldr r0, _080D0A3C _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 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 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 adds r0, r6, 0 bl oamt_set_x3A_32 ldr r0, _080D0A48 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 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D0A88 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 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 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 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 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 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 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 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 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 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 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 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 adds r5, r1, r0 ldr r4, _080D0CDC 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 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0CE4 b _080D0CF0 .align 2, 0 _080D0CD8: .4byte gTasks _080D0CDC: .4byte gUnknown_0202F7C9 _080D0CE0: .4byte gUnknown_030042C0 _080D0CE4: .4byte REG_BG1HOFS _080D0CE8: ldr r0, _080D0D54 ldrh r0, [r0] strh r0, [r5, 0x14] ldr r0, _080D0D58 _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 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 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 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 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 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 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 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 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 movs r3, 0x4 ldrsh r2, [r0, r3] adds r7, r1, 0 adds r1, r0, 0 cmp r2, 0 bne _080D1004 ldr r0, _080D1000 b _080D1006 .align 2, 0 _080D0FFC: .4byte gUnknown_03004B00 _080D1000: .4byte gUnknown_0202F7C8 _080D1004: ldr r0, _080D1040 _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 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 mov r0, sp ldrh r0, [r0] subs r0, r4 strh r0, [r1] _080D107E: ldr r1, _080D1094 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 movs r2, 0xA ldrsh r0, [r0, r2] cmp r0, 0 bne _080D10F0 ldr r0, _080D10E8 ldrb r7, [r0] ldr r0, _080D10EC b _080D10F6 .align 2, 0 _080D10E4: .4byte gUnknown_03004B00 _080D10E8: .4byte gUnknown_0202F7C8 _080D10EC: .4byte gUnknown_0202F7C9 _080D10F0: ldr r0, _080D1110 ldrb r7, [r0] ldr r0, _080D1114 _080D10F6: ldrb r0, [r0] mov r8, r0 ldr r0, _080D1118 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 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 ldr r0, _080D116C adds r0, r4, r0 b _080D120A .align 2, 0 _080D1164: .4byte gUnknown_03004B00 _080D1168: .4byte gSprites _080D116C: .4byte gUnknown_02024BE0 _080D1170: ldr r2, _080D1178 ldr r0, _080D117C 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 ldrh r1, [r1] subs r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _080D11F0 ldr r1, _080D11F4 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 ldr r2, _080D11FC 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 ldr r0, _080D126C 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 lsrs r0, 24 ldrh r1, [r4, 0x2] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080D1274 ldr r2, _080D1278 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 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 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 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 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080D133E lsls r0, 20 ldr r1, _080D135C adds r0, r1 lsrs r0, 16 ldr r1, _080D1360 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D1384 ldr r1, _080D13A0 _080D1384: movs r0, 0xE0 lsls r0, 2 strh r0, [r4, 0x2E] strh r1, [r4, 0x30] ldr r0, _080D13A4 ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D13A8 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 movs r1, 0xA0 cmp r0, 0 beq _080D13DC ldr r1, _080D141C _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 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 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D1490 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D1494 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D14BC ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r0, _080D14C0 _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 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 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 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 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 ldrh r1, [r0, 0xE] ldr r0, _080D1578 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 b _080D1582 .align 2, 0 _080D1574: .4byte gUnknown_03004B00 _080D1578: .4byte 0x0000ffff _080D157C: .4byte sub_80D158C _080D1580: ldr r0, _080D1588 _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 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 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D15DC 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D1678 ldr r0, _080D1674 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 _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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 bl IndexOfSpritePaletteTag mov r1, sp strb r0, [r1] movs r5, 0x1 ldr r0, _080D1B38 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 bl sub_8076BE0 lsls r0, 24 ldr r1, _080D1B40 cmp r0, 0 beq _080D1B1C ldr r0, _080D1B44 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 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 _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 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 adds r0, r1, 0 ands r3, r0 ldr r0, _080D1C00 ands r0, r4 orrs r0, r3 strh r0, [r5, 0x4] ldr r0, _080D1C04 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 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D1C28 ldr r1, _080D1C74 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D1C28: ldr r4, _080D1C74 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 str r0, [r5, 0x1C] ldr r1, _080D1C7C 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 strh r2, [r0] ldr r0, _080D1D30 movs r1, 0xA0 strh r1, [r0] ldr r0, _080D1D34 strh r2, [r0] adds r0, 0x4 strh r1, [r0] ldr r1, _080D1D38 ldr r5, _080D1D3C 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x8] strh r2, [r0, 0xA] ldr r1, _080D1D44 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080D1D84 str r0, [r3] b _080D1D90 .align 2, 0 _080D1D7C: .4byte gTasks _080D1D80: .4byte gUnknown_030042C4 _080D1D84: .4byte sub_80D1D9C _080D1D88: ldr r1, _080D1D98 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 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 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 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 strh r4, [r0] ldr r0, _080D1E2C strh r4, [r0] ldr r0, _080D1E30 ldr r3, _080D1E34 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 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 adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1E90 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 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 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 adds r0, r5, 0 bl sub_80798F4 ldr r1, _080D1F20 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 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 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 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 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 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 str r1, [r0, 0x1C] ldr r1, _080D2090 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 ldr r2, _080D21C0 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080D21CC strh r1, [r0] ldr r0, _080D21D0 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 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080D21D8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080D21DC bl LZDecompressVram ldr r0, _080D21E0 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D21E4 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D21EC 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 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 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 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 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 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D23A0 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 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D23A4 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D235C ldr r2, _080D23A8 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D235C: ldr r0, _080D23AC 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 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D23A8 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 ldr r2, _080D243C 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080D2448 strh r1, [r0] ldr r0, _080D244C 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 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080D2454 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080D245C ldr r0, _080D2458 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D2480 ldr r0, _080D247C _080D246E: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D2488 .align 2, 0 _080D2478: .4byte gUnknown_0202F7C9 _080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer _080D2480: ldr r0, _080D24CC ldr r1, [sp, 0x4] bl LZDecompressVram _080D2488: ldr r0, _080D24D0 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D24D4 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D24DC 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 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 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 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 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 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D2690 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 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D2694 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D264C ldr r2, _080D2698 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D264C: ldr r0, _080D269C 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 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D2698 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 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 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 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 adds r0, r1, 0 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r4, 0x32] ldr r3, _080D278C 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 ldrh r1, [r0, 0xE] ldr r0, _080D27DC 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 b _080D2C66 .align 2, 0 _080D2C60: .4byte gUnknown_0202F7C8 _080D2C64: ldr r4, _080D2C94 _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 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 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 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 adds r4, r0 ldr r2, _080D2D34 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080D2D38 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D2D84 ldr r0, _080D2D80 b _080D2D86 .align 2, 0 _080D2D7C: .4byte gUnknown_03004B00 _080D2D80: .4byte gUnknown_0202F7C8 _080D2D84: ldr r0, _080D2E1C _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 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 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D2E28 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D2E2C 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 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 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 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 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 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D3060 ldr r4, _080D305C 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 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 str r0, [r5, 0x1C] ldr r1, _080D30A8 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 ldr r1, _080D30CC 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 ldr r1, _080D30EC 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 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 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 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 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D3240 ldr r1, _080D32D0 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D3240: ldr r5, _080D32D0 ldrh r0, [r5, 0xC] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r4, _080D32D8 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 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 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 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 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 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 str r1, [r0, 0x1C] ldr r1, _080D3394 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 str r1, [r0, 0x1C] ldr r1, _080D33B0 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D33E4 ldr r1, _080D33E0 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 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 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 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 ldrh r1, [r0, 0xE] ldr r0, _080D348C 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r0, _080D34C8 ldrh r0, [r0] strh r0, [r4, 0x8] ldr r0, _080D34CC bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x80 lsls r1, 1 adds r0, r1 strh r0, [r4, 0xC] ldr r0, _080D34D0 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 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 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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r3, _080D3654 ldrh r0, [r3] movs r2, 0 strh r0, [r1, 0x8] strh r2, [r3, 0xE] ldr r0, _080D3658 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 ldrh r0, [r2, 0xE] adds r0, 0x3 movs r1, 0xFF ands r0, r1 strh r0, [r2, 0xE] ldr r1, _080D3694 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 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 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 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 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D37EC ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080D3772 ldr r4, _080D37F0 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 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 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 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 str r0, [r6, 0x1C] ldr r1, _080D37F8 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 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 str r0, [r4, 0x1C] ldr r1, _080D3834 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 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x3C] ldr r0, _080D3870 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 ldr r2, _080D3990 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 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 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r7, _080D399C 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 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D399C str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D39B8 ldr r2, _080D3994 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, _080D39A0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D39A8 ldr r0, _080D39A4 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 _080D39AA: ldr r1, [sp, 0x4] bl LZDecompressVram b _080D39CE .align 2, 0 _080D39B4: .4byte gUnknown_08E70C38 _080D39B8: ldr r0, _080D39F0 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 ldr r1, [sp] bl LZDecompressVram ldr r0, _080D39F8 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D3A00 ldr r0, _080D39FC 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 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080D3A0E: ldr r0, _080D3A7C ldr r4, _080D3A80 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 adds r0, r3, 0 ldr r1, _080D3A88 strh r0, [r1] ldr r2, _080D3A8C adds r0, r2, 0 ldr r3, _080D3A90 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 bne _080D3AD8 ldr r2, _080D3AC8 adds r0, r2, 0 ldr r3, _080D3ACC strh r0, [r3] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldr r3, _080D3AD0 strh r0, [r3] movs r0, 0x2 strh r0, [r6, 0x8] ldr r0, _080D3AD4 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 strh r4, [r0] ldr r1, _080D3B20 adds r0, r1, 0 ldr r2, _080D3B24 strh r0, [r2] ldr r0, _080D3B28 strh r0, [r6, 0x8] movs r0, 0x1 strh r0, [r6, 0xA] strh r4, [r7, 0xE] _080D3AEE: ldr r1, _080D3B2C ldr r3, _080D3B1C ldrh r0, [r3] strh r0, [r1] adds r1, 0x2 ldr r2, _080D3B24 ldrh r0, [r2] strh r0, [r1] ldr r1, _080D3B30 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 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 lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x8] ldr r1, _080D3D48 ldrh r1, [r1] adds r0, r1 ldr r2, _080D3D48 strh r0, [r2] ldrh r0, [r4, 0xA] ldr r3, _080D3D4C ldrh r3, [r3] adds r0, r3 ldr r1, _080D3D4C 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 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 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x12] _080D3C02: ldr r1, _080D3D44 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 movs r4, 0x80 lsls r4, 5 mov r8, r6 ldr r0, _080D3D58 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 str r6, [r0] str r1, [r0, 0x4] ldr r1, _080D3D58 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D3D02 ldr r2, _080D3D5C ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D3D02: ldr r0, _080D3D48 strh r4, [r0] ldr r1, _080D3D4C strh r4, [r1] ldr r0, _080D3D60 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r2, _080D3D44 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 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 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 mov r12, r1 cmp r3, r0 bge _080D3DDA mov r7, r12 movs r5, 0xF0 lsls r5, 3 add r5, r12 ldr r6, _080D3E70 _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 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 _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 movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 ldr r7, _080D3E70 _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 str r0, [sp] ldr r0, _080D3EB8 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 ldr r5, _080D3F84 _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 ldr r5, _080D3F84 _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 ldr r5, _080D3F84 _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 ldr r5, _080D4040 _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 ldr r5, _080D4040 _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 ldr r5, _080D4040 _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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D409C 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 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 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 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 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 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 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 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 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 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D4254 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 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 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 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 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 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D43C8 ldr r1, _080D43BC ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D43C0 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 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080D4414 _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 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 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 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 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 adds r4, r1, r0 bl sub_80D4394 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldr r0, _080D460C 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 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 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 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 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 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 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 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 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 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D47C4 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 muls r0, r1 ldr r1, _080D47CC 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 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 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 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 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 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 adds r5, r1, r0 ldr r4, _080D497C 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 strh r0, [r5, 0x1A] strh r6, [r5, 0xA] strh r6, [r5, 0x8] ldr r0, _080D4984 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 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 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 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 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 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 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 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 _080D4BB6: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r6 ldr r1, [r2] ldr r0, _080D4BEC 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 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 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 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 ldrh r0, [r1, 0x4] strh r0, [r4, 0x34] ldrh r0, [r1, 0x6] strh r0, [r4, 0x36] ldr r0, _080D4CE8 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 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 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 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 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D4F14 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 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 str r0, [r4, 0x1C] ldr r1, _080D4F58 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D4F98 ldr r2, _080D4F94 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D5000 ldr r2, _080D4FFC 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D50A0 ldr r0, _080D509C 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 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 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 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 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 str r1, [r0, 0x1C] ldr r1, _080D51A4 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 ldrb r0, [r5] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080D5204 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 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D51EE: ldr r1, _080D520C 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 ldrh r1, [r2] negs r1, r1 strh r1, [r2] ldrh r1, [r2, 0x4] negs r1, r1 strh r1, [r2, 0x4] ldr r1, _080D5228 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 ldrh r0, [r0, 0x4] movs r1, 0 strh r0, [r4, 0x3C] strh r1, [r4, 0x2E] ldr r0, _080D5250 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 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 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D53B0 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 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 str r0, [r4, 0x1C] ldr r1, _080D53F0 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 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 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 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 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 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 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 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 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 movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080D5600 _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 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 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 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 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 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 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 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 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 ldrh r4, [r0, 0x20] ldr r0, _080D5818 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 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 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 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 adds r0, r3, 0 ands r1, r0 ldr r3, _080D58F0 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 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 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 gUnknown_03004B28 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 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 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 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 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 adds r1, r3, 0 ands r2, r1 ldr r1, _080D5A6C ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] ldr r1, _080D5A70 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 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 ldrb r1, [r4, 0x4] adds r0, r5, 0 bl StartSpriteAnim ldrh r0, [r4, 0x4] strh r0, [r5, 0x3C] ldr r0, _080D5B54 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 _080D5B5A: strh r0, [r5, 0x36] ldr r0, _080D5B7C 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 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 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 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 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 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 ldr r1, _080D5D54 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 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 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 adds r4, r1, r0 ldr r0, _080D5E40 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 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 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 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 _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 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 _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 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 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 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 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 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 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 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 ldr r0, _080D6118 ldrb r0, [r0] adds r0, r1 ldrb r6, [r0] movs r5, 0x10 ldrsh r0, [r2, r5] cmp r0, 0 bne _080D6120 ldr r4, _080D611C 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D61F0 ldr r0, _080D61EC 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D625C ldr r0, _080D6258 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 ldrh r0, [r0] ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] _080D6266: ldr r0, _080D6274 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D62E4 ldr r2, _080D62E0 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 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6324 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 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 b _080D63A2 .align 2, 0 _080D6354: .4byte gUnknown_0202F7C8 _080D6358: ldr r4, _080D6370 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 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 ldrb r0, [r0] eors r4, r0 b _080D63A4 .align 2, 0 _080D6398: .4byte gUnknown_0202F7C8 _080D639C: .4byte gUnknown_0202F7C9 _080D63A0: ldr r0, _080D63C4 _080D63A2: ldrb r4, [r0] _080D63A4: ldr r0, _080D63C8 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 ldr r6, _080D6480 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 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 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 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r6, _080D6504 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D650C ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] ldr r1, _080D6510 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 ldr r1, _080D6648 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D65FE ldr r0, _080D664C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D6606 _080D65FE: ldr r1, _080D6650 ldrh r0, [r1, 0x2] negs r0, r0 strh r0, [r1, 0x2] _080D6606: ldr r5, _080D664C ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 ldr r4, _080D6650 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 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 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 b _080D667E .align 2, 0 _080D6674: .4byte gUnknown_03004B00 _080D6678: .4byte gUnknown_0202F7C9 _080D667C: ldr r0, _080D670C _080D667E: ldrb r6, [r0] ldr r0, _080D6710 ldr r3, _080D6714 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 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 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 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D6724 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r1, _080D6728 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 movs r5, 0x6 ldrsh r0, [r3, r5] lsls r0, 2 adds r1, r0 ldr r5, _080D67DC adds r0, r5, 0 ands r1, r0 ldr r0, _080D67E0 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D6814 str r0, [r4, 0x1C] ldr r1, _080D6818 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 ldrb r0, [r6] movs r1, 0 bl sub_8077ABC ldr r1, _080D6868 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 lsls r0, 24 ldr r5, _080D686C 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 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 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 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 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 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 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 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 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 adds r1, r6, 0 ands r2, r1 ldr r1, _080D6A14 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 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 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 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 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 adds r0, r7, 0 ands r1, r0 ldr r0, _080D6AE4 ands r0, r5 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080D6AE8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r3, 0x1C adds r2, r3 ldr r0, _080D6AEC 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 adds r5, r1, r0 ldr r0, _080D6B60 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6B68 ldr r4, _080D6B64 b _080D6B6A .align 2, 0 _080D6B5C: .4byte gTasks _080D6B60: .4byte gUnknown_03004B00 _080D6B64: .4byte gUnknown_0202F7C8 _080D6B68: ldr r4, _080D6BAC _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 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 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 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 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 adds r4, r0 ldr r1, _080D6CAC 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D6CB4 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D34 ldr r4, _080D6D30 b _080D6D36 .align 2, 0 _080D6D2C: .4byte gUnknown_03004B00 _080D6D30: .4byte gUnknown_0202F7C8 _080D6D34: ldr r4, _080D6D64 _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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6D6C 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D6D8C ldr r4, _080D6D88 b _080D6D8E .align 2, 0 _080D6D84: .4byte gUnknown_03004B00 _080D6D88: .4byte gUnknown_0202F7C8 _080D6D8C: ldr r4, _080D6DC8 _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 ldrh r0, [r1, 0x2] strh r0, [r5, 0x24] ldrh r0, [r1, 0x4] strh r0, [r5, 0x26] ldr r1, _080D6DD0 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D6DD4 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 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 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 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 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 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 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 _080D6F12: strh r0, [r5, 0x22] ldr r2, _080D6F2C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 adds r0, r6, 0 ands r1, r0 ldr r0, _080D7544 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 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 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 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 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 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 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, _080D76B8 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 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D7810 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r4, _080D7814 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 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 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080D7928 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 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldr r0, _080D7964 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D796C ldr r0, _080D7968 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 ldrh r0, [r0, 0x4] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] _080D7976: ldr r0, _080D79A8 ldrb r0, [r0] movs r1, 0x3 bl sub_8077ABC lsls r0, 24 ldr r1, _080D79A4 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D79B0 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D7A24 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7AEC ldr r0, _080D7AE8 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 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 ldr r1, _080D7B9C 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C00 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r1, _080D7C60 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 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D7D5C ldr r0, _080D7D58 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 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 ldr r6, _080D7E14 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 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 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 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 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 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 ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7F72: ldr r0, _080D7F7C 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 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 ldrh r0, [r0, 0x2] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] _080D7FCE: ldr r0, _080D7FF0 _080D7FD0: ldrb r0, [r0] strh r0, [r5, 0x3C] ldr r0, _080D7FEC 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 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 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 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 ldr r2, _080D81AC 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080D81B8 strh r1, [r0] ldr r0, _080D81BC 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 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D81C4 str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D81C8 ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D81CC str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D81D0 bl LZDecompressVram ldr r0, _080D81D4 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _080D81DC 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 ldr r1, _080D8224 adds r0, r1, 0 ldrh r4, [r2] adds r0, r4 strh r0, [r2] ldr r1, _080D8228 ldr r3, _080D822C 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 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 movs r2, 0x1A ldrsh r0, [r3, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r3, 0x1E] ldr r2, _080D829C 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 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 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D83C4 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 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D83C8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8378 ldr r2, _080D83CC ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8378: ldr r0, _080D83D0 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 ldr r4, _080D83D8 _080D838C: movs r1, 0 strh r1, [r2] strh r1, [r4] ldr r0, _080D83DC strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D83CC 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 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 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 ldr r2, _080D84E4 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080D84F0 strh r1, [r0] ldr r0, _080D84F4 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 add r2, sp, 0xC str r2, [r0] str r1, [r0, 0x4] ldr r2, _080D84FC str r2, [r0, 0x8] ldr r2, [r0, 0x8] ldr r2, _080D8500 ldr r3, [sp] str r2, [r0] str r3, [r0, 0x4] ldr r2, _080D8504 str r2, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _080D8508 bl LZDecompressVram ldr r0, _080D850C 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080D8514 strh r1, [r0, 0x26] ldr r1, _080D8518 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 ldr r4, _080D855C 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 movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0x4 bls _080D854C b _080D86D0 _080D854C: lsls r0, 2 ldr r1, _080D8564 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 movs r2, 0x1A ldrsh r0, [r4, r2] adds r0, r1 ldrb r1, [r0] strh r1, [r4, 0x1E] ldr r2, _080D85BC 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 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 movs r4, 0x80 lsls r4, 5 mov r8, r5 ldr r0, _080D86E4 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 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080D86E8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080D8698 ldr r2, _080D86EC ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080D8698: ldr r0, _080D86F0 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 ldr r2, _080D86F8 _080D86AC: movs r1, 0 strh r1, [r3] strh r1, [r2] ldr r0, _080D86FC strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080D86EC 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 ldrh r0, [r6] strh r0, [r5, 0x2E] ldr r0, _080D87EC mov r8, r0 ldrb r0, [r0] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 ldr r7, _080D87F0 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 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 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 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 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 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 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 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 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 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 ldr r2, _080D8930 adds r0, r2 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8938 ldr r1, _080D8934 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 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 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 ldr r2, _080D89D0 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 ldr r1, _080D8A6C adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8A78 ldr r1, _080D8A70 ldr r0, _080D8A74 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 _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 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 adds r1, r0 ldr r0, _080D8AF4 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 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 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 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 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 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 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 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 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 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 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 ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] ldr r0, _080D8ED4 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 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 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 str r0, [r4, 0x1C] ldr r1, _080D8F0C 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D8F68 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 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 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 ldrb r3, [r1] lsls r3, 1 adds r3, r1 ldr r1, _080D8FEC 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 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 str r0, [r4, 0x1C] ldr r1, _080D9028 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 movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080D9054 ldr r0, _080D9074 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 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 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 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 ldrh r0, [r0, 0x4] strh r0, [r5, 0x2E] ldr r0, _080D90EC str r0, [r5, 0x1C] ldr r1, _080D90F0 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 movs r2, 0 ldrsh r1, [r0, r2] mov r9, r0 cmp r1, 0 bne _080D9118 ldr r0, _080D9114 b _080D911A .align 2, 0 _080D9110: .4byte gUnknown_03004B00 _080D9114: .4byte gUnknown_0202F7C8 _080D9118: ldr r0, _080D9260 _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 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 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 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 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 str r1, [r0] _080D9250: ldr r0, _080D9278 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 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 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 str r0, [r4, 0x1C] ldr r1, _080D9324 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 str r0, [r5, 0x1C] ldr r1, _080D9374 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 ldrb r1, [r0] movs r0, 0x2 ldr r2, _080D93F8 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D93C2 ldr r1, _080D93FC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080D93C2: ldr r4, _080D93FC 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 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 ldrb r1, [r5, 0x4] adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] ldr r0, _080D946C str r0, [r4, 0x1C] ldr r1, _080D9470 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 str r0, [r4, 0x1C] ldr r1, _080D94A4 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldr r0, _080D94C8 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 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 str r0, [r5, 0x1C] ldr r1, _080D9520 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 str r1, [r0, 0x1C] ldr r1, _080D953C 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D95EC ldr r4, _080D95E8 b _080D95EE .align 2, 0 _080D95E4: .4byte gUnknown_03004B00 _080D95E8: .4byte gUnknown_0202F7C8 _080D95EC: ldr r4, _080D9634 _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 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 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 _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 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080D96E4 ldr r4, _080D96E0 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 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 movs r4, 0x2 ldrsh r0, [r3, r4] lsls r0, 4 adds r1, r0 ldr r4, _080D9748 adds r0, r4, 0 ands r1, r0 ldr r0, _080D974C 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 b _080D9784 .align 2, 0 _080D9760: .4byte 0x0000fffd _080D9764: movs r0, 0x3 strh r0, [r5, 0x3A] ldr r0, _080D9770 strh r0, [r5, 0x3C] b _080D9792 .align 2, 0 _080D9770: .4byte 0x0000fffd _080D9774: ldr r0, _080D9780 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9828 ldr r4, _080D981C 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 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 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 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 _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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080D98D4 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 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080D992C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r0, _080D9930 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 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9A7C ldr r4, _080D9A70 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 ldrb r4, [r0] ldr r0, _080D9A78 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 ldrb r4, [r0] ldr r0, _080D9AB8 _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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080D9B20 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 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 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 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 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 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 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 str r0, [r4, 0x1C] ldr r1, _080D9C3C 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080D9D14 ldr r1, _080D9D10 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 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 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 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 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 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 strh r0, [r5, 0x38] adds r0, r5, 0 bl sub_80786EC ldr r0, _080D9DD0 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 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 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 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 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080D9E74 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080D9F40 ldr r1, _080D9F7C ldrh r0, [r1] negs r0, r0 strh r0, [r1] _080D9F40: ldr r0, _080D9F7C 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 str r0, [r4, 0x1C] ldr r1, _080D9F84 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 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 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 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 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 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r1, _080DA0D0 ldrh r0, [r1, 0x2] strh r0, [r4, 0x8] ldrh r0, [r1] strh r0, [r4, 0xA] ldr r0, _080DA0D4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldr r0, _080DA0D8 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 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 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA18C ldr r1, _080DA1DC ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DA18C: ldr r4, _080DA1DC ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldrh r0, [r6, 0x20] strh r0, [r6, 0x30] ldr r5, _080DA1E0 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 str r0, [r6, 0x1C] ldr r1, _080DA1E8 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 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DA234 ldr r1, _080DA2A8 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 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 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 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 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 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 str r0, [r5, 0x1C] ldr r1, _080DA2FC 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 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DA340 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DA344 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 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 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 strh r0, [r5, 0x20] strh r0, [r5, 0x22] _080DA3C2: ldr r0, _080DA404 ldrh r0, [r0] strh r0, [r5, 0x2E] ldrh r0, [r5, 0x20] strh r0, [r5, 0x30] ldr r4, _080DA408 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 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 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 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 ldrh r1, [r0, 0xE] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080DA500 ldr r0, _080DA4FC b _080DA502 .align 2, 0 _080DA4F8: .4byte gUnknown_03004B00 _080DA4FC: .4byte gUnknown_0202F7C8 _080DA500: ldr r0, _080DA5B0 _080DA502: ldrb r6, [r0] adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DA518 ldr r1, _080DA5B4 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 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 ldr r2, _080DA5BC 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 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 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 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 ldr r1, _080DA810 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 ldr r1, _080DA944 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 ldr r3, _080DAA70 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 ldr r3, _080DABC8 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 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 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 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 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 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 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 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 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 ldr r1, _080DADD4 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080DAE44 ldr r0, _080DADD8 ldr r1, _080DADDC 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 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DAE24 ldr r0, _080DAE20 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 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 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 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 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 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 b _080DAFCE .align 2, 0 _080DAFB4: .4byte 0x00008001 _080DAFB8: ldr r0, _080DAFBC 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 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 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 movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 bne _080DB03C ldr r0, _080DB090 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 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 ldrb r1, [r4, 0x8] adds r0, r5, 0 bl SeekSpriteAnim ldrh r0, [r5, 0x20] subs r0, 0x20 strh r0, [r5, 0x20] ldr r0, _080DB098 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 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 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 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 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 mov r8, r0 ldr r5, _080DB190 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 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 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 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 ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r1, 0x6] strh r0, [r4, 0x30] ldr r0, _080DB2C8 str r0, [r4, 0x1C] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r2, _080DB2CC 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 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 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080DB3A0 ldr r4, _080DB39C b _080DB3A2 .align 2, 0 _080DB398: .4byte gUnknown_03004B00 _080DB39C: .4byte gUnknown_0202F7C8 _080DB3A0: ldr r4, _080DB3DC _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 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 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 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 b _080DB4D6 .align 2, 0 _080DB4CC: .4byte gUnknown_03004B00 _080DB4D0: .4byte gUnknown_0202F7C8 _080DB4D4: ldr r4, _080DB500 _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 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 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 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 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 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 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 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 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 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 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DB826 ldr r1, _080DB884 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 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 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 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 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 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 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 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 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 ldr r0, _080DB9DC 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 ldr r0, _080DB9DC 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 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 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 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 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 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 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 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBB6C 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 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DBBFC 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 str r0, [r4, 0x10] movs r0, 0 strh r0, [r4, 0x2E] adds r0, r4, 0 bl InitSpriteAffineAnim ldr r0, _080DBC30 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 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBCCC 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 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 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 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 adds r0, r4, 0 bl sub_80798F4 ldr r0, _080DBD54 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 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 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 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 adds r5, r1, r0 movs r0, 0 movs r7, 0x10 strh r7, [r5, 0xE] strh r0, [r5, 0x10] ldr r4, _080DBE88 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 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DBE90 strh r7, [r0] ldr r0, _080DBE94 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 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 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 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 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 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 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 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 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 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 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DC094 ldr r4, _080DC0A8 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 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 adds r5, r1, r0 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080DC154 ldr r0, _080DC110 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC120 ldr r0, _080DC114 strh r0, [r5, 0x1C] ldr r4, _080DC118 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 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _080DC1A8 ldr r0, _080DC19C strh r0, [r5, 0x1C] ldr r4, _080DC1A0 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 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 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 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 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 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 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 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 adds r4, r1, r0 ldr r0, _080DC310 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 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 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DC378 ldr r0, _080DC370 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC374 b _080DC380 .align 2, 0 _080DC36C: .4byte gUnknown_0202F7C9 _080DC370: .4byte gUnknown_030042C0 _080DC374: .4byte REG_BG1HOFS _080DC378: ldr r0, _080DC3E0 ldrh r0, [r0] strh r0, [r4, 0x1C] ldr r0, _080DC3E4 _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 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 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 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 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 mov r9, r0 movs r7, 0x3 ldr r1, _080DC474 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 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 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 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 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r0, r2, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, _080DC5E8 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 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 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 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 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 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 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 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 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DC774 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 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 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 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 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 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 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC8E8 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 str r0, [r6, 0x1C] ldr r1, _080DC8F0 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DC934 ldr r0, _080DC994 ldrh r1, [r0, 0x2] negs r1, r1 strh r1, [r0, 0x2] ldrh r1, [r0] negs r1, r1 strh r1, [r0] _080DC934: ldr r5, _080DC990 ldrb r0, [r5] movs r1, 0x2 bl sub_8077EE4 lsls r0, 24 ldr r4, _080DC994 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 str r0, [r6, 0x1C] ldr r1, _080DC99C 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 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 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 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 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 ldrh r0, [r0, 0x6] strh r0, [r5, 0x38] ldr r0, _080DCA34 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCAAC ldr r0, _080DCAA8 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 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 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 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 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 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 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 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 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 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] b _080DCC0E .align 2, 0 _080DCBE8: .4byte gUnknown_03004B00 _080DCBEC: ldr r0, _080DCCE8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCC0E ldr r1, _080DCCEC 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 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r5, _080DCCF0 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 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 ldrb r0, [r5] movs r1, 0x2 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 ldr r6, _080DCCEC 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 str r0, [r7, 0x1C] ldr r1, _080DCCF8 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DCD1C ldr r1, _080DCD6C ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080DCD1C: ldr r4, _080DCD6C ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080DCD70 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DCE5C ldr r4, _080DCE58 b _080DCE5E .align 2, 0 _080DCE54: .4byte gUnknown_03004B00 _080DCE58: .4byte gUnknown_0202F7C8 _080DCE5C: ldr r4, _080DCE90 _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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DCE98 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 movs r1, 0x6 ldrsh r0, [r6, r1] cmp r0, 0 beq _080DCEBC ldr r0, _080DCF0C 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 strh r0, [r5, 0x36] ldrh r0, [r6, 0x4] strh r0, [r5, 0x38] ldr r1, _080DCF14 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r1, _080DCF18 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 strh r0, [r4, 0x36] ldr r1, _080DCF58 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080DCF5C 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 ldrb r1, [r4, 0xA] bl StartSpriteAnim adds r0, r5, 0 bl AnimateSprite ldr r0, _080DCF8C 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 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 str r0, [r5, 0x1C] ldr r1, _080DCFE0 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 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 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 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 ldr r2, _080DD158 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 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 strh r5, [r0] ldr r0, _080DD164 strh r5, [r0] ldr r0, _080DD168 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 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080DD170 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080DD174 bl LZDecompressVram ldr r0, _080DD178 ldr r1, [sp] bl LZDecompressVram ldr r0, _080DD17C 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _080DD13A ldr r0, _080DD184 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DD13A movs r5, 0x1 _080DD13A: ldr r0, _080DD188 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x8] ldr r0, _080DD18C 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 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 ldr r5, _080DD1C8 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 ldrh r0, [r1] adds r0, 0x6 _080DD1D2: strh r0, [r1] adds r4, r1, 0 ldr r1, _080DD208 ldr r5, _080DD20C 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 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 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 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 movs r4, 0x80 lsls r4, 5 mov r9, r5 ldr r0, _080DD390 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 str r5, [r0] str r1, [r0, 0x4] ldr r1, _080DD394 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080DD344 ldr r2, _080DD398 ldrb r1, [r2] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2] _080DD344: ldr r0, _080DD39C 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 ldr r2, _080DD3A4 _080DD358: movs r1, 0 strh r1, [r4] strh r1, [r2] ldr r0, _080DD3A8 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _080DD398 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 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _080DD3F8 ldr r0, _080DD3F4 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 strh r0, [r5, 0x20] _080DD3FC: ldr r4, _080DD420 ldrh r0, [r4] strh r0, [r5, 0x22] ldr r1, _080DD424 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 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 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 str r0, [r4, 0x1C] ldr r1, _080DD4D0 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 adds r6, r1, r0 ldr r5, _080DD558 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 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 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 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 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 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 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 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 movs r5, 0 b _080DD7D0 .align 2, 0 _080DD7B0: .4byte gSpriteTemplate_83DAD78 _080DD7B4: ldr r3, _080DD7BC movs r5, 0x50 b _080DD7D0 .align 2, 0 _080DD7BC: .4byte gSpriteTemplate_83DAD90 _080DD7C0: ldr r3, _080DD7C8 movs r5, 0x40 b _080DD7D0 .align 2, 0 _080DD7C8: .4byte gSpriteTemplate_83DAD90 _080DD7CC: ldr r3, _080DD86C 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 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 adds r1, r5, 0 ands r2, r1 ldr r1, _080DD878 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _080DD8A8 ldr r0, _080DD8B8 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 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 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 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 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 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 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 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 ldr r0, [r2] cmp r0, 0x20 bgt _080DDA60 ldr r1, _080DDA88 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 movs r0, 0x1 strh r0, [r1, 0xE] _080DDA70: cmp r2, 0x41 ble _080DDA7A ldr r1, _080DDA88 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 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 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 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 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 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 movs r2, 0xE ldrsh r1, [r0, r2] ldr r0, _080DDB68 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 ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] ldrh r0, [r4, 0x20] strh r0, [r4, 0x30] ldr r5, _080DDBCC 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 str r0, [r4, 0x1C] movs r0, 0x10 strh r0, [r4, 0x3A] ldr r1, _080DDBD4 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 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 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 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 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 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 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 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 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 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 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 ldrh r1, [r1] strh r1, [r0, 0xA] strh r2, [r0, 0xC] movs r1, 0x10 strh r1, [r0, 0xE] ldr r1, _080DDE78 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 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 lsls r0, 8 orrs r1, r0 strh r1, [r2] movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x9 bne _080DDEBE ldr r0, _080DDECC 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 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 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 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 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 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 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 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 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 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 movs r2, 0xFD lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r2, _080DE248 ldrh r0, [r5, 0xE] lsls r0, 8 ldrh r1, [r5, 0xC] orrs r0, r1 strh r0, [r2] ldr r4, _080DE24C 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 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 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 _080DE276: strh r1, [r0, 0x32] ldr r4, _080DE2CC 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 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 str r1, [r0] ldr r0, _080DE2D8 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 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 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 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 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 adds r1, r2 movs r2, 0 strh r2, [r1, 0x26] ldr r2, _080DE3D0 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 adds r5, r0, r1 ldr r0, _080DE410 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 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 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 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 b _080DE4F4 .align 2, 0 _080DE4E4: .4byte gSprites _080DE4E8: .4byte 0x0000fdff _080DE4EC: movs r2, 0x80 lsls r2, 19 ldrh r1, [r2] ldr r0, _080DE4FC _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 adds r0, r1 movs r3, 0x24 ldrsh r1, [r5, r3] lsls r1, 1 ldr r2, _080DE538 adds r1, r2 ldr r2, _080DE53C bl CpuSet ldrh r0, [r5, 0x10] ldr r3, _080DE540 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 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 ldr r2, _080DE5BC adds r0, r2, 0 b _080DE5C6 .align 2, 0 _080DE5B8: .4byte REG_BLDCNT _080DE5BC: .4byte 0x00003f42 _080DE5C0: ldr r1, _080DE5D4 ldr r3, _080DE5D8 adds r0, r3, 0 _080DE5C6: strh r0, [r1] ldr r1, _080DE5DC 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 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 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 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 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 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 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 adds r4, r0, r1 ldr r0, _080DE6E4 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 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 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 _080DE720: ands r0, r1 strh r0, [r2] b _080DE7AA .align 2, 0 _080DE728: .4byte 0x0000fbff _080DE72C: ldrh r0, [r4, 0x10] ldr r3, _080DE73C movs r1, 0x10 movs r2, 0 bl BlendPalette b _080DE7AA .align 2, 0 _080DE73C: .4byte 0x00003c0d _080DE740: ldr r3, _080DE788 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 bl FreeSpritePaletteByTag ldr r0, _080DE790 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DE800 ldr r4, _080DE7F8 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 b _080DE824 .align 2, 0 _080DE7F4: .4byte gUnknown_03004B00 _080DE7F8: .4byte gUnknown_0202F7C8 _080DE7FC: .4byte gUnknown_0202F7C9 _080DE800: ldr r4, _080DE8C8 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 _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 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 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 adds r1, r0 str r1, [sp] ldr r1, _080DEA6C 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 ldrh r0, [r2] strh r0, [r1, 0x1C] ldr r4, _080DEA74 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 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 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 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 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 movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEA70 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 adds r5, r0 ldr r0, _080DEA84 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 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 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 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 movs r3, 0x2 ldrsh r1, [r2, r3] bl __divsi3 strh r0, [r4, 0x34] ldr r1, _080DEB2C 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 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 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 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 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 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 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080DECFC strh r1, [r0] ldr r1, _080DED00 ldr r2, _080DED04 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 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 lsls r3, r6, 16 asrs r2, r3, 16 lsls r0, r2, 8 orrs r0, r2 strh r0, [r1] ldr r1, _080DED50 movs r5, 0x28 ldr r0, _080DED54 strh r0, [r1] lsrs r3, 16 movs r1, 0xF0 subs r1, r2 movs r4, 0x48 ldr r2, _080DED58 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 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 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 ldr r3, _080DEE88 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 ldr r3, _080DEE88 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 ldr r3, _080DEE88 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 ldr r3, _080DEE88 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 str r0, [r4] _080DEEBA: ldr r1, _080DEEE0 mov r2, r9 lsls r0, r2, 8 orrs r7, r0 strh r7, [r1] ldr r1, _080DEEE4 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 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 strh r2, [r0] ldr r0, _080DEF30 strh r2, [r0] ldr r0, _080DEF34 ldr r4, _080DEF38 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080DEF70 movs r2, 0x18 ldr r3, _080DEF6C 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 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 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 adds r0, r4, 0 ands r1, r0 ldr r0, _080DF000 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 str r0, [r3, 0x1C] ldr r1, _080DF008 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 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 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 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 movs r2, 0 strh r2, [r1] adds r1, 0x2 strh r2, [r1] ldr r1, _080DF0B0 strh r2, [r1] ldr r1, _080DF0B4 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 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 strh r0, [r4, 0x3A] ldr r1, _080DF128 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 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 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 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 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 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 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 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 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 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 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080DF2E6 ldr r1, _080DF2F8 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r1 strh r7, [r5, 0x2E] ldr r0, _080DF2FC 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 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 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 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 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 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 ldr r1, _080DF4E4 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 ldrh r1, [r2] strh r1, [r0, 0x32] ldrh r1, [r2, 0x2] strh r1, [r0, 0x34] ldr r1, _080DF4EC str r1, [r0, 0x1C] ldr r2, _080DF4F0 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 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 adds r0, r1, r2 strh r0, [r5, 0x2E] b _080DF590 .align 2, 0 _080DF554: .4byte gSprites _080DF558: .4byte 0xffffff00 _080DF55C: ldr r2, _080DF598 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 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 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 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 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 adds r0, r5, 0 bl oamt_set_x3A_32 ldr r0, _080DF638 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080DF6A0 ldr r2, _080DF69C 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 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 ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080DF6E8 str r0, [r5, 0x1C] ldr r1, _080DF6EC 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080DF70C ldr r4, _080DF708 b _080DF70E .align 2, 0 _080DF704: .4byte gUnknown_03004B00 _080DF708: .4byte gUnknown_0202F7C8 _080DF70C: ldr r4, _080DF750 _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 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 str r0, [r5, 0x1C] ldr r1, _080DF75C 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 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 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 ldrh r0, [r0] strh r0, [r6, 0x3A] ldr r4, _080DF7E8 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 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 adds r4, r1, r0 ldr r0, _080DF954 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DF960 ldr r0, _080DF958 str r0, [sp] ldr r0, _080DF95C b _080DF966 .align 2, 0 _080DF950: .4byte gTasks _080DF954: .4byte gUnknown_0202F7C8 _080DF958: .4byte REG_BG1HOFS _080DF95C: .4byte gUnknown_030042C0 _080DF960: ldr r0, _080DF9DC str r0, [sp] ldr r0, _080DF9E0 _080DF966: ldrh r0, [r0] strh r0, [r4, 0xC] ldr r0, _080DF9E4 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 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 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 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 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x4 bhi _080DFAAA lsls r0, 2 ldr r1, _080DFA1C 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 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 mov r12, r7 ldr r0, _080DFB20 mov r8, r0 ldr r6, _080DFB24 _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 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 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 str r0, [r4, 0x1C] adds r4, 0x2E ldr r2, _080DFBD4 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC5C ldrh r0, [r0] strh r0, [r1, 0x8] ldr r0, _080DFC60 ldrb r0, [r0] movs r2, 0x10 strh r2, [r1, 0xA] ldr r1, _080DFC64 strh r2, [r1] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFC70 ldr r1, _080DFC68 ldr r2, _080DFC6C 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 ldr r2, _080DFC90 _080DFC74: adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFC94 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080DFC98 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 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 strh r1, [r0] strh r3, [r4, 0xC] cmp r2, 0x10 bne _080DFD1E ldr r2, _080DFD0C ldr r1, _080DFD10 ldr r0, _080DFD14 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 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080DFD4C ldrh r0, [r0] strh r0, [r1, 0x8] movs r2, 0x80 lsls r2, 5 strh r2, [r1, 0xA] ldr r0, _080DFD50 str r0, [r1] ldr r0, _080DFD54 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 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 strh r1, [r5] strh r0, [r2, 0xC] cmp r3, 0 bne _080DFDBA ldr r0, _080DFDB0 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 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _080DFDEC ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080DFDF8 ldr r1, _080DFDF0 ldr r2, _080DFDF4 b _080DFDFC .align 2, 0 _080DFDE8: .4byte REG_BLDALPHA _080DFDEC: .4byte gUnknown_0202F7C8 _080DFDF0: .4byte REG_BLDCNT _080DFDF4: .4byte 0x00003f42 _080DFDF8: ldr r1, _080DFE0C ldr r2, _080DFE10 _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 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, _080DFE84 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 strh r0, [r4, 0x3A] ldr r1, _080DFE8C 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 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 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 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 movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 cmp r1, 0 bne _080DFFEC ldr r0, _080DFFE8 b _080DFFEE .align 2, 0 _080DFFE4: .4byte gUnknown_03004B00 _080DFFE8: .4byte gUnknown_0202F7C8 _080DFFEC: ldr r0, _080E001C _080DFFEE: ldrb r5, [r0] movs r6, 0x14 ldrh r2, [r4, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x4 ldr r7, _080E0020 adds r0, r7, 0 ands r1, r0 ldr r0, _080E0024 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 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E00CC 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 adds r5, r1, r0 ldr r4, _080E0154 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 b _080E015E .align 2, 0 _080E0150: .4byte gTasks _080E0154: .4byte gUnknown_0202F7C8 _080E0158: .4byte 0x0000fff4 _080E015C: ldr r0, _080E01A8 _080E015E: strh r0, [r5, 0x18] ldr r0, _080E01AC 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 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E01B4 ldr r2, _080E01B8 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 str r0, [sp] movs r7, 0x2 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E01C0 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 ldrh r0, [r0] strh r0, [r5, 0x1C] ldr r1, _080E027C ldr r2, _080E0280 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x90 movs r2, 0x20 bl FillPalette ldr r0, _080E0284 str r0, [sp] movs r7, 0x4 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080E01F4 ldr r1, _080E0288 _080E01EE: ldrh r0, [r1] adds r0, 0xF0 strh r0, [r1] _080E01F4: ldr r0, _080E028C 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 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 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 ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E029C movs r0, 0xA0 strh r0, [r1] ldr r0, _080E02A0 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 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 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 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 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 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 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080E0430 strh r1, [r0] ldr r0, _080E0434 ldr r2, _080E0438 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 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 ldr r2, _080E0464 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0468 b _080E0476 .align 2, 0 _080E045C: .4byte gUnknown_0202F7C9 _080E0460: .4byte REG_BLDCNT _080E0464: .4byte 0x00003f42 _080E0468: .4byte gUnknown_03004288 _080E046C: ldr r1, _080E0480 ldr r2, _080E0484 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0488 _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 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 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 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 b _080E0526 .align 2, 0 _080E051C: .4byte gUnknown_0202F7C9 _080E0520: .4byte 0x0000fff4 _080E0524: ldr r0, _080E0538 _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 b _080E054E .align 2, 0 _080E0548: .4byte REG_BG1VOFS _080E054C: ldr r0, _080E0598 _080E054E: str r0, [sp, 0xC] movs r3, 0 add r4, sp, 0xC ldr r6, _080E059C 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 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 ldr r2, _080E05B8 b _080E05C0 .align 2, 0 _080E05B4: .4byte REG_WINOUT _080E05B8: .4byte 0x00003f3d _080E05BC: ldr r1, _080E05FC ldr r2, _080E0600 _080E05C0: adds r0, r2, 0 strh r0, [r1] ldr r1, _080E0604 ldr r2, _080E0608 adds r0, r2, 0 strh r0, [r1] ldr r2, _080E060C ldrh r0, [r5, 0x24] lsls r0, 8 ldrh r1, [r5, 0x26] orrs r0, r1 strh r0, [r2] ldr r1, _080E0610 movs r0, 0xA0 strh r0, [r1] movs r0, 0 strh r0, [r5, 0x8] strh r0, [r5, 0xA] strh r0, [r5, 0xC] ldr r1, _080E0614 ldr r2, _080E0618 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E061C 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 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 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 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 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080E0790 strh r1, [r0] ldr r0, _080E0794 ldr r3, _080E0798 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 mov r12, r0 ldr r7, _080E088C _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 mov r12, r0 ldr r7, _080E088C _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 ldr r4, _080E088C _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 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 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 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 mov r9, r0 ldr r0, _080E09C0 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 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 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 str r0, [r4, 0x1C] ldr r1, _080E0A48 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 strh r7, [r0] ldr r0, _080E0B54 strh r7, [r0] ldr r1, _080E0B58 ldr r2, _080E0B5C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B60 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 ldr r2, _080E0B68 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E0B6C adds r0, r3, 0 strh r0, [r1] ldr r5, _080E0B70 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 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 ldr r1, _080E0B7C 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 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 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E0BB0 ldr r1, _080E0BA8 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0BAC b _080E0BC0 .align 2, 0 _080E0BA4: .4byte gUnknown_0202F7C8 _080E0BA8: .4byte gUnknown_02024A6A _080E0BAC: .4byte gEnemyParty _080E0BB0: ldr r1, _080E0C58 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E0C5C _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 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 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E0C68 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E0C6C bl LZDecompressVram ldr r0, _080E0C70 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E0C74 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette ldr r2, _080E0C78 ldr r0, _080E0C7C 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 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 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 mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r2, _080E0CC8 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 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 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 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 strh r5, [r0] ldr r0, _080E0DFC strh r5, [r0] ldr r0, _080E0E00 ldr r2, _080E0E04 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 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 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 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 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E0E18 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080E0DE2 ldr r2, _080E0E1C ldr r0, _080E0E20 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 movs r2, 0 ldrsh r1, [r0, r2] adds r2, r0, 0 cmp r1, 0x7 bhi _080E0E88 lsls r0, r1, 2 ldr r1, _080E0E48 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 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 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 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 ldrb r0, [r2] cmp r0, 0x1 bhi _080E0EFC ldr r1, _080E0F18 movs r0, 0 strh r0, [r1, 0xE] _080E0EFC: ldrb r0, [r2] cmp r0, 0x2 bne _080E0F08 ldr r1, _080E0F18 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 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 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 strh r0, [r4, 0x38] adds r0, r4, 0 bl sub_80786EC ldr r0, _080E0F80 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 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 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 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E1024 ldr r1, _080E1068 ldrh r0, [r1, 0x4] negs r0, r0 strh r0, [r1, 0x4] _080E1024: ldr r4, _080E1068 ldrh r0, [r4, 0x8] strh r0, [r6, 0x2E] ldr r5, _080E106C 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 str r0, [r6, 0x1C] ldr r1, _080E1074 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 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 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 str r0, [r6, 0x1C] ldr r1, _080E1104 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080E116C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldr r6, _080E1170 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _080E117C ldr r4, _080E1174 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 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 _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 adds r1, r0, r1 ldr r0, _080E1268 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E1270 ldr r0, _080E126C b _080E1272 .align 2, 0 _080E1264: .4byte gTasks _080E1268: .4byte gUnknown_03004B00 _080E126C: .4byte sub_80E1284 _080E1270: ldr r0, _080E1280 _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 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 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 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 ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E12F4 b _080E1300 .align 2, 0 _080E12EC: .4byte gUnknown_0202F7C8 _080E12F0: .4byte gUnknown_030042C0 _080E12F4: .4byte gUnknown_030041B4 _080E12F8: ldr r0, _080E133C ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E1340 _080E1300: ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E1344 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 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 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 b _080E13AA .align 2, 0 _080E13A0: .4byte gSineTable _080E13A4: .4byte gUnknown_030041B4 _080E13A8: ldr r1, _080E13CC _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 b _080E13D6 .align 2, 0 _080E13CC: .4byte gUnknown_03004280 _080E13D0: .4byte gUnknown_030041B4 _080E13D4: ldr r1, _080E13F8 _080E13D6: ldrh r0, [r4, 0x22] subs r0, r2 strh r0, [r1] ldr r2, _080E13FC 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 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 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 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 ldrb r0, [r0] bl battle_get_per_side_status_permutated lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080E1488 ldr r0, _080E1484 b _080E148A .align 2, 0 _080E147C: .4byte gSprites _080E1480: .4byte gUnknown_0202F7C8 _080E1484: .4byte gUnknown_030041B4 _080E1488: ldr r0, _080E1498 _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 adds r1, r0, r1 ldr r0, _080E14C0 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0 bne _080E14C8 ldr r0, _080E14C4 b _080E14CA .align 2, 0 _080E14BC: .4byte gTasks _080E14C0: .4byte gUnknown_03004B00 _080E14C4: .4byte sub_80E14DC _080E14C8: ldr r0, _080E14D8 _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 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 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 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _080E1662 lsls r0, 2 ldr r1, _080E1588 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 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 b _080E15CE .align 2, 0 _080E15C4: .4byte gUnknown_0202F7C8 _080E15C8: .4byte gUnknown_030042C0 _080E15CC: ldr r0, _080E15EC _080E15CE: ldrh r0, [r0] strh r0, [r4, 0x20] ldr r0, _080E15F0 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 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 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 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 ldrh r3, [r0] ldr r0, _080E1688 b _080E1692 .align 2, 0 _080E1684: .4byte gUnknown_030042C0 _080E1688: .4byte REG_BG1HOFS _080E168C: ldr r0, _080E1718 ldrh r3, [r0] ldr r0, _080E171C _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 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 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 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 movs r2, 0 ldrsh r1, [r0, r2] adds r7, r0, 0 cmp r1, 0 bne _080E1744 ldr r0, _080E1740 b _080E1746 .align 2, 0 _080E173C: .4byte gUnknown_03004B00 _080E1740: .4byte gUnknown_0202F7C8 _080E1744: ldr r0, _080E17A8 _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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080E17E8 ldr r0, _080E17E4 b _080E17EA .align 2, 0 _080E17E0: .4byte gUnknown_03004B00 _080E17E4: .4byte gUnknown_0202F7C8 _080E17E8: ldr r0, _080E1848 _080E17EA: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 bl sub_8077ABC lsls r0, 24 lsrs r0, 24 ldr r2, _080E184C adds r0, r2 ldr r4, _080E1850 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 adds r0, r3, 0 ands r1, r0 ldr r0, _080E1858 ands r0, r2 orrs r0, r1 strh r0, [r6, 0x4] ldr r1, _080E185C adds r0, r6, 0 bl oamt_set_x3A_32 ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] ldr r0, _080E1860 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 adds r4, r0, r1 ldr r0, _080E188C 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 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 ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E18C4 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 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 _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 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 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 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 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 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 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 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 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 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 movs r2, 0 ldr r0, _080E1BAC 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 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _080E1BD0 ldr r0, _080E1BCC b _080E1BD2 .align 2, 0 _080E1BC8: .4byte gUnknown_03004B00 _080E1BCC: .4byte gUnknown_0202F7C9 _080E1BD0: ldr r0, _080E1C40 _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 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 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 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 ldrh r0, [r4, 0xA] strh r0, [r2] ldr r0, _080E1C54 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 adds r2, r0, r1 ldr r0, _080E1C8C movs r4, 0xE ldrsh r1, [r0, r4] movs r4, 0xE ldrsh r0, [r2, r4] cmp r1, r0 bne _080E1C98 ldr r0, _080E1C90 movs r1, 0 strh r1, [r0] ldr r0, _080E1C94 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 ldrh r0, [r2, 0xA] strh r0, [r1] ldr r1, _080E1CB0 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 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 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 ldrh r0, [r0, 0x8] strh r0, [r4, 0x34] ldr r1, _080E1D1C 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 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 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 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 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 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 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 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 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 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r1, _080E1F88 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E1FD4 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E208E ldr r1, _080E2068 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r3, _080E20DC 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080E21A2 ldr r1, _080E217C 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 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldr r5, _080E220C 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 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 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 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 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 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 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 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 ldrb r6, [r0] ldr r0, _080E23A0 ldrb r7, [r0] ldr r4, _080E23A4 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 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 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 ldrb r0, [r0] mov r9, r0 ldr r0, _080E24A8 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 _080E240C: movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080E243C ldr r2, _080E24B0 ldr r0, _080E24B4 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 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 b _080E250A .align 2, 0 _080E24FC: .4byte gUnknown_030041B0 _080E2500: ldr r1, _080E2504 b _080E250A .align 2, 0 _080E2504: .4byte gUnknown_030041B8 _080E2508: ldr r1, _080E2514 _080E250A: adds r0, r4, 0 bl oamt_set_x3A_32 b _080E2520 .align 2, 0 _080E2514: .4byte gSpriteCoordOffsetX _080E2518: ldr r1, _080E2550 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 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 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 ldrb r0, [r5] cmp r4, r0 bcs _080E25F4 ldr r2, _080E2604 mov r12, r2 ldr r6, _080E2608 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 ldr r4, _080E2684 ldr r5, _080E2688 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 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 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 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r1 ldr r3, _080E2700 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 ldrh r1, [r3] strh r1, [r4] ldr r4, _080E2708 ldrh r1, [r3, 0x2] strh r1, [r4] ldr r1, _080E270C 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 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 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 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 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 str r0, [r5, 0x1C] ldr r1, _080E27E4 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 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 ldrh r0, [r0, 0x8] strh r0, [r5, 0x2E] ldr r0, _080E2830 str r0, [r5, 0x1C] ldr r1, _080E2834 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 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 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 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 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 adds r0, r1 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] ldr r1, _080E2900 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2904 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 ldrb r0, [r5] bl obj_id_for_side_relative_to_move lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2E] ldr r2, _080E296C 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 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E2974 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 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 ldrh r0, [r0, 0x6] strh r0, [r4, 0x2E] ldr r1, _080E29B8 adds r0, r4, 0 bl oamt_set_x3A_32 ldr r0, _080E29BC 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 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 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 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 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 bhi _080E2B26 lsls r0, 2 ldr r1, _080E2AAC 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 b _080E2AE2 .align 2, 0 _080E2AD8: .4byte gUnknown_0202F7C8 _080E2ADC: movs r5, 0 _080E2ADE: mov r0, sp ldr r1, _080E2AE8 _080E2AE2: ldrb r1, [r1] strb r1, [r0] b _080E2B26 .align 2, 0 _080E2AE8: .4byte gUnknown_0202F7C9 _080E2AEC: mov r1, sp ldr r0, _080E2AFC ldrb r0, [r0] strb r0, [r1] ldr r0, _080E2B00 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 b _080E2B1E .align 2, 0 _080E2B14: .4byte gUnknown_0202F7C8 _080E2B18: movs r5, 0 mov r2, sp ldr r0, _080E2B70 _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 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80E1DC4 adds r2, r0, 0 ldr r0, _080E2B9C ldrb r0, [r0] cmp r0, 0x9 bhi _080E2C4A lsls r0, 2 ldr r1, _080E2BA0 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 ldr r0, _080E2BD8 b _080E2C48 .align 2, 0 _080E2BD4: .4byte gUnknown_03004B00 _080E2BD8: .4byte 0x00000b0c _080E2BDC: ldr r1, _080E2BE4 movs r0, 0x9E lsls r0, 4 b _080E2C48 .align 2, 0 _080E2BE4: .4byte gUnknown_03004B00 _080E2BE8: ldr r1, _080E2BF0 ldr r0, _080E2BF4 b _080E2C48 .align 2, 0 _080E2BF0: .4byte gUnknown_03004B00 _080E2BF4: .4byte 0x00002f1e _080E2BF8: ldr r1, _080E2C00 movs r0, 0x90 lsls r0, 7 b _080E2C48 .align 2, 0 _080E2C00: .4byte gUnknown_03004B00 _080E2C04: ldr r1, _080E2C0C ldr r0, _080E2C10 b _080E2C48 .align 2, 0 _080E2C0C: .4byte gUnknown_03004B00 _080E2C10: .4byte 0x00007ecb _080E2C14: ldr r1, _080E2C1C ldr r0, _080E2C20 b _080E2C48 .align 2, 0 _080E2C1C: .4byte gUnknown_03004B00 _080E2C20: .4byte 0x00007ecb _080E2C24: ldr r1, _080E2C2C ldr r0, _080E2C30 b _080E2C48 .align 2, 0 _080E2C2C: .4byte gUnknown_03004B00 _080E2C30: .4byte 0x00002a16 _080E2C34: ldr r1, _080E2C3C ldr r0, _080E2C40 b _080E2C48 .align 2, 0 _080E2C3C: .4byte gUnknown_03004B00 _080E2C40: .4byte 0x00000d2e _080E2C44: ldr r1, _080E2C58 ldr r0, _080E2C5C _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 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 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 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 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 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 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080E2DB4 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 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 adds r1, r0 ldr r2, _080E2E08 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 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 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 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 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 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 strh r7, [r0] ldr r0, _080E303C strh r7, [r0] ldr r1, _080E3040 ldr r2, _080E3044 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3048 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 ldr r2, _080E3050 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E3054 adds r0, r3, 0 strh r0, [r1] ldr r4, _080E3058 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 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 ldr r1, _080E3064 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 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 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080E3098 ldr r1, _080E3090 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3094 b _080E30A8 .align 2, 0 _080E308C: .4byte gUnknown_0202F7C8 _080E3090: .4byte gUnknown_02024A6A _080E3094: .4byte gEnemyParty _080E3098: ldr r1, _080E3160 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3164 _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 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 add r0, sp, 0xC str r0, [r2] str r1, [r2, 0x4] ldr r0, _080E3170 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080E3174 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 ldr r1, [sp] bl LZDecompressVram ldr r0, _080E317C mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 adds r1, 0x1 movs r2, 0x2 bl LoadPalette ldr r2, _080E3180 ldr r0, _080E3184 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 ldrh r0, [r1, 0x22] negs r0, r0 adds r0, 0x20 strh r0, [r2] ldr r1, _080E318C 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 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 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 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 strh r5, [r0] ldr r0, _080E32B8 strh r5, [r0] ldr r0, _080E32BC ldr r2, _080E32C0 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 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 strh r5, [r0] adds r0, 0x2 strh r5, [r0] movs r0, 0 bl obj_id_for_side_relative_to_move ldr r0, _080E32CC 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 add r0, sp, 0xC str r0, [r1] str r2, [r1, 0x4] ldr r0, _080E32D4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r3, 0x14 ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3288 ldr r2, _080E32D8 ldr r0, _080E32DC 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 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 mov r12, r0 ldr r1, _080E3330 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 _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 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 b _080E3392 .align 2, 0 _080E3388: .4byte gTasks _080E338C: .4byte gUnknown_0202F7C8 _080E3390: ldr r0, _080E34B4 _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 movs r1, 0 strh r1, [r0] ldr r0, _080E34BC strh r1, [r0] ldr r1, _080E34C0 ldr r2, _080E34C4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080E34C8 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 ldr r2, _080E34D0 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 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 ldr r0, _080E34DC 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 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 lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3504 b _080E3516 .align 2, 0 _080E3500: .4byte gUnknown_02024A6A _080E3504: .4byte gEnemyParty _080E3508: ldr r1, _080E3568 lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E356C _080E3516: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _080E3522: ldr r6, _080E3570 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 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 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 ldr r1, [sp] bl LZDecompressVram ldrh r0, [r7, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 bne _080E35BC ldr r0, _080E35B8 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 b _080E35FE .align 2, 0 _080E35C4: .4byte gBattleStatMask1_Pal _080E35C8: cmp r0, 0x2 bne _080E35D4 ldr r0, _080E35D0 b _080E35FE .align 2, 0 _080E35D0: .4byte gBattleStatMask3_Pal _080E35D4: cmp r0, 0x3 bne _080E35E0 ldr r0, _080E35DC b _080E35FE .align 2, 0 _080E35DC: .4byte gBattleStatMask4_Pal _080E35E0: cmp r0, 0x4 bne _080E35EC ldr r0, _080E35E8 b _080E35FE .align 2, 0 _080E35E8: .4byte gBattleStatMask6_Pal _080E35EC: cmp r0, 0x5 bne _080E35F8 ldr r0, _080E35F4 b _080E35FE .align 2, 0 _080E35F4: .4byte gBattleStatMask7_Pal _080E35F8: cmp r0, 0x6 bne _080E3610 ldr r0, _080E360C _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 mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 movs r2, 0x20 bl LoadCompressedPalette _080E361E: ldr r2, _080E3648 movs r1, 0 strh r1, [r2] ldr r0, _080E364C strh r1, [r0] movs r3, 0 ldrsh r0, [r7, r3] cmp r0, 0x1 bne _080E3658 movs r0, 0x40 strh r0, [r2] ldr r2, _080E3650 mov r0, r10 add r0, r9 lsls r0, 3 adds r0, r2 ldr r1, _080E3654 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 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 add r0, r8 ldrb r0, [r0] strh r0, [r1, 0x16] ldr r0, _080E36DC 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 ldr r1, _080E3734 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 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 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 strh r5, [r0] ldr r0, _080E3874 strh r5, [r0] ldr r0, _080E3878 ldr r2, _080E387C 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 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 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 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 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 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 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 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 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 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 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 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 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 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080E3AC4 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _080E3A94 ldr r0, _080E3AC8 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 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r2, _080E3AC4 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 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 lsls r0, r3, 16 asrs r0, 24 ldrh r4, [r6] adds r0, r4 strh r0, [r6] ldr r4, _080E3B44 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 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 ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3B74 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 ldrb r0, [r0] bl battle_side_get_owner ldr r1, _080E3BA0 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 movs r4, 0 ldr r0, _080E3BD4 ldrb r2, [r0] movs r0, 0x2 ldr r1, _080E3BD8 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 _080E3BE6: ldr r0, _080E3C40 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 adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldr r1, _080E3C48 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 movs r1, 0 strh r1, [r0] ldr r0, _080E3D38 strh r1, [r0] ldr r1, _080E3D3C ldr r3, _080E3D40 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E3D44 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 ldr r2, _080E3D4C 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 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 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 lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3D78 b _080E3D8A .align 2, 0 _080E3D74: .4byte gUnknown_02024A6A _080E3D78: .4byte gEnemyParty _080E3D7C: ldr r1, _080E3E48 lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080E3E4C _080E3D8A: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 _080E3D96: ldr r5, _080E3E50 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 movs r1, 0 strh r1, [r0] ldr r0, _080E3E58 strh r1, [r0] ldr r1, _080E3E5C 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 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 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 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 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 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 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 strh r5, [r0] ldr r0, _080E3FF0 strh r5, [r0] ldr r0, _080E3FF4 ldr r2, _080E3FF8 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 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 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 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 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 ldr r1, _080E4024 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 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 b _080E407E .align 2, 0 _080E4074: .4byte gUnknown_0202F7C8 _080E4078: cmp r0, 0x2 bne _080E4084 ldr r0, _080E409C _080E407E: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E4084: ldr r0, _080E40A0 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 b _080E40AA .align 2, 0 _080E409C: .4byte gUnknown_0202F7C9 _080E40A0: .4byte gUnknown_03004B00 _080E40A4: .4byte 0x02014800 _080E40A8: ldr r0, _080E40C8 _080E40AA: adds r2, r5, r0 lsls r1, r4, 5 ldr r0, _080E40CC 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 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 b _080E4126 .align 2, 0 _080E411C: .4byte gUnknown_0202F7C8 _080E4120: cmp r0, 0x2 bne _080E412C ldr r0, _080E4148 _080E4126: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E412C: lsls r1, r4, 5 ldr r0, _080E414C adds r5, r1, r0 ldr r0, _080E4150 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 b _080E415A .align 2, 0 _080E4148: .4byte gUnknown_0202F7C9 _080E414C: .4byte gPlttBufferUnfaded _080E4150: .4byte gUnknown_03004B00 _080E4154: .4byte 0x02014800 _080E4158: ldr r0, _080E4174 _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 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 b _080E41CE .align 2, 0 _080E41C4: .4byte gUnknown_0202F7C8 _080E41C8: cmp r0, 0x2 bne _080E41D4 ldr r0, _080E41F4 _080E41CE: ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 _080E41D4: lsls r1, r4, 5 ldr r0, _080E41F8 adds r0, r1, r0 ldr r2, _080E41FC 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 movs r0, 0x1 strh r0, [r1, 0xE] b _080E4224 .align 2, 0 _080E421C: .4byte gUnknown_03004B00 _080E4220: ldr r0, _080E4230 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 ldr r1, _080E4258 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E425C ldr r1, _080E4260 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 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldr r0, _080E4290 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080E4298 ldr r1, _080E4294 movs r0, 0x1 b _080E429C .align 2, 0 _080E428C: .4byte gUnknown_0202F7C8 _080E4290: .4byte gUnknown_0202F7C9 _080E4294: .4byte gUnknown_03004B00 _080E4298: ldr r1, _080E42AC 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 ldr r1, _080E42CC 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 ldr r1, _080E42F4 ldrb r1, [r1] strb r1, [r2] ldr r2, _080E42F8 ldr r1, _080E42FC 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 lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 ldr r1, _080E4358 ldrb r0, [r1] lsls r0, 2 ldr r2, _080E435C 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 str r0, [r3] ldr r1, _080E4364 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 movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 5 cmp r1, r0 bne _080E43A8 ldr r0, _080E43B4 ldrb r3, [r0] lsls r3, 2 ldr r0, _080E43B8 adds r3, r0 ldr r1, _080E43BC 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 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080E43E0 ldr r0, _080E43DC 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 ldrb r0, [r0] cmp r0, 0x2 beq _080E4400 movs r4, 0x3 ldr r0, _080E43FC b _080E4408 .align 2, 0 _080E43F8: .4byte gGameVersion _080E43FC: .4byte task00_battle_intro_80BC6C8 _080E4400: ldr r1, _080E4434 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 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 movs r1, 0 strh r1, [r0] ldr r0, _080E4478 strh r1, [r0] ldr r0, _080E447C strh r1, [r0] ldr r0, _080E4480 strh r1, [r0] ldr r0, _080E4484 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0xC ldr r2, _080E4488 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 ldrh r0, [r1] adds r0, 0x6 strh r0, [r1] ldr r1, _080E44C8 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 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 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 movs r0, 0x3F strh r0, [r1] b _080E46BE .align 2, 0 _080E453C: .4byte REG_WININ _080E4540: ldr r1, _080E457C 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 ldrh r1, [r2] ldr r0, _080E4584 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 ldrh r1, [r2] ldr r0, _080E45C0 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 ldrh r1, [r2] ldr r0, _080E4694 cmp r1, r0 beq _080E45D2 subs r0, r1, 0x1 _080E45D0: strh r0, [r2] _080E45D2: ldr r2, _080E4698 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E45E6 ldr r3, _080E469C 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 mov r9, r5 ldr r7, _080E46A4 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 ldr r6, _080E46A0 ldr r1, _080E46A8 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 ldr r2, _080E46B0 mov r0, sp bl CpuSet ldr r1, _080E46B4 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 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 ldrh r0, [r1] adds r0, 0x8 b _080E4712 .align 2, 0 _080E4708: .4byte gUnknown_030042C0 _080E470C: ldr r1, _080E4750 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 ldrh r0, [r4, 0x14] bl Cos2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080E473A ldr r1, _080E4758 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 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 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 adds r0, r6, r5 lsls r0, 3 adds r2, r0, r1 movs r3, 0x10 strh r3, [r2, 0x10] ldr r0, _080E47D0 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 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 movs r0, 0x3F strh r0, [r1] b _080E4996 .align 2, 0 _080E4804: .4byte gTasks _080E4808: .4byte REG_WININ _080E480C: ldr r1, _080E484C 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 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 ldrh r1, [r2] ldr r0, _080E4858 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 ldr r4, _080E4890 adds r0, r4, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0xF strh r0, [r1] ldr r0, _080E4894 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 ldrh r1, [r3] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E48CC ldr r4, _080E4974 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 mov r8, r4 ldr r0, _080E497C 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 mov r12, r1 ldr r7, _080E4978 ldr r1, _080E4980 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 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 ldr r2, _080E4988 mov r0, sp bl CpuSet ldr r1, _080E498C 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 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 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 ldrh r0, [r1] adds r0, 0x8 strh r0, [r1] ldr r1, _080E49F8 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 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 ldr r3, _080E4A4C adds r0, r3, 0 strh r0, [r1] ldr r0, _080E4A50 ldr r6, _080E4A54 adds r2, r6, 0 strh r2, [r0] adds r1, 0x4 movs r0, 0 strh r0, [r1] ldr r1, _080E4A58 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 strh r2, [r3, 0x10] ldr r0, _080E4A5C 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 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 movs r0, 0x3F strh r0, [r1] b _080E4C06 .align 2, 0 _080E4A94: .4byte gTasks _080E4A98: .4byte REG_WININ _080E4A9C: ldr r1, _080E4ADC 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 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 ldrh r1, [r2] ldr r0, _080E4AE8 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 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4B3A ldr r3, _080E4BE4 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 mov r8, r6 ldr r7, _080E4BEC 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 ldr r6, _080E4BE8 ldr r1, _080E4BF0 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 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 ldr r2, _080E4BF8 mov r0, sp bl CpuSet ldr r1, _080E4BFC 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 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 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 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 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 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 ldr r4, _080E4CD0 mov r0, sp adds r2, r4, 0 bl CpuSet str r5, [sp, 0x4] add r0, sp, 0x4 ldr r1, _080E4CD4 adds r2, r4, 0 bl CpuSet movs r0, 0x1 strh r0, [r7, 0x10] _080E4CAA: ldr r0, _080E4CD8 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 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 ldr r4, _080E4D90 ldr r3, _080E4D94 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 str r3, [r0] ldr r0, _080E4D9C 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 movs r0, 0x3F strh r0, [r1] adds r1, 0x2 ldr r2, _080E4DA4 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 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 ldrh r1, [r2] ldr r0, _080E4DE8 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 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, 0 beq _080E4E00 ldr r3, _080E4EA0 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 mov r9, r0 ldr r2, _080E4EA8 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 mov r8, r0 ldr r7, _080E4EA4 ldr r1, _080E4EAC 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 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 ldr r1, _080E4FD0 lsls r4, 2 adds r4, r1 ldr r1, _080E4FD4 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 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 ldr r0, _080E50A0 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 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 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 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 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 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51B0 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 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E51FC 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 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 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 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 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 ldr r3, _080E533C 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 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 cmp r0, r3 beq _080E53D0 _080E53A6: ldr r0, _080E53CC 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 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 ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E54A4 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 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 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5558 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 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 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E55FC 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 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 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 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E56D0 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 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5740 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5778 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E57F4 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5830 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E586C 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58A8 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E58DC 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 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E598C 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 ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E59D4 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 ldrb r1, [r7, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5A64 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 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E5AF4 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 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 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 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 _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 _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 adds r4, r5, r0 ldr r0, _080E5C68 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 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 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 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080E5D9C 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 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 ldrb r0, [r0] cmp r0, 0 beq _080E5E62 ldr r1, _080E5E6C 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 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 ldr r0, _080E5F70 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 movs r0, 0 strb r0, [r1] ldr r0, _080E5FA8 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 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 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 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 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 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 mov r0, sp movs r2, 0x6 bl memcpy ldr r2, _080E6060 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 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 ldrh r1, [r0] adds r7, r0, 0 cmp r1, 0xD bls _080E60E8 b _080E6284 _080E60E8: lsls r0, r1, 2 ldr r1, _080E60F8 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 b _080E624C .align 2, 0 _080E6138: .4byte gSaveBlock1 + 0x2B1C _080E613C: ldr r1, _080E6140 b _080E6276 .align 2, 0 _080E6140: .4byte gSaveBlock1 + 0x2B28 _080E6144: ldr r1, _080E6148 b _080E624C .align 2, 0 _080E6148: .4byte gSaveBlock1 + 0x2B34 _080E614C: ldr r1, _080E6150 b _080E6276 .align 2, 0 _080E6150: .4byte gSaveBlock1 + 0x2B40 _080E6154: ldr r0, _080E6164 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6168 adds r1, r0, r1 b _080E624C .align 2, 0 _080E6164: .4byte gUnknown_0202E8CE _080E6168: .4byte gSaveBlock1 + 0x2B4C _080E616C: ldr r0, _080E6194 movs r2, 0 ldr r1, _080E6198 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61B4 adds r1, r0, r1 ldr r0, _080E61B8 ldrb r4, [r0] b _080E6276 .align 2, 0 _080E61B0: .4byte gUnknown_0202E8CE _080E61B4: .4byte gSaveBlock1 + 0x273C _080E61B8: .4byte gUnknown_0202E8D0 _080E61BC: ldr r0, _080E61D4 ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E61D8 adds r1, r0 ldr r0, _080E61DC 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E61F8 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 ldr r2, _080E6210 adds r0, r2, 0 strh r0, [r1] b _080E624A .align 2, 0 _080E620C: .4byte gSaveBlock1 + 0x2B16 _080E6210: .4byte 0x0000ffff _080E6214: ldr r0, _080E6230 ldrh r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _080E6234 adds r1, r0 ldr r0, _080E6238 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 ldrh r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080E6258 adds r1, r0, r1 _080E624A: movs r4, 0x1 _080E624C: ldr r0, _080E625C mov r12, r0 b _080E627A .align 2, 0 _080E6254: .4byte gUnknown_0202E8CE _080E6258: .4byte gSaveBlock1 + 0x2750 _080E625C: .4byte sub_80546B8 _080E6260: ldr r1, _080E628C ldr r0, _080E6290 adds r2, r1, r0 ldr r0, _080E6294 strh r0, [r2] ldr r0, _080E6298 adds r1, r0 movs r0, 0x1 negs r0, r0 strh r0, [r1] adds r1, r2, 0 _080E6276: ldr r2, _080E629C 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 str r2, [r4] str r1, [r4, 0x4] strb r0, [r4, 0x8] strb r3, [r4, 0xB] cmp r0, 0x9 bne _080E62D0 ldr r0, _080E62E0 adds r2, r4, r0 str r2, [r4, 0x4] ldr r0, _080E62E4 ldr r3, _080E62E8 adds r1, r0, r3 ldrh r1, [r1] strh r1, [r2] ldr r1, _080E62EC adds r0, r1 ldrh r1, [r0] ldr r2, _080E62F0 adds r0, r4, r2 strh r1, [r0] _080E62D0: ldr r0, _080E62F4 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 ldr r1, _080E6318 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _080E6344 lsls r0, 2 ldr r1, _080E631C 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 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 bl SetUpWindowConfig b _080E6402 .align 2, 0 _080E6388: .4byte gWindowConfig_81E6DA8 _080E638C: ldr r0, _080E63A0 bl InitMenuWindow ldr r0, _080E63A4 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 bl sub_80E682C ldr r0, _080E63D4 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 bl SetMainCallback2 ldr r0, _080E6418 bl FlagSet _080E6402: ldr r1, _080E641C ldr r0, _080E6420 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 ldr r0, _080E6448 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 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 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 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 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 _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 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldr r1, [r1] str r1, [r0] movs r5, 0 ldr r6, _080E66E4 _080E66A4: ldr r0, _080E66E8 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 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 ldr r0, _080E675C 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 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 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 ldr r2, _080E6810 _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 ldr r2, _080E6818 _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 ldr r0, _080E6820 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 ldr r0, _080E6820 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 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 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 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 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 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 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 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 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E6954 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 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 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E6950 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 adds r1, r3, r2 adds r0, r1 ldrh r0, [r0] adds r0, 0x1 asrs r0, 1 ldr r1, _080E69E4 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 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 adds r0, r5, r2 adds r2, r1, r0 lsls r0, r6, 1 ldr r3, _080E69E0 _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 adds r0, r5, r1 movs r1, 0 strb r1, [r0] ldr r2, _080E69F0 adds r0, r5, r2 strb r1, [r0] ldr r3, _080E69F4 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 ldrb r1, [r0, 0x8] adds r4, r0, 0 cmp r1, 0xD bhi _080E6A50 lsls r0, r1, 2 ldr r1, _080E6A14 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 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 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 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 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 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 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B5C: .4byte sub_80E6BC0 _080E6B60: ldr r0, _080E6B68 bl sub_80E682C b _080E6BB4 .align 2, 0 _080E6B68: .4byte sub_80E6C84 _080E6B6C: ldr r0, _080E6B74 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 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 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 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 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 bl sub_80E682C b _080E6C76 .align 2, 0 _080E6C60: .4byte sub_80E6AC4 _080E6C64: ldr r0, _080E6C7C ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6C76 ldr r0, _080E6C80 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 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 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 strh r1, [r0] ldr r0, _080E6D54 bl sub_80E682C b _080E6D72 .align 2, 0 _080E6D50: .4byte gScriptResult _080E6D54: .4byte sub_80E752C _080E6D58: ldr r1, _080E6D60 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 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 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 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 ldrb r0, [r0, 0x8] cmp r0, 0x4 bne _080E6E20 bl sub_80E7FA8 lsls r0, 24 cmp r0, 0 bne _080E6E20 ldr r0, _080E6E1C 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 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 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 ldr r1, _080E6ED0 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 cmp r0, r1 beq _080E6EB0 ldrh r0, [r5, 0xE] cmp r0, r1 bne _080E6EB2 _080E6EB0: strh r6, [r7] _080E6EB2: ldr r4, _080E6ECC bl sub_80E810C lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080E6EBE: ldr r0, _080E6ED8 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F12: ldr r0, _080E6F20 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E6F5E _080E6F3C: ldr r1, _080E6F4C 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 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 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 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 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 str r1, [r0] ldr r0, _080E7008 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E70E8 ldr r2, _080E7058 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 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 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 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 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 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 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 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 ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E7182 lsls r0, r1, 2 ldr r1, _080E7130 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 ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] b _080E7182 .align 2, 0 _080E7178: .4byte 0x02001000 _080E717C: ldr r0, _080E7188 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 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 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 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 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 ldr r2, _080E72D0 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 str r1, [r0] ldr r0, _080E72D8 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080E730C movs r0, 0x5 bl PlaySE ldr r0, _080E7308 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 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 ldrh r1, [r0, 0x24] adds r2, r0, 0 cmp r1, 0x4 bhi _080E73C6 lsls r0, r1, 2 ldr r1, _080E7340 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 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 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 bl sub_80E682C b _080E73C6 .align 2, 0 _080E73BC: .4byte sub_80E6D7C _080E73C0: ldr r0, _080E73CC 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 ldrh r0, [r0, 0x24] cmp r0, 0x4 bhi _080E744E lsls r0, 2 ldr r1, _080E73E8 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 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 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 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 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 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 cmp r1, r0 bne _080E74E4 bl sub_80E9D7C ldr r2, _080E74E0 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 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 adds r0, r4, r1 _080E74FE: strb r5, [r0] ldr r1, _080E7528 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 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 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 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 ldrh r1, [r2, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080E7604 ldr r1, _080E7600 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 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 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 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 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 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 ldr r2, _080E7810 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 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 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 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 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 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 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 adds r0, r3, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080E79CC ldr r0, _080E79D8 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 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 adds r7, r2, r5 ldrb r6, [r7] mov r9, r6 movs r1, 0 ldr r0, _080E7A4C 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 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 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 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 ldr r0, _080E7AD0 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 adds r0, r3, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E7B10 ldr r1, _080E7B0C 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 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 movs r0, 0xE0 lsls r0, 1 adds r6, r2, r0 strb r5, [r6] ldr r1, _080E7B90 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 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 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 adds r2, r3, r0 movs r1, 0 ldrsb r1, [r2, r1] ldr r4, _080E7BE4 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 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 adds r2, r3, r4 ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] lsls r0, 24 cmp r0, 0 bge _080E7BF6 ldr r6, _080E7C34 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 adds r4, r3, r6 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r2, _080E7C6C 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 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 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 adds r4, r3, r0 movs r1, 0 ldrsb r1, [r4, r1] ldr r6, _080E7D28 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 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 ldr r1, _080E7D64 adds r4, r0, r1 ldr r2, _080E7D68 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 ldrb r1, [r0, 0xA] cmp r4, r1 bcs _080E7D8E adds r5, r0, 0 _080E7D7A: adds r0, r4, 0 ldr r1, _080E7D98 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 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 ldr r1, _080E7E2C adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r1, 1 ldr r3, _080E7E30 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 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 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 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 mov r9, r1 ldr r7, _080E7EF8 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 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 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 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 ldrb r1, [r0, 0xA] cmp r8, r1 bcs _080E802E ldr r3, _080E8044 adds r6, r0, r3 ldr r1, _080E8048 adds r1, r0 mov r9, r1 _080E7FC8: ldr r3, _080E804C 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 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 _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 ldrb r0, [r2, 0xA] cmp r1, r0 bcs _080E808A adds r4, r2, 0 adds r4, 0xC ldr r3, _080E807C 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 adds r7, r6, 0 adds r7, 0x2D _080E809E: lsls r4, r5, 1 ldr r1, _080E80C8 adds r0, r6, r1 adds r0, r4 ldrh r1, [r0] adds r0, r6, 0 movs r2, 0 bl sub_80EB218 ldr r0, _080E80CC 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 ldr r0, _080E819C adds r0, r6 mov r9, r0 movs r1, 0 mov r8, r1 adds r7, r6, 0 adds r7, 0x80 ldr r2, _080E81A0 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 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 ldr r4, _080E81F0 ldr r2, _080E81F4 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 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 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 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 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E82B4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, _080E82B8 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 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 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 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 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 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 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 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 ldr r7, [r1] adds r5, r7, 0 adds r5, 0x9C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, _080E84E8 adds r1, r4 str r1, [r5] ldr r0, _080E84EC str r0, [sp, 0x8] ldr r0, _080E84F0 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 str r0, [sp, 0x8] ldr r0, _080E84F8 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 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 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 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 ldr r3, [r1] ldr r2, _080E8558 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 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 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 movs r0, 0x2 b _080E8598 .align 2, 0 _080E8590: .4byte gUnknown_020388AC _080E8594: ldr r1, _080E85F4 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 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 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 ldrh r0, [r5, 0x3A] lsls r0, 8 ldrh r1, [r5, 0x38] orrs r0, r1 strh r0, [r2] ldr r0, _080E8690 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 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 ldr r2, _080E8724 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 _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 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 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 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 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 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 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _080E8854 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 ldr r0, [r0] adds r0, 0xA8 str r1, [r0] ldr r0, _080E885C 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 ldr r3, [r0] ldr r1, _080E88B4 adds r0, r3, r1 ldrb r1, [r0] cmp r1, 0 beq _080E88C4 ldr r5, _080E88B8 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 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 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 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 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 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 ldr r2, [r0] ldr r3, _080E899C adds r1, r2, r3 ldr r3, _080E89A0 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 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 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 ldr r2, [r0] ldr r0, _080E8A68 adds r1, r2, r0 ldr r3, _080E8A6C adds r0, r2, r3 str r0, [r1] ldr r1, _080E8A70 adds r0, r2, r1 ldrb r0, [r0] subs r0, 0x4 ldr r3, _080E8A74 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 ldr r2, [r0] ldr r3, _080E8A74 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 ldr r0, [r0] ldr r1, _080E8A78 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 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 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 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 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 ldr r2, [r0] adds r2, 0xB4 adds r2, r4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8B70 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 ldr r1, [r0] ldr r2, _080E8BB4 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 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 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x4] str r1, [sp, 0x8] ldr r0, _080E8C2C 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 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl CreateSprite ldr r0, _080E8CE0 ldrb r0, [r0, 0x8] movs r1, 0x69 cmp r0, 0 bne _080E8C68 movs r1, 0x64 _080E8C68: ldr r7, _080E8CE4 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 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 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 bl LoadCompressedObjectPic ldr r0, _080E8D28 bl LoadSpritePalette ldr r0, _080E8D2C 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 ldr r2, [r0] ldr r0, _080E8D34 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080E8D38 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 ldr r0, [r0] ldr r1, _080E8D50 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 ldr r2, [r0] ldr r1, _080E8D7C 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 ldr r2, [r0] ldr r1, _080E8DBC 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 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 movs r2, 0x8B lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080E8F34 adds r0, r2, 0 strh r0, [r1] ldr r0, _080E8F38 ldr r1, _080E8F3C 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 movs r1, 0xD9 lsls r1, 3 add r1, r8 bl LZ77UnCompWram ldr r0, _080E8F44 ldr r1, _080E8F48 bl LZ77UnCompVram ldr r1, _080E8F4C adds r0, r4, 0 adds r2, r5, 0 bl CpuSet ldr r0, _080E8F50 movs r1, 0x40 movs r2, 0x40 bl LoadPalette ldr r1, _080E8F54 ldr r2, _080E8F58 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F5C movs r5, 0x80 lsls r5, 4 mov r0, sp strh r6, [r0] ldr r4, _080E8F60 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 ldr r2, _080E8F68 str r0, [r4] str r2, [r4, 0x4] ldr r0, _080E8F6C str r0, [r4, 0x8] ldr r0, [r4, 0x8] ldr r0, _080E8F70 bl LZ77UnCompVram ldr r0, _080E8F74 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F78 movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r1, _080E8F7C ldr r2, _080E8F80 adds r0, r2, 0 strh r0, [r1] ldr r1, _080E8F84 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 movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _080E8F8C adds r1, r0, 0 adds r1, 0x7E ldr r3, _080E8F90 strh r3, [r1] subs r1, 0x1C ldr r2, _080E8F94 strh r2, [r1] adds r0, 0x70 ldr r1, _080E8F98 strh r1, [r0] ldr r0, _080E8F9C 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 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 adds r0, r1, r4 ldrh r2, [r0] movs r0, 0x1F ands r0, r2 lsls r0, 8 str r0, [sp] ldr r5, _080E90F8 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 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 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 ldr r3, [r2] mov r0, r10 add r0, r9 adds r0, r4 lsls r0, 1 ldr r4, _080E9100 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 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 ldr r2, [r1] ldr r3, _080E9168 adds r1, r2, r3 lsrs r0, 24 ldrb r3, [r1] adds r0, r3 strb r0, [r1] movs r4, 0 ldr r0, _080E916C mov r12, r0 adds r6, r1, 0 ldr r3, _080E9170 adds r5, r2, r3 ldr r7, _080E9174 _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 ldr r0, [r0] ldr r1, _080E9194 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 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 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 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 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 ldr r4, [r0] ldr r1, _080E927C adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9280 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 ldr r4, [r0] ldr r1, _080E92A4 adds r0, r4, r1 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92A8 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 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E92C0 b _080E9326 .align 2, 0 _080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 _080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 _080E92C4: ldr r0, _080E92D8 ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x4 beq _080E92E0 cmp r0, 0x9 bne _080E92E8 ldr r0, _080E92DC b _080E933E .align 2, 0 _080E92D8: .4byte gUnknown_083DB694 _080E92DC: .4byte gOtherText_QuitGivingInfo _080E92E0: ldr r0, _080E92E4 b _080E933E .align 2, 0 _080E92E4: .4byte gOtherText_StopGivingMail _080E92E8: ldr r0, _080E92EC b _080E933E .align 2, 0 _080E92EC: .4byte gOtherText_QuitEditing _080E92F0: ldr r0, _080E9300 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9304 b _080E9326 .align 2, 0 _080E9300: .4byte gOtherText_EditedTextNoSavePage1 _080E9304: .4byte gOtherText_EditedTextNoSavePage2 _080E9308: ldr r0, _080E930C b _080E933E .align 2, 0 _080E930C: .4byte gOtherText_EnterAPhraseOrWord _080E9310: ldr r0, _080E9314 b _080E933E .align 2, 0 _080E9314: .4byte gOtherText_TextNoDelete _080E9318: ldr r0, _080E9334 movs r1, 0x4 movs r2, 0xF movs r3, 0x2 bl sub_80E91B0 ldr r0, _080E9338 _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 _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 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 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 b _080E93FA .align 2, 0 _080E93BC: .4byte gOtherText_Profile _080E93C0: ldr r4, _080E93C4 b _080E93FA .align 2, 0 _080E93C4: .4byte gOtherText_AtBattleStart _080E93C8: ldr r4, _080E93CC b _080E93FA .align 2, 0 _080E93CC: .4byte gOtherText_UponWinningBattle _080E93D0: ldr r4, _080E93D4 b _080E93FA .align 2, 0 _080E93D4: .4byte gOtherText_UponLosingBattle _080E93D8: ldr r4, _080E93DC b _080E93FA .align 2, 0 _080E93DC: .4byte gOtherText_TheBardsSong _080E93E0: ldr r4, _080E93E4 b _080E93FA .align 2, 0 _080E93E4: .4byte gOtherText_WhatsHipHappening _080E93E8: ldr r4, _080E93EC b _080E93FA .align 2, 0 _080E93EC: .4byte gOtherText_Interview _080E93F0: ldr r4, _080E93F4 b _080E93FA .align 2, 0 _080E93F4: .4byte gOtherText_GoodSaying _080E93F8: movs r4, 0 _080E93FA: ldr r0, _080E943C bl BasicInitMenuWindow ldr r0, _080E9440 ldr r2, [r0] ldr r0, _080E9444 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 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] cmp r4, 0 beq _080E9450 ldr r1, _080E944C 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 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 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 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bls _080E949C b _080E9594 _080E949C: lsls r0, 2 ldr r1, _080E94AC 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 ldr r3, _080E94E4 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 ldr r3, _080E9504 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 ldr r3, _080E952C 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 ldr r3, _080E9550 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 ldr r3, _080E9574 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 ldr r3, _080E95A0 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 bl BasicInitMenuWindow ldr r0, _080E95C4 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9612 lsls r0, 2 ldr r1, _080E95C8 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 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 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 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 adds r1, r6, 0 adds r2, r7, 0 ldr r3, _080E9698 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 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 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 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 bl BasicInitMenuWindow ldr r0, _080E9764 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E97B2 lsls r0, 2 ldr r1, _080E9768 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 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 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 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 ldr r4, [r0] ldr r5, _080E98C0 _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 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 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 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 bl BasicInitMenuWindow ldr r0, _080E98E4 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0x5 bhi _080E9936 lsls r0, 2 ldr r1, _080E98E8 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 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 bl BasicInitMenuWindow ldr r0, _080E99C8 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _080E99D4 ldr r1, _080E99CC 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 adds r6, r5, r2 _080E99A4: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E99D0 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 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 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 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 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 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 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 ldr r5, [r4] ldr r0, _080E9B80 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 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 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 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 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 bl BasicInitMenuWindow _080E9B9A: ldr r2, _080E9BE4 ldr r4, [r2] mov r3, r9 adds r1, r5, r3 ldr r2, _080E9BE8 adds r0, r4, r2 adds r0, r1 ldrh r1, [r0] mov r0, r8 movs r2, 0x9 bl sub_80EB218 ldr r3, _080E9BEC 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 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 bl BasicInitMenuWindow movs r6, 0 ldr r1, _080E9C68 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 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 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 ldr r0, [r0] ldr r2, _080E9CB0 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 ldr r0, [r0] ldr r1, _080E9CE4 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 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 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 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 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 bl BasicInitMenuWindow ldr r0, _080E9DB0 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 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 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 ldr r7, [r0] _080E9DDA: lsls r1, r4, 24 lsrs r1, 24 ldr r2, _080E9E04 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 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 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 ldr r2, [r0] movs r0, 0xDD lsls r0, 1 adds r3, r2, r0 ldr r1, _080E9E90 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 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 ldr r0, [r1] adds r0, 0xBE ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x5 bhi _080E9F48 lsls r0, 2 ldr r1, _080E9EC8 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 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 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 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 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 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x6 bhi _080E9FCC lsls r0, 2 ldr r1, _080E9F6C 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 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 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 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 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 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA0DC lsls r0, 2 ldr r1, _080EA06C 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 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 ldr r0, [r0] adds r0, 0xBE ldrh r0, [r0] cmp r0, 0x4 bhi _080EA17C lsls r0, 2 ldr r1, _080EA100 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 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 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 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 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 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 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 ldr r7, [r0] adds r0, r7, 0 adds r0, 0xC8 movs r6, 0xF str r6, [sp] ldr r1, _080EA344 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, _080EAD5C adds r4, r0, r1 adds r4, 0xB0 ldr r0, _080EAD60 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 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 bl FlagGet b _080EADB4 .align 2, 0 _080EAD98: .4byte 0x00000804 _080EAD9C: cmp r1, 0x15 beq _080EADB0 b _080EADBA _080EADA2: ldr r0, _080EADAC 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 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 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 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 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 ldr r0, [r1] ldr r3, _080EAF14 adds r3, r0, r3 str r3, [sp, 0x4] _080EAEE6: ldr r1, _080EAF18 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 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 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 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 adds r1, r0 ldrh r4, [r1] lsrs r0, r4, 9 ldr r1, _080EAFBC 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 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 adds r0, r2, r7 adds r0, r1 strh r4, [r0] ldr r0, _080EAFC8 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 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 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 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 adds r1, r2, r7 adds r1, r0 strh r4, [r1] ldr r0, _080EB03C 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 lsls r1, r3, 2 adds r1, r0 ldr r2, [r1] movs r4, 0 ldrb r0, [r2] cmp r0, 0xFF beq _080EB094 ldr r0, _080EB0A8 ldr r0, [r0] ldr r1, _080EB0AC 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 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 adds r0, r4, r7 adds r0, r1 strh r5, [r0] movs r7, 0 movs r0, 0 mov r9, r0 ldr r1, _080EB18C lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] movs r1, 0 mov r8, r1 ldr r1, _080EB190 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 ldr r3, [r0] lsls r1, r7, 1 mov r2, r9 lsls r0, r2, 2 adds r1, r0 ldr r0, _080EB194 adds r4, r3, r0 adds r4, r1 movs r0, 0x7F ands r0, r6 lsls r0, 9 ldrh r1, [r5] ldr r5, _080EB198 adds r2, r5, 0 ands r1, r2 orrs r0, r1 strh r0, [r4] lsls r0, r6, 1 ldr r1, _080EB188 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 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 adds r0, r4, r7 adds r1, r0, r1 ldrh r0, [r1] cmp r5, r0 bcs _080EB1FA ldr r7, _080EB210 adds r7, r4 mov r8, r7 lsls r0, r2, 8 subs r0, r2 lsls r7, r0, 1 ldr r0, _080EB214 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 b _080EB2A2 .align 2, 0 _080EB23C: .4byte gOtherText_ThreeQuestions _080EB240: ldr r0, _080EB250 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 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 adds r1, r0 b _080EB2A2 .align 2, 0 _080EB27C: .4byte gSpeciesNames _080EB280: movs r0, 0xD muls r1, r0 ldr r0, _080EB28C adds r1, r0 b _080EB2A2 .align 2, 0 _080EB28C: .4byte gMoveNames _080EB290: ldr r0, _080EB2CC ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB2D0 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 bl StringLength lsls r0, 16 lsrs r0, 16 b _080EB374 .align 2, 0 _080EB2F4: .4byte gOtherText_ThreeQuestions _080EB2F8: ldr r0, _080EB304 cmp r4, r0 bne _080EB308 movs r0, 0 b _080EB374 .align 2, 0 _080EB304: .4byte 0x0000ffff _080EB308: lsrs r2, r5, 25 ldr r1, _080EB31C 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 adds r1, r0 b _080EB356 .align 2, 0 _080EB330: .4byte gSpeciesNames _080EB334: movs r0, 0xD muls r1, r0 ldr r0, _080EB340 adds r1, r0 b _080EB356 .align 2, 0 _080EB340: .4byte gMoveNames _080EB344: ldr r0, _080EB35C ldr r0, [r0] lsls r1, 2 lsls r2, 10 adds r1, r2 ldr r2, _080EB360 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 cmp r3, r0 beq _080EB3EA lsrs r2, r1, 25 ldr r5, _080EB3A4 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 lsls r1, r2, 2 adds r1, r0 ldr r4, [r1] movs r3, 0 ldr r0, _080EB3DC 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 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 adds r0, r5, 0 bl StringCopy b _080EB4A6 .align 2, 0 _080EB41C: .4byte gOtherText_ThreeQuestions _080EB420: ldr r0, _080EB43C cmp r4, r0 beq _080EB4A0 lsrs r1, r6, 25 ldr r2, _080EB440 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 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 adds r1, r0 b _080EB498 .align 2, 0 _080EB464: .4byte gMoveNames _080EB468: ldr r0, _080EB4AC lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB4B0 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 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 _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 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 _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 cmp r3, r0 bne _080EB5F4 movs r0, 0 b _080EB67C .align 2, 0 _080EB5F0: .4byte 0x0000ffff _080EB5F4: lsrs r1, 25 ldr r2, _080EB608 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 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 adds r1, r0 b _080EB660 .align 2, 0 _080EB62C: .4byte gMoveNames _080EB630: ldr r0, _080EB664 lsls r1, 2 adds r1, r0 ldr r1, [r1] subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB668 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 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 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 _080EB6CE: adds r1, r0, r1 subs r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, _080EB6F8 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 adds r1, r0 lsrs r0, r1, 16 ldr r1, _080EB728 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 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 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 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 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 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 movs r2, 0x2 b _080EB81C .align 2, 0 _080EB7EC: .4byte gSaveBlock1 + 0x2B1C _080EB7F0: ldr r5, _080EB80C 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 b _080EB81A .align 2, 0 _080EB814: .4byte gSaveBlock1 + 0x2B34 _080EB818: ldr r5, _080EB834 _080EB81A: movs r2, 0x3 _080EB81C: movs r3, 0x2 _080EB81E: ldr r4, _080EB838 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 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 ldr r3, _080EB88C 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 ldr r3, _080EB8BC 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 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 _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 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 _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 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 ldr r5, [r0] movs r6, 0 ldr r0, _080EBA54 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 _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 ldr r2, _080EBA78 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xE bhi _080EBABC lsls r0, 2 ldr r1, _080EBA7C 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 ldr r2, _080EBAF4 adds r1, r3, r2 strb r0, [r1] lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080EBBC0 ldr r1, _080EBAF8 adds r0, r3, r1 strb r2, [r0] ldr r1, _080EBAFC ldr r2, _080EBB00 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _080EBB04 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 ldr r0, _080EBB48 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 ldr r2, _080EBB68 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 ldr r0, _080EBB8C 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 bl sub_80EBDBC b _080EBBC0 .align 2, 0 _080EBB9C: .4byte sub_80EBDD8 _080EBBA0: ldr r0, _080EBBD0 ldr r1, _080EBBD4 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0x6E bl PlaySE ldr r0, _080EBBD8 bl SetMainCallback2 ldr r0, _080EBBDC bl SetVBlankCallback bl sub_80F1A74 _080EBBC0: ldr r1, _080EBBE0 ldr r2, _080EBBE4 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 ldr r2, _080EBC0C 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 movs r0, 0x14 strh r0, [r1] bl CalculatePlayerPartyCount ldr r2, _080EBC80 ldr r1, _080EBC84 adds r3, r2, r1 movs r1, 0 strb r0, [r3] ldr r3, _080EBC88 adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC8C adds r0, r2, r3 strb r1, [r0] ldr r3, _080EBC90 adds r0, r2, r3 str r1, [r0] ldr r3, _080EBC94 adds r0, r2, r3 str r1, [r0] movs r3, 0 ldr r0, _080EBC98 adds r7, r2, r0 mov r12, r2 movs r6, 0 ldr r5, _080EBC9C 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 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 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 ldr r0, _080EBCE0 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EBCE4 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _080EBCE8 adds r1, r4, r0 movs r0, 0x3 strb r0, [r1] ldr r0, _080EBCEC bl FlagGet lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080EBCF4 ldr r0, _080EBCF0 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 adds r0, r4, r1 strb r2, [r0] _080EBCFA: ldr r0, _080EBD10 ldr r1, _080EBD14 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 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 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 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 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 ldr r3, _080EBE78 adds r0, r1, r3 ldrb r2, [r0] subs r3, 0x2F adds r0, r1, r3 strb r2, [r0] ldr r0, _080EBE7C 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EBFDC .align 2, 0 _080EBEA8: .4byte 0x02000000 _080EBEAC: bl sub_80F2598 ldr r1, _080EBEBC movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBEBC: .4byte 0x02000000 _080EBEC0: bl sub_80EEE20 ldr r1, _080EBEEC 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 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 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 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 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF44: .4byte 0x02000000 _080EBF48: ldr r0, _080EBF50 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 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 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EBFDC .align 2, 0 _080EBF84: .4byte 0x02000000 _080EBF88: ldr r0, _080EBF9C 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 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 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 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 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 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 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 bl SetVBlankCallback bl sub_80EED1C ldr r4, _080EC0B0 ldr r1, _080EC0B4 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080EC0B8 adds r0, r4, r2 strb r1, [r0] ldr r0, _080EC0BC 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 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 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 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 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EC1D0 .align 2, 0 _080EC164: .4byte 0x02000000 _080EC168: ldr r0, _080EC17C 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 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 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 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 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 ldr r1, _080EC208 adds r0, r1 ldrb r1, [r0] movs r0, 0 bl sub_80EF428 ldr r0, _080EC20C 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 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 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 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 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 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 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080EC394 ldr r2, _080EC314 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 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 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC340: .4byte sub_80EC4A0 _080EC344: movs r0, 0x5 bl PlaySE ldr r0, _080EC354 bl sub_80EBDBC b _080EC492 .align 2, 0 _080EC354: .4byte sub_80EC81C _080EC358: ldr r0, _080EC368 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 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 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 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 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 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 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 adds r0, r4, r2 ldrh r0, [r0] cmp r0, 0 beq _080EC438 movs r0, 0x5 bl PlaySE ldr r0, _080EC434 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080EC492 ldr r2, _080EC49C 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 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 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 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 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 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 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 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 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 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 bl SetVBlankCallback ldr r1, _080EC610 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EC66A ldr r0, _080EC678 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 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 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 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 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 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 ldr r1, _080EC770 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 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 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 movs r2, 0 ldr r0, _080EC810 ldr r1, _080EC814 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 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 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 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 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EC918 movs r0, 0x5 bl PlaySE ldr r2, _080EC8E8 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 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC8FC: .4byte sub_80ED620 _080EC900: ldr r0, _080EC908 bl sub_80EBDBC b _080EC954 .align 2, 0 _080EC908: .4byte sub_80EC960 _080EC90C: ldr r0, _080EC914 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 adds r0, r4, r1 strb r6, [r0] ldr r2, _080EC940 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 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 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 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 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 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 bl sub_80EBDBC ldr r1, _080ECA0C 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 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 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 bl SetVBlankCallback bl sub_80EED1C ldr r4, _080ECAB4 ldr r1, _080ECAB8 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECABC adds r0, r4, r2 strb r1, [r0] ldr r0, _080ECAC0 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 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 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 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 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 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 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 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 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 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 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 ldr r1, _080ECC00 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 bl sub_80EF428 ldr r0, _080ECC04 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 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 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 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 adds r0, r4, r2 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x5 bhi _080ECD0C lsls r0, 2 ldr r1, _080ECC80 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 ldr r3, _080ECCAC adds r0, r3 movs r1, 0x16 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCA8: .4byte 0x02000000 _080ECCAC: .4byte 0x000087d8 _080ECCB0: ldr r0, _080ECCBC ldr r1, _080ECCC0 adds r0, r1 movs r1, 0x17 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCBC: .4byte 0x02000000 _080ECCC0: .4byte 0x000087d8 _080ECCC4: ldr r0, _080ECCD0 ldr r2, _080ECCD4 adds r0, r2 movs r1, 0x18 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCD0: .4byte 0x02000000 _080ECCD4: .4byte 0x000087d8 _080ECCD8: ldr r0, _080ECCE4 ldr r3, _080ECCE8 adds r0, r3 movs r1, 0x21 strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCE4: .4byte 0x02000000 _080ECCE8: .4byte 0x000087d8 _080ECCEC: ldr r0, _080ECCF8 ldr r1, _080ECCFC adds r0, r1 movs r1, 0x2F strb r1, [r0] b _080ECD0C .align 2, 0 _080ECCF8: .4byte 0x02000000 _080ECCFC: .4byte 0x000087d8 _080ECD00: ldr r0, _080ECD08 bl sub_80EBDBC b _080ECD74 .align 2, 0 _080ECD08: .4byte sub_80EC9A8 _080ECD0C: ldr r1, _080ECD2C ldr r2, _080ECD30 adds r0, r1, r2 ldrb r2, [r0] ldr r3, _080ECD34 adds r0, r1, r3 strb r2, [r0] ldr r0, _080ECD38 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080ECD3C 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 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 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 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 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 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 bl SetVBlankCallback b _080ECFD4 .align 2, 0 _080ECE48: .4byte sub_80EBD80 _080ECE4C: bl sub_80EED1C bl sub_80F3130 ldr r1, _080ECE60 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 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 adds r0, r4, r1 ldrb r1, [r0] ldr r2, _080ECEA4 adds r0, r4, r2 strb r1, [r0] ldr r3, _080ECEA8 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 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 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 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ECFDC .align 2, 0 _080ECF54: .4byte 0x02000000 _080ECF58: ldr r0, _080ECF6C 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 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 ldr r3, _080ECFAC 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 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 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 ldr r1, _080ED014 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 bl sub_80EF428 ldr r0, _080ED018 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 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 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 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 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 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 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED27C .align 2, 0 _080ED148: .4byte 0x02000000 _080ED14C: bl sub_80F4D44 ldr r1, _080ED178 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 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 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 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 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 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 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 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 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 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 movs r3, 0xC1 lsls r3, 2 adds r1, r3 b _080ED27C .align 2, 0 _080ED25C: .4byte 0x02000000 _080ED260: ldr r0, _080ED284 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 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 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 ldr r3, _080ED2C8 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 ldr r2, _080ED314 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 ldr r1, _080ED314 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 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080ED38C movs r0, 0x5 bl PlaySE ldr r0, _080ED370 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 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 movs r1, 0xC1 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x8 bhi _080ED4C6 lsls r0, 2 ldr r1, _080ED3F0 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED4C6 ldr r0, _080ED4D4 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 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 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 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 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED60E ldr r0, _080ED61C 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 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 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 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 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 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 ldr r2, _080ED72C 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 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 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 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 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080ED814 .align 2, 0 _080ED7D0: .4byte 0x02000000 _080ED7D4: ldr r0, _080ED7E8 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 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 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 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 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 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 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 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 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 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 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080ED970 ldr r1, _080ED964 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED970 ldr r2, _080ED968 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _080ED948 ldr r4, _080ED96C 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 adds r0, r5, r4 ldrb r0, [r0] cmp r0, 0 beq _080ED9CC ldr r1, _080ED9C4 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080ED9A2 ldr r2, _080ED9C8 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 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 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _080EDA44 ldr r1, _080EDA3C adds r0, r4, r1 movs r2, 0 ldrsh r1, [r0, r2] ldr r2, _080EDA40 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 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 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDB7A bl sub_80F3CE8 bl sub_80F5BDC ldr r0, _080EDB64 ldr r4, _080EDB68 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 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 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 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 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 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 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 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 movs r2, 0xC1 lsls r2, 2 adds r1, r2 b _080EDD8A .align 2, 0 _080EDC8C: .4byte 0x02000000 _080EDC90: bl sub_80F638C ldr r1, _080EDCBC 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 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 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 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EDDAA ldr r0, _080EDDB8 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EDE2C movs r0, 0x5 bl PlaySE ldr r0, _080EDE10 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 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 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 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 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 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 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 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 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 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 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 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 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 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 bl SetVBlankCallback b _080EE03C .align 2, 0 _080EE018: .4byte sub_80EBD18 _080EE01C: movs r0, 0x3 bl sub_80EED2C ldr r1, _080EE02C movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE042 .align 2, 0 _080EE02C: .4byte 0x02000000 _080EE030: ldr r0, _080EE04C 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 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 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 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 movs r5, 0xC1 lsls r5, 2 adds r1, r5 b _080EE1C4 .align 2, 0 _080EE0C8: .4byte 0x02000000 _080EE0CC: ldr r2, _080EE0FC ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE104 ldr r1, _080EE100 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 adds r0, r4, r1 ldr r2, _080EE13C 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 bl SetVBlankCallback ldr r1, _080EE36C 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE3C6 ldr r0, _080EE3D4 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 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 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 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 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 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 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 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080EE57A ldr r0, _080EE588 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080EE608 movs r0, 0x5 bl PlaySE ldr r0, _080EE5E0 bl sub_80EBDBC b _080EE652 .align 2, 0 _080EE5DC: .4byte gMain _080EE5E0: .4byte sub_80EE658 _080EE5E4: movs r0, 0x5 bl PlaySE ldr r1, _080EE5F8 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 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 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 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE6F0: .4byte 0x02000000 _080EE6F4: bl sub_80F0F64 ldr r1, _080EE704 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE72C: .4byte 0x02000000 _080EE730: ldr r4, _080EE750 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 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 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 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080EE7B8 ldr r1, _080EE7B4 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 adds r0, r4, r1 ldr r2, _080EE7F4 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 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 movs r0, 0xC1 lsls r0, 2 adds r1, r0 b _080EE8C6 .align 2, 0 _080EE850: .4byte 0x02000000 _080EE854: bl sub_80F0FA0 ldr r1, _080EE864 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 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 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 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 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 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 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 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 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 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 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 ldr r2, _080EEA00 adds r0, r1, r2 movs r2, 0 strb r4, [r0] ldr r3, _080EEA04 adds r0, r1, r3 strb r5, [r0] adds r3, 0x1 adds r0, r1, r3 strb r2, [r0] ldr r0, _080EEA08 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 ldr r2, _080EEA2C 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 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 ldr r4, _080EEA80 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0xC beq _080EEA88 ldr r0, _080EEA84 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 adds r1, r2 movs r0, 0x3 strb r0, [r1] b _080EEC08 .align 2, 0 _080EEA94: .4byte 0x00006e16 _080EEA98: ldr r4, _080EEAC8 ldr r1, _080EEACC adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2C80 ldr r2, _080EEAD0 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEAAE: ldr r4, _080EEAC8 ldr r1, _080EEACC adds r0, r4, r1 ldrb r0, [r0] bl sub_80F2CBC lsls r0, 24 cmp r0, 0 beq _080EEAC2 b _080EEC08 _080EEAC2: ldr r2, _080EEAD0 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 adds r0, r2, r4 ldrb r1, [r0] subs r4, 0x68 adds r0, r2, r4 strb r1, [r0] ldr r1, _080EEAFC 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 adds r1, r2, r4 movs r0, 0x5 b _080EEB26 .align 2, 0 _080EEB10: .4byte 0x00006dae _080EEB14: ldr r0, _080EEB1C adds r1, r2, r0 movs r0, 0x3 b _080EEB26 .align 2, 0 _080EEB1C: .4byte 0x00006dae _080EEB20: ldr r2, _080EEB58 adds r1, r3, r2 movs r0, 0x6 _080EEB26: strb r0, [r1] _080EEB28: ldr r4, _080EEB5C ldr r1, _080EEB60 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1B8C ldr r2, _080EEB64 adds r4, r2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _080EEB3E: ldr r4, _080EEB5C ldr r1, _080EEB60 adds r0, r4, r1 ldrb r0, [r0] bl sub_80F1BC8 lsls r0, 24 cmp r0, 0 bne _080EEC08 ldr r2, _080EEB64 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 ldr r4, _080EEB84 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 ldr r1, _080EEBA4 adds r0, r4, r1 ldrb r0, [r0] bl sub_80EF490 ldr r2, _080EEBA8 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 ldr r1, _080EEBD8 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080EEBDC adds r1, r4, r2 ldrb r1, [r1] bl sub_80EF428 ldr r0, _080EEBE0 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 ldr r2, _080EEC04 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 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080EEC50 ldr r1, _080EEC4C 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 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 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 ldr r0, _080EECC8 adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bge _080EECF8 ldr r3, _080EECCC 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 ldr r4, _080EED00 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 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 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 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 ldr r0, _080EEDBC movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r1, _080EEDC0 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 movs r1, 0xC0 lsls r1, 2 adds r0, r1 ldr r1, _080EEDE4 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 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 ldr r0, [r0] ldr r1, _080EEE1C 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 ldr r0, [r0] ldr r1, _080EEE4C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EEE50 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 ldr r0, [r1] ldr r2, _080EEE74 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bhi _080EEF02 lsls r0, 2 ldr r1, _080EEE78 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 ldr r1, _080EEEA0 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEE9C: .4byte gPokenavHoennMapMisc_Gfx _080EEEA0: .4byte 0x0600c000 _080EEEA4: ldr r0, _080EEEB0 ldr r1, _080EEEB4 bl LZ77UnCompVram b _080EEF18 .align 2, 0 _080EEEB0: .4byte gUnknown_08E99FB0 _080EEEB4: .4byte 0x0600d800 _080EEEB8: ldr r0, _080EEEC4 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 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080EEF0C ldr r3, _080EEF10 adds r0, r3, 0 strh r0, [r1] ldr r0, _080EEF14 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 ldr r1, [r0] ldr r2, _080EEF30 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 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 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 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 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 ldr r3, _080EEFF8 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 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 ldr r0, _080EF068 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 ldr r3, _080EF088 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 ldr r0, [r0] ldr r1, _080EF0CC adds r0, r1 ldrb r7, [r0] cmp r7, 0 bne _080EF0D8 ldr r5, _080EF0D0 ldr r6, _080EF0D4 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 ldr r3, _080EF0FC 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 ldr r0, _080EF138 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 ldr r6, _080EF174 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 ldr r6, _080EF18C 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 ldr r6, _080EF1D0 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 ldr r1, _080EF214 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 ldr r3, _080EF244 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 ldr r0, [r0] ldr r1, _080EF27C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF280 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 ldr r0, [r1] ldr r3, _080EF2AC adds r0, r3 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0xB bls _080EF29C b _080EF3F6 _080EF29C: lsls r0, 2 ldr r1, _080EF2B0 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 bl SetUpWindowConfig b _080EF40C .align 2, 0 _080EF2F4: .4byte gWindowConfig_81E7224 _080EF2F8: ldr r0, _080EF300 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 ldr r2, _080EF324 ldr r0, _080EF328 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF32C b _080EF350 .align 2, 0 _080EF320: .4byte gUnknown_083DFEEC _080EF324: .4byte 0x06005000 _080EF328: .4byte 0x040000d4 _080EF32C: .4byte 0x80000050 _080EF330: ldr r0, _080EF33C ldr r1, _080EF340 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF33C: .4byte gUnknown_083DFF8C _080EF340: .4byte 0x0600f800 _080EF344: ldr r1, _080EF358 ldr r2, _080EF35C ldr r0, _080EF360 str r1, [r0] str r2, [r0, 0x4] ldr r1, _080EF364 _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 ldr r1, _080EF378 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF374: .4byte gUnknown_083E007C _080EF378: .4byte 0x0600e000 _080EF37C: ldr r0, _080EF388 ldr r1, _080EF38C bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF388: .4byte gPokenavOutlineTilemap _080EF38C: .4byte 0x0600e800 _080EF390: ldr r0, _080EF39C ldr r1, _080EF3A0 bl LZ77UnCompVram b _080EF40C .align 2, 0 _080EF39C: .4byte gPokenavOutlineTiles _080EF3A0: .4byte 0x06008020 _080EF3A4: adds r0, r2, 0 bl sub_80EF54C ldr r0, _080EF3C4 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080EF3C8 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 ldr r2, _080EF400 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080EF404 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 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 ldr r1, [r0] ldr r0, _080EF424 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 b _080EF45E .align 2, 0 _080EF450: .4byte gUnknown_083E31B0 _080EF454: ldr r1, _080EF458 b _080EF45E .align 2, 0 _080EF458: .4byte gUnknown_083E31CC _080EF45C: ldr r1, _080EF488 _080EF45E: lsls r0, r2, 2 adds r0, r1 ldr r1, [r0] _080EF464: ldr r0, _080EF48C 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 ldr r3, [r0] lsls r1, r2, 4 subs r1, r2 lsls r2, r1, 1 ldr r4, _080EF4C8 adds r0, r3, r4 strh r2, [r0] ldr r2, _080EF4CC 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 adds r1, r3, r0 ldr r0, _080EF4E0 b _080EF4EA .align 2, 0 _080EF4DC: .4byte 0x0000ce50 _080EF4E0: .4byte 0x0000fffe _080EF4E4: ldr r2, _080EF4F4 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 ldr r1, [r0] ldr r0, _080EF534 adds r2, r1, r0 ldr r3, _080EF538 adds r0, r1, r3 ldrh r3, [r2] ldrh r0, [r0] cmp r3, r0 beq _080EF544 ldr r4, _080EF53C adds r0, r1, r4 ldrh r0, [r0] adds r0, r3, r0 strh r0, [r2] ldr r3, _080EF540 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 ldr r0, [r0] lsls r1, r2, 4 subs r1, r2 lsls r1, 1 ldr r3, _080EF584 adds r2, r0, r3 strh r1, [r2] ldrh r1, [r2] lsls r1, 1 ldr r2, _080EF588 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 ldr r0, [r0] ldr r3, _080EF5CC 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 ldr r0, [r0] ldr r1, _080EF5F0 adds r2, r0, r1 ldr r1, _080EF5F4 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 ldr r0, [r0] ldr r3, _080EF61C adds r2, r0, r3 ldr r1, _080EF620 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 ldr r3, [r0] ldr r0, _080EF774 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 adds r1, r3, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EF762: ldr r0, _080EF77C ldr r2, _080EF778 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 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 ldr r3, [r0] ldr r0, _080EF7B8 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 adds r0, r3, r2 strh r1, [r0] ldr r0, _080EF7D0 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 ldr r4, [r0] ldr r1, _080EF804 adds r0, r4, r1 movs r1, 0 strh r1, [r0] ldr r2, _080EF808 adds r0, r4, r2 strh r1, [r0] ldr r0, _080EF80C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _080EF810 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 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _080EF830 ldr r0, _080EF838 ldr r0, [r0] ldr r1, _080EF83C 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 ldr r0, [r0] ldr r1, _080EF86C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EF870 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 ldr r0, [r0] ldr r1, _080EF894 adds r0, r1 ldrh r0, [r0] cmp r0, 0xB bls _080EF886 b _080EF9D8 _080EF886: lsls r0, 2 ldr r1, _080EF898 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 bl SetUpWindowConfig b _080EF9DC .align 2, 0 _080EF8DC: .4byte gWindowConfig_81E7224 _080EF8E0: ldr r0, _080EF8E8 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 ldr r0, [r0] ldr r2, _080EF918 adds r0, r2 ldr r1, _080EF91C 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 ldr r1, _080EF93C bl LZ77UnCompVram b _080EF9DC .align 2, 0 _080EF938: .4byte gPokenavHoennMapSquares_Gfx _080EF93C: .4byte 0x06005000 _080EF940: ldr r0, _080EF950 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 ldr r1, [r0] ldr r2, _080EF994 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _080EF9A0 ldr r2, _080EF998 adds r0, r1, r2 movs r1, 0xA0 strh r1, [r0] ldr r0, _080EF99C 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 adds r1, r0 movs r2, 0 movs r0, 0x80 lsls r0, 1 strh r0, [r1] ldr r0, _080EF9CC strh r2, [r0] _080EF9B0: ldr r2, _080EF9D0 ldrh r0, [r2] strh r0, [r2] ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _080EF9D4 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 ldr r1, [r0] ldr r2, _080EF9F4 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 ldr r0, [r0] ldr r1, _080EFA1C adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _080EFA0E b _080EFB6A _080EFA0E: lsls r0, 2 ldr r1, _080EFA20 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 ldr r0, [r0] ldr r2, _080EFA68 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 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 ldr r1, [r0] ldr r2, _080EFABC 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 ldr r4, [r0] ldr r1, _080EFB3C 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 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 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 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 ldr r0, [r0] ldr r2, _080EFB9C 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 ldr r0, [r0] ldr r1, _080EFBA0 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 ldr r0, [r0] ldr r1, _080EFBCC 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 ldr r1, [r2] ldr r3, _080EFC00 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 adds r0, r1 strh r3, [r0] ldr r1, _080EFC38 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 ldr r0, [r0] ldr r2, _080EFC5C adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080EFC60 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 ldr r2, [r4] ldr r0, _080EFCD4 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xF bhi _080EFD2C ldrb r1, [r1] mov r8, r1 ldr r1, _080EFCD8 adds r0, r2, r1 ldrb r7, [r0] movs r2, 0 ldr r0, _080EFCDC 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 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 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 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 ldr r2, [r0] ldr r0, _080EFD24 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 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 ldr r1, [r0] ldr r2, _080EFD64 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r0, _080EFD68 adds r3, r1, r0 movs r0, 0x2F strb r0, [r3] ldr r3, _080EFD6C adds r0, r1, r3 strb r2, [r0] ldr r0, _080EFD70 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 ldr r2, [r0] ldr r0, _080EFD98 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080EFD9C 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 ldr r3, _080EFDD8 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 ldr r0, [r0] ldr r1, _080EFDE0 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 ldr r1, [r0] ldr r2, _080EFE6C 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 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _080EFE58 ldr r0, _080EFE74 mov r8, r0 ldr r3, _080EFE78 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 ldr r2, [r0] ldr r0, _080EFE9C 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 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 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 ldr r1, [r0] ldr r0, _080EFF00 adds r2, r1, r0 movs r3, 0 movs r0, 0x1 strb r0, [r2] ldr r0, _080EFF04 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 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 ldr r0, [r0] ldr r1, _080EFF60 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080EFF64 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 ldr r0, [r0] ldr r1, _080EFF8C adds r0, r1 ldrh r0, [r0] cmp r0, 0xD bls _080EFF7C b _080F0150 _080EFF7C: lsls r0, 2 ldr r1, _080EFF90 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 ldr r0, [r0] ldr r2, _080EFFE4 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 bl SetUpWindowConfig b _080F0154 .align 2, 0 _080EFFF0: .4byte gWindowConfig_81E7080 _080EFFF4: ldr r0, _080EFFFC 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 ldr r1, _080F0038 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F0034: .4byte gPokenavConditionView_Gfx _080F0038: .4byte 0x06005000 _080F003C: ldr r0, _080F0050 ldr r1, _080F0054 bl LZ77UnCompVram ldr r0, _080F0058 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 ldr r0, [r0] ldr r1, _080F008C adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F0154 ldr r0, _080F0090 ldr r3, _080F0094 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 ldr r1, _080F00A8 bl LZ77UnCompVram b _080F0154 .align 2, 0 _080F00A4: .4byte gUnknown_08E9FEB4 _080F00A8: .4byte 0x0600b800 _080F00AC: ldr r0, _080F00EC movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F00F0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F00F4 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 ldr r0, [r0] ldr r2, _080F0114 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 ldr r2, _080F0140 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F0144 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F0148 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F014C 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 ldr r1, [r0] ldr r0, _080F0170 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 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 movs r0, 0xF0 strh r0, [r1] adds r1, 0x2 movs r0, 0x9B strh r0, [r1] ldr r0, _080F01D0 ldr r2, _080F01D4 adds r1, r2, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _080F01D8 ldr r2, _080F01DC 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 lsls r0, r4, 6 ldr r2, _080F024C adds r0, r2 ldr r5, [r1] adds r0, r5, r0 movs r1, 0xD movs r2, 0x1 bl MenuPrint ldr r1, _080F0250 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 adds r0, r2 adds r0, r5, r0 movs r1, 0xD movs r2, 0x3 bl MenuPrint ldr r0, _080F0258 adds r4, r5, r0 ldr r1, _080F025C adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r5, r0 ldr r1, _080F0260 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 ldr r2, [r1] ldr r1, _080F0294 adds r3, r2, r1 movs r1, 0 strh r1, [r3] ldr r3, _080F0298 adds r1, r2, r3 strb r0, [r1] ldr r0, _080F029C 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 ldr r0, [r1] ldr r2, _080F02C8 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F02BA b _080F05FA _080F02BA: lsls r0, 2 ldr r1, _080F02CC 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 ldr r1, [r0] movs r2, 0 ldr r3, _080F0338 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x1 bne _080F0322 movs r2, 0x1 _080F0322: ldr r3, _080F033C adds r0, r1, r3 strb r2, [r0] ldr r0, _080F0340 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 bl SetUpWindowConfig b _080F0618 .align 2, 0 _080F034C: .4byte gWindowConfig_81E70D4 _080F0350: ldr r0, _080F0358 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 ldr r1, _080F037C bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0378: .4byte gUnknown_08E9FC64 _080F037C: .4byte 0x0600e800 _080F0380: ldr r0, _080F038C ldr r1, _080F0390 bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F038C: .4byte gPokenavConditionSearch2_Gfx _080F0390: .4byte 0x06008000 _080F0394: ldr r6, _080F03FC 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 movs r1, 0x40 movs r2, 0x20 bl LoadPalette ldr r0, _080F0404 ldr r0, [r0] ldr r1, _080F0408 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080F0418 ldr r4, _080F040C adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F0410 ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0414 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 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F045C ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F0460 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 adds r0, r4, 0 movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, _080F04B4 adds r5, r4, 0 adds r5, 0xA ldrh r0, [r4, 0xA] strh r0, [r1] ldr r0, _080F04B8 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 ldr r0, [r0] ldr r2, _080F04EC adds r0, r2 ldrb r0, [r0] cmp r0, 0x2 beq _080F04F8 ldr r0, _080F04F0 ldr r3, _080F04F4 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 mov r8, r3 ldr r3, _080F0534 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 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 ldr r1, _080F054C bl LZ77UnCompVram b _080F0618 .align 2, 0 _080F0548: .4byte gUnknown_083E0354 _080F054C: .4byte 0x06005000 _080F0550: ldr r2, _080F0568 add r1, sp, 0x14 movs r0, 0 strh r0, [r1] ldr r0, _080F056C str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F0570 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 ldr r4, [r0] ldr r1, _080F05A0 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 adds r0, r4, r2 ldrb r0, [r0] bl sub_80F0FFC b _080F0618 .align 2, 0 _080F05B8: .4byte 0x0000876e _080F05BC: ldr r1, _080F0600 ldr r3, _080F0604 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 adds r2, r1, r0 movs r3, 0 movs r0, 0xF8 strh r0, [r2] ldr r2, _080F060C adds r0, r1, r2 strh r3, [r0] ldr r0, _080F0610 strh r3, [r0] ldr r3, _080F0614 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 ldr r1, [r0] ldr r0, _080F0638 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 ldr r2, [r3] lsrs r5, r0, 16 asrs r4, r0, 16 lsls r1, r4, 4 ldr r6, _080F0668 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 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 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 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 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 adds r0, r1, r3 ldrh r0, [r0] adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F0710 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 _080F06E6: ldr r0, [r7] ldr r1, _080F0714 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 ldr r4, [r0] ldr r0, _080F0740 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 adds r1, r4, r0 ldrh r0, [r1] subs r0, r2, r0 strh r0, [r3] ldr r0, _080F0784 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 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 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 ldr r2, [r0] ldr r1, _080F07B4 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 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 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 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 bl BasicInitMenuWindow ldr r0, _080F0818 ldr r0, [r0] ldr r1, _080F0810 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 bl BasicInitMenuWindow cmp r5, 0x4 bhi _080F08C6 lsls r0, r5, 2 ldr r1, _080F083C 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 movs r1, 0xA movs r2, 0x9 bl sub_8072B4C cmp r5, 0 bne _080F08C6 _080F0862: ldr r0, _080F08D0 ldr r0, [r0] ldr r1, _080F08D4 adds r4, r0, r1 ldr r2, _080F08D8 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 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 cmp r1, r0 bls _080F08AA adds r1, r0, 0 _080F08AA: ldr r0, _080F08D0 ldr r4, [r0] ldr r0, _080F08D4 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 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 ldr r0, [r0] ldr r2, _080F0940 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 ldr r3, [r3] ldr r5, _080F0980 adds r4, r3, r5 movs r5, 0 strh r0, [r4] ldr r4, _080F0984 adds r0, r3, r4 strh r1, [r0] ldr r1, _080F0988 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 ldr r6, [r0] ldr r0, _080F09A8 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 ldr r2, _080F0A10 adds r0, r6, r2 ldrb r2, [r0] lsls r2, 2 adds r2, r1 ldr r0, _080F0A14 adds r4, r6, r0 ldrh r0, [r4] ldr r1, _080F0A18 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 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 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 ldr r4, [r0] ldr r1, _080F0A68 adds r0, r4, r1 ldrb r0, [r0] movs r2, 0x1 cmp r0, 0 bne _080F0A40 movs r2, 0x2 _080F0A40: ldr r0, _080F0A6C adds r4, r0 adds r0, r4, 0 adds r1, r3, 0 bl sub_80F4428 ldr r0, _080F0A70 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 ldr r5, [r0] ldr r0, _080F0AE0 adds r4, r5, r0 adds r0, r4, 0 adds r1, r6, 0 bl sub_80F700C movs r0, 0x1F ands r7, r0 ldr r0, _080F0AE4 bl BasicInitMenuWindow lsls r2, r7, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 bl sub_80729D8 ldr r1, _080F0AE8 adds r0, r5, r1 ldrh r0, [r0] cmp r6, r0 bcs _080F0AF8 lsls r0, r6, 3 adds r0, r5, r0 ldr r1, _080F0AEC adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080F0AF8 ldr r0, _080F0AF0 ldr r3, _080F0AF4 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 ldr r3, _080F0B20 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 ldr r0, [r0] ldr r2, _080F0B3C adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0B40 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 ldr r5, [r0] ldr r0, _080F0B5C 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 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 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 adds r0, r5, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r2, r0 beq _080F0BAA ldr r0, _080F0BC8 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 bl BasicInitMenuWindow ldr r1, _080F0C14 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 ldr r1, [r0] ldr r0, _080F0C1C 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 ldr r0, [r0] ldr r2, _080F0C40 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, _080F0C44 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 ldr r4, [r0] ldr r0, _080F0C60 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 adds r1, r4, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r2, _080F0CC0 adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _080F0CD0 movs r0, 0 strh r0, [r1] ldr r0, _080F0CC4 bl BasicInitMenuWindow ldr r0, _080F0CC8 adds r1, r4, r0 ldrh r0, [r5] ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _080F0CCC 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 ldr r1, [r4] ldr r2, _080F0D44 adds r0, r1, r2 movs r2, 0 strh r2, [r0] ldr r3, _080F0D48 adds r0, r1, r3 strh r2, [r0] ldr r2, _080F0D4C adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 3 adds r0, r1, r0 ldr r2, _080F0D50 adds r0, r2 ldrb r0, [r0] ldr r3, _080F0D54 adds r1, r3 ldr r2, _080F0D58 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 ldr r4, [r0] ldr r0, _080F0D74 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 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 bl BasicInitMenuWindow ldr r0, _080F0DC0 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 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 lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0DEC: .4byte gOtherText_Strategy _080F0DF0: ldr r0, _080F0DFC ldr r0, [r0] ldr r1, _080F0E00 adds r4, r0, r1 ldr r1, _080F0E04 b _080F0E42 .align 2, 0 _080F0DFC: .4byte gUnknown_083DFEC4 _080F0E00: .4byte 0x00008788 _080F0E04: .4byte 0x0000d110 _080F0E08: ldr r0, _080F0E10 lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E10: .4byte gOtherText_TrainersPokemon _080F0E14: ldr r0, _080F0E20 ldr r0, [r0] ldr r1, _080F0E24 adds r4, r0, r1 ldr r1, _080F0E28 b _080F0E42 .align 2, 0 _080F0E20: .4byte gUnknown_083DFEC4 _080F0E24: .4byte 0x00008788 _080F0E28: .4byte 0x0000d114 _080F0E2C: ldr r0, _080F0E34 lsls r2, r5, 3 b _080F0E54 .align 2, 0 _080F0E34: .4byte gOtherText_SelfIntroduction _080F0E38: ldr r0, _080F0E60 ldr r0, [r0] ldr r1, _080F0E64 adds r4, r0, r1 ldr r1, _080F0E68 _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 sub_80729D8 b _080F0EA0 .align 2, 0 _080F0E60: .4byte gUnknown_083DFEC4 _080F0E64: .4byte 0x00008788 _080F0E68: .4byte 0x0000d118 _080F0E6C: ldr r0, _080F0E94 ldr r0, [r0] ldr r1, _080F0E98 adds r4, r0, r1 ldr r1, _080F0E9C 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 sub_80729D8 b _080F0D6C .align 2, 0 _080F0E94: .4byte gUnknown_083DFEC4 _080F0E98: .4byte 0x00008788 _080F0E9C: .4byte 0x0000d11c _080F0EA0: ldr r0, _080F0EB8 ldr r1, [r0] ldr r0, _080F0EBC 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 ldr r0, [r0] ldr r2, _080F0EE8 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r3, _080F0EEC adds r1, r0, r3 strh r2, [r1] ldr r1, _080F0EF0 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 ldr r2, [r0] ldr r0, _080F0F0C 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 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 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 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 ldr r3, [r0] ldr r1, _080F0F94 adds r0, r3, r1 movs r4, 0 ldrsh r2, [r0, r4] lsls r1, r2, 4 ldr r4, _080F0F98 adds r0, r3, r4 strh r1, [r0] movs r1, 0x8 cmp r2, 0x1 bne _080F0F82 movs r1, 0x4 _080F0F82: ldr r2, _080F0F9C 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 ldr r3, [r0] ldr r1, _080F0FE0 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 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 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 ldr r4, [r1] ldr r1, _080F104C adds r5, r4, r1 lsrs r0, 21 adds r0, r4, r0 ldr r1, _080F1050 adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 movs r2, 0 bl sub_80FBFB4 ldr r0, _080F1054 bl BasicInitMenuWindow adds r0, r5, 0 bl sub_80F19DC ldr r0, _080F1058 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 ldr r1, [r0] ldr r2, _080F107C 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 ldr r0, [r1] ldr r2, _080F10A4 adds r0, r2 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0xE bls _080F1094 b _080F1204 _080F1094: lsls r0, 2 ldr r1, _080F10A8 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 ldr r0, [r0] ldr r3, _080F1100 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 bl SetUpWindowConfig b _080F1218 .align 2, 0 _080F110C: .4byte gWindowConfig_81E70B8 _080F1110: ldr r0, _080F1118 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 ldr r1, _080F1158 ldr r1, [r1] ldr r2, _080F115C 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 ldr r1, _080F117C bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F1178: .4byte gPokenavRibbonView_Gfx _080F117C: .4byte 0x06008000 _080F1180: ldr r0, _080F118C ldr r1, _080F1190 bl LZ77UnCompVram b _080F1218 .align 2, 0 _080F118C: .4byte gUnknown_083E040C _080F1190: .4byte 0x06008200 _080F1194: ldr r0, _080F11CC movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r4, _080F11D0 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r0, _080F11D4 movs r1, 0x30 movs r2, 0xA0 bl LoadPalette ldr r0, _080F11D8 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 ldr r3, _080F120C adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _080F1210 adds r0, r3, 0 strh r0, [r1] adds r1, 0x42 movs r0, 0 strh r0, [r1] ldr r1, [r2] ldr r0, _080F1214 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 ldr r1, [r0] ldr r2, _080F1234 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 ldr r2, [r0] ldr r1, _080F131C adds r0, r2, r1 ldr r3, _080F1320 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 adds r1, r2 adds r1, r4, r1 mov r0, sp ldr r2, _080F1328 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 ldr r0, [r0] mov r8, r0 ldr r1, _080F132C mov r10, r1 ldr r5, _080F1324 add r5, r8 _080F12A4: ldr r0, _080F1330 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 movs r7, 0 ldr r1, _080F13EC ldr r0, [r1] ldr r2, _080F13F0 adds r1, r0, r2 ldrb r3, [r1] cmp r7, r3 bcs _080F13D8 subs r2, 0x43 adds r2, r0 mov r10, r2 ldr r3, _080F13F4 mov r8, r3 ldr r2, _080F13F8 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 ldr r0, [r0] ldr r1, _080F1420 adds r0, r1 ldr r2, _080F1424 ldr r1, _080F1428 str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F142C str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _080F1430 ldr r0, _080F1434 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 ldr r4, [r0] ldr r1, _080F1474 adds r0, r4, r1 movs r1, 0xD movs r2, 0x1 bl MenuPrint ldr r0, _080F1478 adds r5, r4, r0 ldr r1, _080F147C 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 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 adds r6, r0, r1 ldr r2, _080F14D8 adds r7, r0, r2 ldr r0, _080F14DC ldr r3, [r0] ldr r4, _080F14E0 adds r1, r3, r4 ldrb r0, [r1] cmp r0, 0x2 bhi _080F14F0 ldr r5, _080F14E4 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 adds r0, r3, r1 ldrh r2, [r5] adds r0, r2 ldrb r0, [r0] strh r0, [r5] ldr r4, _080F14EC 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 ldr r4, _080F155C adds r0, r3, r4 ldrb r0, [r0] ldr r2, _080F1560 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 ldrh r1, [r5] adds r0, r1 ldr r4, _080F1568 adds r0, r4 ldrb r0, [r0] strh r0, [r5] cmp r0, 0 beq _080F1570 subs r0, 0x1 strh r0, [r5] ldr r4, _080F156C _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 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 ldr r4, [r0] ldr r0, _080F1604 adds r5, r4, r0 ldr r1, _080F1608 adds r0, r5, 0 bl StringCopy adds r2, r0, 0 movs r0, 0 strb r0, [r2] adds r2, 0x1 ldr r1, _080F160C adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 2 adds r4, r0 ldr r0, _080F1610 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 ldr r0, [r0] ldr r1, _080F1628 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 ldr r0, [r0] ldr r2, _080F1650 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 ldr r1, _080F166C bl LZ77UnCompVram b _080F16F0 .align 2, 0 _080F1668: .4byte gUnknown_08E9FF58 _080F166C: .4byte 0x0600e800 _080F1670: ldr r1, _080F1684 ldr r2, _080F1688 ldr r0, _080F168C str r1, [r0] str r2, [r0, 0x4] ldr r1, _080F1690 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 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _080F16B2 .align 2, 0 _080F16A4: .4byte gUnknown_083E0124 _080F16A8: ldr r0, _080F16D4 movs r1, 0xD0 movs r2, 0x20 bl LoadPalette _080F16B2: ldr r0, _080F16D8 ldr r1, [r0] ldr r3, _080F16DC adds r2, r1, r3 ldr r0, _080F16E0 strh r0, [r2] ldr r2, _080F16E4 ldr r3, _080F16E8 adds r0, r3, 0 strh r0, [r2] ldr r0, _080F16EC 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 ldr r1, [r0] ldr r2, _080F1708 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 ldr r0, [r0] ldr r2, _080F1738 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 ldr r0, [r0] ldr r2, _080F1770 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 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 ldr r0, [r0] ldr r1, _080F179C adds r0, r1 ldrh r0, [r0] cmp r0, 0x9 bls _080F178C b _080F1910 _080F178C: lsls r0, 2 ldr r1, _080F17A0 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 ldr r0, [r0] ldr r2, _080F17E4 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 ldr r1, _080F180C bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1808: .4byte gPokenavConditionView_Gfx _080F180C: .4byte 0x06005000 _080F1810: ldr r0, _080F1824 ldr r1, _080F1828 bl LZ77UnCompVram ldr r0, _080F182C 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 ldr r3, _080F1854 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 ldr r1, _080F1868 bl LZ77UnCompVram b _080F1914 .align 2, 0 _080F1864: .4byte gUnknown_08E9FEB4 _080F1868: .4byte 0x0600b800 _080F186C: ldr r0, _080F18AC movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _080F18B0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette ldr r4, _080F18B4 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 ldr r0, [r0] ldr r1, _080F18D4 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 ldr r2, _080F1900 adds r0, r2, 0 strh r0, [r1] subs r1, 0x2 ldr r2, _080F1904 adds r0, r2, 0 strh r0, [r1] adds r1, 0x44 ldr r2, _080F1908 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F190C 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 ldr r1, [r0] ldr r0, _080F1930 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 ldr r1, [r0] ldr r0, _080F1994 adds r5, r1, r0 ldr r3, _080F1998 adds r2, r1, r3 movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 2 adds r1, r0 ldr r0, _080F199C 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 adds r0, r1 bl GetNature adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080F19A4 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 ldr r0, _080F19A8 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 adds r0, r5, 0 movs r2, 0x57 movs r3, 0 bl sub_8072C74 _080F19B8: ldr r0, _080F19D4 ldr r0, [r0] ldr r1, _080F19D8 adds r0, r1 movs r1, 0x1 movs r2, 0x70 movs r3, 0x1 bl sub_80729D8 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 ldrb r4, [r5] cmp r4, 0x1 bne _080F1A60 ldr r0, _080F1A6C ldr r1, [r0] ldr r2, _080F1A70 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 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 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 ldr r0, [r0] ldr r1, _080F1ABC adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1AC0 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 ldr r1, [r0] ldr r2, _080F1AE4 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 ldr r0, [r0] ldr r1, _080F1B30 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 movs r2, 0xE2 lsls r2, 2 b _080F1B44 .align 2, 0 _080F1B3C: .4byte gPokenavMenuOptions_Gfx _080F1B40: ldr r0, _080F1B4C ldr r2, _080F1B50 _080F1B44: adds r1, r2 bl LZ77UnCompWram b _080F1B6C .align 2, 0 _080F1B4C: .4byte gPokenavConditionMenu_Gfx _080F1B50: .4byte 0x00001788 _080F1B54: ldr r0, _080F1B64 ldr r2, _080F1B68 adds r1, r2 bl LZ77UnCompWram movs r0, 0 b _080F1B7C .align 2, 0 _080F1B64: .4byte gPokenavConditionSearch_Gfx _080F1B68: .4byte 0x00002388 _080F1B6C: ldr r0, _080F1B84 ldr r1, [r0] ldr r0, _080F1B88 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 ldr r0, [r0] ldr r1, _080F1BC0 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F1BC4 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 ldr r2, [r1] ldr r3, _080F1BF8 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 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 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 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 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 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 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 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 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 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 ldr r0, [r1] ldr r4, _080F1DC0 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 ldr r1, [r0] ldr r5, _080F1DEC 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 ldr r3, [r0] ldr r0, _080F1E48 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 _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 ldr r4, [r5] ldr r1, _080F1F00 adds r0, r4, r1 movs r1, 0 strb r1, [r0] bl sub_80F2148 movs r2, 0 ldr r3, _080F1F04 adds r1, r4, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r2, r0 bge _080F1EF2 ldr r0, _080F1F08 adds r7, r4, r0 adds r6, r1, 0 mov r8, r5 ldr r1, _080F1F0C 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 ldr r4, [r0] ldr r1, _080F1F30 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 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 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 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 ldr r1, [r0] ldr r0, _080F1FBC 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 ldr r4, [r0] ldr r1, _080F2040 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080F2058 ldr r2, _080F2044 ldr r3, _080F2048 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 ldr r1, _080F2050 ldr r0, _080F2054 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 ldr r1, _080F2084 ldr r0, _080F2088 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 ldr r2, _080F20E0 adds r0, r2, 0 strh r0, [r1] ldr r2, _080F20E4 ldr r0, _080F20E8 ldr r1, [r0] ldr r3, _080F20EC 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 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 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 ldr r3, [r0] ldr r0, _080F2138 adds r1, r3, r0 ldrb r2, [r1] cmp r2, 0 bne _080F2130 movs r0, 0x1 strb r0, [r1] ldr r1, _080F213C adds r0, r3, r1 strh r2, [r0] ldr r1, _080F2140 movs r0, 0x90 strh r0, [r1] ldr r0, _080F2144 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 ldr r0, [r0] ldr r1, _080F2168 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F216C 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 ldr r4, [r7] ldr r1, _080F21E8 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080F21DC bl sub_80F20F4 movs r3, 0 ldr r2, _080F21EC 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 adds r2, r1, r0 movs r3, 0 movs r0, 0x2 strb r0, [r2] ldr r2, _080F21F0 adds r1, r2 strh r3, [r1] ldr r1, _080F21F4 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 ldr r0, [r0] ldr r1, _080F2210 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080F2214 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 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 ldr r0, [r0] ldr r1, _080F228C 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 ldr r0, [r0] ldr r1, _080F22E0 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 ldr r1, [r0] ldr r2, _080F2340 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 ldr r2, [r0] ldr r1, _080F23A4 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] cmp r4, r1 bge _080F23C0 ldr r3, _080F23A8 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 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 ldr r1, [r0] ldr r3, _080F23F8 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 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 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 adds r0, r3, r1 strh r4, [r0] b _080F24F6 .align 2, 0 _080F2498: .4byte gUnknown_083DFEC4 _080F249C: .4byte 0x00000386 _080F24A0: ldr r4, _080F24C4 ldr r1, [r4] movs r3, 0xE0 lsls r3, 2 adds r2, r1, r3 ldr r5, _080F24C8 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 adds r1, r5 b _080F24F2 .align 2, 0 _080F24C4: .4byte gUnknown_083DFEC4 _080F24C8: .4byte 0x00001788 _080F24CC: .4byte 0x00000386 _080F24D0: ldr r4, _080F2508 ldr r1, [r4] movs r0, 0xE0 lsls r0, 2 adds r2, r1, r0 ldr r3, _080F250C 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 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 str r0, [sp] ldr r1, _080F2550 mov r4, sp ldr r0, [sp, 0x4] ands r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2554 b _080F257A .align 2, 0 _080F254C: .4byte gPokenavMenuOptions1_Pal _080F2550: .4byte 0xffff0000 _080F2554: .4byte gPokenavMenuOptions2_Pal _080F2558: ldr r0, _080F2564 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 str r0, [sp] mov r4, sp movs r0, 0 strh r0, [r4, 0x4] mov r0, sp bl LoadSpritePalette ldr r0, _080F2594 _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 ldr r0, [r0] ldr r1, _080F25F4 adds r4, r0, r1 movs r0, 0 str r0, [r4] ldr r1, _080F25F8 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 bl LoadSpriteSheet ldr r0, _080F2600 bl LoadSpritePalette ldr r0, _080F2604 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 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 ldr r0, [r0] ldr r1, _080F2650 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 ldr r0, [r0] ldr r1, _080F26B4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F26B8 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 ldr r0, [r0] ldr r1, _080F26DC adds r0, r1 ldrh r0, [r0] cmp r0, 0x7 bls _080F26CE b _080F27BC _080F26CE: lsls r0, 2 ldr r1, _080F26E0 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 ldr r1, _080F2714 ldr r1, [r1] ldr r2, _080F2718 b _080F279C .align 2, 0 _080F2710: .4byte gPokenavMainMenu_Gfx _080F2714: .4byte gUnknown_083DFEC4 _080F2718: .4byte 0x00003b98 _080F271C: ldr r0, _080F2728 ldr r1, _080F272C ldr r1, [r1] ldr r2, _080F2730 b _080F279C .align 2, 0 _080F2728: .4byte gPokenavConditionMenuHeader_Gfx _080F272C: .4byte gUnknown_083DFEC4 _080F2730: .4byte 0x00004198 _080F2734: ldr r0, _080F2740 ldr r1, _080F2744 ldr r1, [r1] ldr r2, _080F2748 b _080F279C .align 2, 0 _080F2740: .4byte gPokenavRibbonsHeader_Gfx _080F2744: .4byte gUnknown_083DFEC4 _080F2748: .4byte 0x00004d98 _080F274C: ldr r0, _080F2758 ldr r1, _080F275C ldr r1, [r1] ldr r2, _080F2760 b _080F279C .align 2, 0 _080F2758: .4byte gPokenavHoennMapHeader_Gfx _080F275C: .4byte gUnknown_083DFEC4 _080F2760: .4byte 0x00005398 _080F2764: ldr r0, _080F2770 ldr r1, _080F2774 ldr r1, [r1] ldr r2, _080F2778 b _080F279C .align 2, 0 _080F2770: .4byte gPokenavConditionMenuOptions_Gfx _080F2774: .4byte gUnknown_083DFEC4 _080F2778: .4byte 0x00005f98 _080F277C: ldr r0, _080F2788 ldr r1, _080F278C ldr r1, [r1] ldr r2, _080F2790 b _080F279C .align 2, 0 _080F2788: .4byte gPokenavConditionMenuOptions2_Gfx _080F278C: .4byte gUnknown_083DFEC4 _080F2790: .4byte 0x00006798 _080F2794: ldr r0, _080F27A4 ldr r1, _080F27A8 ldr r1, [r1] ldr r2, _080F27AC _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 bl LoadSpritePalettes b _080F27C0 .align 2, 0 _080F27B8: .4byte gUnknown_083E449C _080F27BC: movs r0, 0 b _080F27D0 _080F27C0: ldr r0, _080F27D4 ldr r1, [r0] ldr r0, _080F27D8 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 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 ldr r0, [r0] ldr r1, _080F284C adds r0, r1 str r0, [sp] ldr r1, _080F2850 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2854 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 ldr r0, [r0] ldr r1, _080F287C adds r0, r1 str r0, [sp] ldr r1, _080F2880 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F2884 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 ldr r0, [r0] ldr r1, _080F28AC adds r0, r1 str r0, [sp] ldr r1, _080F28B0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28B4 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 ldr r0, [r0] ldr r1, _080F28DC adds r0, r1 str r0, [sp] ldr r1, _080F28E0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 3 orrs r0, r1 ldr r1, _080F28E4 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 ldr r0, [r0] ldr r1, _080F290C adds r0, r1 str r0, [sp] ldr r1, _080F2910 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xC0 lsls r1, 4 orrs r0, r1 ldr r1, _080F2914 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 ldr r0, [r0] ldr r1, _080F2924 b _080F297E .align 2, 0 _080F2920: .4byte gUnknown_083DFEC4 _080F2924: .4byte 0x00005f98 _080F2928: ldr r0, _080F2930 ldr r0, [r0] ldr r1, _080F2934 b _080F297E .align 2, 0 _080F2930: .4byte gUnknown_083DFEC4 _080F2934: .4byte 0x00006198 _080F2938: ldr r0, _080F2940 ldr r0, [r0] ldr r1, _080F2944 b _080F297E .align 2, 0 _080F2940: .4byte gUnknown_083DFEC4 _080F2944: .4byte 0x00006398 _080F2948: ldr r0, _080F2950 ldr r0, [r0] ldr r1, _080F2954 b _080F297E .align 2, 0 _080F2950: .4byte gUnknown_083DFEC4 _080F2954: .4byte 0x00006598 _080F2958: ldr r0, _080F2960 ldr r0, [r0] ldr r1, _080F2964 b _080F297E .align 2, 0 _080F2960: .4byte gUnknown_083DFEC4 _080F2964: .4byte 0x00006998 _080F2968: ldr r0, _080F2970 ldr r0, [r0] ldr r1, _080F2974 b _080F297E .align 2, 0 _080F2970: .4byte gUnknown_083DFEC4 _080F2974: .4byte 0x00006798 _080F2978: ldr r0, _080F29A8 ldr r0, [r0] ldr r1, _080F29AC _080F297E: adds r0, r1 str r0, [sp] ldr r1, _080F29B0 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, _080F29B4 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 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 ldr r0, _080F2A48 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 adds r4, r2 mov r9, r4 ldr r2, _080F2A50 mov r8, r2 cmp r7, 0x3 beq _080F2AC8 ldr r4, _080F2A54 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 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 str r4, [sp] movs r1, 0x98 str r1, [sp, 0x4] movs r1, 0x40 ldr r4, _080F2A8C mov r8, r4 ldr r4, _080F2A90 b _080F2AC4 .align 2, 0 _080F2A84: .4byte gUnknown_083DFEC4 _080F2A88: .4byte 0x0000fff8 _080F2A8C: .4byte gSpriteTemplate_83E44E0 _080F2A90: .4byte 0x00003b88 _080F2A94: ldr r0, _080F2B40 mov r8, r0 _080F2A98: mov r1, r8 cmp r1, 0 bne _080F2AA2 ldr r2, _080F2B44 mov r8, r2 _080F2AA2: ldr r3, _080F2B48 ldr r0, _080F2B4C 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 _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 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 ldr r0, [r0] ldr r1, _080F2B58 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 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 b _080F2C06 .align 2, 0 _080F2C00: .4byte sub_80F2C58 _080F2C04: ldr r0, _080F2C10 _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 ldr r0, [r0] ldr r1, _080F2C7C 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 ldr r0, [r0] ldr r1, _080F2CB4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F2CB8 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 ldr r0, [r0] ldr r2, _080F2CDC 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 ldr r0, [r0] ldr r3, _080F2D34 adds r2, r0, r3 ldr r3, _080F2D38 _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 ldr r0, [r0] ldr r3, _080F2D64 adds r2, r0, r3 ldr r3, _080F2D68 _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 ldr r0, [r0] ldr r1, _080F2DA0 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 ldr r0, [r0] ldr r1, _080F2DD4 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 ldr r1, [r1] ldr r2, _080F2E14 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 ldr r4, [r0] ldr r0, _080F2EAC adds r7, r4, r0 ldr r1, [r7] mov r8, r1 cmp r1, 0 bne _080F2EFC ldr r0, _080F2EB0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] mov r1, sp ldr r0, _080F2EB4 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r0, _080F2EB8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x18] str r1, [sp, 0x1C] lsls r0, r3, 13 ldr r1, _080F2EBC 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 adds r5, r4, r2 strh r0, [r5] add r0, sp, 0x20 bl LoadSpriteSheet ldr r1, _080F2EC4 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 adds r0, r1 str r0, [r7] ldr r0, _080F2EF4 adds r1, r4, r0 ldrh r0, [r6] lsls r0, 5 ldr r2, _080F2EF8 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 adds r0, r1 adds r0, r4, r0 ldr r2, _080F2F38 adds r1, r4, r2 ldr r2, [r1] ldr r1, _080F2F3C str r0, [r1] str r2, [r1, 0x4] ldr r0, _080F2F40 str r0, [r1, 0x8] ldr r0, [r1, 0x8] lsls r0, r3, 7 adds r0, r4, r0 ldr r5, _080F2F44 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 ldr r0, [r0] ldr r1, _080F2F78 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 ldr r0, [r0] ldr r1, _080F2FA4 adds r2, r0, r1 ldr r1, _080F2FA8 adds r0, r1 ldr r1, [r0] str r1, [r2] ldr r0, _080F2FAC 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 ldr r5, [r0] ldr r0, _080F2FE4 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 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 ldr r1, [r1] ldr r2, _080F3004 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 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, _080F3064 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 str r0, [sp, 0x18] _080F3032: mov r0, sp bl LoadSpriteSheets add r0, sp, 0x18 bl LoadSpritePalette ldr r0, _080F306C 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 ldr r0, [r0] ldr r1, _080F3074 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 ldr r2, [r0] ldr r3, _080F30F8 adds r2, r3 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC 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 movs r1, 0xA8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080F3108 ldr r0, _080F30F4 ldr r2, [r0] lsls r0, r4, 2 ldr r3, _080F3104 adds r2, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F30FC 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 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F312C 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 ldr r6, [r0] ldr r0, _080F3188 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 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 ldr r1, [r1] ldr r2, _080F31A8 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 ldr r1, [r0] ldr r2, _080F31EC 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 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 adds r0, r1, r2 ldr r5, _080F3254 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 ldr r0, [r0] ldr r3, _080F3290 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 ldr r4, [r0] ldr r1, _080F32F8 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 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _080F331A cmp r6, 0x1 bne _080F3308 ldr r1, _080F3300 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 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 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x1 strh r1, [r0, 0x36] ldr r2, _080F3324 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 ldr r0, [r0] ldr r1, _080F3350 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 ldr r0, [r0] ldr r2, _080F3388 adds r1, r0, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, _080F338C 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 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 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 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 ldr r1, [r2] ldr r3, _080F3450 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 adds r0, r2 adds r0, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r2, _080F3458 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 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 str r0, [r7, 0x14] cmp r6, 0x5 bhi _080F34EE ldr r5, _080F34D0 _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 adds r2, r0 adds r2, r4 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F34D4 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 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 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 ldr r4, [r0] ldr r6, _080F3548 adds r4, r6 adds r4, r5 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 ldr r0, _080F3554 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 ldr r0, [r0] ldr r1, _080F3578 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 ldr r0, [r0] ldr r1, _080F35B0 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 ldr r4, [r0] ldr r1, _080F3600 adds r0, r4, r1 movs r1, 0x1C strh r1, [r0] ldr r1, _080F3604 adds r2, r4, r1 movs r1, 0x13 strh r1, [r2] bl sub_80F727C bl sub_80F7404 ldr r2, _080F3608 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 str r1, [r0, 0x1C] ldr r1, _080F3610 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 ldr r0, [r0] ldr r1, _080F3638 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 ldr r1, [r1] ldr r3, _080F3660 adds r2, r1, r3 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 ldr r3, _080F3664 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 ldr r0, [r0] ldr r2, _080F3690 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r2, _080F3694 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 ldr r3, [r0] ldr r1, _080F36E0 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 2 ldr r4, _080F36E4 adds r1, r4 adds r1, r3, r1 ldr r2, _080F36E8 adds r0, r3, r2 movs r2, 0 ldrsb r2, [r0, r2] subs r4, 0x8 adds r0, r3, r4 adds r0, r2 ldr r2, _080F36EC 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 ldr r0, [r0] ldr r1, _080F371C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F3720 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 ldr r1, [r0] ldr r0, _080F3744 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 ldr r2, _080F3760 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 ldr r1, [r0] ldr r0, _080F3798 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 ldr r0, [r0] ldr r1, _080F37C8 adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F37CC 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 ldr r1, [r0] ldr r2, _080F389C 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 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 8 ldr r3, _080F38A0 adds r0, r3 adds r4, r2, r0 lsls r1, 9 ldr r7, _080F38A4 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 ldr r3, [r2] ldr r7, _080F389C 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 ldr r0, [r0] ldr r1, _080F38E4 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F38E8 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 ldr r2, [r0] ldr r0, _080F390C 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 adds r0, r2, r3 str r1, [r0] ldr r3, _080F392C 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 ldr r1, [r0] ldr r0, _080F396C 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 ldr r0, [r0] ldr r1, _080F399C adds r2, r0, r1 movs r1, 0 strb r1, [r2] ldr r1, _080F39A0 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 ldr r1, [r0] ldr r0, _080F3A1C adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xB bhi _080F3A30 ldrb r0, [r4] lsls r0, 9 ldr r2, _080F3A20 adds r0, r2 adds r0, r1, r0 str r0, [sp] ldr r5, _080F3A24 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 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 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 b _080F3A78 .align 2, 0 _080F3A5C: .4byte gUnknown_083DFEC4 _080F3A60: ldr r2, _080F3AD0 ldr r1, [r2] ldr r3, _080F3AD4 adds r0, r1, r3 ldrb r0, [r0] ldr r6, _080F3AD8 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 adds r0, r7 adds r0, r1 ldrb r2, [r0] mov r1, sp ldr r0, _080F3AE0 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 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 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 ldr r4, [r0] ldr r1, _080F3B38 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _080F3B3C adds r1, r4, r2 ldrb r1, [r1] bl sub_80F3A3C adds r2, r0, 0 ldr r1, _080F3B40 adds r0, r4, r1 str r2, [r0] cmp r2, 0 beq _080F3B48 adds r0, r2, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r2, _080F3B44 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 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 ldr r1, [r0] ldr r0, _080F3B70 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 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 ldr r4, [r0] ldr r1, _080F3BBC adds r0, r4, r1 ldr r2, [r0] cmp r2, 0 beq _080F3BC4 adds r0, r2, 0 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, _080F3BC0 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 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 ldr r1, [r0] ldr r0, _080F3C1C adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 beq _080F3C24 ldr r0, _080F3C20 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 ldr r0, [r0] ldr r1, _080F3C90 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 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, _080F3CE0 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 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 ldr r2, [r0] ldr r1, _080F3D38 adds r0, r2, r1 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 2 ldr r1, _080F3D3C 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 adds r0, r2, r3 movs r1, 0 ldrsb r1, [r0, r1] ldr r3, _080F3D44 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 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 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 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 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 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 ldr r0, [r0] ldr r1, _080F3E68 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 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 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 b _080F3F12 .align 2, 0 _080F3F04: .4byte sub_80F3E04 _080F3F08: ldr r0, _080F3F0C b _080F3F12 .align 2, 0 _080F3F0C: .4byte sub_80F3DDC _080F3F10: ldr r0, _080F3F1C _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 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 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 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 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 ldr r0, [r0] ldr r1, _080F401C adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r1, _080F4020 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 ldr r4, [r0] ldr r1, _080F4044 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 ldr r2, _080F4064 adds r1, r4, r2 bl LZ77UnCompWram b _080F4118 .align 2, 0 _080F4060: .4byte gUnknown_083E329C _080F4064: .4byte 0x000131e4 _080F4068: ldr r1, _080F407C adds r0, r4, r1 str r0, [sp] ldr r0, _080F4080 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet b _080F4118 .align 2, 0 _080F407C: .4byte 0x000131e4 _080F4080: .4byte 0x00181000 _080F4084: ldr r0, _080F40B4 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 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 adds r2, r4, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080F40EC 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 adds r1, r4, r2 movs r0, 0 str r0, [r1] _080F40F8: ldr r0, _080F4110 ldr r1, [r0] ldr r0, _080F4114 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 ldr r1, [r0] ldr r2, _080F4134 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 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 ldr r6, [r0] mov r0, sp ldr r1, _080F42A8 adds r5, r1, 0 strh r5, [r0] ldr r4, _080F42AC str r0, [r4] str r6, [r4, 0x4] ldr r3, _080F42B0 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 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 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 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 _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 ldr r0, [r0] ldr r2, _080F4340 adds r0, r2 str r0, [sp] ldr r2, _080F4344 str r2, [sp, 0x4] bl sub_80F4194 mov r0, sp bl LoadSpriteSheet ldr r0, _080F4348 bl LoadSpritePalette movs r5, 0 movs r4, 0 ldr r6, _080F434C _080F42EE: lsls r1, r4, 21 movs r7, 0xE2 lsls r7, 15 adds r1, r7 asrs r1, 16 ldr r0, _080F4350 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 adds r1, r7, 0 ands r0, r1 ldr r7, _080F4358 adds r1, r7, 0 ands r2, r1 orrs r2, r0 strh r2, [r3, 0x4] ldr r0, _080F433C ldr r0, [r0] lsls r1, r4, 2 ldr r2, _080F435C 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 ldr r1, [r0] lsls r0, r4, 2 ldr r7, _080F4390 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 ldr r0, [r0] ldr r1, _080F43D0 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 ldr r0, [r0] ldr r2, _080F4414 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 cmp r1, r0 beq _080F4408 lsls r0, r1, 5 ldr r1, _080F441C adds r0, r1 ldr r1, _080F4420 str r4, [r1] str r0, [r1, 0x4] ldr r0, _080F4424 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 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 ldr r0, [r0] ldr r1, _080F44AC 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 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 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 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 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 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 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 ldr r5, [r1] lsls r1, r0, 16 asrs r0, r1, 14 adds r4, r5, r0 ldr r2, _080F45F4 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 adds r0, r2 adds r0, r5, r0 lsrs r1, 16 movs r2, 0 bl sub_80F4428 ldr r1, _080F45FC 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 adds r0, r2 adds r0, r5, r0 ldr r1, _080F4604 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 adds r0, r1 adds r0, r5, r0 lsls r1, r2, 3 adds r1, r2 ldr r2, _080F4638 adds r1, r2 movs r2, 0x40 movs r3, 0 bl sub_8072C74 _080F4624: ldr r0, _080F463C ldr r0, [r0] ldr r2, _080F4640 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 adds r0, r1 adds r0, r5, r0 ldr r4, _080F4680 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 adds r0, r2 adds r0, r5, r0 adds r1, r4, 0 movs r2, 0x40 movs r3, 0 bl sub_8072C74 ldr r1, _080F4688 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 ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F4760 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _080F46B2 b _080F47C4 _080F46B2: ldr r3, _080F4764 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 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 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 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 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 adds r1, r7, r2 adds r1, r4 strb r0, [r1] ldr r3, _080F477C 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 ldr r1, [r1] ldr r3, _080F47B8 adds r2, r1, r3 add r2, r9 strb r0, [r2] mov r2, r8 add r2, r9 ldr r7, _080F47BC adds r0, r2, r7 adds r0, r1, r0 lsls r2, 2 ldr r3, _080F47C0 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 adds r6, r4, r1 lsls r5, r2, 2 mov r9, r3 ldr r7, _080F481C 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 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 ldr r7, [r1] lsls r0, 16 asrs r0, 14 adds r1, r7, r0 ldr r2, _080F48E4 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _080F48D0 ldr r6, _080F48E8 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 adds r0, r1 ldr r2, _080F48F0 lsls r1, r5, 2 adds r1, r2 ldrb r1, [r1] ldr r6, _080F48F4 adds r3, r7, r6 mov r6, r9 lsls r2, r6, 13 ldr r6, _080F48F8 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 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 ldr r0, [r0] ldr r1, _080F4940 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 ldr r5, [r1] ldr r3, _080F497C 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 _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 adds r0, r2, r1 ldrh r4, [r0] lsls r6, r3, 2 cmp r4, r3 bls _080F49C6 ldr r0, _080F49F0 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 adds r0, r2, r3 adds r0, r6 mov r3, r12 ldr r1, [r3] str r1, [r0] ldr r0, _080F49EC 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 ldr r4, [r3] ldr r7, _080F4A68 adds r2, r4, r7 ldrh r1, [r2] ldr r0, _080F4A6C mov r12, r0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strh r0, [r2] movs r5, 0x1 ldr r1, _080F4A70 adds r0, r4, r1 ldrh r3, [r0] cmp r5, r3 bcs _080F4A9E adds r6, r4, 0 ldr r1, _080F4A74 mov r8, r1 ldr r3, _080F4A78 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 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 ldr r2, [r3] ldr r1, _080F4AC8 adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r3, _080F4ACC adds r0, r2, r3 strh r1, [r0] subs r3, 0x2 adds r0, r2, r3 strh r1, [r0] ldr r1, _080F4AD0 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 adds r0, r2, r3 strh r1, [r0] ldr r0, _080F4B14 ldr r2, [r0] ldr r1, _080F4B18 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 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 ldr r4, [r0] ldr r0, _080F4B60 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 adds r2, r4, r0 movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _080F4B6C ldr r2, _080F4B68 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 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r0, _080F4BC8 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] ldr r0, _080F4BCC 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 ldr r2, [r0] ldr r3, _080F4CC8 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 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 adds r1, r3, r2 movs r0, 0xE strb r0, [r1] ldr r4, _080F4CD4 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 adds r0, r7, 0 adds r2, r4, 0 ands r2, r0 lsls r2, 5 ldrh r0, [r5] ldr r7, _080F4CDC adds r1, r7, 0 ands r0, r1 orrs r0, r2 strh r0, [r5] ldr r0, _080F4CE0 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 adds r0, r1, r3 movs r5, 0 strb r5, [r0] ldr r0, _080F4CD4 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 ands r0, r3 strh r0, [r2] ldr r2, _080F4CE0 adds r1, r2 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r3, _080F4CE4 adds r0, r4, r3 strh r5, [r0] adds r1, r7, 0x1 ldr r7, _080F4CE8 adds r0, r4, r7 strh r1, [r0] bl sub_80F4B20 ldr r0, _080F4CEC 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 ldr r4, [r0] ldr r1, _080F4D20 adds r0, r4, r1 ldrh r1, [r0] ldr r2, _080F4D24 adds r0, r4, r2 strh r1, [r0] bl sub_80F4B20 ldr r1, _080F4D28 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bne _080F4D30 ldr r0, _080F4D2C 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 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 ldr r4, [r0] ldr r1, _080F4D7C adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F4D80 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F4D84 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 ldr r4, [r6] ldr r1, _080F4E9C 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 adds r6, r4, r2 ldr r3, _080F4EA0 adds r5, r4, r3 ldr r0, _080F4EA4 adds r0, r4 mov r9, r0 ldr r1, _080F4EA8 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 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 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 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 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 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 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 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 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 ldr r1, [r0] ldr r2, _080F4F54 adds r0, r1, r2 ldrh r2, [r0] ldr r3, _080F4F58 adds r0, r1, r3 strh r2, [r0] ldr r0, _080F4F5C 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 ldr r1, [r0] ldr r2, _080F4FA8 adds r0, r1, r2 ldr r3, _080F4FAC adds r2, r1, r3 movs r3, 0 ldrsb r3, [r2, r3] lsls r2, r3, 2 adds r2, r3 lsls r2, 2 ldr r3, _080F4FB0 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 ldr r2, [r0] ldr r1, _080F5024 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080F4FFE ldr r3, _080F5028 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080F502C adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 beq _080F501A _080F4FFE: ldr r1, _080F5030 adds r0, r2, r1 movs r1, 0 ldrsb r1, [r0, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r3, _080F5034 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 ldr r0, [r0] ldr r1, _080F5078 adds r0, r1 b _080F5084 .align 2, 0 _080F5074: .4byte gUnknown_083DFEC4 _080F5078: .4byte 0x00008feb _080F507C: ldr r0, _080F50FC ldr r0, [r0] ldr r2, _080F5100 adds r0, r2 _080F5084: ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r6, r0, 16 ldr r0, _080F50FC ldr r4, [r0] ldr r3, _080F5104 adds r5, r4, r3 movs r1, 0 ldrsb r1, [r5, r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r2, _080F5108 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 adds r3, r4, r0 movs r1, 0 ldrsh r0, [r3, r1] lsls r0, 2 adds r0, r4, r0 ldr r2, _080F5110 adds r0, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 31 mov r12, r0 cmp r7, 0 beq _080F5158 ldr r7, _080F5100 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 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 adds r0, r4, r1 ldrh r0, [r0] subs r2, r0, 0x1 _080F5120: ldr r1, _080F5140 adds r0, r5, r1 strh r2, [r0] ldr r2, _080F5144 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 adds r0, r3, r7 ldrh r0, [r0] subs r1, r0, 0x1 b _080F51CE .align 2, 0 _080F5154: .4byte 0x000087da _080F5158: ldr r7, _080F518C 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 adds r0, r4, r2 strb r1, [r0] adds r2, r4, 0 movs r4, 0 ldrsh r1, [r3, r4] ldr r5, _080F5194 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 adds r0, r2, r1 strh r3, [r0] ldr r2, _080F51C4 ldr r3, [r2] adds r4, r3, r1 movs r0, 0 ldrsh r1, [r4, r0] ldr r5, _080F51C8 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 adds r0, r3, r4 strh r1, [r0] ldr r1, [r2] ldr r5, _080F5200 adds r0, r1, r5 movs r7, 0 ldrsh r0, [r0, r7] lsls r0, 2 adds r0, r1, r0 ldr r3, _080F5204 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 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 adds r1, r7 ldr r0, _080F521C b _080F5226 .align 2, 0 _080F5218: .4byte 0x000087e0 _080F521C: .4byte sub_80F52F8 _080F5220: ldr r0, _080F5238 adds r1, r0 ldr r0, _080F523C _080F5226: str r0, [r1] ldr r0, [r2] ldr r1, _080F5240 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 ldr r0, [r0] ldr r1, _080F5260 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 ldr r0, [r0] ldr r1, _080F5284 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 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 ldr r4, [r0] ldr r1, _080F52E0 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] ldr r2, _080F52E4 adds r1, r4, r2 ldrb r1, [r1] bl sub_80F4900 ldr r0, _080F52E8 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 ldr r4, [r0] ldr r0, _080F5314 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 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 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 ldr r4, [r0] ldr r0, _080F5384 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 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 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 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 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 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 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 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 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 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 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 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 ldr r2, [r0] ldr r0, _080F5520 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 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 ldr r0, [r5] ldr r1, _080F55A4 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 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 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 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 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 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 ldr r0, [r1] ldr r2, [sp, 0x4] adds r1, r2, r5 ldr r3, _080F57E0 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 cmp r4, r0 bgt _080F5816 movs r0, 0x9B strh r0, [r3] _080F5842: ldr r2, _080F5888 ldr r0, [r2] ldr r3, [sp, 0x4] adds r1, r3, r5 ldr r2, _080F588C 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 ldr r0, [r0] ldr r1, _080F58C0 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 ldr r0, [r0] ldr r1, _080F5910 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 ldr r0, [r0] ldr r1, _080F5A0C 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 ldr r6, [r0] ldr r0, _080F5A0C 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 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 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 ldr r3, [r0] ldr r4, _080F5A18 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F59BE ldr r4, _080F5A0C 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 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 adds r5, r4, r0 movs r3, 0 ldr r1, _080F5A14 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 ldr r0, [r0] ldr r2, _080F5A50 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 ldr r0, [r0] ldr r4, _080F5B2C 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 ldr r0, [r0] mov r8, r0 ldr r4, _080F5B2C 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 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 ldr r3, [r0] ldr r4, _080F5B34 adds r1, r3, r4 adds r6, r0, 0 ldrh r0, [r1] cmp r2, r0 bhi _080F5AE0 ldr r4, _080F5B30 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 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 adds r5, r3, r4 movs r4, 0 ldr r0, _080F5B30 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 ldr r0, [r0] ldr r1, _080F5B4C 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 ldr r0, [r0] ldr r1, _080F5B6C 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 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 ldr r1, [r0] ldr r5, _080F5BB0 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 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 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 ldr r5, [r0] ldr r1, _080F5CBC adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5CA6 ldr r0, _080F5CC0 adds r4, r5, r0 adds r0, r4, 0 bl sub_80F58DC adds r0, r4, 0 bl sub_80F5A1C movs r6, 0 ldr r1, _080F5CC4 mov r12, r1 movs r0, 0xF0 lsls r0, 3 add r0, r12 mov r9, r0 adds r7, r5, 0 ldr r1, _080F5CC8 mov r8, r1 ldr r5, _080F5CCC adds r5, r7, r5 str r5, [sp] ldr r0, _080F5CD0 adds r0, r7, r0 str r0, [sp, 0x4] ldr r1, _080F5CD4 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 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 cmp r6, 0x41 bls _080F5C40 ldr r0, [r0] ldr r1, _080F5CBC 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 ldr r6, [r0] ldr r1, _080F5DB4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5DA0 ldr r0, _080F5DB8 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 mov r12, r1 movs r4, 0xF0 lsls r4, 3 add r4, r12 mov r9, r4 ldr r0, _080F5DC0 mov r8, r0 ldr r1, _080F5DC4 adds r1, r6, r1 str r1, [sp] ldr r4, _080F5DC8 adds r4, r6, r4 str r4, [sp, 0x4] ldr r0, _080F5DCC 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 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 cmp r7, 0x41 bls _080F5D36 ldr r0, [r0] ldr r1, _080F5DB4 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 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 ldr r2, [r0] ldr r3, _080F5E3C 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 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5E74 ldr r3, _080F5E70 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 adds r2, r1, r0 ldrh r0, [r2] subs r3, r0, 0x1 strh r3, [r2] ldr r5, _080F5ED4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0 bne _080F5E98 lsls r0, r3, 16 cmp r0, 0 bge _080F5E98 ldr r3, _080F5ED8 adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] _080F5E98: ldr r0, [r4] ldr r5, _080F5EDC adds r2, r0, r5 ldr r3, _080F5ED0 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 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 ldr r4, [r3] ldr r1, _080F5F08 adds r0, r4, r1 ldr r2, _080F5F0C 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 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080F5F40 ldr r2, _080F5F3C 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 adds r4, r2, r6 ldrh r0, [r4] adds r1, r0, 0x1 strh r1, [r4] ldr r3, _080F5FA4 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 adds r2, r0, r3 ldr r5, _080F5FA0 adds r1, r0, r5 ldrh r1, [r1] ldrh r2, [r2] adds r2, r1, r2 ldr r6, _080F5FAC adds r4, r0, r6 strh r2, [r4] ldr r1, _080F5FB0 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 ldr r1, [r0] ldr r2, _080F5FDC adds r0, r1, r2 ldrh r3, [r0] movs r4, 0 ldrsh r2, [r0, r4] cmp r2, 0 beq _080F5FD2 ldr r4, _080F5FE0 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 _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 ldr r3, [r0] ldr r1, _080F6040 adds r0, r3, r1 ldr r2, _080F6044 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 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 ldr r6, [r1] ldr r1, _080F6124 adds r3, r6, r1 ldrh r1, [r3] lsls r0, 16 asrs r7, r0, 16 adds r2, r7, r1 strh r2, [r3] ldr r5, _080F6128 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 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 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 ldr r3, [r0] ldr r1, _080F6198 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080F61E0 ldr r2, _080F619C adds r5, r3, r2 movs r4, 0 ldrsh r1, [r5, r4] ldr r6, _080F61A0 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 adds r2, r3, r1 strh r0, [r2] ldrh r1, [r5] ldr r5, _080F61A8 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 adds r1, r3, r2 strh r0, [r1] ldrh r1, [r4] ldr r6, _080F61D8 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 adds r0, r3, r4 b _080F61F2 .align 2, 0 _080F61D4: .4byte 0x00008770 _080F61D8: .4byte 0x00008772 _080F61DC: .4byte 0x0000876c _080F61E0: ldr r5, _080F61FC adds r2, r3, r5 ldrh r1, [r2] ldr r6, _080F6200 adds r0, r3, r6 strh r1, [r0] ldrh r1, [r2] ldr r2, _080F6204 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 ldr r1, [r0] ldr r2, _080F6240 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _080F6244 adds r0, r1, r3 strb r2, [r0] ldr r0, _080F6248 adds r2, r1, r0 movs r0, 0xFF strb r0, [r2] ldr r2, _080F624C 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 ldr r2, [r0] ldr r0, _080F6274 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 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 adds r4, r7, r0 ldr r1, _080F6314 mov r8, r1 ldr r0, _080F6318 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 adds r0, r1 movs r1, 0x51 bl GetMonData cmp r0, 0 beq _080F6324 ldr r0, _080F6360 ldr r0, [r0] ldr r1, _080F6364 adds r0, r1 movs r1, 0x1 strb r1, [r0] _080F634C: ldr r0, _080F6360 ldr r1, [r0] ldr r0, _080F6368 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 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 ldr r4, [r0] ldr r1, _080F63C4 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _080F63C8 adds r0, r4, r2 strb r1, [r0] bl sub_80F492C ldr r0, _080F63CC 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 ldr r2, [r0] ldr r1, _080F6480 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 adds r5, r2, r0 ldr r1, _080F6484 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 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 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 ands r0, r1 orrs r0, r2 ldr r1, _080F6494 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 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 ldr r1, [r0] ldr r0, _080F6504 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 ldr r0, [r0] lsls r1, 2 adds r0, r1 ldr r2, _080F65A8 adds r1, r0, r2 ldrb r6, [r1] mov r8, r6 ldr r1, _080F65AC 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 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 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 ldr r0, [r0] ldr r2, [sp] lsls r1, r2, 2 adds r0, r1 ldr r1, _080F66BC 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 mov r8, r0 ldr r4, [r0] ldr r1, _080F6770 adds r0, r4, r1 ldr r2, _080F6774 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 adds r0, r4, r6 movs r6, 0 strh r1, [r0] ldr r1, _080F677C 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 adds r0, r1, r5 ldrb r0, [r0] ldr r2, _080F6784 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 adds r4, r3 strb r6, [r4] movs r5, 0 mov r12, r5 mov r10, r8 _080F674E: ldr r1, _080F678C 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 adds r3, r0, r5 ldr r6, _080F682C 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 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 ldr r2, [r6] ldr r1, _080F6828 adds r0, r2, r1 ldr r3, _080F6830 adds r1, r2, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080F6840 ldr r5, _080F6838 adds r0, r2, r5 movs r1, 0 strb r1, [r0] ldr r6, _080F683C 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 adds r1, r2, r0 movs r0, 0 strb r0, [r1] ldr r3, _080F688C adds r1, r2, r3 movs r0, 0x3 strb r0, [r1] _080F6850: ldr r5, _080F6890 ldr r1, [r5] ldr r6, _080F6894 adds r0, r1, r6 ldr r2, _080F6898 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 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 ldr r0, [r5] ldr r6, _080F68E0 adds r1, r0, r6 add r1, r12 ldr r2, _080F68E4 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 ldr r0, [r3] ldr r2, _080F691C adds r1, r0, r2 ldrb r5, [r1] ldr r6, _080F6920 adds r0, r6 ldrb r4, [r0] movs r0, 0x1 mov r12, r0 ldr r2, _080F6924 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 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 ldr r2, _080F69B8 _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 adds r1, r2, r3 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _080F69EC ldr r1, _080F69B0 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 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 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 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 adds r2, r3, r1 ldrb r6, [r2] cmp r0, r6 bne _080F6A20 lsls r0, r4, 24 asrs r0, 24 ldr r6, _080F6A34 adds r1, r3, r6 ldrb r1, [r1] cmp r0, r1 beq _080F6A40 _080F6A20: strb r5, [r2] ldr r1, _080F6A34 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 ldr r3, [r0] ldr r0, _080F6AC8 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 adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F6A74: ldr r1, _080F6ACC 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 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F6AD4 adds r0, r3, r2 strh r1, [r0] ldr r1, _080F6AD8 ldr r5, _080F6ADC adds r0, r5, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6AE0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r5, _080F6AE4 adds r0, r5, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6AE8 adds r0, r2, 0 strh r0, [r1] ldr r5, _080F6AEC 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 ldr r0, [r1] ldr r2, _080F6B14 adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F6B04 b _080F6C08 _080F6B04: lsls r0, 2 ldr r1, _080F6B18 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 ldr r1, [r0] ldr r3, _080F6B50 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 ldr r1, [r0] ldr r2, _080F6B80 adds r1, r2 b _080F6BCE .align 2, 0 _080F6B7C: .4byte gUnknown_083DFEC4 _080F6B80: .4byte 0x000087de _080F6B84: bl sub_80F13FC ldr r0, _080F6B94 ldr r1, [r0] ldr r3, _080F6B98 adds r1, r3 b _080F6BCE .align 2, 0 _080F6B94: .4byte gUnknown_083DFEC4 _080F6B98: .4byte 0x000087de _080F6B9C: ldr r4, [r4] ldr r1, _080F6BB8 adds r0, r4, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0 bl sub_80F4824 ldr r3, _080F6BBC 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 ldr r1, [r0] ldr r0, _080F6BDC 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 ands r0, r1 strh r0, [r2] ldr r0, _080F6C10 ldr r1, [r0] ldr r2, _080F6C14 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 ldr r0, [r0] ldr r1, _080F6D48 adds r0, r1 movs r1, 0 strh r1, [r0] mov r8, r1 ldr r2, _080F6D4C mov r9, r2 _080F6C3A: ldr r1, _080F6D50 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 ldr r4, [r0] ldr r0, _080F6D48 adds r5, r4, r0 ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r1, _080F6D54 adds r0, r1 strh r7, [r0] ldrh r0, [r5] lsls r0, 3 adds r0, r4, r0 ldr r2, _080F6D58 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 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 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 ldr r2, [r0] ldr r0, _080F6D48 adds r3, r2, r0 ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D54 adds r0, r1 strh r4, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r5, 0x2] ldr r4, _080F6D5C adds r0, r4 strh r1, [r0] ldrh r0, [r3] lsls r0, 3 adds r0, r2, r0 ldr r1, _080F6D64 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 ldr r2, [r3] ldr r1, _080F6D68 adds r0, r2, r1 movs r1, 0 strh r1, [r0] ldr r4, _080F6D6C adds r0, r2, r4 strh r1, [r0] subs r4, 0x2 adds r0, r2, r4 strh r1, [r0] ldr r1, _080F6D48 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 adds r0, r2, r1 strh r4, [r0] ldr r3, [r3] ldr r2, _080F6DAC adds r0, r3, r2 ldrh r0, [r0] subs r0, 0x1 ldr r4, _080F6DB0 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 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 ldr r4, [r0] ldr r2, _080F6DF0 adds r0, r4, r2 strb r1, [r0] movs r0, 0 bl sub_80F6E04 ldr r0, _080F6DF4 adds r1, r4, r0 ldr r0, _080F6DF8 strh r0, [r1] movs r0, 0 bl sub_80F2F7C ldr r1, _080F6DFC adds r0, r4, r1 ldrh r0, [r0] ldr r2, _080F6E00 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 ldr r5, [r0] ldr r1, _080F6E7C adds r0, r5, r1 movs r2, 0 ldrsh r0, [r0, r2] lsls r0, 3 adds r0, r5, r0 ldr r7, _080F6E80 adds r0, r7 ldrh r1, [r0] ldr r2, _080F6E84 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 add r0, r8 ldr r2, _080F6E8C lsls r1, r6, 2 adds r1, r2 ldrb r1, [r1] ldr r2, _080F6E90 adds r3, r5, r2 lsls r2, r4, 13 ldr r7, _080F6E94 adds r2, r7 adds r2, r5, r2 str r2, [sp] str r6, [sp, 0x4] movs r2, 0x1 bl DecompressPicFromTable_2 ldr r0, _080F6E98 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 ldr r0, [r0] ldr r2, _080F6EB8 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 ldr r0, [r0] ldr r2, _080F6F04 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 ldr r0, [r0] ldr r2, _080F6F4C adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r1, _080F6F50 adds r0, r1 strb r2, [r0] ldr r1, _080F6F54 movs r0, 0xC8 strh r0, [r1] ldr r0, _080F6F58 strh r2, [r0] subs r1, 0x8 ldr r2, _080F6F5C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F6F60 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 ldr r1, [r0] ldr r0, _080F6FA0 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 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 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 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 ldr r2, _080F6FD4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FD8 b _080F6FE8 .align 2, 0 _080F6FD0: .4byte REG_WIN0H _080F6FD4: .4byte 0x0000e8f0 _080F6FD8: .4byte 0x00000888 _080F6FDC: ldr r1, _080F6FF0 ldr r2, _080F6FF4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x4 ldr r2, _080F6FF8 _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 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 ldr r4, [r2] lsls r2, r1, 3 adds r2, r4, r2 ldr r3, _080F707C adds r2, r3 ldrh r3, [r2] lsls r2, r3, 2 adds r2, r3 lsls r2, 3 ldr r3, _080F7080 adds r5, r2, r3 adds r3, r0, 0 ldr r0, _080F7084 adds r4, r0 ldrh r4, [r4] cmp r1, r4 bcs _080F7060 ldrb r1, [r5, 0x1] movs r0, 0xD muls r1, r0 ldr r0, _080F7088 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 ldr r3, [r0] ldr r0, _080F70E8 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 adds r0, r3, r5 ldrh r0, [r0] strh r0, [r2] _080F70B4: ldr r1, _080F70EC 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 adds r0, r3, r1 strb r4, [r0] ldrh r1, [r2] ldr r2, _080F70F4 adds r0, r3, r2 strh r1, [r0] ldr r5, _080F70F8 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 ldr r0, [r1] ldr r2, _080F7120 adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x6 bls _080F7110 b _080F7218 _080F7110: lsls r0, 2 ldr r1, _080F7124 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 ldr r1, [r0] ldr r2, _080F7160 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 adds r5, r4, r2 ldr r0, _080F7198 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 adds r4, r2 b _080F71CC .align 2, 0 _080F7194: .4byte 0x00008788 _080F7198: .4byte 0x0000876e _080F719C: .4byte 0x000087de _080F71A0: bl sub_80F0CD8 ldr r0, _080F71D4 ldr r1, [r0] ldr r0, _080F71D8 adds r2, r1, r0 movs r0, 0 strb r0, [r2] ldr r2, _080F71DC adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080F71BA: ldr r0, _080F71D4 ldr r1, [r0] ldr r0, _080F71D8 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 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 ldr r1, [r0] ldr r0, _080F7210 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 adds r0, r1 movs r1, 0x30 bl GetMonData lsls r0, 24 lsrs r2, r0, 24 ldr r0, _080F7264 ldr r0, [r0] ldr r3, _080F7268 adds r1, r0, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 ldr r3, _080F726C 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 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 ldrb r0, [r0, 0x14] lsrs r0, 3 bl GetTextWindowFrameGraphics ldr r3, _080F72C8 ldr r2, [r3] ldr r1, [r0] str r1, [r2, 0x28] ldr r0, [r0, 0x4] str r0, [r2, 0x2C] ldr r0, _080F72CC adds r2, r0 movs r1, 0 strb r1, [r2] mov r0, sp strh r1, [r0] ldr r1, [r3] adds r1, 0x30 ldr r2, _080F72D0 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 ldr r1, [r0] ldr r2, _080F72F8 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 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 adds r1, r0 b _080F7392 .align 2, 0 _080F7344: .4byte gUnknown_020388B8 _080F7348: .4byte 0x000010b0 _080F734C: ldr r0, _080F739C 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 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 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 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 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 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 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 _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 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 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 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 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 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 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 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 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 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 str r0, [r4, 0x4] ldr r0, _080F7830 str r0, [r4, 0x8] mov r3, r9 str r3, [r4, 0xC] ldr r0, _080F7834 str r0, [r4, 0x10] ldr r0, _080F7838 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 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 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 str r0, [r4, 0x8] ldr r0, _080F7844 str r0, [r4, 0x14] ldr r0, _080F7848 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 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 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 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 ldr r0, [r0] lsls r1, r5, 2 adds r0, 0xC b _080F7868 .align 2, 0 _080F785C: .4byte gUnknown_020388B8 _080F7860: ldr r0, _080F7870 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 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 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 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 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 _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 _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 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 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 str r0, [sp, 0x4] ldr r0, _080F79E8 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080F79EC str r0, [sp, 0x10] ldr r0, _080F79F0 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 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 adds r0, r2 ldr r2, _080F7A2C str r0, [r2] str r1, [r2, 0x4] ldr r0, _080F7A30 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 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 _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 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 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 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 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 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 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 ldr r1, _080F7B3C 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 adds r0, r5, 0 adds r0, 0x1A ldr r4, _080F7B9C 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 ldr r0, _080F7C4C ldrh r0, [r0] adds r5, r1, 0 adds r5, 0xE cmp r0, 0 bne _080F7BB2 adds r5, r1, 0x2 _080F7BB2: ldr r2, _080F7C50 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 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 ldr r1, _080F7C80 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 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 cmp r1, r0 bne _080F7CB0 ldr r1, _080F7CAC movs r0, 0 b _080F7CBA .align 2, 0 _080F7CA8: .4byte 0x0000ffff _080F7CAC: .4byte gScriptResult _080F7CB0: ldr r0, _080F7CC0 bl sub_80EB3FC ldr r1, _080F7CC4 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 ldrb r0, [r2, 0x1] cmp r0, 0xA bne _080F7CE4 ldr r1, _080F7CE0 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 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 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 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 ldrb r1, [r5, 0x1] lsls r1, 1 adds r1, r6 ldrh r1, [r1] bl sub_80EB3FC adds r2, r0, 0 ldr r1, _080F7D5C bl StringCopy adds r2, r0, 0 ldr r0, _080F7D60 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _080F7D64 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 ldr r3, _080F7DA4 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 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 mov r0, sp movs r2, 0x18 bl memcpy movs r5, 0 movs r0, 0x2 add r0, sp mov r8, r0 ldr r1, _080F7E88 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 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 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 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 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 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 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 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F7FAC 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 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 ldr r0, _080F8038 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 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 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 ldr r5, _080F8120 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 ldr r5, _080F816C 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 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 adds r5, r0, r1 ldr r1, _080F81B8 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 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 ldr r0, [r4] ldr r1, _080F8210 bl InitWindowFromConfig ldr r0, [r4] ldr r1, _080F8214 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 movs r2, 0xE ldrsh r1, [r5, r2] ldr r0, _080F8244 adds r1, r0 movs r3, 0 ldrb r0, [r1] ldr r7, _080F8248 ldrh r2, [r5, 0x12] ldr r6, _080F824C 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 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 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 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 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 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 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 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 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 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 _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 _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 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 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 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 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 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 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 adds r0, 0x4 adds r0, r5, r0 strb r6, [r0] ldr r1, _080F85F0 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 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 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 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 mov r9, r0 ldr r3, _080F86DC _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 _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 adds r0, 0x4 adds r0, r5, r0 ldrb r6, [r0] ldr r4, _080F874C 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 adds r0, r6, 0 bl sub_80F8490 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, _080F8754 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 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 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 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 movs r0, 0 strh r0, [r1] b _080F8848 .align 2, 0 _080F883C: .4byte gScriptResult _080F8840: ldr r0, _080F886C strh r5, [r0] ldr r0, _080F8870 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 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 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 ldr r5, _080F88CC 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 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 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 str r0, [r1] movs r0, 0x84 lsls r0, 1 adds r1, r2, r0 ldr r0, _080F8960 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 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 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 _080F89AC: adds r0, r1 str r0, [r2] ldrh r0, [r4, 0x1E] mov r1, sp bl sub_80A2D64 lsls r0, 16 ldr r1, _080F89E0 adds r0, r1 movs r1, 0xCD lsls r1, 17 cmp r0, r1 bhi _080F89F8 ldr r0, _080F89E4 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 _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 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 ldr r1, _080F8A48 adds r0, r1 ldrb r0, [r0] cmp r0, 0x12 bls _080F8A3A b _080F8D3C _080F8A3A: lsls r0, 2 ldr r1, _080F8A4C 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 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 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 bl SetUpWindowConfig b _080F8D30 .align 2, 0 _080F8B18: .4byte gWindowConfig_81E6DFC _080F8B1C: ldr r0, _080F8B24 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 ldr r2, _080F8B50 bl CpuSet b _080F8D30 .align 2, 0 _080F8B4C: .4byte 0x06004800 _080F8B50: .4byte 0x01000400 _080F8B54: ldr r2, _080F8B70 ldr r0, _080F8B74 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 ldr r0, _080F8B98 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 bl LZ77UnCompVram b _080F8D30 .align 2, 0 _080F8B94: .4byte gMailGraphicsTable _080F8B98: .4byte 0x02000000 _080F8B9C: .4byte 0x06004000 _080F8BA0: ldr r5, _080F8C00 ldr r4, _080F8C04 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 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 ldr r2, _080F8C10 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 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 adds r0, 0xF8 ldrb r0, [r0] cmp r0, 0 beq _080F8C3A bl sub_80F8E80 _080F8C3A: ldr r0, _080F8C50 bl SetVBlankCallback ldr r2, _080F8C54 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 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 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 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 ldr r2, _080F8D18 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D1C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _080F8D20 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 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, _080F8D28 adds r0, 0xF0 ldr r1, _080F8D2C 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 ldr r0, _080F8D4C 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 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 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 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 bl StringCopy ldr r0, _080F8E40 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 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 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 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 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 adds r0, 0xF0 ldr r1, _080F8F74 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 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 adds r0, 0xF0 ldr r1, _080F8FB0 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 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 adds r0, r1 bl sub_809D510 _080F9002: ldr r0, _080F9018 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 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 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 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 str r5, [r0] ldr r1, _080F90EC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080F90F0 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 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 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 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r3] str r2, [r3, 0x4] ldr r2, _080F9170 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080F9174 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 mov r0, sp movs r2, 0x4 bl memcpy cmp r4, 0xFF beq _080F91CC mov r0, sp strb r4, [r0, 0x2] ldr r4, _080F91C4 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 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 adds r1, r5, 0 bl StringCopy _080F91D4: ldr r0, _080F91E8 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 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 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 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92B6 ldr r0, _080F92A4 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 ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080F92EE ldr r0, _080F92DC 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 ldrh r1, [r0, 0x4] ldr r0, _080F9310 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 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 movs r5, 0x80 lsls r5, 5 ldr r7, _080F9434 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 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 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 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 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 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 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 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 b _080F977A .align 2, 0 _080F9574: .4byte gUnknown_020388C0 _080F9578: ldr r0, _080F95D8 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0xFF beq _080F9584 b _080F977A _080F9584: ldr r0, _080F95DC lsls r1, r3, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0 bl CreateSprite strb r0, [r5] ldr r3, _080F95E0 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F95E4 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 ldrb r1, [r0, 0x1] adds r5, r0, 0 cmp r1, 0xFF beq _080F9602 b _080F977A _080F9602: ldr r0, _080F9664 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 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 ldrb r1, [r0, 0x2] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F96E8 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 ldrb r1, [r5, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080F96F0 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 ldrb r1, [r0, 0x3] adds r5, r0, 0 cmp r1, 0xFF bne _080F977A ldr r0, _080F9764 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 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 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 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F97D4 ldr r2, _080F97DC 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 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 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 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 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F98CA cmp r1, 0x3 bhi _080F98CA ldr r2, _080F98D4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F98D8 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 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0xFF beq _080F9902 cmp r1, 0x3 bhi _080F9902 ldr r2, _080F990C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080F9910 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 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _080F995C cmp r1, 0x3 bhi _080F995C ldr r3, _080F9968 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 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _080F99BE cmp r2, 0x3 bhi _080F99BE ldr r2, _080F99C8 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 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A08 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 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A48 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 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080F9A88 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r1, 0 bl sub_806AFAC 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 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 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 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9B40 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 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 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 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 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 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 adds r0, r1 bl sub_80AE47C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080F9C52 lsls r0, 2 ldr r1, _080F9C28 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 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 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 strb r0, [r1] ldr r2, _080F9CBC 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 movs r0, 0xFF strb r0, [r1] ldr r1, _080F9CE4 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 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 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 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _080F9D5C 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 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 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 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 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 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 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 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 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 adds r0, r6, 0 bl sub_806CA38 lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r5, _080F9EC8 ldrh r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _080F9ECC 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 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 ldr r1, _080F9F24 ldrb r1, [r1] ldr r2, _080F9F28 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _080F9F2C movs r4, 0 str r4, [sp] bl sub_809D9F0 ldr r1, _080F9F30 movs r0, 0x3 strb r0, [r1, 0x8] ldr r1, _080F9F34 ldr r0, _080F9F38 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 movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 _080F9F48: ldr r0, _080F9F7C ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080F9F80 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 ldrh r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, _080F9FC8 adds r5, r0 ldr r0, _080F9FCC 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 adds r0, r5, 0 bl GetMonNickname ldr r0, _080F9FD4 movs r1, 0xD muls r1, r4 ldr r2, _080F9FD8 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 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 mov r8, r0 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _080FA140 adds r0, r5 ldr r4, _080FA144 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA140 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 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080FA174 adds r0, r1 ldr r4, _080FA178 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 ldr r0, _080FA1B8 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 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 adds r1, r5, r2 strh r0, [r1] bl Random adds r3, r4, r7 mov r2, r8 ands r2, r0 ldr r5, _080FA218 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 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 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 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 adds r0, r5, 0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 adds r0, r5, 0 bl FlagSet ldr r0, _080FA3B8 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FA3C8 ldr r1, _080FA3BC ldrh r2, [r4] ldr r3, _080FA3C0 adds r0, r1, r3 strh r2, [r0] ldrh r0, [r4, 0x2] ldr r2, _080FA3C4 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 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 adds r0, r5 mov r12, r0 cmp r3, r6 bls _080FA428 mov r5, r12 ldr r4, _080FA44C _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 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 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 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 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 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x2 bl sub_80FA46C adds r5, r4, 0 ldr r3, _080FA5B8 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 ldrh r1, [r0] lsls r1, 3 ldr r0, _080FA5DC adds r1, r0 ldr r0, _080FA5E0 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 ldr r1, _080FA634 adds r0, r3, r1 ldrb r1, [r0] lsls r1, 25 lsrs r1, 25 ldr r2, _080FA638 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 25 lsrs r0, 25 subs r1, r0 cmp r1, 0x1 bgt _080FA626 ldr r1, _080FA63C 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 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 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 ldr r0, _080FA668 ldr r3, _080FA66C 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 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 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 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 _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 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 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 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 b _080FA932 .align 2, 0 _080FA928: .4byte gUnknown_020388CC _080FA92C: .4byte sub_80FAB78 _080FA930: ldr r0, _080FA93C _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 ldr r0, [r0] adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x7 bls _080FA952 b _080FAAE2 _080FA952: lsls r0, 2 ldr r1, _080FA960 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 ldr r1, _080FA994 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA990: .4byte gUnknown_083E5DA0 _080FA994: .4byte 0x06008000 _080FA998: ldr r0, _080FA9A4 ldr r1, _080FA9A8 bl LZ77UnCompVram b _080FAAF4 .align 2, 0 _080FA9A4: .4byte gUnknown_083E6B04 _080FA9A8: .4byte 0x0600e000 _080FA9AC: ldr r0, _080FA9B8 movs r1, 0x70 movs r2, 0x60 bl LoadPalette b _080FAAF4 .align 2, 0 _080FA9B8: .4byte gUnknown_083E5D60 _080FA9BC: ldr r0, _080FA9D0 ldr r1, _080FA9D4 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 ldr r1, _080FA9F0 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 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 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 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 ldr r3, _080FAAF0 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 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 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 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 ldr r0, [r2] adds r0, 0x7B strb r4, [r0] ldr r0, [r2] adds r0, 0x7C strb r4, [r0] ldr r3, _080FAC18 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 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 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 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 ldr r0, [r3] mov r12, r0 adds r0, 0x6A strh r4, [r0] mov r5, r12 adds r5, 0x68 strh r4, [r5] ldr r2, _080FADD8 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 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 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 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 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 ldr r2, [r0] adds r1, r2, 0 adds r1, 0x6C movs r0, 0 strh r0, [r1] ldr r0, _080FAEB8 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 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 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 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 cmp r0, 0 bne _080FB030 ldr r2, _080FB04C _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 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 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 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 ldr r6, [r4] ldr r7, _080FB234 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 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 ldr r2, [r0] adds r3, r2, 0 adds r3, 0x7D ldrb r0, [r3] cmp r0, 0 beq _080FB298 ldr r1, _080FB2A0 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 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 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 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 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 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 ldr r0, [r4] ldr r3, _080FB3D8 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 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 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 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 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 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 ldr r0, [r5] ldr r1, _080FB490 ldrb r1, [r1, 0x14] strh r1, [r0, 0x14] cmp r1, 0x57 beq _080FB498 ldr r4, _080FB494 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 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 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 ldr r0, [r4] ldrh r5, [r0, 0x14] lsls r0, r5, 3 ldr r1, _080FB550 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 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 ldr r2, [r0] ldrh r0, [r2, 0x14] lsls r0, 3 ldr r1, _080FB5FC 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 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 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 ldr r1, [r2] movs r0, 0x8 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB660: .4byte gUnknown_020388CC _080FB664: ldr r2, _080FB670 ldr r1, [r2] movs r0, 0xC strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB670: .4byte gUnknown_020388CC _080FB674: ldr r2, _080FB680 ldr r1, [r2] movs r0, 0x27 strh r0, [r1, 0x14] b _080FB710 .align 2, 0 _080FB680: .4byte gUnknown_020388CC _080FB684: ldr r2, _080FB690 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 mov r9, r1 ldr r2, [r1] ldrb r1, [r0, 0x14] strh r1, [r2, 0x14] ldr r6, [r0] ldr r1, _080FB754 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 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 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 b _080FB956 .align 2, 0 _080FB8E0: .4byte 0x0000080f _080FB8E4: movs r0, 0x81 lsls r0, 4 b _080FB956 _080FB8EA: ldr r0, _080FB8F0 b _080FB956 .align 2, 0 _080FB8F0: .4byte 0x00000811 _080FB8F4: ldr r0, _080FB8F8 b _080FB956 .align 2, 0 _080FB8F8: .4byte 0x00000812 _080FB8FC: ldr r0, _080FB900 b _080FB956 .align 2, 0 _080FB900: .4byte 0x00000813 _080FB904: ldr r0, _080FB908 b _080FB956 .align 2, 0 _080FB908: .4byte 0x00000814 _080FB90C: ldr r0, _080FB910 b _080FB956 .align 2, 0 _080FB910: .4byte 0x00000815 _080FB914: ldr r0, _080FB918 b _080FB956 .align 2, 0 _080FB918: .4byte 0x00000816 _080FB91C: ldr r0, _080FB920 b _080FB956 .align 2, 0 _080FB920: .4byte 0x00000817 _080FB924: ldr r0, _080FB928 b _080FB956 .align 2, 0 _080FB928: .4byte 0x00000818 _080FB92C: ldr r0, _080FB930 b _080FB956 .align 2, 0 _080FB930: .4byte 0x00000819 _080FB934: ldr r0, _080FB938 b _080FB956 .align 2, 0 _080FB938: .4byte 0x0000081a _080FB93C: ldr r0, _080FB940 b _080FB956 .align 2, 0 _080FB940: .4byte 0x0000081b _080FB944: ldr r0, _080FB948 b _080FB956 .align 2, 0 _080FB948: .4byte 0x0000081c _080FB94C: ldr r0, _080FB950 b _080FB956 .align 2, 0 _080FB950: .4byte 0x0000081d _080FB954: ldr r0, _080FB968 _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 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 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 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 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 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 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 adds r0, r1 lsrs r5, r0, 16 ldr r0, _080FBAB8 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 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 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 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [sp, 0x20] str r2, [sp, 0x24] mov r2, sp ldr r1, _080FBBB0 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 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x58 strh r3, [r0] ldr r5, _080FBBB8 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 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 _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 ldr r2, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080FBC40 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 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 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 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 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 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 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 str r0, [sp, 0x20] ldr r2, _080FBDA0 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 str r0, [sp, 0x4] ldr r0, _080FBDA8 str r0, [sp, 0x8] str r2, [sp, 0xC] ldr r0, _080FBDAC str r0, [sp, 0x10] ldr r0, _080FBDB0 str r0, [sp, 0x14] ldr r0, _080FBDB4 ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _080FBD42 ldr r0, _080FBDB8 str r0, [sp, 0x18] ldr r0, _080FBDBC 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 ldr r2, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080FBDC4 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 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 _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 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 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 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 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 _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 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 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 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 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 bl StringCopy b _080FC026 .align 2, 0 _080FC010: .4byte gOtherText_Ferry _080FC014: ldr r1, _080FC01C 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 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 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 ldr r1, _080FC094 adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bls _080FC084 b _080FC1F2 _080FC084: lsls r0, 2 ldr r1, _080FC098 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 bl SetUpWindowConfig b _080FC1E6 .align 2, 0 _080FC10C: .4byte gWindowConfig_81E7224 _080FC110: ldr r0, _080FC11C bl InitMenuWindow bl MenuZeroFillScreen b _080FC1E6 .align 2, 0 _080FC11C: .4byte gWindowConfig_81E7224 _080FC120: ldr r4, _080FC158 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 ldr r1, _080FC16C bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC168: .4byte gUnknown_083E773C _080FC16C: .4byte 0x0600c000 _080FC170: ldr r0, _080FC17C ldr r1, _080FC180 bl LZ77UnCompVram b _080FC1E6 .align 2, 0 _080FC17C: .4byte gUnknown_083E7774 _080FC180: .4byte 0x0600f000 _080FC184: ldr r0, _080FC19C movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, _080FC1A0 movs r1, 0x1 movs r2, 0x90 movs r3, 0x1 bl sub_80729D8 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 bl SetVBlankCallback b _080FC1E6 .align 2, 0 _080FC1C0: .4byte sub_80FC214 _080FC1C4: ldr r1, _080FC1F8 movs r0, 0 strh r0, [r1] subs r1, 0x46 ldr r2, _080FC1FC adds r0, r2, 0 strh r0, [r1] subs r1, 0xA ldr r2, _080FC200 adds r0, r2, 0 strh r0, [r1] ldr r0, _080FC204 bl sub_80FC244 ldr r0, _080FC208 bl SetMainCallback2 _080FC1E6: ldr r1, _080FC20C ldr r0, _080FC210 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 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 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 ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC262 cmp r0, 0x4 bne _080FC2EC _080FC262: movs r1, 0 ldr r2, _080FC2B0 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 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 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 ldr r4, _080FC364 adds r1, r4, 0 bl LZ77UnCompWram str r4, [sp] ldr r1, _080FC368 ldr r0, [sp, 0x4] ands r0, r1 movs r1, 0xE0 lsls r1, 1 orrs r0, r1 ldr r1, _080FC36C ands r0, r1 movs r1, 0x80 lsls r1, 10 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, _080FC370 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 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 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _080FC458 ldr r1, _080FC434 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 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 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 ldrh r0, [r6, 0x2] cmp r0, 0x58 beq _080FC53C mov r5, sp adds r5, 0x6 add r7, sp, 0x4 ldr r1, _080FC550 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 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 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 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 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 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 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 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 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 ldrb r0, [r4, 0x1E] cmp r0, 0x2 beq _080FC652 cmp r0, 0x4 bne _080FC68A _080FC652: movs r0, 0x5 bl m4aSongNumStart ldr r1, _080FC66C adds r0, r4, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _080FC670 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 ldr r1, _080FC694 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, _080FC698 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 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 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 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 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 ldr r0, _080FC768 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 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 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FC7EC ldrb r1, [r0, 0x1F] strb r1, [r2] ldr r2, _080FC7F0 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FC7F4 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FC7F8 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FC7FC ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FC800 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FC804 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 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 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 mov r8, r0 ldrb r0, [r0] cmp r2, r0 bcs _080FC9BE ldr r1, _080FC9D0 mov r12, r1 ldr r3, _080FC9D4 mov r10, r3 ldr r0, _080FC9D8 mov r9, r0 _080FC952: ldr r1, _080FC9DC ldrb r0, [r1] adds r0, r2 mov r3, r10 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FC9E0 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 ldrb r0, [r0] cmp r2, r0 bcs _080FCA7C ldr r1, _080FCA90 mov r10, r1 _080FCA02: ldr r3, _080FCA94 ldrb r0, [r3] adds r0, r2 ldr r3, _080FCA98 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080FCA9C ldr r1, [r3] adds r1, r0 ldr r3, _080FCAA0 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 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 _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 ldrb r0, [r0] cmp r2, r0 bcs _080FCB36 ldr r0, _080FCB48 mov r8, r0 ldr r3, _080FCB4C _080FCADC: ldr r0, _080FCB50 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCB54 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCB58 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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FCBF2 ldr r0, _080FCC04 mov r8, r0 ldr r3, _080FCC08 _080FCB74: ldr r0, _080FCC0C ldrb r1, [r0] ldrb r0, [r3] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCC10 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 ldrb r0, [r0] subs r0, 0x1 adds r7, r2, 0x1 cmp r5, r0 bge _080FCBE6 ldr r6, _080FCC08 _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 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FCBAA _080FCBE6: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FCC00 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 ldrb r0, [r0] cmp r2, r0 bcs _080FCC94 ldr r0, _080FCCA8 mov r9, r0 ldr r3, _080FCCAC _080FCC38: ldr r0, _080FCCB0 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCCB4 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r9 ldr r1, [r4] adds r1, r0 ldr r0, _080FCCB8 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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FCD2E ldr r0, _080FCD40 mov r8, r0 ldr r3, _080FCD44 _080FCCD4: ldr r0, _080FCD48 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCD4C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCD50 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 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 ldrb r0, [r0] cmp r7, r0 bcs _080FCDE0 ldr r0, _080FCE90 mov r8, r0 _080FCD6A: ldr r0, _080FCE94 ldrb r1, [r0] adds r1, r7 ldr r0, _080FCE98 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r2, r8 ldr r1, [r2] adds r1, r0 ldr r0, _080FCE9C 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 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 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 ldrb r0, [r0] cmp r7, r0 bcc _080FCD6A _080FCDE0: movs r6, 0 ldr r0, _080FCEA0 ldrb r0, [r0] cmp r6, r0 bcs _080FCE80 ldr r3, _080FCE90 mov r9, r3 ldr r0, _080FCE98 mov r8, r0 _080FCDF2: ldr r0, _080FCE94 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 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 ldrb r0, [r0] subs r0, 0x1 adds r6, 0x1 cmp r7, r0 bge _080FCE64 ldr r4, _080FCE98 _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 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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FCF16 ldr r0, _080FCF28 mov r8, r0 ldr r3, _080FCF2C _080FCEBC: ldr r0, _080FCF30 ldrb r1, [r0] adds r1, r2 ldr r0, _080FCF34 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080FCF38 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 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 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 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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FD0EE ldr r0, _080FD100 mov r8, r0 _080FD082: ldr r0, _080FD104 ldrb r1, [r0] adds r1, r2 ldr r0, _080FD108 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD10C 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 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 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD0BA _080FD0E2: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD0FC 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 ldrb r0, [r0] cmp r2, r0 bcs _080FD1A2 ldr r0, _080FD1B4 mov r8, r0 ldr r7, _080FD1B8 _080FD12C: ldr r0, _080FD1BC ldrb r1, [r0] ldrb r0, [r7] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FD1C0 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 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 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080FD166 _080FD196: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080FD1B0 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 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 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 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 _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 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 _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 ldrb r1, [r0, 0x18] lsls r1, 4 strh r1, [r2] ldr r3, _080FDA6C ldrh r2, [r2] lsls r2, 1 ldr r1, [r0, 0x8] adds r1, r2 str r1, [r3] ldr r2, _080FDA70 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080FDA74 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080FDA78 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080FDA7C ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080FDA80 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080FDA84 ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080FDA88 ldrb r1, [r0, 0x1E] strb r1, [r2] ldrh r0, [r0, 0x14] cmp r0, 0x5 bhi _080FDADE lsls r0, 2 ldr r1, _080FDA8C 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 ldr r1, [r2] movs r0, 0 strh r0, [r1] ldr r0, [r2] ldr r2, _080FDB50 adds r1, r2, 0 strh r1, [r0, 0x2] ldr r2, _080FDB54 adds r1, r2, 0 strh r1, [r0, 0x4] ldr r2, _080FDB58 adds r1, r2, 0 strh r1, [r0, 0x6] ldr r2, _080FDB5C adds r1, r2, 0 strh r1, [r0, 0x8] ldr r2, _080FDB60 adds r1, r2, 0 strh r1, [r0, 0xA] ldr r2, _080FDB64 adds r1, r2, 0 strh r1, [r0, 0xC] ldr r2, _080FDB68 adds r1, r2, 0 strh r1, [r0, 0xE] ldr r2, _080FDB6C adds r1, r2, 0 strh r1, [r0, 0x10] ldr r2, _080FDB70 adds r1, r2, 0 strh r1, [r0, 0x12] ldr r2, _080FDB74 adds r1, r2, 0 strh r1, [r0, 0x14] ldr r2, _080FDB78 adds r1, r2, 0 strh r1, [r0, 0x16] ldr r2, _080FDB7C adds r1, r2, 0 strh r1, [r0, 0x18] ldr r2, _080FDB80 adds r1, r2, 0 strh r1, [r0, 0x1A] ldr r2, _080FDB84 adds r1, r2, 0 strh r1, [r0, 0x1C] ldr r2, _080FDB88 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 ldr r0, [r2] movs r1, 0 strh r1, [r0] ldr r2, [r2] strh r1, [r2, 0x2] ldr r1, _080FDBA4 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 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 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 mov r12, r3 mov r0, r9 lsls r4, r0, 1 ldr r5, _080FDCB8 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 adds r1, r2, 0 strh r1, [r0] movs r3, 0 ldrb r5, [r5] cmp r3, r5 bcs _080FDD58 _080FDC68: ldr r2, _080FDCC0 ldr r0, _080FDCC4 ldrb r1, [r0] adds r1, r3 ldr r0, _080FDCC8 ldrb r0, [r0] muls r0, r1 lsls r0, 1 ldr r1, [r2] adds r1, r0 ldr r0, _080FDCCC ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDCD0 adds r2, r0, 0 adds r3, 0x1 mov r10, r3 ldrb r3, [r2] cmp r6, r3 bcs _080FDD4A ldr r0, _080FDCD4 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 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 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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FDE14 ldr r0, _080FDDC8 mov r8, r0 _080FDD84: ldr r0, _080FDDCC ldrb r1, [r0] adds r1, r2 ldr r0, _080FDDD0 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDDD4 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080FDDD8 adds r3, r0, 0 adds r7, r2, 0x1 ldrb r0, [r3] cmp r6, r0 bcs _080FDE08 ldr r5, _080FDDDC _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 _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 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 ldrb r0, [r0] cmp r2, r0 bcs _080FDEC4 ldr r0, _080FDE80 mov r8, r0 _080FDE3E: ldr r0, _080FDE84 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDE88 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDE8C ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDE90 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDEB8 ldr r6, _080FDE94 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 ldrb r0, [r0] cmp r5, r0 bcc _080FDE6E _080FDEB8: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDED4 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 ldrb r0, [r0] cmp r2, r0 bcs _080FDF74 ldr r0, _080FDF30 mov r8, r0 _080FDEEE: ldr r0, _080FDF34 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDF38 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDF3C ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDF40 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FDF68 ldr r6, _080FDF44 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 ldrb r0, [r0] cmp r5, r0 bcc _080FDF1E _080FDF68: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FDF84 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 ldrb r0, [r0] cmp r2, r0 bcs _080FE024 ldr r0, _080FDFE0 mov r8, r0 _080FDF9E: ldr r0, _080FDFE4 ldrb r1, [r0] adds r1, r2 ldr r0, _080FDFE8 ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080FDFEC ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080FDFF0 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080FE018 ldr r6, _080FDFF4 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 ldrb r0, [r0] cmp r5, r0 bcc _080FDFCE _080FE018: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080FE034 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 movs r0, 0x1 movs r1, 0x1 movs r2, 0x4 bl PrintMenuItems ldr r0, _080FE21C 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE260 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 ldr r0, _080FE288 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 ldr r0, _080FE2B0 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 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 ldrb r1, [r0, 0x7] movs r5, 0x80 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080FE38C ldr r4, _080FE36C 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 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 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 ldr r0, _080FE370 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 ldr r0, _080FE3C0 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 ldrb r0, [r0, 0x9] cmp r0, 0 bne _080FE40C ldr r0, _080FE408 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE46C 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 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 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 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 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 gUnknown_08402E40 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 _080FE548: ldr r0, _080FE578 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE600 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 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 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 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 beq _080FE704 ldrb r0, [r4] bl sub_8134194 ldr r1, _080FE6C4 strb r0, [r1] lsls r0, 24 cmp r0, 0 beq _080FE6DC ldrb r0, [r4] bl sub_8134104 ldr r2, _080FE6C8 ldr r1, _080FE6CC 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 movs r1, 0x8 bl sub_80F9480 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed ldr r1, _080FE6D4 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080FE6D8 str r1, [r0] b _080FE720 .align 2, 0 _080FE6C0: .4byte gUnknown_020388F6 _080FE6C4: .4byte gUnknown_020388D5 _080FE6C8: .4byte gUnknown_020388D0 _080FE6CC: .4byte gUnknown_08402E40 _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 ldr r2, _080FE700 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 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 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 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 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 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 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 ldrb r0, [r0] bl sub_80FECB8 movs r0, 0xF movs r1, 0xC movs r2, 0x1D movs r3, 0x13 bl MenuDrawTextWindow ldr r4, _080FE85C ldr r0, _080FE860 ldrb r0, [r0] ldrb r1, [r4] adds r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_80FECE0 ldr r0, _080FE864 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FE890 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 ldrb r1, [r6] ldr r4, _080FE924 ldrb r0, [r4] adds r1, r0 ldr r2, _080FE928 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080FE95C b _080FEAAC _080FE95C: ldr r0, _080FE984 ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x40 bne _080FE9A0 ldr r0, _080FE988 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 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 ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0x80 bne _080FE9EE ldr r2, _080FE9CC ldr r1, _080FE9D0 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 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 ldr r1, _080FEA3C 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 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 ldr r1, _080FEA48 ldr r0, _080FEA38 ldrb r0, [r0] ldrb r1, [r1] adds r0, r1 strb r0, [r2] ldr r1, _080FEA3C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080FEA54 ldr r1, _080FEA4C ldr r2, _080FEA50 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 ldr r1, _080FEA78 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 ldr r2, _080FEAB8 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 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 ldrb r0, [r5] adds r0, 0x7 ldr r4, _080FEB5C 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 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080FEB3C adds r0, r1, 0 bl sub_80F94F8 _080FEB3C: ldr r0, _080FEB5C ldrb r0, [r0] cmp r4, r0 bne _080FEB68 lsls r2, r6, 3 movs r0, 0x1 str r0, [sp] ldr r0, _080FEB64 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 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 ldrb r5, [r0, 0x9] cmp r5, 0x1 bne _080FEBDC ldr r0, _080FEBC8 ldrb r0, [r0] cmp r0, 0x6 beq _080FEBDC cmp r0, 0x7 beq _080FEBDC ldr r0, _080FEBCC 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 adds r1, r0 ldr r0, _080FEBD4 bl StringCopy lsls r2, r6, 3 str r5, [sp] ldr r0, _080FEBD8 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 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 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 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 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 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 ldr r1, _080FED18 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FED60 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 _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 movs r1, 0 ldr r2, _080FEE34 _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 mov r10, r0 ldr r1, _080FEE3C mov r9, r1 ldr r2, _080FEE40 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 adds r0, r3 mov r12, r0 ldr r7, _080FEE30 _080FEDEA: ldr r0, _080FEE44 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 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 gUnknown_08402E40 _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 mov r8, r0 _080FEE6C: ldr r0, _080FEEE8 ldr r1, _080FEEEC 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 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 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 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 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 gUnknown_08402E40 _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 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 ldrb r1, [r0] cmp r1, 0x7 bhi _080FEF40 ldr r0, _080FEF3C strb r1, [r0] b _080FEF46 .align 2, 0 _080FEF38: .4byte gUnknown_020388D5 _080FEF3C: .4byte gUnknown_020388F3 _080FEF40: ldr r1, _080FEF4C 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 movs r1, 0 strb r1, [r0] ldr r0, _080FEF70 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 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 ldrb r0, [r0] ldr r1, _080FEFD4 ldrb r1, [r1] adds r0, r1 adds r1, r0, 0x1 ldr r4, _080FEFD8 ldr r3, _080FEFDC _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 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080FF030 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 movs r1, 0x8 bl sub_80F9520 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer bl BuyMenuFreeMemory ldr r1, _080FF090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080FF094 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 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] ldr r3, _080FF0D8 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 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 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r4, r2, r3 ldr r1, _080FF110 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 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 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 ldr r2, _080FF184 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 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 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 cmp r2, 0x22 beq _080FF1D8 cmp r2, 0x26 bne _080FF1E2 ldr r0, _080FF1D4 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 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 adds r0, r4, r0 str r0, [sp, 0x1C] ldr r0, _080FF2B8 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 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 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 lsls r0, r2, 5 adds r0, r1 ldrb r0, [r0, 0x12] cmp r0, 0x9 bhi _080FF46C lsls r0, 2 ldr r1, _080FF3C0 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 mov r8, r0 ldr r1, _080FF550 mov r9, r1 ldr r2, _080FF554 mov r10, r2 ldr r7, _080FF558 _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 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 adds r0, r2, 0 ldrb r1, [r1, 0x1] adds r0, r1 ldr r1, _080FF560 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 ldrh r1, [r1] mov r2, r10 strh r1, [r2] ldr r1, _080FF568 ldrh r1, [r1] ldr r4, _080FF56C 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 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 ldrb r0, [r0, 0x9] cmp r0, 0x1 bne _080FF5F0 ldr r0, _080FF5E8 ldrb r0, [r0] cmp r0, 0x6 beq _080FF5F0 cmp r0, 0x7 beq _080FF5F0 bl sub_80FEF74 bl sub_80FED1C ldr r1, _080FF5EC 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _080FF628 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 ldr r4, _080FF658 ldrb r1, [r4, 0x8] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldrb r0, [r4, 0x9] cmp r0, 0 bne _080FF664 ldr r0, _080FF65C ldr r1, _080FF660 bl StringExpandPlaceholders b _080FF66C .align 2, 0 _080FF654: .4byte gStringVar1 _080FF658: .4byte 0x0201f000 _080FF65C: .4byte gStringVar4 _080FF660: .4byte gSecretBaseText_NoMoreDecor _080FF664: ldr r0, _080FF67C ldr r1, _080FF680 bl StringExpandPlaceholders _080FF66C: ldr r1, _080FF67C _080FF66E: ldr r2, _080FF684 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 ldr r2, _080FF6A8 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 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 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 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 ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] ldr r5, _080FF758 ldr r0, _080FF75C ldrb r1, [r0] ldr r0, _080FF760 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 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 adds r0, r5, r1 ldr r1, _080FF818 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 bl LoadSpritePalette ldr r3, _080FF820 ldr r2, _080FF824 ldr r4, _080FF828 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 ldr r3, _080FF830 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 ldr r6, _080FF88C ldr r5, _080FF890 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 ldr r2, _080FF898 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 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r2, [r2, 0x12] ldr r3, _080FF8F4 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 ldrb r0, [r0, 0x8] cmp r0, 0 bne _080FF900 ldr r1, _080FF8FC 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 movs r0, 0 str r0, [sp] movs r0, 0xC2 _080FF908: movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _080FF950 strb r0, [r1] ldr r3, _080FF954 ldr r0, _080FF950 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 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 bl DestroySprite ldr r0, _080FF95C 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 ldr r0, _080FF990 ldrb r1, [r0] ldr r0, _080FF994 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 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 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 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 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 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 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 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 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 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFAFC ldr r0, _080FFB00 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] ldr r3, _080FFB58 ldr r0, _080FFB5C 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 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 ldr r2, _080FFB68 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 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 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 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 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 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 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 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 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 ldrb r1, [r0] ldr r0, _08100070 ldr r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r1, 5 ldr r0, _08100074 adds r1, r0 adds r0, r4, 0 bl sub_80FFC24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08100080 ldr r1, _08100078 ldr r2, _0810007C 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 ldr r2, _0810009C 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 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 ldr r0, _08100110 ldrb r1, [r0] ldr r0, _08100114 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 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 ldr r0, _08100160 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 ldrh r0, [r1, 0xA] subs r0, 0x7 strh r0, [r2] ldr r0, _08100168 bl ScriptContext1_SetupScript _0810013C: ldr r2, _0810016C ldr r0, _08100170 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 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 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 ldrb r1, [r0] ldr r0, _081001E8 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r2, [r5, 0x4] adds r2, r3 ldr r0, _081001EC 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 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0 bne _08100224 _08100210: ldr r0, _08100220 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081002B8 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 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 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 bl FreeSpritePaletteByTag ldr r1, _08100328 ldr r0, _0810032C str r0, [r1] ldr r0, _08100330 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08100360 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 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 adds r2, r1, r0 ldr r0, _081003C0 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 gUnknown_03004B28 _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 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 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 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 movs r0, 0 strb r0, [r1] ldr r4, _0810048C ldr r3, _08100490 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 ldr r3, _081004D4 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 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 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 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 ldrh r1, [r7, 0x2C] movs r0, 0xF0 mov r12, r0 ands r0, r1 cmp r0, 0x40 bne _08100534 ldr r1, _08100648 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 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 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 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 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 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 ldrb r0, [r0] cmp r0, 0 beq _0810060C ldr r3, _08100650 ldr r2, _08100654 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 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 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 ldr r0, _0810069C 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1C] ldr r1, _081006A4 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 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 _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 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 ands r2, r0 _08100754: movs r5, 0 ldr r0, _08100788 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 ldr r1, [r1] ldr r1, [r1, 0x14] ldr r1, [r1, 0xC] lsrs r0, 15 adds r0, r1 ldrh r1, [r0] ldr r0, _081008B8 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 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 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 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 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 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08100A40 str r1, [r0] b _08100A50 .align 2, 0 _08100A3C: .4byte gTasks _08100A40: .4byte sub_8100E70 _08100A44: ldr r1, _08100A58 ldr r2, _08100A5C 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 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 movs r0, 0 strh r0, [r6] ldr r2, _08100AA0 strh r0, [r2] ldr r4, _08100AA4 ldr r1, _08100AA8 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 ldrb r0, [r2] strh r0, [r1] b _08100B0A .align 2, 0 _08100AB4: .4byte gUnknown_0202E8D0 _08100AB8: ldr r3, _08100B10 ldr r2, _08100B14 ldr r1, _08100B18 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 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 ldr r0, [r0, 0x4] ldrb r1, [r0] cmp r2, r1 bcs _08100B64 adds r3, r0, 0 ldr r5, [r3, 0x4] ldr r0, _08100B50 ldrh r4, [r0] ldr r6, _08100B54 _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 adds r4, r3, r0 ldrb r1, [r4] ldr r2, _08100BE4 ldr r0, [r2] adds r0, r1 ldrb r6, [r0] lsls r0, r6, 5 ldr r5, _08100BE8 adds r0, r5 ldrb r2, [r0, 0x11] ldr r5, _08100BE4 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 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 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 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 adds r2, r5, 0 adds r0, r5, r1 _08100C4E: ldrb r0, [r0, 0x2] cmp r6, r0 bcc _08100BEC ldr r2, _08100C7C 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 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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08100D24 bl DrawWholeMapView ldr r0, _08100CF0 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 strh r0, [r5, 0x22] ldr r1, _08100D30 ldr r2, _08100D34 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 adds r4, r0, 0 ldrb r0, [r4, 0x8] cmp r2, r0 bcs _08100D7C adds r5, r4, 0 ldr r1, _08100D6C 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 ldr r2, _08100DDC ldr r4, _08100DE0 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 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] ldr r0, _08100DE8 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08100DF0 ldr r1, _08100DEC 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 movs r0, 0 str r0, [sp] movs r0, 0xC2 _08100DF8: movs r2, 0x88 movs r3, 0x48 bl AddPseudoFieldObject ldr r1, _08100E60 strb r0, [r1] ldr r6, _08100E64 ldr r0, _08100E60 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 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r0, _08100E6C 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 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 gUnknown_03004B28 _08100E98: cmp r0, 0x2 beq _08100ED2 b _08100EE6 _08100E9E: ldr r0, _08100EC0 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 ldr r3, _08100F74 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 str r1, [r0] ldr r2, _08100F7C 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 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x1C] ldr r1, _08100F84 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 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 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 ldr r5, _08101014 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 str r1, [r0] ldr r1, _0810101C ldr r2, _08101020 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 ldrb r0, [r0] cmp r0, 0 beq _0810104C ldr r1, _08101044 ldr r2, _08101048 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 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 ldr r4, _081010C4 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 str r1, [r0] ldr r1, _081010CC ldr r2, _081010D0 _081010B0: adds r0, r5, 0 movs r3, 0 bl DisplayItemMessageOnField b _081010E0 .align 2, 0 _081010BC: .4byte gUnknown_03004B28 _081010C0: .4byte gSprites _081010C4: .4byte gUnknown_020391A8 _081010C8: .4byte SpriteCallbackDummy _081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor _081010D0: .4byte sub_810156C _081010D4: ldr r1, _081010E8 ldr r2, _081010EC 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 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 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 ldr r6, _081011F4 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 str r3, [r2] ldr r4, _081011FC 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 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 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 ldr r3, _08101310 ldr r0, _08101314 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 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 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r7 bne _08101328 ldr r2, _08101320 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r6 bne _08101328 ldr r0, _08101324 adds r4, r1, r0 ldrh r0, [r4] bl FlagGet lsls r0, 24 cmp r0, 0 bne _08101328 ldr r0, _08101314 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 ldrb r2, [r1] lsls r1, r2, 5 adds r1, r0 ldrb r0, [r1, 0x11] cmp r0, 0x4 bne _0810139C ldr r5, _08101394 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 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 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 ldrb r0, [r7, 0x8] cmp r4, r0 bcs _0810143E adds r6, r7, 0 ldr r5, _08101454 _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 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 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 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 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 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 ldrb r1, [r0, 0x8] cmp r5, r1 bcc _08101486 _081014D2: ldr r0, _08101510 ldrb r0, [r0] cmp r0, 0 beq _08101504 ldr r0, _0810150C ldr r2, _08101514 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _08101568 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 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 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, _081015DC 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 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 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 ldr r1, _08101640 str r1, [r0] ldr r0, _08101644 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 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08101674 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 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 ldrb r0, [r0, 0x8] cmp r0, 0 bne _081016E4 ldr r0, _081016E0 bl LoadSpritePalette b _081016EA .align 2, 0 _081016DC: .4byte gSaveBlock2 _081016E0: .4byte gUnknown_083ECA5C _081016E4: ldr r0, _081016F0 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 ldr r2, _08101724 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 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 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 ldr r2, _08101774 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 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 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 ldr r1, _081017F0 ldrb r2, [r1] ldr r1, _081017F4 ldr r1, [r1] adds r1, r2 ldrb r1, [r1] lsls r1, 5 ldr r2, _081017F8 adds r1, r2 bl StringCopy ldr r4, _081017FC ldr r1, _08101800 adds r0, r4, 0 bl StringExpandPlaceholders ldr r2, _08101804 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 ldr r2, _08101820 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 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 ldrb r1, [r6] ldr r5, _08101894 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 ldr r2, _0810189C 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 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 ldr r1, _081018D4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bhi _0810194A lsls r0, 2 ldr r1, _081018D8 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 ldr r0, _08101934 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 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 ldr r2, _081019AC 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 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 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r0, _08101A1C adds r2, r0 ldr r1, _08101A20 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 bl SetVBlankCallback ldr r3, _08101A80 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08101A84 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r2, _08101A88 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 movs r5, 0x80 lsls r5, 5 ldr r7, _08101ADC 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 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08101B00 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 movs r1, 0 strh r1, [r5] ldr r2, _08101B74 strh r1, [r2] ldr r3, _08101B78 strh r1, [r3] ldr r4, _08101B7C strh r1, [r4] ldr r0, _08101B80 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 adds r0, r1, 0 strh r0, [r5] ldr r1, _08101B88 adds r0, r1, 0 strh r0, [r2] ldr r2, _08101B8C adds r0, r2, 0 strh r0, [r3] ldr r1, _08101B90 adds r0, r1, 0 strh r0, [r4] ldr r0, _08101B94 movs r1, 0x3F strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08101B98 ldr r2, _08101B9C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08101BA0 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 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 ldr r1, _08101C7C 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 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 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 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 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 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r6, _08101D54 ldr r5, _08101D58 _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 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08101DA2 ldr r1, _08101DAC 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 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 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 movs r0, 0x5 strb r0, [r2] movs r0, 0xC ldrsh r1, [r2, r0] ldr r0, _08101E38 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 ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08101E60 movs r0, 0 bl sub_8104AB8 ldr r1, _08101E5C 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 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 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 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 movs r2, 0x12 ldrsh r1, [r0, r2] ldr r2, _08101F28 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 bl sub_8101F2C ldr r1, _08101F5C 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 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08101F78 bl MenuZeroFillScreen ldr r1, _08101F84 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 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 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 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 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 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 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810207E movs r0, 0x18 bl PlaySE ldr r4, _0810208C 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 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 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 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 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 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 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 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 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 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 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 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 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 bl sub_8101F2C movs r0, 0x15 movs r1, 0x7 movs r2, 0x1 bl DisplayYesNoMenu bl sub_814AB84 ldr r1, _08102340 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 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 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 bl sub_8101F2C ldr r1, _081023B4 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 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081023D0 bl MenuZeroFillScreen ldr r1, _081023DC 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 bl sub_8101F2C ldr r1, _081023F8 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 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08102414 bl MenuZeroFillScreen ldr r1, _08102420 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 ldr r4, _08102458 ldrh r1, [r4, 0xC] ldr r2, _0810245C 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 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08102476 ldr r0, _08102480 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 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 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 ldr r1, _081024EC 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 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 _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 ldr r1, _0810256C 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 _0810257E: bl Random movs r2, 0xFF ldr r3, _081025B8 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 mov r8, r0 ldr r5, _08102604 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 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 ldrb r0, [r3, 0x3] cmp r0, 0 beq _08102668 ldr r0, _08102664 b _0810266A .align 2, 0 _08102660: .4byte 0x02000000 _08102664: .4byte gUnknown_083ECDAC _08102668: ldr r0, _0810267C _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 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 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 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 movs r2, 0x10 ldrsh r1, [r0, r2] ldr r0, _08102720 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 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 ldr r1, _08102794 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 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 ldr r0, _08102838 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _0810283C 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 ldr r0, _08102904 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 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 ldr r0, _08102904 lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _08102908 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 ldr r0, _081029CC lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 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 ldr r0, _081029CC lsls r1, 1 adds r0, r1, r0 ldrh r0, [r0] ldrh r3, [r2, 0xE] adds r0, r3 strh r0, [r2, 0xE] ldr r0, _081029D0 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 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 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 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 ldr r2, _08102A98 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 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 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 cmp r1, r0 bgt _08102B0E adds r0, r3, 0x1 strh r0, [r2, 0xC] _08102B0E: movs r0, 0x8 strh r0, [r4, 0xA] ldr r0, _08102B78 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 ldrh r1, [r0, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08102B58 movs r0, 0x15 bl PlaySE ldr r1, _08102B70 ldrh r0, [r1, 0xE] ldrh r2, [r1, 0xC] adds r0, r2 strh r0, [r1, 0xC] lsls r0, 16 asrs r0, 16 ldr r2, _08102B7C cmp r0, r2 ble _08102B54 strh r2, [r1, 0xC] _08102B54: movs r0, 0 strh r0, [r1, 0xE] _08102B58: ldr r0, _08102B70 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 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 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 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 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 _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 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 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 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 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 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 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 ldr r7, _08102DE4 ldr r6, _08102DE8 _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 ldr r1, _08102E18 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 ldr r1, _08102E3C 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 ldr r1, _08102E64 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 ldr r2, _08102E9C 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 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 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 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 movs r0, 0 strb r0, [r1, 0x6] ldr r1, _08102F48 movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08102F28: ldr r0, _08102F40 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 mov r0, sp movs r2, 0xA bl memcpy ldr r5, _08102F90 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 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 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 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 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 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 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 _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 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 _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 ldr r0, _081032E4 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 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 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 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 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 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 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 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 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 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 ldr r0, _08103560 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 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 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 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 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 _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 ldr r0, _0810382C 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 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 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 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 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 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 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 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 _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 _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 adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103C44 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 ldr r2, _08103C74 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 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 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 lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D24 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 lsls r1, r0, 2 adds r1, r2 ldr r2, [r1] ldr r1, _08103D4C 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 adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103D7C ldr r7, _08103D88 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 adds r0, r1, r0 ldrb r0, [r0] cmp r4, r0 bcs _08103DB8 ldr r7, _08103DC4 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 ldr r5, _08103DFC _08103DD0: ldr r0, _08103E00 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 adds r1, 0x44 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08103E34 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 ldr r3, _08103E64 _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 _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 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 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 adds r0, r4, 0 movs r1, 0x6 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08103F9C 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 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 ldr r1, _08103FC8 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 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 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 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 movs r1, 0x8 bl CreateTask ldr r1, _08104060 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 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _08104094 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 adds r0, 0x3E ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081040C4 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 ldr r0, _081040E4 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 ldr r2, _08104114 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 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 adds r1, r2 adds r1, 0x80 ldr r2, _081041A8 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 adds r0, r1 adds r0, 0x80 ldr r1, _08104218 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 movs r4, 0 ldr r0, _0810426C mov r8, r0 ldr r1, _08104270 mov r12, r1 cmp r4, r5 bge _081042A6 ldr r7, _08104274 _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 _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 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 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 ldr r2, _08104378 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 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 strh r2, [r0] ldr r0, _081043E4 strh r2, [r0] ldr r0, _081043E8 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 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 ldr r0, _08104464 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 mov r0, sp movs r2, 0x4 bl memcpy add r0, sp, 0x4 mov r8, r0 ldr r1, _08104538 movs r2, 0x8 bl memcpy add r6, sp, 0xC ldr r1, _0810453C 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 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104544 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 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08104594 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 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 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 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 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 adds r0, r1 movs r1, 0x5 bl StartSpriteAnimIfDifferent ldr r0, _08104718 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 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 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 ldr r0, _081047DC 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 movs r6, 0 strb r6, [r4, 0xB] ldrb r0, [r4, 0x5] strb r0, [r4, 0xA] ldr r0, _08104838 strh r6, [r0] ldr r0, _0810483C 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 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 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 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 ldr r3, _08104938 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 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 ldrh r1, [r4, 0x10] strh r1, [r0] ldr r0, _081049BC 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 ldr r0, _081049C4 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 movs r1, 0 strh r1, [r0] ldr r0, _081049F4 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 movs r1, 0 strh r1, [r0] ldr r0, _08104A34 strh r1, [r0] ldr r0, _08104A38 adds r0, 0x60 ldrh r0, [r0] bl PlayNewMapMusic bl sub_810514C bl sub_8105554 bl sub_8105524 bl sub_81059B8 ldr r0, _08104A3C 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 lsls r1, 16 asrs r5, r1, 16 lsls r0, 16 asrs r4, r0, 16 ldr r6, _08104A84 _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 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 adds r0, r5, 0 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08104AE8 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 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 ldr r2, _08104B38 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 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 bl BasicInitMenuWindow ldr r0, _08104BC4 movs r1, 0xA movs r2, 0x20 movs r3, 0x1 bl sub_80729D8 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 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 bl BasicInitMenuWindow bl sub_81064B8 ldrb r0, [r4, 0xA] bl sub_8104CAC ldr r0, _08104C40 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 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 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08104CA0 adds r0, 0x3D strb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104CA4 adds r0, r1 ldr r1, _08104CA8 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 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D28 adds r7, r0, r1 strh r4, [r7, 0xA] movs r6, 0 ldr r1, _08104D2C 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 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104D88 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 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E08 adds r4, r0, r1 ldrh r1, [r4, 0xA] ldr r0, _08104E0C cmp r1, r0 beq _08104DCE ldr r0, _08104E10 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 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 adds r0, 0x3D ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08104E58 adds r0, r1 movs r2, 0x4 adds r3, r0, 0 adds r3, 0x8 ldr r4, _08104E5C _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 ldr r2, _08104EA0 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 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 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 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 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 _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 _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 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 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 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 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 movs r1, 0x58 movs r2, 0x48 movs r3, 0xF bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _081050F8 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 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 movs r1, 0x8C lsls r1, 1 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _08105144 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 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 adds r0, 0x3F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810516C 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 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 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 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 adds r0, r2, 0 bl SetSubspriteTables ldr r6, _08105278 adds r0, r6, 0 adds r0, 0x49 strb r4, [r0] ldr r0, _0810527C 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 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 ldr r1, _081052DC 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 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 bl SetSubspriteTables ldr r0, _081052E8 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 _081052F4: ldr r0, _08105354 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 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 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 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 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 mov r9, r0 adds r0, r2, 0 mov r1, r9 bl SetSubspriteTables ldr r6, _08105458 adds r0, r6, 0 adds r0, 0x4E strb r4, [r0] movs r1, 0x90 lsls r1, 1 ldr r0, _0810544C 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 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 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 bl SetSubspriteTables ldr r0, _081054B4 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 adds r0, r4, 0 adds r0, 0x40 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C 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 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 _081054F4: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0810551C 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 _0810552A: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105550 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 adds r0, 0x42 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105574 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 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 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 adds r1, r5, 0 adds r1, 0x50 strb r0, [r1] movs r0, 0x8 strh r0, [r3, 0x2E] ldr r0, _08105628 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 ldr r3, _081056BC 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 _081056C6: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081056EC 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 mov r8, r0 movs r1, 0x48 movs r2, 0x50 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0810577C 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 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 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 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 ldr r1, _08105800 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 adds r0, r1 lsrs r0, 16 movs r1, 0 movs r2, 0 movs r3, 0 bl MultiplyInvertedPaletteRGBComponents movs r4, 0 ldr r5, _0810584C _08105824: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08105850 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 movs r1, 0xA8 movs r2, 0x50 movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0810588C 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 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 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 adds r0, 0x41 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081058C0 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 mov r0, sp movs r2, 0x8 bl memcpy movs r4, 0 ldr r5, _0810593C _081058D6: ldr r0, _08105940 ldrh r0, [r0] movs r1, 0x50 subs r1, r0 lsls r1, 16 asrs r1, 16 ldr r0, _08105944 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 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 _081059BE: adds r0, r4, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081059E4 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 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 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 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 ldr r0, _08105AE8 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 adds r0, 0x43 ldrb r0, [r0] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08105B18 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 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 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 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 lsrs r1, 22 adds r3, r1, r3 ldr r5, [r3] ldr r3, _08105BF4 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 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 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 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 mov r0, sp movs r2, 0x8 bl memcpy add r5, sp, 0x8 ldr r1, _08105CEC 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 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 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 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 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 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 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 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 mov r0, sp movs r2, 0x10 bl memcpy add r6, sp, 0x10 ldr r1, _0810613C adds r0, r6, 0 movs r2, 0x10 bl memcpy add r5, sp, 0x20 ldr r1, _08106140 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 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 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 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 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 movs r1, 0x12 ldrsh r0, [r6, r1] cmp r0, 0 beq _0810634A ldr r1, _08106358 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 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 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 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 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 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 ldr r4, _081063F4 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063F8 movs r1, 0xC8 lsls r1, 6 adds r4, r1 adds r1, r4, 0 bl sub_800D238 ldr r0, _081063FC bl LoadSpriteSheets ldr r0, _08106400 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 movs r2, 0 ldr r5, _08106440 ldr r0, _08106444 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 ldr r4, _081064A4 adds r1, r4, 0 bl sub_800D238 movs r3, 0xC0 lsls r3, 19 movs r5, 0xE9 lsls r5, 5 ldr r1, _081064A8 ldr r6, _081064AC 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 movs r1, 0 movs r2, 0xA0 bl LoadPalette ldr r0, _081064B4 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 ldr r1, _081064D4 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 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 adds r0, r7, 0 strh r0, [r3] movs r0, 0xD0 lsls r0, 2 adds r3, r1, r0 ldr r7, _08106594 adds r0, r7, 0 strh r0, [r3] mov r0, r12 adds r3, r1, r0 ldr r7, _08106598 adds r0, r7, 0 strh r0, [r3] add r1, r9 ldr r3, _0810659C 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 adds r0, r2, 0 strh r0, [r1] movs r0, 0x7 ldr r5, _081065A4 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 adds r4, r0, r6 strh r1, [r4] ldr r4, _081065D4 adds r1, r0, r4 strh r2, [r1] adds r6, 0x40 adds r1, r0, r6 strh r3, [r1] ldr r1, _081065D8 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 ldr r1, _08106628 movs r2, 0xA0 lsls r2, 2 bl CpuSet ldr r5, _0810662C 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 subs r4, r2, 0x2 subs r5, r2, 0x1 ldr r3, _08106660 subs r0, 0x1 lsls r1, r0, 5 adds r1, r3 ldr r3, _08106664 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 ldr r2, _08106698 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 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 ldr r0, _081066D4 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 movs r4, 0x80 lsls r4, 5 ldr r6, _08106728 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 ldr r2, _08106730 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 ldr r1, _08106754 adds r0, r1 ldrb r0, [r0] bl sub_81068FC ldr r2, _08106758 adds r1, r4, r2 b _08106774 .align 2, 0 _08106750: .4byte 0x02000000 _08106754: .4byte 0x00015ddf _08106758: .4byte 0x0000043c _0810675C: ldr r1, _0810677C ldr r2, _08106780 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8107090 _0810676E: ldr r1, _08106784 ldr r0, _08106788 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 ldr r2, _081067EC adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl sub_8106918 ldr r0, _081067F0 movs r1, 0 movs r2, 0x2 bl LoadPalette movs r1, 0xA0 lsls r1, 19 movs r4, 0 str r4, [sp] ldr r0, _081067F4 mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r1, _081067F8 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x2 bl BeginFastPaletteFade ldr r0, _081067FC bl SetVBlankCallback ldr r0, _08106800 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 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 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 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 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 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _0810687C 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 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 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068BC movs r0, 0 b _081068E4 .align 2, 0 _081068B4: .4byte gMain _081068B8: .4byte gUnknown_03000756 _081068BC: .4byte gUnknown_03000754 _081068C0: ldr r0, _081068EC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081068D2 ldr r0, _081068F0 bl SetMainCallback2 _081068D2: ldr r0, _081068F4 ldrb r0, [r0] cmp r0, 0 beq _081068E6 ldr r1, _081068F8 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 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 ldr r6, _08106978 ldr r0, [r6] ldrb r0, [r0, 0xA] cmp r3, 0x7 bhi _08106988 ldr r1, _0810697C lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 ldr r1, _08106980 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 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 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 lsls r1, 3 adds r1, 0x1 lsls r2, 3 movs r3, 0x1 bl sub_80729D8 _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 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] ldr r1, _08106A00 ldr r2, _08106A04 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _08106A08 adds r0, r2, 0 strh r0, [r1] ldr r0, _08106A0C 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 strb r1, [r0] ldr r0, _08106A2C strh r1, [r0] ldr r0, _08106A30 strh r1, [r0] b _08106A46 .align 2, 0 _08106A28: .4byte gUnknown_03000756 _08106A2C: .4byte gUnknown_03000752 _08106A30: .4byte gUnknown_03000754 _08106A34: ldr r1, _08106A4C movs r0, 0x1 strb r0, [r1] ldr r1, _08106A50 movs r0, 0xF strh r0, [r1] ldr r1, _08106A54 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 ldrb r1, [r0] cmp r1, 0 bne _08106A70 ldr r0, _08106A6C strh r1, [r0] b _08106A92 .align 2, 0 _08106A68: .4byte gUnknown_03000756 _08106A6C: .4byte REG_MOSAIC _08106A70: ldr r1, _08106A98 ldr r2, _08106A9C adds r0, r2, 0 strh r0, [r1] ldr r2, _08106AA0 ldr r0, _08106AA4 ldrh r1, [r0] lsrs r1, 1 strh r1, [r2] ldr r3, _08106AA8 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 ldr r0, [r7] ldr r1, [r0, 0x4] ldr r2, [r0] adds r0, r6, 0 bl species_and_otid_get_pal ldr r1, _08106B2C mov r8, r1 ldr r1, [r1] bl LZDecompressVram cmp r4, 0 bne _08106B40 lsls r0, r6, 3 ldr r1, _08106B30 adds r0, r1 ldr r1, _08106B34 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B38 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 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 adds r0, r1 ldr r1, _08106B84 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08106B88 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 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 movs r2, 0x80 lsls r2, 1 movs r1, 0 bl LoadPalette cmp r4, 0x1 beq _08106C5E b _08106DB4 _08106C5E: ldr r0, _08106C80 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 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 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CB0 b _08106CF0 .align 2, 0 _08106CAC: .4byte gPictureFrameTiles_0 _08106CB0: .4byte gPictureFrameTilemap_0 _08106CB4: ldr r0, _08106CC4 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CC8 b _08106CF0 .align 2, 0 _08106CC4: .4byte gPictureFrameTiles_1 _08106CC8: .4byte gPictureFrameTilemap_1 _08106CCC: ldr r0, _08106CDC movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106CE0 b _08106CF0 .align 2, 0 _08106CDC: .4byte gPictureFrameTiles_2 _08106CE0: .4byte gPictureFrameTilemap_2 _08106CE4: ldr r0, _08106CFC movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D00 _08106CF0: ldr r1, _08106D04 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 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106D9C ldr r1, _08106DA0 ldr r1, [r1] bl RLUnCompWram _08106D1C: movs r1, 0 ldr r5, _08106DA4 ldr r0, _08106DA8 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 mov r12, r0 ldr r7, _08106DA0 _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 ldr r2, _08106DA0 _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 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106DCC b _08106E60 .align 2, 0 _08106DC8: .4byte gPictureFrameTiles_5 _08106DCC: .4byte gPictureFrameTilemap_5 _08106DD0: ldr r0, _08106DF0 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 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 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E20 b _08106E60 .align 2, 0 _08106E1C: .4byte gPictureFrameTiles_0 _08106E20: .4byte gPictureFrameTilemap_0 _08106E24: ldr r0, _08106E34 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E38 b _08106E60 .align 2, 0 _08106E34: .4byte gPictureFrameTiles_1 _08106E38: .4byte gPictureFrameTilemap_1 _08106E3C: ldr r0, _08106E4C movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E50 b _08106E60 .align 2, 0 _08106E4C: .4byte gPictureFrameTiles_2 _08106E50: .4byte gPictureFrameTilemap_2 _08106E54: ldr r0, _08106E68 movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E6C _08106E60: ldr r1, _08106E70 bl RLUnCompVram b _08106E86 .align 2, 0 _08106E68: .4byte gPictureFrameTiles_3 _08106E6C: .4byte gPictureFrameTilemap_3 _08106E70: .4byte 0x06006000 _08106E74: ldr r0, _08106E8C movs r1, 0xC0 lsls r1, 19 bl RLUnCompVram ldr r0, _08106E90 ldr r1, _08106E94 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 ldr r1, _08106ED4 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 ands r1, r2 strh r1, [r3] ldrh r1, [r4, 0x3E] ldr r0, _08106EDC 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 ldr r0, [r0] ldrb r0, [r0, 0xA] b _08106F08 .align 2, 0 _08106EF4: .4byte gUnknown_03005E8C _08106EF8: ldr r0, _08106F18 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 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 ldr r1, _08106F60 str r1, [r0] ldr r0, _08106F64 ldr r2, _08106F68 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 ldr r0, _08106FB0 ldr r0, [r0] str r0, [r1, 0x4] ldr r0, _08106FB4 ldr r0, [r0] str r0, [r1, 0x8] movs r2, 0 strb r2, [r1, 0x18] ldr r0, _08106FB8 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 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 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 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 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 thumb_func_start sub_81070D4 sub_81070D4: @ 81070D4 push {r4-r7,lr} ldr r2, _08107144 movs r3, 0 ldr r4, _08107148 movs r1, 0 _081070DE: adds r0, r2, r3 strb r1, [r0] adds r3, 0x1 cmp r3, 0x2F bls _081070DE ldrh r2, [r4] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08107138 ldr r5, _0810714C ldrh r1, [r5] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _08107138 ldr r0, _08107150 ands r0, r2 cmp r0, 0 bne _08107138 movs r3, 0 ldr r7, _08107154 ldr r4, _08107158 adds r6, r4, 0 subs r6, 0x8 _08107110: lsls r2, r3, 1 ldrh r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, r0 adds r2, r7 ldrh r2, [r2] cmp r2, 0 beq _08107132 ldrb r0, [r4] lsls r0, 1 adds r0, r6 strh r2, [r0] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08107132: adds r3, 0x1 cmp r3, 0x3 ble _08107110 _08107138: bl sub_810715C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08107144: .4byte 0x02016a00 _08107148: .4byte gUnknown_020239F8 _0810714C: .4byte word_202FF5E _08107150: .4byte 0x00000982 _08107154: .4byte gTrainers + 0x10 _08107158: .4byte 0x02016a2c thumb_func_end sub_81070D4 thumb_func_start sub_810715C sub_810715C: @ 810715C push {r4-r7,lr} ldr r2, _08107204 movs r4, 0 ldr r3, _08107208 movs r1, 0 _08107166: adds r0, r2, r4 strb r1, [r0] adds r4, 0x1 cmp r4, 0x1B bls _08107166 ldr r0, _08107204 movs r1, 0x64 movs r4, 0x3 adds r0, 0x7 _08107178: strb r1, [r0] subs r0, 0x1 subs r4, 0x1 cmp r4, 0 bge _08107178 ldrb r0, [r3] movs r1, 0 movs r2, 0xFF bl sub_8015A98 lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r0, _08107204 adds r5, r0, 0x4 ldr r6, _0810720C _08107198: ldr r0, [r6] ands r0, r7 cmp r0, 0 beq _081071A4 movs r0, 0 strb r0, [r5] _081071A4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 strb r1, [r5, 0x14] adds r5, 0x1 adds r6, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _08107198 ldr r0, _08107210 adds r0, 0x20 movs r1, 0 strb r1, [r0] ldr r1, _08107214 ldr r0, _08107208 ldrb r2, [r0] strb r2, [r1] ldr r0, _08107218 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08107224 ldr r4, _0810721C bl Random movs r5, 0x2 ands r0, r5 strb r0, [r4] ldr r0, _08107220 ldrb r1, [r0] ldr r2, _0810720C ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0810722C eors r3, r5 strb r3, [r4] b _0810722C .align 2, 0 _08107204: .4byte 0x02016800 _08107208: .4byte gUnknown_02024A60 _0810720C: .4byte gBitTable _08107210: .4byte 0x02016c00 _08107214: .4byte gUnknown_02024C07 _08107218: .4byte gUnknown_020239F8 _0810721C: .4byte gUnknown_02024C08 _08107220: .4byte gUnknown_02024C0C _08107224: ldr r0, _08107244 movs r1, 0x1 eors r1, r2 strb r1, [r0] _0810722C: ldr r0, _08107248 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08107250 ldr r1, _0810724C movs r0, 0x80 lsls r0, 23 str r0, [r1, 0xC] b _08107296 .align 2, 0 _08107244: .4byte gUnknown_02024C08 _08107248: .4byte gUnknown_020239F8 _0810724C: .4byte 0x02016800 _08107250: movs r0, 0x80 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _08107268 ldr r1, _08107264 movs r0, 0x80 lsls r0, 22 str r0, [r1, 0xC] b _08107296 .align 2, 0 _08107264: .4byte 0x02016800 _08107268: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08107280 ldr r1, _0810727C movs r0, 0x80 lsls r0, 24 str r0, [r1, 0xC] b _08107296 .align 2, 0 _0810727C: .4byte 0x02016800 _08107280: ldr r3, _0810729C ldr r2, _081072A0 ldr r0, _081072A4 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C adds r0, r2 ldr r0, [r0] str r0, [r3, 0xC] _08107296: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810729C: .4byte 0x02016800 _081072A0: .4byte gTrainers _081072A4: .4byte word_202FF5E thumb_func_end sub_810715C thumb_func_start sub_81072A8 sub_81072A8: @ 81072A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 bl sub_810745C ldr r1, _081072F4 ldr r0, [r1, 0xC] cmp r0, 0 beq _081072E2 adds r4, r1, 0 movs r5, 0 _081072C0: ldr r0, [r4, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081072D0 strb r5, [r4] bl sub_8107374 _081072D0: ldr r1, [r4, 0xC] lsrs r1, 1 str r1, [r4, 0xC] ldrb r0, [r4, 0x11] adds r0, 0x1 strb r0, [r4, 0x11] strb r5, [r4, 0x1] cmp r1, 0 bne _081072C0 _081072E2: ldr r7, _081072F4 ldrb r1, [r7, 0x10] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081072F8 movs r0, 0x4 b _08107368 .align 2, 0 _081072F4: .4byte 0x02016800 _081072F8: movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08107308 movs r0, 0x5 b _08107368 _08107308: movs r5, 0x1 mov r0, sp ldrb r1, [r7, 0x4] strb r1, [r0] add r0, sp, 0x4 strb r2, [r0] movs r3, 0x1 mov r8, r0 mov r4, sp mov r6, r8 adds r2, r7, 0x5 _0810731E: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bge _08107330 movs r5, 0x1 ldrb r0, [r2] strb r0, [r4] strb r3, [r6] _08107330: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bne _0810734E mov r0, sp adds r1, r0, r5 ldrb r0, [r2] strb r0, [r1] adds r1, r5, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r1, r6, r1 strb r3, [r1] _0810734E: adds r2, 0x1 adds r3, 0x1 cmp r3, 0x3 ble _0810731E bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 add r0, r8 ldrb r0, [r0] _08107368: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81072A8 thumb_func_start sub_8107374 sub_8107374: @ 8107374 push {r4-r7,lr} ldr r1, _081073D0 ldrb r0, [r1] adds r6, r1, 0 cmp r0, 0x2 beq _08107456 adds r4, r1, 0 ldr r7, _081073D4 _08107384: ldrb r0, [r4] cmp r0, 0x1 beq _081073E4 cmp r0, 0x1 bgt _0810744E cmp r0, 0 bne _0810744E ldr r1, _081073D8 ldrb r0, [r4, 0x11] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r7] ldr r5, _081073DC ldrb r3, [r4, 0x1] ldr r0, _081073E0 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 adds r0, r3, r2 adds r1, r5, 0 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _081073C6 lsls r0, r3, 1 adds r0, r2 adds r1, r5, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] _081073C6: strh r0, [r4, 0x2] ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0810744E .align 2, 0 _081073D0: .4byte 0x02016800 _081073D4: .4byte gUnknown_02039238 _081073D8: .4byte BattleAIs _081073DC: .4byte gBattleMons _081073E0: .4byte gUnknown_02024C07 _081073E4: ldrh r1, [r1, 0x2] cmp r1, 0 beq _08107400 ldr r1, _081073FC ldr r0, [r7] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 b _08107410 .align 2, 0 _081073FC: .4byte gUnknown_083F6144 _08107400: adds r0, r4, 0x4 ldrb r2, [r4, 0x1] adds r0, r2 strb r1, [r0] ldrb r1, [r4, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r4, 0x10] _08107410: ldr r1, _0810743C ldrb r2, [r1, 0x10] movs r0, 0x1 ands r0, r2 adds r6, r1, 0 cmp r0, 0 beq _0810744E ldrb r0, [r6, 0x1] adds r0, 0x1 strb r0, [r6, 0x1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _08107440 movs r0, 0x8 ands r0, r2 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08107440 strb r0, [r6] b _08107446 .align 2, 0 _0810743C: .4byte 0x02016800 _08107440: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _08107446: ldrb r1, [r4, 0x10] movs r0, 0xFE ands r0, r1 strb r0, [r4, 0x10] _0810744E: adds r1, r6, 0 ldrb r0, [r1] cmp r0, 0x2 bne _08107384 _08107456: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8107374 thumb_func_start sub_810745C sub_810745C: @ 810745C push {r4-r6,lr} movs r2, 0 ldr r3, _08107488 ldr r5, _0810748C ldr r6, _08107490 adds r4, r3, 0 _08107468: lsls r0, r2, 1 ldrb r1, [r4] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0 bne _08107494 ldrb r0, [r3] lsls r0, 1 adds r0, r6 ldrh r0, [r0] strh r0, [r1] b _0810749A .align 2, 0 _08107488: .4byte gUnknown_02024C08 _0810748C: .4byte 0x02016a00 _08107490: .4byte gUnknown_02024C34 _08107494: adds r2, 0x1 cmp r2, 0x7 ble _08107468 _0810749A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810745C thumb_func_start unref_sub_81074A0 unref_sub_81074A0: @ 81074A0 push {lr} lsls r0, 24 ldr r1, _081074C0 lsrs r0, 25 movs r2, 0x7 lsls r0, 4 adds r0, r1 adds r0, 0xE movs r1, 0 _081074B2: strh r1, [r0] subs r0, 0x2 subs r2, 0x1 cmp r2, 0 bge _081074B2 pop {r0} bx r0 .align 2, 0 _081074C0: .4byte 0x02016a00 thumb_func_end unref_sub_81074A0 thumb_func_start sub_81074C4 sub_81074C4: @ 81074C4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _081074EC adds r0, r4, 0 bl battle_get_per_side_status ldr r2, _081074F4 movs r1, 0x1 ands r1, r0 adds r2, 0x20 adds r1, r2 strb r5, [r1] _081074EC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081074F4: .4byte 0x02016a00 thumb_func_end sub_81074C4 thumb_func_start sub_81074F8 sub_81074F8: @ 81074F8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08107520 adds r0, r4, 0 bl battle_get_per_side_status ldr r2, _08107528 movs r1, 0x1 ands r1, r0 adds r2, 0x22 adds r1, r2 strb r5, [r1] _08107520: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08107528: .4byte 0x02016a00 thumb_func_end sub_81074F8 thumb_func_start sub_810752C sub_810752C: @ 810752C push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _08107560 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bcs _08107564 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107568 .align 2, 0 _08107560: .4byte gUnknown_02039238 _08107564: adds r0, r2, 0x6 str r0, [r3] _08107568: pop {r0} bx r0 thumb_func_end sub_810752C thumb_func_start sub_810756C sub_810756C: @ 810756C push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _081075A0 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bls _081075A4 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081075A8 .align 2, 0 _081075A0: .4byte gUnknown_02039238 _081075A4: adds r0, r2, 0x6 str r0, [r3] _081075A8: pop {r0} bx r0 thumb_func_end sub_810756C thumb_func_start sub_81075AC sub_81075AC: @ 81075AC push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _081075E0 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bne _081075E4 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081075E8 .align 2, 0 _081075E0: .4byte gUnknown_02039238 _081075E4: adds r0, r2, 0x6 str r0, [r3] _081075E8: pop {r0} bx r0 thumb_func_end sub_81075AC thumb_func_start sub_81075EC sub_81075EC: @ 81075EC push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _08107620 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 beq _08107624 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107628 .align 2, 0 _08107620: .4byte gUnknown_02039238 _08107624: adds r0, r2, 0x6 str r0, [r3] _08107628: pop {r0} bx r0 thumb_func_end sub_81075EC thumb_func_start sub_810762C sub_810762C: @ 810762C push {r4,r5,lr} ldr r2, _08107660 ldrb r1, [r2, 0x1] adds r3, r2, 0x4 adds r1, r3 ldr r4, _08107664 ldr r0, [r4] ldrb r0, [r0, 0x1] ldrb r5, [r1] adds r0, r5 strb r0, [r1] ldrb r0, [r2, 0x1] adds r1, r0, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _08107652 movs r0, 0 strb r0, [r1] _08107652: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08107660: .4byte 0x02016800 _08107664: .4byte gUnknown_02039238 thumb_func_end sub_810762C thumb_func_start sub_8107668 sub_8107668: @ 8107668 push {r4,lr} ldr r0, _0810767C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08107684 ldr r0, _08107680 b _08107686 .align 2, 0 _0810767C: .4byte gUnknown_02039238 _08107680: .4byte gUnknown_02024C07 _08107684: ldr r0, _081076BC _08107686: ldrb r1, [r0] ldr r2, _081076C0 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bcs _081076C4 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081076C8 .align 2, 0 _081076BC: .4byte gUnknown_02024C08 _081076C0: .4byte gBattleMons _081076C4: adds r0, r2, 0x7 str r0, [r4] _081076C8: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107668 thumb_func_start sub_81076D0 sub_81076D0: @ 81076D0 push {r4,lr} ldr r0, _081076E4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _081076EC ldr r0, _081076E8 b _081076EE .align 2, 0 _081076E4: .4byte gUnknown_02039238 _081076E8: .4byte gUnknown_02024C07 _081076EC: ldr r0, _08107724 _081076EE: ldrb r1, [r0] ldr r2, _08107728 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bls _0810772C ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107730 .align 2, 0 _08107724: .4byte gUnknown_02024C08 _08107728: .4byte gBattleMons _0810772C: adds r0, r2, 0x7 str r0, [r4] _08107730: pop {r4} pop {r0} bx r0 thumb_func_end sub_81076D0 thumb_func_start sub_8107738 sub_8107738: @ 8107738 push {r4,lr} ldr r0, _0810774C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08107754 ldr r0, _08107750 b _08107756 .align 2, 0 _0810774C: .4byte gUnknown_02039238 _08107750: .4byte gUnknown_02024C07 _08107754: ldr r0, _0810778C _08107756: ldrb r1, [r0] ldr r2, _08107790 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 bne _08107794 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107798 .align 2, 0 _0810778C: .4byte gUnknown_02024C08 _08107790: .4byte gBattleMons _08107794: adds r0, r2, 0x7 str r0, [r4] _08107798: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107738 thumb_func_start sub_81077A0 sub_81077A0: @ 81077A0 push {r4,lr} ldr r0, _081077B4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _081077BC ldr r0, _081077B8 b _081077BE .align 2, 0 _081077B4: .4byte gUnknown_02039238 _081077B8: .4byte gUnknown_02024C07 _081077BC: ldr r0, _081077F4 _081077BE: ldrb r1, [r0] ldr r2, _081077F8 movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1, 0x28] movs r0, 0x64 muls r0, r2 ldrh r1, [r1, 0x2C] bl __divsi3 ldr r2, [r4] ldrb r1, [r2, 0x2] cmp r0, r1 beq _081077FC ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107800 .align 2, 0 _081077F4: .4byte gUnknown_02024C08 _081077F8: .4byte gBattleMons _081077FC: adds r0, r2, 0x7 str r0, [r4] _08107800: pop {r4} pop {r0} bx r0 thumb_func_end sub_81077A0 thumb_func_start sub_8107808 sub_8107808: @ 8107808 push {r4,r5,lr} ldr r0, _0810781C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107824 ldr r0, _08107820 b _08107826 .align 2, 0 _0810781C: .4byte gUnknown_02039238 _08107820: .4byte gUnknown_02024C07 _08107824: ldr r0, _08107868 _08107826: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _0810786C movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _08107870 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107876 .align 2, 0 _08107868: .4byte gUnknown_02024C08 _0810786C: .4byte gBattleMons _08107870: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107876: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107808 thumb_func_start sub_810787C sub_810787C: @ 810787C push {r4,r5,lr} ldr r0, _08107890 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107898 ldr r0, _08107894 b _0810789A .align 2, 0 _08107890: .4byte gUnknown_02039238 _08107894: .4byte gUnknown_02024C07 _08107898: ldr r0, _081078DC _0810789A: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _081078E0 movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081078E4 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _081078EA .align 2, 0 _081078DC: .4byte gUnknown_02024C08 _081078E0: .4byte gBattleMons _081078E4: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _081078EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810787C thumb_func_start sub_81078F0 sub_81078F0: @ 81078F0 push {r4,r5,lr} ldr r0, _08107904 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _0810790C ldr r0, _08107908 b _0810790E .align 2, 0 _08107904: .4byte gUnknown_02039238 _08107908: .4byte gUnknown_02024C07 _0810790C: ldr r0, _08107950 _0810790E: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _08107954 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _08107958 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _0810795E .align 2, 0 _08107950: .4byte gUnknown_02024C08 _08107954: .4byte gBattleMons _08107958: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _0810795E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81078F0 thumb_func_start sub_8107964 sub_8107964: @ 8107964 push {r4,r5,lr} ldr r0, _08107978 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107980 ldr r0, _0810797C b _08107982 .align 2, 0 _08107978: .4byte gUnknown_02039238 _0810797C: .4byte gUnknown_02024C07 _08107980: ldr r0, _081079C4 _08107982: ldrb r4, [r0] ldr r3, [r5] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r2, r0 ldr r1, _081079C8 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081079CC ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _081079D2 .align 2, 0 _081079C4: .4byte gUnknown_02024C08 _081079C8: .4byte gBattleMons _081079CC: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _081079D2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107964 thumb_func_start sub_81079D8 sub_81079D8: @ 81079D8 push {r4,r5,lr} ldr r0, _081079EC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _081079F4 ldr r0, _081079F0 b _081079F6 .align 2, 0 _081079EC: .4byte gUnknown_02039238 _081079F0: .4byte gUnknown_02024C07 _081079F4: ldr r0, _08107A34 _081079F6: ldrb r4, [r0] ldr r3, [r5] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r2, _08107A38 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _08107A3C ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107A42 .align 2, 0 _08107A34: .4byte gUnknown_02024C08 _08107A38: .4byte gUnknown_02024C98 _08107A3C: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107A42: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81079D8 thumb_func_start sub_8107A48 sub_8107A48: @ 8107A48 push {r4,r5,lr} ldr r0, _08107A5C ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _08107A64 ldr r0, _08107A60 b _08107A66 .align 2, 0 _08107A5C: .4byte gUnknown_02039238 _08107A60: .4byte gUnknown_02024C07 _08107A64: ldr r0, _08107AA4 _08107A66: ldrb r4, [r0] ldr r3, [r5] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r2, _08107AA8 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 bne _08107AAC ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r5] b _08107AB2 .align 2, 0 _08107AA4: .4byte gUnknown_02024C08 _08107AA8: .4byte gUnknown_02024C98 _08107AAC: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _08107AB2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107A48 thumb_func_start sub_8107AB8 sub_8107AB8: @ 8107AB8 push {r4,lr} ldr r0, _08107AC8 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08107AD0 ldr r0, _08107ACC b _08107AD2 .align 2, 0 _08107AC8: .4byte gUnknown_02039238 _08107ACC: .4byte gUnknown_02024C07 _08107AD0: ldr r0, _08107B1C _08107AD2: ldrb r0, [r0] bl battle_get_per_side_status movs r2, 0x1 ands r2, r0 ldr r4, _08107B20 ldr r3, [r4] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r0, _08107B24 lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _08107B28 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107B2E .align 2, 0 _08107B1C: .4byte gUnknown_02024C08 _08107B20: .4byte gUnknown_02039238 _08107B24: .4byte gUnknown_02024C7A _08107B28: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _08107B2E: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107AB8 thumb_func_start sub_8107B34 sub_8107B34: @ 8107B34 push {r4,lr} ldr r0, _08107B44 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08107B4C ldr r0, _08107B48 b _08107B4E .align 2, 0 _08107B44: .4byte gUnknown_02039238 _08107B48: .4byte gUnknown_02024C07 _08107B4C: ldr r0, _08107B98 _08107B4E: ldrb r0, [r0] bl battle_get_per_side_status movs r2, 0x1 ands r2, r0 ldr r4, _08107B9C ldr r3, [r4] ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 ldr r0, _08107BA0 lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 bne _08107BA4 ldrb r1, [r3, 0x6] ldrb r0, [r3, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107BAA .align 2, 0 _08107B98: .4byte gUnknown_02024C08 _08107B9C: .4byte gUnknown_02039238 _08107BA0: .4byte gUnknown_02024C7A _08107BA4: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _08107BAA: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107B34 thumb_func_start sub_8107BB0 sub_8107BB0: @ 8107BB0 push {lr} ldr r0, _08107BD8 ldr r3, _08107BDC ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bcs _08107BE0 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107BE4 .align 2, 0 _08107BD8: .4byte 0x02016800 _08107BDC: .4byte gUnknown_02039238 _08107BE0: adds r0, r2, 0x6 str r0, [r3] _08107BE4: pop {r0} bx r0 thumb_func_end sub_8107BB0 thumb_func_start sub_8107BE8 sub_8107BE8: @ 8107BE8 push {lr} ldr r0, _08107C10 ldr r3, _08107C14 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bls _08107C18 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C1C .align 2, 0 _08107C10: .4byte 0x02016800 _08107C14: .4byte gUnknown_02039238 _08107C18: adds r0, r2, 0x6 str r0, [r3] _08107C1C: pop {r0} bx r0 thumb_func_end sub_8107BE8 thumb_func_start sub_8107C20 sub_8107C20: @ 8107C20 push {lr} ldr r0, _08107C48 ldr r3, _08107C4C ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08107C50 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C54 .align 2, 0 _08107C48: .4byte 0x02016800 _08107C4C: .4byte gUnknown_02039238 _08107C50: adds r0, r2, 0x6 str r0, [r3] _08107C54: pop {r0} bx r0 thumb_func_end sub_8107C20 thumb_func_start sub_8107C58 sub_8107C58: @ 8107C58 push {lr} ldr r0, _08107C80 ldr r3, _08107C84 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 beq _08107C88 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107C8C .align 2, 0 _08107C80: .4byte 0x02016800 _08107C84: .4byte gUnknown_02039238 _08107C88: adds r0, r2, 0x6 str r0, [r3] _08107C8C: pop {r0} bx r0 thumb_func_end sub_8107C58 thumb_func_start sub_8107C90 sub_8107C90: @ 8107C90 push {lr} ldr r3, _08107CCC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107CD0 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bcs _08107CD4 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107CDA .align 2, 0 _08107CCC: .4byte gUnknown_02039238 _08107CD0: .4byte 0x02016800 _08107CD4: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107CDA: pop {r0} bx r0 thumb_func_end sub_8107C90 thumb_func_start sub_8107CE0 sub_8107CE0: @ 8107CE0 push {lr} ldr r3, _08107D1C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107D20 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bls _08107D24 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107D2A .align 2, 0 _08107D1C: .4byte gUnknown_02039238 _08107D20: .4byte 0x02016800 _08107D24: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107D2A: pop {r0} bx r0 thumb_func_end sub_8107CE0 thumb_func_start sub_8107D30 sub_8107D30: @ 8107D30 push {lr} ldr r3, _08107D6C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107D70 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bne _08107D74 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107D7A .align 2, 0 _08107D6C: .4byte gUnknown_02039238 _08107D70: .4byte 0x02016800 _08107D74: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107D7A: pop {r0} bx r0 thumb_func_end sub_8107D30 thumb_func_start sub_8107D80 sub_8107D80: @ 8107D80 push {lr} ldr r3, _08107DBC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r0, _08107DC0 ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 beq _08107DC4 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107DCA .align 2, 0 _08107DBC: .4byte gUnknown_02039238 _08107DC0: .4byte 0x02016800 _08107DC4: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _08107DCA: pop {r0} bx r0 thumb_func_end sub_8107D80 thumb_func_start sub_8107DD0 sub_8107DD0: @ 8107DD0 push {lr} ldr r3, _08107E00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08107E04 ldrh r0, [r0, 0x2] cmp r0, r1 bne _08107E08 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107E0C .align 2, 0 _08107E00: .4byte gUnknown_02039238 _08107E04: .4byte 0x02016800 _08107E08: adds r0, r2, 0x7 str r0, [r3] _08107E0C: pop {r0} bx r0 thumb_func_end sub_8107DD0 thumb_func_start sub_8107E10 sub_8107E10: @ 8107E10 push {lr} ldr r3, _08107E40 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _08107E44 ldrh r0, [r0, 0x2] cmp r0, r1 beq _08107E48 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08107E4C .align 2, 0 _08107E40: .4byte gUnknown_02039238 _08107E44: .4byte 0x02016800 _08107E48: adds r0, r2, 0x7 str r0, [r3] _08107E4C: pop {r0} bx r0 thumb_func_end sub_8107E10 thumb_func_start sub_8107E50 sub_8107E50: @ 8107E50 push {r4,lr} ldr r2, _08107E98 ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrb r0, [r3] cmp r0, 0xFF beq _08107EA8 ldr r0, _08107E9C ldr r1, [r0, 0x8] adds r4, r2, 0 _08107E76: ldrb r0, [r3] cmp r1, r0 bne _08107EA0 ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107EAE .align 2, 0 _08107E98: .4byte gUnknown_02039238 _08107E9C: .4byte 0x02016800 _08107EA0: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _08107E76 _08107EA8: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _08107EAE: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107E50 thumb_func_start sub_8107EB4 sub_8107EB4: @ 8107EB4 push {r4,lr} ldr r2, _08107EEC ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrb r0, [r3] adds r4, r2, 0 cmp r0, 0xFF beq _08107EFC ldr r0, _08107EF0 ldr r2, [r0, 0x8] adds r1, r4, 0 _08107EDC: ldrb r0, [r3] cmp r2, r0 bne _08107EF4 ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _08107F14 .align 2, 0 _08107EEC: .4byte gUnknown_02039238 _08107EF0: .4byte 0x02016800 _08107EF4: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _08107EDC _08107EFC: ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] _08107F14: pop {r4} pop {r0} bx r0 thumb_func_end sub_8107EB4 thumb_func_start sub_8107F1C sub_8107F1C: @ 8107F1C push {r4,r5,lr} ldr r2, _08107F64 ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrh r0, [r3] ldr r5, _08107F68 cmp r0, r5 beq _08107F78 ldr r0, _08107F6C ldr r1, [r0, 0x8] adds r4, r2, 0 _08107F44: ldrh r0, [r3] cmp r1, r0 bne _08107F70 ldr r2, [r4] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08107F7E .align 2, 0 _08107F64: .4byte gUnknown_02039238 _08107F68: .4byte 0x0000ffff _08107F6C: .4byte 0x02016800 _08107F70: adds r3, 0x2 ldrh r0, [r3] cmp r0, r5 bne _08107F44 _08107F78: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _08107F7E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107F1C thumb_func_start sub_8107F84 sub_8107F84: @ 8107F84 push {r4,r5,lr} ldr r2, _08107FBC ldr r1, [r2] ldrb r3, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r3, r0 ldrh r0, [r3] ldr r4, _08107FC0 adds r5, r2, 0 cmp r0, r4 beq _08107FD0 ldr r0, _08107FC4 ldr r2, [r0, 0x8] adds r1, r5, 0 _08107FAE: ldrh r0, [r3] cmp r2, r0 bne _08107FC8 ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _08107FE8 .align 2, 0 _08107FBC: .4byte gUnknown_02039238 _08107FC0: .4byte 0x0000ffff _08107FC4: .4byte 0x02016800 _08107FC8: adds r3, 0x2 ldrh r0, [r3] cmp r0, r4 bne _08107FAE _08107FD0: ldr r2, [r5] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r1, r0 str r1, [r5] _08107FE8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107F84 thumb_func_start sub_8107FF0 sub_8107FF0: @ 8107FF0 push {r4,r5,lr} movs r3, 0 ldr r4, _08108030 ldr r1, _08108034 ldr r0, _08108038 ldrb r2, [r0] ldr r5, _0810803C movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08108006: ldrh r0, [r2] cmp r0, 0 beq _0810801A lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08108022 _0810801A: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _08108006 _08108022: cmp r3, 0x4 bne _08108040 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _08108058 .align 2, 0 _08108030: .4byte gUnknown_02039238 _08108034: .4byte gBattleMons _08108038: .4byte gUnknown_02024C07 _0810803C: .4byte gBattleMoves _08108040: ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] _08108058: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8107FF0 thumb_func_start sub_8108060 sub_8108060: @ 8108060 push {r4,r5,lr} movs r3, 0 ldr r4, _081080A0 ldr r1, _081080A4 ldr r0, _081080A8 ldrb r2, [r0] ldr r5, _081080AC movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08108076: ldrh r0, [r2] cmp r0, 0 beq _0810808A lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08108092 _0810808A: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _08108076 _08108092: cmp r3, 0x4 beq _081080B0 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _081080C8 .align 2, 0 _081080A0: .4byte gUnknown_02039238 _081080A4: .4byte gBattleMons _081080A8: .4byte gUnknown_02024C07 _081080AC: .4byte gBattleMoves _081080B0: ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] _081080C8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8108060 thumb_func_start sub_81080D0 sub_81080D0: @ 81080D0 ldr r1, _081080E4 ldr r0, _081080E8 ldrb r0, [r0, 0x13] str r0, [r1, 0x8] ldr r1, _081080EC ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081080E4: .4byte 0x02016800 _081080E8: .4byte gUnknown_030042E0 _081080EC: .4byte gUnknown_02039238 thumb_func_end sub_81080D0 thumb_func_start sub_81080F0 sub_81080F0: @ 81080F0 push {r4,lr} ldr r1, _08108108 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x4 bhi _081081B6 lsls r0, 2 ldr r1, _0810810C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08108108: .4byte gUnknown_02039238 _0810810C: .4byte _08108110 .align 2, 0 _08108110: .4byte _08108144 .4byte _08108124 .4byte _08108184 .4byte _08108164 .4byte _081081A4 _08108124: ldr r3, _08108138 ldr r2, _0810813C ldr r0, _08108140 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108138: .4byte 0x02016800 _0810813C: .4byte gBattleMons _08108140: .4byte gUnknown_02024C07 _08108144: ldr r3, _08108158 ldr r2, _0810815C ldr r0, _08108160 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108158: .4byte 0x02016800 _0810815C: .4byte gBattleMons _08108160: .4byte gUnknown_02024C08 _08108164: ldr r3, _08108178 ldr r2, _0810817C ldr r0, _08108180 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108178: .4byte 0x02016800 _0810817C: .4byte gBattleMons _08108180: .4byte gUnknown_02024C07 _08108184: ldr r3, _08108198 ldr r2, _0810819C ldr r0, _081081A0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _081081B4 .align 2, 0 _08108198: .4byte 0x02016800 _0810819C: .4byte gBattleMons _081081A0: .4byte gUnknown_02024C08 _081081A4: ldr r3, _081081C4 ldr r2, _081081C8 ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] _081081B4: str r0, [r3, 0x8] _081081B6: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081081C4: .4byte 0x02016800 _081081C8: .4byte gBattleMoves thumb_func_end sub_81080F0 thumb_func_start sub_81081CC sub_81081CC: @ 81081CC ldr r3, _081081E8 ldr r2, _081081EC ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] str r0, [r3, 0x8] ldr r1, _081081F0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081081E8: .4byte 0x02016800 _081081EC: .4byte gBattleMoves _081081F0: .4byte gUnknown_02039238 thumb_func_end sub_81081CC thumb_func_start sub_81081F4 sub_81081F4: @ 81081F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r3, 0 ldr r0, _08108328 ldrh r1, [r0] ldr r4, _0810832C ldr r6, _08108330 ldr r5, _08108334 cmp r1, r4 beq _0810822E ldrh r1, [r5, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r2, [r0] ldr r1, _08108328 _0810821E: ldrh r0, [r1] cmp r2, r0 beq _0810822E adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r4 bne _0810821E _0810822E: ldrh r0, [r5, 0x2] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x1] cmp r0, 0x1 bhi _08108240 b _081083B2 _08108240: lsls r0, r3, 1 ldr r1, _08108328 adds r0, r1 ldrh r3, [r0] ldr r0, _0810832C cmp r3, r0 beq _08108250 b _081083B2 _08108250: ldr r0, _08108338 movs r1, 0 strh r1, [r0] ldr r2, _0810833C adds r0, r5, r2 strb r1, [r0] adds r2, 0x3 adds r0, r5, r2 movs r2, 0x1 strb r2, [r0] ldr r0, _08108340 strb r1, [r0] ldr r0, _08108344 strb r2, [r0] movs r6, 0 mov r9, r3 ldr r0, _08108328 ldrh r0, [r0] str r0, [sp, 0x10] _08108276: movs r3, 0 ldr r5, _08108348 lsls r4, r6, 1 ldr r7, _0810834C lsls r1, r6, 2 mov r8, r1 adds r2, r6, 0x1 mov r10, r2 ldr r0, [sp, 0x10] cmp r0, r9 beq _081082BA ldr r2, _08108330 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r4, r0 adds r1, r5, 0 adds r1, 0xC adds r0, r1 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0] ldr r1, _08108328 _081082AA: ldrh r0, [r1] cmp r2, r0 beq _081082BA adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r9 bne _081082AA _081082BA: ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r4, r0 adds r1, r5, 0 adds r1, 0xC adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 beq _0810835C lsls r0, r3, 1 ldr r2, _08108328 adds r0, r2 ldrh r0, [r0] cmp r0, r9 bne _0810835C ldr r0, _08108330 ldrh r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 bls _0810835C ldr r5, _08108350 strh r2, [r5] ldrb r0, [r7] ldr r4, _08108354 ldrb r1, [r4] bl sub_801CAF8 ldrh r0, [r5] ldrb r1, [r7] ldrb r2, [r4] bl move_effectiveness_something mov r4, sp add r4, r8 ldr r2, _08108358 ldr r0, _08108334 adds r0, 0x18 adds r0, r6, r0 ldrb r1, [r0] ldr r0, [r2] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08108364 movs r0, 0x1 str r0, [r4] b _08108364 .align 2, 0 _08108328: .4byte gUnknown_083F62BC _0810832C: .4byte 0x0000ffff _08108330: .4byte gBattleMoves _08108334: .4byte 0x02016800 _08108338: .4byte gUnknown_02024DEC _0810833C: .4byte 0xfffff81c _08108340: .4byte gUnknown_02024C68 _08108344: .4byte gCritMultiplier _08108348: .4byte gBattleMons _0810834C: .4byte gUnknown_02024C07 _08108350: .4byte gUnknown_02024BE6 _08108354: .4byte gUnknown_02024C08 _08108358: .4byte gUnknown_02024BEC _0810835C: mov r1, sp add r1, r8 movs r0, 0 str r0, [r1] _08108364: mov r6, r10 cmp r6, 0x3 ble _08108276 movs r6, 0 ldr r1, _081083A4 ldrb r0, [r1, 0x1] lsls r0, 2 add r0, sp ldr r2, [sp] ldr r0, [r0] adds r5, r1, 0 ldr r4, _081083A8 cmp r2, r0 bgt _0810839A adds r3, r5, 0 mov r2, sp _08108384: adds r2, 0x4 adds r6, 0x1 cmp r6, 0x3 bgt _0810839A ldrb r0, [r3, 0x1] lsls r0, 2 add r0, sp ldr r1, [r2] ldr r0, [r0] cmp r1, r0 ble _08108384 _0810839A: cmp r6, 0x4 bne _081083AC movs r0, 0x2 str r0, [r5, 0x8] b _081083B8 .align 2, 0 _081083A4: .4byte 0x02016800 _081083A8: .4byte gUnknown_02039238 _081083AC: movs r0, 0x1 str r0, [r5, 0x8] b _081083B8 _081083B2: movs r0, 0 str r0, [r5, 0x8] ldr r4, _081083D0 _081083B8: ldr r0, [r4] adds r0, 0x1 str r0, [r4] 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 _081083D0: .4byte gUnknown_02039238 thumb_func_end sub_81081F4 thumb_func_start sub_81083D4 sub_81083D4: @ 81083D4 push {lr} ldr r0, _081083EC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r3, r0, 0 cmp r1, 0x1 bne _081083FC ldr r2, _081083F0 ldr r1, _081083F4 ldr r0, _081083F8 b _08108402 .align 2, 0 _081083EC: .4byte gUnknown_02039238 _081083F0: .4byte 0x02016800 _081083F4: .4byte gUnknown_02024C34 _081083F8: .4byte gUnknown_02024C07 _081083FC: ldr r2, _08108418 ldr r1, _0810841C ldr r0, _08108420 _08108402: ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] str r0, [r2, 0x8] ldr r0, [r3] adds r0, 0x2 str r0, [r3] pop {r0} bx r0 .align 2, 0 _08108418: .4byte 0x02016800 _0810841C: .4byte gUnknown_02024C34 _08108420: .4byte gUnknown_02024C08 thumb_func_end sub_81083D4 thumb_func_start sub_8108424 sub_8108424: @ 8108424 push {lr} ldr r3, _0810844C ldr r2, [r3] ldrb r0, [r2, 0x1] ldr r1, _08108450 ldr r1, [r1, 0x8] cmp r0, r1 bne _08108454 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108458 .align 2, 0 _0810844C: .4byte gUnknown_02039238 _08108450: .4byte 0x02016800 _08108454: adds r0, r2, 0x6 str r0, [r3] _08108458: pop {r0} bx r0 thumb_func_end sub_8108424 thumb_func_start sub_810845C sub_810845C: @ 810845C push {lr} ldr r3, _08108484 ldr r2, [r3] ldrb r0, [r2, 0x1] ldr r1, _08108488 ldr r1, [r1, 0x8] cmp r0, r1 beq _0810848C ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108490 .align 2, 0 _08108484: .4byte gUnknown_02039238 _08108488: .4byte 0x02016800 _0810848C: adds r0, r2, 0x6 str r0, [r3] _08108490: pop {r0} bx r0 thumb_func_end sub_810845C thumb_func_start tai28_unk tai28_unk: @ 8108494 push {lr} ldr r0, _081084CC ldrb r0, [r0] ldr r1, _081084D0 ldrb r1, [r1] movs r2, 0x1 bl b_first_side ldr r3, _081084D4 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 bne _081084D8 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081084DC .align 2, 0 _081084CC: .4byte gUnknown_02024C07 _081084D0: .4byte gUnknown_02024C08 _081084D4: .4byte gUnknown_02039238 _081084D8: adds r0, r2, 0x6 str r0, [r3] _081084DC: pop {r0} bx r0 thumb_func_end tai28_unk thumb_func_start tai29_unk tai29_unk: @ 81084E0 push {lr} ldr r0, _08108518 ldrb r0, [r0] ldr r1, _0810851C ldrb r1, [r1] movs r2, 0x1 bl b_first_side ldr r3, _08108520 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 beq _08108524 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108528 .align 2, 0 _08108518: .4byte gUnknown_02024C07 _0810851C: .4byte gUnknown_02024C08 _08108520: .4byte gUnknown_02039238 _08108524: adds r0, r2, 0x6 str r0, [r3] _08108528: pop {r0} bx r0 thumb_func_end tai29_unk thumb_func_start nullsub_25 nullsub_25: @ 810852C bx lr thumb_func_end nullsub_25 thumb_func_start nullsub_26 nullsub_26: @ 8108530 bx lr thumb_func_end nullsub_26 thumb_func_start tai2C_unk tai2C_unk: @ 8108534 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r1, _08108550 movs r0, 0 str r0, [r1, 0x8] ldr r0, _08108554 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _0810855C ldr r0, _08108558 b _0810855E .align 2, 0 _08108550: .4byte 0x02016800 _08108554: .4byte gUnknown_02039238 _08108558: .4byte gUnknown_02024C07 _0810855C: ldr r0, _081085A8 _0810855E: ldrb r5, [r0] adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, _081085AC mov r9, r1 cmp r0, 0 bne _08108574 ldr r0, _081085B0 mov r9, r0 _08108574: ldr r0, _081085B4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081085BC ldr r4, _081085B8 lsls r0, r5, 1 adds r0, r4 ldrb r0, [r0] mov r8, r0 adds r0, r5, 0 bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrb r6, [r0] b _081085C6 .align 2, 0 _081085A8: .4byte gUnknown_02024C08 _081085AC: .4byte gEnemyParty _081085B0: .4byte gPlayerParty _081085B4: .4byte gUnknown_020239F8 _081085B8: .4byte gUnknown_02024A6A _081085BC: ldr r1, _08108624 lsls r0, r5, 1 adds r0, r1 ldrb r6, [r0] mov r8, r6 _081085C6: movs r5, 0 ldr r7, _08108628 _081085CA: cmp r5, r8 beq _08108608 cmp r5, r6 beq _08108608 movs r0, 0x64 muls r0, r5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08108608 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08108608 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08108608 ldr r0, [r7, 0x8] adds r0, 0x1 str r0, [r7, 0x8] _08108608: adds r5, 0x1 cmp r5, 0x5 ble _081085CA ldr r1, _0810862C ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108624: .4byte gUnknown_02024A6A _08108628: .4byte 0x02016800 _0810862C: .4byte gUnknown_02039238 thumb_func_end tai2C_unk thumb_func_start sub_8108630 sub_8108630: @ 8108630 ldr r1, _08108640 ldrh r0, [r1, 0x2] str r0, [r1, 0x8] ldr r1, _08108644 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08108640: .4byte 0x02016800 _08108644: .4byte gUnknown_02039238 thumb_func_end sub_8108630 thumb_func_start sub_8108648 sub_8108648: @ 8108648 ldr r3, _08108664 ldr r2, _08108668 ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] str r0, [r3, 0x8] ldr r1, _0810866C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08108664: .4byte 0x02016800 _08108668: .4byte gBattleMoves _0810866C: .4byte gUnknown_02039238 thumb_func_end sub_8108648 thumb_func_start sub_8108670 sub_8108670: @ 8108670 push {r4-r7,lr} ldr r0, _08108680 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08108688 ldr r0, _08108684 b _0810868A .align 2, 0 _08108680: .4byte gUnknown_02039238 _08108684: .4byte gUnknown_02024C07 _08108688: ldr r0, _081086BC _0810868A: ldrb r4, [r0] adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08108774 adds r0, r4, 0 bl battle_get_per_side_status movs r7, 0x1 adds r1, r7, 0 ands r1, r0 ldr r6, _081086C0 adds r0, r6, 0 adds r0, 0x20 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0 beq _081086C8 ldr r0, _081086C4 adds r1, r6, r0 ldrb r0, [r3] str r0, [r1, 0x8] b _08108784 .align 2, 0 _081086BC: .4byte gUnknown_02024C08 _081086C0: .4byte 0x02016a00 _081086C4: .4byte 0xfffffe00 _081086C8: ldr r1, _081086F4 movs r0, 0x58 muls r0, r4 adds r5, r0, r1 adds r0, r5, 0 adds r0, 0x20 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x17 beq _081086E4 cmp r0, 0x2A beq _081086E4 cmp r0, 0x47 bne _081086FC _081086E4: ldr r1, _081086F8 movs r0, 0x58 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] str r0, [r1, 0x8] b _08108784 .align 2, 0 _081086F4: .4byte gBattleMons _081086F8: .4byte 0x02016800 _081086FC: ldr r4, _08108734 ldrh r0, [r5] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r1, r4 ldrb r0, [r3, 0x16] cmp r0, 0 beq _08108764 ldrb r0, [r3, 0x17] cmp r0, 0 beq _08108754 bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _0810873C ldr r0, _08108738 adds r2, r6, r0 ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x16] b _08108782 .align 2, 0 _08108734: .4byte gBaseStats _08108738: .4byte 0xfffffe00 _0810873C: ldr r0, _08108750 adds r2, r6, r0 ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x17] b _08108782 .align 2, 0 _08108750: .4byte 0xfffffe00 _08108754: ldr r0, _08108760 adds r1, r6, r0 ldrb r0, [r3, 0x16] str r0, [r1, 0x8] b _08108784 .align 2, 0 _08108760: .4byte 0xfffffe00 _08108764: ldr r0, _08108770 adds r1, r6, r0 ldrb r0, [r3, 0x17] str r0, [r1, 0x8] b _08108784 .align 2, 0 _08108770: .4byte 0xfffffe00 _08108774: ldr r2, _08108794 ldr r1, _08108798 movs r0, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] _08108782: str r0, [r2, 0x8] _08108784: ldr r1, _0810879C ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108794: .4byte 0x02016800 _08108798: .4byte gBattleMons _0810879C: .4byte gUnknown_02039238 thumb_func_end sub_8108670 thumb_func_start tai30_unk tai30_unk: @ 81087A0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0810885C movs r2, 0 strh r2, [r0] ldr r1, _08108860 ldr r3, _08108864 adds r0, r1, r3 movs r4, 0 strb r2, [r0] adds r3, 0x3 adds r0, r1, r3 movs r3, 0x1 strb r3, [r0] ldr r0, _08108868 strb r2, [r0] ldr r0, _0810886C strb r3, [r0] movs r0, 0xB4 lsls r0, 9 adds r1, r0 str r4, [r1, 0x8] movs r5, 0 ldr r4, _08108870 ldr r7, _08108874 ldr r3, _08108878 mov r8, r3 ldr r6, _0810887C _081087DA: movs r0, 0x28 str r0, [r4] lsls r1, r5, 1 ldrb r2, [r6] movs r0, 0x58 muls r0, r2 adds r1, r0 add r1, r8 ldrh r0, [r1] strh r0, [r7] lsls r0, 16 cmp r0, 0 beq _08108844 ldrh r0, [r7] ldrb r1, [r6] ldr r2, _08108880 ldrb r2, [r2] bl move_effectiveness_something ldr r0, [r4] cmp r0, 0x78 bne _0810880A movs r0, 0x50 str r0, [r4] _0810880A: ldr r0, [r4] cmp r0, 0xF0 bne _08108814 movs r0, 0xA0 str r0, [r4] _08108814: ldr r0, [r4] cmp r0, 0x1E bne _0810881E movs r0, 0x14 str r0, [r4] _0810881E: ldr r0, [r4] cmp r0, 0xF bne _08108828 movs r0, 0xA str r0, [r4] _08108828: ldr r0, _08108868 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08108838 movs r0, 0 str r0, [r4] _08108838: ldr r2, _08108884 ldr r0, [r2, 0x8] ldr r1, [r4] cmp r0, r1 bcs _08108844 str r1, [r2, 0x8] _08108844: adds r5, 0x1 cmp r5, 0x3 ble _081087DA ldr r1, _08108888 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810885C: .4byte gUnknown_02024DEC _08108860: .4byte 0x02000000 _08108864: .4byte 0x0001601c _08108868: .4byte gUnknown_02024C68 _0810886C: .4byte gCritMultiplier _08108870: .4byte gUnknown_02024BEC _08108874: .4byte gUnknown_02024BE6 _08108878: .4byte gUnknown_02024A8C _0810887C: .4byte gUnknown_02024C07 _08108880: .4byte gUnknown_02024C08 _08108884: .4byte 0x02016800 _08108888: .4byte gUnknown_02039238 thumb_func_end tai30_unk thumb_func_start dp15_simulate_damage_bonus_jump_if_eq dp15_simulate_damage_bonus_jump_if_eq: @ 810888C push {r4,r5,lr} ldr r0, _08108928 movs r1, 0 strh r1, [r0] ldr r2, _0810892C ldr r3, _08108930 adds r0, r2, r3 strb r1, [r0] adds r3, 0x3 adds r0, r2, r3 movs r3, 0x1 strb r3, [r0] ldr r5, _08108934 strb r1, [r5] ldr r0, _08108938 strb r3, [r0] ldr r4, _0810893C movs r0, 0x28 str r0, [r4] ldr r1, _08108940 movs r0, 0xB4 lsls r0, 9 adds r2, r0 ldrh r0, [r2, 0x2] strh r0, [r1] ldrh r0, [r1] ldr r1, _08108944 ldrb r1, [r1] ldr r2, _08108948 ldrb r2, [r2] bl move_effectiveness_something ldr r0, [r4] cmp r0, 0x78 bne _081088D6 movs r0, 0x50 str r0, [r4] _081088D6: ldr r0, [r4] cmp r0, 0xF0 bne _081088E0 movs r0, 0xA0 str r0, [r4] _081088E0: ldr r0, [r4] cmp r0, 0x1E bne _081088EA movs r0, 0x14 str r0, [r4] _081088EA: ldr r0, [r4] cmp r0, 0xF bne _081088F4 movs r0, 0xA str r0, [r4] _081088F4: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08108902 movs r0, 0 str r0, [r4] _08108902: ldrb r0, [r4] ldr r3, _0810894C ldr r2, [r3] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08108950 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108954 .align 2, 0 _08108928: .4byte gUnknown_02024DEC _0810892C: .4byte 0x02000000 _08108930: .4byte 0x0001601c _08108934: .4byte gUnknown_02024C68 _08108938: .4byte gCritMultiplier _0810893C: .4byte gUnknown_02024BEC _08108940: .4byte gUnknown_02024BE6 _08108944: .4byte gUnknown_02024C07 _08108948: .4byte gUnknown_02024C08 _0810894C: .4byte gUnknown_02039238 _08108950: adds r0, r2, 0x6 str r0, [r3] _08108954: pop {r4,r5} pop {r0} bx r0 thumb_func_end dp15_simulate_damage_bonus_jump_if_eq thumb_func_start nullsub_71 nullsub_71: @ 810895C bx lr thumb_func_end nullsub_71 thumb_func_start nullsub_90 nullsub_90: @ 8108960 bx lr thumb_func_end nullsub_90 thumb_func_start sub_8108964 sub_8108964: @ 8108964 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0810897C ldr r1, [r0] ldrb r1, [r1, 0x1] cmp r1, 0x1 bne _081089A4 ldr r1, _08108980 b _081089A6 .align 2, 0 _0810897C: .4byte gUnknown_02039238 _08108980: .4byte gEnemyParty _08108984: ldr r3, _081089A0 ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108A12 .align 2, 0 _081089A0: .4byte gUnknown_02039238 _081089A4: ldr r1, _08108A20 _081089A6: mov r9, r1 ldr r1, [r0] ldrb r7, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r7, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r7, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r7, r0 movs r0, 0 mov r8, r0 movs r1, 0xCE lsls r1, 1 mov r10, r1 _081089C8: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r9 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl GetMonData cmp r5, 0 beq _08108A00 cmp r5, r10 beq _08108A00 cmp r6, 0 beq _08108A00 cmp r0, r7 beq _08108984 _08108A00: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _081089C8 ldr r1, _08108A24 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08108A12: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108A20: .4byte gPlayerParty _08108A24: .4byte gUnknown_02039238 thumb_func_end sub_8108964 thumb_func_start sub_8108A28 sub_8108A28: @ 8108A28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08108A44 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 cmp r1, 0x1 bne _08108A4C ldr r0, _08108A48 mov r10, r0 b _08108A50 .align 2, 0 _08108A44: .4byte gUnknown_02039238 _08108A48: .4byte gEnemyParty _08108A4C: ldr r1, _08108AE4 mov r10, r1 _08108A50: ldr r1, [r2] ldrb r7, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r7, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r7, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r7, r0 movs r0, 0 mov r8, r0 mov r9, r2 _08108A6C: movs r0, 0x64 mov r4, r8 muls r4, r0 add r4, r10 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl GetMonData cmp r5, 0 beq _08108AB0 movs r1, 0xCE lsls r1, 1 cmp r5, r1 beq _08108AB0 cmp r6, 0 beq _08108AB0 cmp r0, r7 bne _08108AB0 mov r1, r9 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08108AB0: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _08108A6C ldr r3, _08108AE8 ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x8] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x9] lsls r0, 24 orrs r1, r0 str r1, [r3] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108AE4: .4byte gPlayerParty _08108AE8: .4byte gUnknown_02039238 thumb_func_end sub_8108A28 thumb_func_start sub_8108AEC sub_8108AEC: @ 8108AEC push {lr} ldr r2, _08108B3C ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08108B00 ldr r1, _08108B40 movs r0, 0x1 str r0, [r1, 0x8] _08108B00: ldrh r2, [r2] movs r0, 0x18 ands r0, r2 adds r3, r2, 0 cmp r0, 0 beq _08108B12 ldr r1, _08108B40 movs r0, 0x2 str r0, [r1, 0x8] _08108B12: movs r0, 0x60 ands r0, r3 cmp r0, 0 beq _08108B20 ldr r1, _08108B40 movs r0, 0 str r0, [r1, 0x8] _08108B20: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08108B2E ldr r1, _08108B40 movs r0, 0x3 str r0, [r1, 0x8] _08108B2E: ldr r1, _08108B44 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08108B3C: .4byte word_2024DB8 _08108B40: .4byte 0x02016800 _08108B44: .4byte gUnknown_02039238 thumb_func_end sub_8108AEC thumb_func_start sub_8108B48 sub_8108B48: @ 8108B48 push {lr} ldr r2, _08108B7C ldr r0, _08108B80 ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _08108B84 ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 bne _08108B88 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108B8C .align 2, 0 _08108B7C: .4byte gBattleMoves _08108B80: .4byte 0x02016800 _08108B84: .4byte gUnknown_02039238 _08108B88: adds r0, r2, 0x6 str r0, [r3] _08108B8C: pop {r0} bx r0 thumb_func_end sub_8108B48 thumb_func_start sub_8108B90 sub_8108B90: @ 8108B90 push {lr} ldr r2, _08108BC4 ldr r0, _08108BC8 ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _08108BCC ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 beq _08108BD0 ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108BD4 .align 2, 0 _08108BC4: .4byte gBattleMoves _08108BC8: .4byte 0x02016800 _08108BCC: .4byte gUnknown_02039238 _08108BD0: adds r0, r2, 0x6 str r0, [r3] _08108BD4: pop {r0} bx r0 thumb_func_end sub_8108B90 thumb_func_start sub_8108BD8 sub_8108BD8: @ 8108BD8 push {r4,lr} ldr r0, _08108BEC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108BF4 ldr r0, _08108BF0 b _08108BF6 .align 2, 0 _08108BEC: .4byte gUnknown_02039238 _08108BF0: .4byte gUnknown_02024C07 _08108BF4: ldr r0, _08108C2C _08108BF6: ldrb r3, [r0] ldr r1, _08108C30 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 bge _08108C34 ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108C3A .align 2, 0 _08108C2C: .4byte gUnknown_02024C08 _08108C30: .4byte gBattleMons _08108C34: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108C3A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108BD8 thumb_func_start sub_8108C40 sub_8108C40: @ 8108C40 push {r4,lr} ldr r0, _08108C54 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108C5C ldr r0, _08108C58 b _08108C5E .align 2, 0 _08108C54: .4byte gUnknown_02039238 _08108C58: .4byte gUnknown_02024C07 _08108C5C: ldr r0, _08108C94 _08108C5E: ldrb r3, [r0] ldr r1, _08108C98 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 ble _08108C9C ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108CA2 .align 2, 0 _08108C94: .4byte gUnknown_02024C08 _08108C98: .4byte gBattleMons _08108C9C: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108CA2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108C40 thumb_func_start sub_8108CA8 sub_8108CA8: @ 8108CA8 push {r4,lr} ldr r0, _08108CBC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108CC4 ldr r0, _08108CC0 b _08108CC6 .align 2, 0 _08108CBC: .4byte gUnknown_02039238 _08108CC0: .4byte gUnknown_02024C07 _08108CC4: ldr r0, _08108CFC _08108CC6: ldrb r3, [r0] ldr r1, _08108D00 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 bne _08108D04 ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108D0A .align 2, 0 _08108CFC: .4byte gUnknown_02024C08 _08108D00: .4byte gBattleMons _08108D04: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108D0A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108CA8 thumb_func_start sub_8108D10 sub_8108D10: @ 8108D10 push {r4,lr} ldr r0, _08108D24 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08108D2C ldr r0, _08108D28 b _08108D2E .align 2, 0 _08108D24: .4byte gUnknown_02039238 _08108D28: .4byte gUnknown_02024C07 _08108D2C: ldr r0, _08108D64 _08108D2E: ldrb r3, [r0] ldr r1, _08108D68 ldr r2, [r4] movs r0, 0x58 muls r0, r3 ldrb r3, [r2, 0x2] adds r0, r3 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrb r1, [r2, 0x3] cmp r0, r1 beq _08108D6C ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08108D72 .align 2, 0 _08108D64: .4byte gUnknown_02024C08 _08108D68: .4byte gBattleMons _08108D6C: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _08108D72: pop {r4} pop {r0} bx r0 thumb_func_end sub_8108D10 thumb_func_start tai3D_unk tai3D_unk: @ 8108D78 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _08108E1C ldr r6, _08108E20 ldrh r1, [r6, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _08108E4C ldr r0, _08108E24 movs r1, 0 strh r1, [r0] ldr r2, _08108E28 adds r0, r6, r2 strb r1, [r0] adds r2, 0x3 adds r0, r6, r2 movs r2, 0x1 mov r8, r2 mov r2, r8 strb r2, [r0] ldr r0, _08108E2C strb r1, [r0] ldr r0, _08108E30 strb r2, [r0] ldr r5, _08108E34 ldrh r0, [r6, 0x2] strh r0, [r5] ldr r4, _08108E38 ldrb r0, [r4] ldr r7, _08108E3C ldrb r1, [r7] bl sub_801CAF8 ldrh r0, [r5] ldrb r1, [r4] ldrb r2, [r7] bl move_effectiveness_something ldr r4, _08108E40 adds r0, r6, 0 adds r0, 0x18 ldrb r6, [r6, 0x1] adds r0, r6 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08108DEE mov r0, r8 str r0, [r4] _08108DEE: ldr r2, _08108E44 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x28] ldr r0, [r4] cmp r1, r0 bgt _08108E4C ldr r3, _08108E48 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108E54 .align 2, 0 _08108E1C: .4byte gBattleMoves _08108E20: .4byte 0x02016800 _08108E24: .4byte gUnknown_02024DEC _08108E28: .4byte 0xfffff81c _08108E2C: .4byte gUnknown_02024C68 _08108E30: .4byte gCritMultiplier _08108E34: .4byte gUnknown_02024BE6 _08108E38: .4byte gUnknown_02024C07 _08108E3C: .4byte gUnknown_02024C08 _08108E40: .4byte gUnknown_02024BEC _08108E44: .4byte gBattleMons _08108E48: .4byte gUnknown_02039238 _08108E4C: ldr r1, _08108E60 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08108E54: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108E60: .4byte gUnknown_02039238 thumb_func_end tai3D_unk thumb_func_start dp15_determine_move_damage_jump_if_not_fatal dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64 push {r4-r7,lr} ldr r2, _08108EF8 ldr r7, _08108EFC ldrh r1, [r7, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _08108F28 ldr r0, _08108F00 movs r1, 0 strh r1, [r0] ldr r2, _08108F04 adds r0, r7, r2 strb r1, [r0] adds r2, 0x3 adds r0, r7, r2 movs r2, 0x1 strb r2, [r0] ldr r0, _08108F08 strb r1, [r0] ldr r0, _08108F0C strb r2, [r0] ldr r6, _08108F10 ldrh r0, [r7, 0x2] strh r0, [r6] ldr r4, _08108F14 ldrb r0, [r4] ldr r5, _08108F18 ldrb r1, [r5] bl sub_801CAF8 ldrh r0, [r6] ldrb r1, [r4] ldrb r2, [r5] bl move_effectiveness_something ldr r4, _08108F1C adds r0, r7, 0 adds r0, 0x18 ldrb r7, [r7, 0x1] adds r0, r7 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] ldr r3, _08108F20 ldrb r2, [r5] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r1, [r1, 0x28] cmp r1, r0 ble _08108F28 ldr r3, _08108F24 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08108F30 .align 2, 0 _08108EF8: .4byte gBattleMoves _08108EFC: .4byte 0x02016800 _08108F00: .4byte gUnknown_02024DEC _08108F04: .4byte 0xfffff81c _08108F08: .4byte gUnknown_02024C68 _08108F0C: .4byte gCritMultiplier _08108F10: .4byte gUnknown_02024BE6 _08108F14: .4byte gUnknown_02024C07 _08108F18: .4byte gUnknown_02024C08 _08108F1C: .4byte gUnknown_02024BEC _08108F20: .4byte gBattleMons _08108F24: .4byte gUnknown_02039238 _08108F28: ldr r1, _08108F38 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08108F30: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08108F38: .4byte gUnknown_02039238 thumb_func_end dp15_determine_move_damage_jump_if_not_fatal thumb_func_start tai40_unk tai40_unk: @ 8108F3C push {r4-r7,lr} ldr r1, _08108F58 ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08108F64 cmp r0, 0x1 bgt _08108F5C cmp r0, 0 beq _08108FA8 b _08109008 .align 2, 0 _08108F58: .4byte gUnknown_02039238 _08108F5C: cmp r0, 0x2 beq _08108FA8 cmp r0, 0x3 bne _08109008 _08108F64: movs r3, 0 ldr r2, _08108FA0 ldr r5, _08108FA4 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _08108F9A adds r7, r5, 0 movs r6, 0x58 adds r5, r2, 0 adds r2, r1, 0 _08108F84: adds r3, 0x1 cmp r3, 0x3 bgt _08108F9A lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r5 ldrh r0, [r1] cmp r0, r2 bne _08108F84 _08108F9A: cmp r3, 0x4 beq _08108FDE b _08108FF0 .align 2, 0 _08108FA0: .4byte gBattleMons _08108FA4: .4byte gUnknown_02024C07 _08108FA8: movs r3, 0 ldr r5, _08108FE8 ldr r1, _08108FEC ldrb r0, [r1] lsrs r0, 1 lsls r0, 4 adds r0, r5 ldrh r0, [r0] ldrh r2, [r6] cmp r0, r2 beq _08108FDA adds r6, r5, 0 adds r5, r1, 0 _08108FC2: adds r3, 0x1 cmp r3, 0x7 bgt _08108FDA lsls r0, r3, 1 ldrb r1, [r5] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r0, r6 ldrh r0, [r0] cmp r0, r2 bne _08108FC2 _08108FDA: cmp r3, 0x8 bne _08108FF0 _08108FDE: ldr r0, [r4] adds r0, 0x8 str r0, [r4] b _08109008 .align 2, 0 _08108FE8: .4byte 0x02016a00 _08108FEC: .4byte gUnknown_02024C08 _08108FF0: ldr r2, [r4] ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] _08109008: pop {r4-r7} pop {r0} bx r0 thumb_func_end tai40_unk thumb_func_start sub_8109010 sub_8109010: @ 8109010 push {r4-r7,lr} ldr r1, _0810902C ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08109038 cmp r0, 0x1 bgt _08109030 cmp r0, 0 beq _0810907C b _081090DC .align 2, 0 _0810902C: .4byte gUnknown_02039238 _08109030: cmp r0, 0x2 beq _0810907C cmp r0, 0x3 bne _081090DC _08109038: movs r3, 0 ldr r2, _08109074 ldr r5, _08109078 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _0810906E adds r7, r5, 0 movs r6, 0x58 adds r5, r2, 0 adds r2, r1, 0 _08109058: adds r3, 0x1 cmp r3, 0x3 bgt _0810906E lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r5 ldrh r0, [r1] cmp r0, r2 bne _08109058 _0810906E: cmp r3, 0x4 bne _081090B2 b _081090C4 .align 2, 0 _08109074: .4byte gBattleMons _08109078: .4byte gUnknown_02024C07 _0810907C: movs r3, 0 ldr r5, _081090BC ldr r1, _081090C0 ldrb r0, [r1] lsrs r0, 1 lsls r0, 4 adds r0, r5 ldrh r0, [r0] ldrh r2, [r6] cmp r0, r2 beq _081090AE adds r6, r5, 0 adds r5, r1, 0 _08109096: adds r3, 0x1 cmp r3, 0x7 bgt _081090AE lsls r0, r3, 1 ldrb r1, [r5] lsrs r1, 1 lsls r1, 4 adds r0, r1 adds r0, r6 ldrh r0, [r0] cmp r0, r2 bne _08109096 _081090AE: cmp r3, 0x8 beq _081090C4 _081090B2: ldr r0, [r4] adds r0, 0x8 str r0, [r4] b _081090DC .align 2, 0 _081090BC: .4byte 0x02016a00 _081090C0: .4byte gUnknown_02024C08 _081090C4: ldr r2, [r4] ldrb r1, [r2, 0x4] ldrb r0, [r2, 0x5] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 24 orrs r1, r0 str r1, [r4] _081090DC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8109010 thumb_func_start sub_81090E4 sub_81090E4: @ 81090E4 push {r4-r7,lr} ldr r1, _081090FC ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _08109108 cmp r0, 0x1 bgt _08109100 cmp r0, 0 beq _0810915C b _081091B8 .align 2, 0 _081090FC: .4byte gUnknown_02039238 _08109100: cmp r0, 0x2 beq _0810915C cmp r0, 0x3 bne _081091B8 _08109108: movs r3, 0 ldr r1, _0810914C ldr r0, _08109150 ldrb r2, [r0] ldr r6, _08109154 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r5, _08109158 _0810911C: ldrh r0, [r2] cmp r0, 0 beq _08109136 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, [r5] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810913E _08109136: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0810911C _0810913E: cmp r3, 0x4 bne _081091A0 ldr r0, [r4] adds r0, 0x7 str r0, [r4] b _081091B8 .align 2, 0 _0810914C: .4byte gBattleMons _08109150: .4byte gUnknown_02024C07 _08109154: .4byte gBattleMoves _08109158: .4byte gUnknown_02039238 _0810915C: movs r3, 0 ldr r1, _081091C0 ldr r0, _081091C4 ldrb r2, [r0] ldr r7, _081091C8 ldr r6, _081091CC ldr r5, _081091D0 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _08109172: lsls r1, r3, 1 ldrh r0, [r2] cmp r0, 0 beq _08109198 ldrb r0, [r5] lsrs r0, 1 lsls r0, 4 adds r0, r1, r0 adds r0, r6 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, [r4] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _081091A0 _08109198: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _08109172 _081091A0: ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] _081091B8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081091C0: .4byte gBattleMons _081091C4: .4byte gUnknown_02024C07 _081091C8: .4byte gBattleMoves _081091CC: .4byte 0x02016a00 _081091D0: .4byte gUnknown_02024C08 thumb_func_end sub_81090E4 thumb_func_start sub_81091D4 sub_81091D4: @ 81091D4 push {r4-r6,lr} ldr r1, _081091EC ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _081091F8 cmp r0, 0x1 bgt _081091F0 cmp r0, 0 beq _0810925C b _08109294 .align 2, 0 _081091EC: .4byte gUnknown_02039238 _081091F0: cmp r0, 0x2 beq _0810925C cmp r0, 0x3 bne _08109294 _081091F8: movs r3, 0 ldr r1, _0810924C ldr r0, _08109250 ldrb r2, [r0] ldr r6, _08109254 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r5, _08109258 _0810920C: ldrh r0, [r2] cmp r0, 0 beq _08109226 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, [r5] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810922E _08109226: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0810920C _0810922E: cmp r3, 0x4 bne _0810928E ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08109294 .align 2, 0 _0810924C: .4byte gBattleMons _08109250: .4byte gUnknown_02024C07 _08109254: .4byte gBattleMoves _08109258: .4byte gUnknown_02039238 _0810925C: movs r3, 0 ldr r1, _0810929C ldr r0, _081092A0 ldrb r0, [r0] lsrs r0, 1 lsls r0, 4 adds r2, r0, r1 ldr r5, _081092A4 _0810926C: ldrh r0, [r2] cmp r0, 0 beq _08109286 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, [r4] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _0810928E _08109286: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _0810926C _0810928E: ldr r0, [r4] adds r0, 0x7 str r0, [r4] _08109294: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810929C: .4byte 0x02016a00 _081092A0: .4byte gUnknown_02024C08 _081092A4: .4byte gBattleMoves thumb_func_end sub_81091D4 thumb_func_start tai43_unk tai43_unk: @ 81092A8 push {r4,r5,lr} ldr r0, _081092BC ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _081092C4 ldr r0, _081092C0 b _081092C6 .align 2, 0 _081092BC: .4byte gUnknown_02039238 _081092C0: .4byte gUnknown_02024C07 _081092C4: ldr r0, _081092E4 _081092C6: ldrb r3, [r0] adds r4, r5, 0 ldr r2, [r4] ldrb r0, [r2, 0x2] cmp r0, 0 bne _081092EC ldr r0, _081092E8 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x4] cmp r0, 0 beq _081092F0 b _08109306 .align 2, 0 _081092E4: .4byte gUnknown_02024C08 _081092E8: .4byte gUnknown_02024CA8 _081092EC: cmp r0, 0x1 beq _081092F6 _081092F0: adds r0, r2, 0x7 str r0, [r4] b _08109328 _081092F6: ldr r0, _08109320 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x6] cmp r0, 0 beq _08109324 _08109306: ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08109328 .align 2, 0 _08109320: .4byte gUnknown_02024CA8 _08109324: adds r0, r2, 0x7 str r0, [r5] _08109328: pop {r4,r5} pop {r0} bx r0 thumb_func_end tai43_unk thumb_func_start sub_8109330 sub_8109330: @ 8109330 push {r4,lr} ldr r4, _08109344 ldr r3, [r4] ldrb r0, [r3, 0x1] cmp r0, 0 beq _08109348 cmp r0, 0x1 beq _08109370 b _081093AC .align 2, 0 _08109344: .4byte gUnknown_02039238 _08109348: ldr r2, _08109364 ldr r0, _08109368 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0810936C ldrh r0, [r0, 0x4] ldrh r1, [r1, 0x2] cmp r0, r1 beq _08109388 b _081093AC .align 2, 0 _08109364: .4byte gUnknown_02024CA8 _08109368: .4byte gUnknown_02024A60 _0810936C: .4byte 0x02016800 _08109370: ldr r2, _081093A0 ldr r0, _081093A4 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _081093A8 ldrh r0, [r0, 0x6] ldrh r1, [r1, 0x2] cmp r0, r1 bne _081093AC _08109388: ldrb r1, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _081093B0 .align 2, 0 _081093A0: .4byte gUnknown_02024CA8 _081093A4: .4byte gUnknown_02024A60 _081093A8: .4byte 0x02016800 _081093AC: adds r0, r3, 0x6 str r0, [r4] _081093B0: pop {r4} pop {r0} bx r0 thumb_func_end sub_8109330 thumb_func_start sub_81093B8 sub_81093B8: @ 81093B8 ldr r2, _081093C4 ldrb r1, [r2, 0x10] movs r0, 0xB orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _081093C4: .4byte 0x02016800 thumb_func_end sub_81093B8 thumb_func_start sub_81093C8 sub_81093C8: @ 81093C8 push {r4,lr} ldr r0, _0810940C ldr r1, _08109410 adds r0, r1 ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _08109418 ldr r3, _08109414 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08109420 .align 2, 0 _0810940C: .4byte 0x02000000 _08109410: .4byte 0x00016088 _08109414: .4byte gUnknown_02039238 _08109418: ldr r1, _08109428 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08109420: pop {r4} pop {r0} bx r0 .align 2, 0 _08109428: .4byte gUnknown_02039238 thumb_func_end sub_81093C8 thumb_func_start sub_810942C sub_810942C: @ 810942C ldr r2, _08109438 ldrb r1, [r2, 0x10] movs r0, 0xD orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _08109438: .4byte 0x02016800 thumb_func_end sub_810942C thumb_func_start dp15_get_held_item_x12__8 dp15_get_held_item_x12__8: @ 810943C push {r4,lr} ldr r0, _0810944C ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08109454 ldr r0, _08109450 b _08109456 .align 2, 0 _0810944C: .4byte gUnknown_02039238 _08109450: .4byte gUnknown_02024C07 _08109454: ldr r0, _0810947C _08109456: ldrb r4, [r0] adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08109488 adds r0, r4, 0 bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 ldr r2, _08109480 ldr r3, _08109484 adds r0, r2, r3 adds r1, r0 ldrb r0, [r1] str r0, [r2, 0x8] b _0810949E .align 2, 0 _0810947C: .4byte gUnknown_02024C08 _08109480: .4byte 0x02016800 _08109484: .4byte 0x00000222 _08109488: ldr r1, _081094AC movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x2E] bl itemid_get_x12 ldr r1, _081094B0 lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] _0810949E: ldr r1, _081094B4 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081094AC: .4byte gBattleMons _081094B0: .4byte 0x02016800 _081094B4: .4byte gUnknown_02039238 thumb_func_end dp15_get_held_item_x12__8 thumb_func_start tai49_unk tai49_unk: @ 81094B8 push {lr} ldr r0, _081094C8 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _081094D0 ldr r0, _081094CC b _081094D2 .align 2, 0 _081094C8: .4byte gUnknown_02039238 _081094CC: .4byte gUnknown_02024C07 _081094D0: ldr r0, _081094FC _081094D2: ldrb r1, [r0] ldr r2, _08109500 movs r0, 0x58 muls r1, r0 adds r0, r1, r2 ldrh r0, [r0] adds r2, 0x48 adds r1, r2 ldr r1, [r1] bl GetGenderFromSpeciesAndPersonality ldr r1, _08109504 lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] ldr r1, _08109508 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _081094FC: .4byte gUnknown_02024C08 _08109500: .4byte gBattleMons _08109504: .4byte 0x02016800 _08109508: .4byte gUnknown_02039238 thumb_func_end tai49_unk thumb_func_start sub_810950C sub_810950C: @ 810950C push {r4,lr} ldr r0, _08109520 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109528 ldr r0, _08109524 b _0810952A .align 2, 0 _08109520: .4byte gUnknown_02039238 _08109524: .4byte gUnknown_02024C07 _08109528: ldr r0, _08109548 _0810952A: ldrb r3, [r0] ldr r2, _0810954C ldr r1, _08109550 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109548: .4byte gUnknown_02024C08 _0810954C: .4byte 0x02016800 _08109550: .4byte gUnknown_02024CA8 thumb_func_end sub_810950C thumb_func_start sub_8109554 sub_8109554: @ 8109554 push {r4,lr} ldr r0, _08109568 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109570 ldr r0, _0810956C b _08109572 .align 2, 0 _08109568: .4byte gUnknown_02039238 _0810956C: .4byte gUnknown_02024C07 _08109570: ldr r0, _08109590 _08109572: ldrb r3, [r0] ldr r2, _08109594 ldr r1, _08109598 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x9] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109590: .4byte gUnknown_02024C08 _08109594: .4byte 0x02016800 _08109598: .4byte gUnknown_02024CA8 thumb_func_end sub_8109554 thumb_func_start sub_810959C sub_810959C: @ 810959C ldr r2, _081095B4 ldr r0, _081095B8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 str r0, [r2, 0x8] ldr r1, _081095BC ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _081095B4: .4byte 0x02016800 _081095B8: .4byte gUnknown_020239F8 _081095BC: .4byte gUnknown_02039238 thumb_func_end sub_810959C thumb_func_start sub_81095C0 sub_81095C0: @ 81095C0 push {lr} ldr r0, _081095D4 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 cmp r1, 0x1 bne _081095DC ldr r0, _081095D8 b _081095DE .align 2, 0 _081095D4: .4byte gUnknown_02039238 _081095D8: .4byte gUnknown_02024C07 _081095DC: ldr r0, _081095F8 _081095DE: ldrb r0, [r0] ldr r1, _081095FC lsls r0, 1 adds r0, r1 ldr r3, _08109600 adds r0, r3 ldrb r0, [r0] str r0, [r1, 0x8] ldr r0, [r2] adds r0, 0x2 str r0, [r2] pop {r0} bx r0 .align 2, 0 _081095F8: .4byte gUnknown_02024C08 _081095FC: .4byte 0x02016800 _08109600: .4byte 0xfffff8cc thumb_func_end sub_81095C0 thumb_func_start sub_8109604 sub_8109604: @ 8109604 ldr r3, _08109620 ldr r2, _08109624 ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] str r0, [r3, 0x8] ldr r1, _08109628 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109620: .4byte 0x02016800 _08109624: .4byte gBattleMoves _08109628: .4byte gUnknown_02039238 thumb_func_end sub_8109604 thumb_func_start sub_810962C sub_810962C: @ 810962C ldr r3, _08109648 ldr r2, _0810964C ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] str r0, [r3, 0x8] ldr r1, _08109650 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109648: .4byte 0x02016800 _0810964C: .4byte gBattleMoves _08109650: .4byte gUnknown_02039238 thumb_func_end sub_810962C thumb_func_start sub_8109654 sub_8109654: @ 8109654 ldr r3, _08109670 ldr r2, _08109674 ldr r1, [r3, 0x8] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] str r0, [r3, 0x8] ldr r1, _08109678 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08109670: .4byte 0x02016800 _08109674: .4byte gBattleMoves _08109678: .4byte gUnknown_02039238 thumb_func_end sub_8109654 thumb_func_start sub_810967C sub_810967C: @ 810967C push {r4,lr} ldr r0, _08109690 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _08109698 ldr r0, _08109694 b _0810969A .align 2, 0 _08109690: .4byte gUnknown_02039238 _08109694: .4byte gUnknown_02024C07 _08109698: ldr r0, _081096B8 _0810969A: ldrb r3, [r0] ldr r2, _081096BC ldr r1, _081096C0 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081096B8: .4byte gUnknown_02024C08 _081096BC: .4byte 0x02016800 _081096C0: .4byte gUnknown_02024CA8 thumb_func_end sub_810967C thumb_func_start nullsub_27 nullsub_27: @ 81096C4 bx lr thumb_func_end nullsub_27 thumb_func_start nullsub_28 nullsub_28: @ 81096C8 bx lr thumb_func_end nullsub_28 thumb_func_start nullsub_29 nullsub_29: @ 81096CC bx lr thumb_func_end nullsub_29 thumb_func_start nullsub_30 nullsub_30: @ 81096D0 bx lr thumb_func_end nullsub_30 thumb_func_start nullsub_31 nullsub_31: @ 81096D4 bx lr thumb_func_end nullsub_31 thumb_func_start nullsub_32 nullsub_32: @ 81096D8 bx lr thumb_func_end nullsub_32 thumb_func_start sub_81096DC sub_81096DC: @ 81096DC push {r4,lr} ldr r4, _08109708 ldr r0, [r4] adds r0, 0x5 bl sub_81098C4 ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08109708: .4byte gUnknown_02039238 thumb_func_end sub_81096DC thumb_func_start sub_810970C sub_810970C: @ 810970C ldr r3, _08109728 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] bx lr .align 2, 0 _08109728: .4byte gUnknown_02039238 thumb_func_end sub_810970C thumb_func_start sub_810972C sub_810972C: @ 810972C push {lr} bl sub_8109908 lsls r0, 24 cmp r0, 0 bne _08109742 ldr r2, _08109748 ldrb r1, [r2, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x10] _08109742: pop {r0} bx r0 .align 2, 0 _08109748: .4byte 0x02016800 thumb_func_end sub_810972C thumb_func_start dp15_compare_attacker_defender_levels dp15_compare_attacker_defender_levels: @ 810974C push {r4,r5,lr} ldr r5, _08109764 ldr r4, [r5] ldrb r0, [r4, 0x1] cmp r0, 0x1 beq _081097A0 cmp r0, 0x1 bgt _08109768 cmp r0, 0 beq _0810976E b _0810981C .align 2, 0 _08109764: .4byte gUnknown_02039238 _08109768: cmp r0, 0x2 beq _081097D0 b _0810981C _0810976E: ldr r3, _08109794 ldr r0, _08109798 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _0810979C ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bhi _081097F2 b _08109818 .align 2, 0 _08109794: .4byte gBattleMons _08109798: .4byte gUnknown_02024C07 _0810979C: .4byte gUnknown_02024C08 _081097A0: ldr r3, _081097C4 ldr r0, _081097C8 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _081097CC ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _081097F2 b _08109818 .align 2, 0 _081097C4: .4byte gBattleMons _081097C8: .4byte gUnknown_02024C07 _081097CC: .4byte gUnknown_02024C08 _081097D0: ldr r3, _0810980C ldr r0, _08109810 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _08109814 ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _08109818 _081097F2: ldrb r1, [r4, 0x2] ldrb r0, [r4, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r4, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r4, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r5] b _0810981C .align 2, 0 _0810980C: .4byte gBattleMons _08109810: .4byte gUnknown_02024C07 _08109814: .4byte gUnknown_02024C08 _08109818: adds r0, r4, 0x6 str r0, [r5] _0810981C: pop {r4,r5} pop {r0} bx r0 thumb_func_end dp15_compare_attacker_defender_levels thumb_func_start sub_8109824 sub_8109824: @ 8109824 push {lr} ldr r2, _08109858 ldr r0, _0810985C ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 beq _08109864 ldr r3, _08109860 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0810986C .align 2, 0 _08109858: .4byte gUnknown_02024CA8 _0810985C: .4byte gUnknown_02024C08 _08109860: .4byte gUnknown_02039238 _08109864: ldr r1, _08109870 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0810986C: pop {r0} bx r0 .align 2, 0 _08109870: .4byte gUnknown_02039238 thumb_func_end sub_8109824 thumb_func_start sub_8109874 sub_8109874: @ 8109874 push {lr} ldr r2, _081098A8 ldr r0, _081098AC ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 bne _081098B4 ldr r3, _081098B0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _081098BC .align 2, 0 _081098A8: .4byte gUnknown_02024CA8 _081098AC: .4byte gUnknown_02024C08 _081098B0: .4byte gUnknown_02039238 _081098B4: ldr r1, _081098C0 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _081098BC: pop {r0} bx r0 .align 2, 0 _081098C0: .4byte gUnknown_02039238 thumb_func_end sub_8109874 thumb_func_start sub_81098C4 sub_81098C4: @ 81098C4 push {r4,lr} ldr r4, _081098E0 adds r3, r4, 0 adds r3, 0x20 ldrb r1, [r3] adds r2, r1, 0x1 strb r2, [r3] lsls r1, 24 lsrs r1, 22 adds r1, r4 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _081098E0: .4byte 0x02016c00 thumb_func_end sub_81098C4 thumb_func_start unref_sub_81098E4 unref_sub_81098E4: @ 81098E4 ldr r3, _08109900 adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] adds r1, r0, 0x1 strb r1, [r2] lsls r0, 24 lsrs r0, 22 adds r0, r3 ldr r1, _08109904 ldr r1, [r1] str r1, [r0] bx lr .align 2, 0 _08109900: .4byte 0x02016c00 _08109904: .4byte gUnknown_02039238 thumb_func_end unref_sub_81098E4 thumb_func_start sub_8109908 sub_8109908: @ 8109908 push {lr} ldr r3, _0810991C adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0 bne _08109920 movs r0, 0 b _08109932 .align 2, 0 _0810991C: .4byte 0x02016c00 _08109920: subs r0, 0x1 strb r0, [r2] ldr r1, _08109938 ldrb r0, [r2] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r1] movs r0, 0x1 _08109932: pop {r1} bx r1 .align 2, 0 _08109938: .4byte gUnknown_02039238 thumb_func_end sub_8109908 thumb_func_start sub_810993C sub_810993C: @ 810993C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r0, _081099C8 mov r9, r0 movs r2, 0 _0810994E: adds r1, r2, 0x1 lsls r0, r1, 24 lsrs r5, r0, 24 str r1, [sp, 0xC] cmp r5, 0x3 bhi _081099AC movs r1, 0x1 add r1, r9 mov r8, r1 adds r6, r1, r2 movs r0, 0xB mov r10, r0 mov r0, r10 muls r0, r2 adds r0, 0x5 mov r1, r9 adds r7, r1, r0 _08109970: ldrb r0, [r6] cmp r0, 0 bne _081099A2 adds r2, r0, 0 mov r0, r8 adds r1, r0, r5 ldrb r0, [r1] strb r0, [r6] strb r2, [r1] mov r0, sp adds r1, r7, 0 bl StringCopy mov r4, r10 muls r4, r5 adds r4, 0x5 add r4, r9 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r0, r4, 0 mov r1, sp bl StringCopy _081099A2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08109970 _081099AC: ldr r1, [sp, 0xC] lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0810994E 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 _081099C8: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_810993C thumb_func_start sub_81099CC sub_81099CC: @ 81099CC push {r4-r6,lr} ldr r5, _08109A14 movs r1, 0 movs r0, 0x2 strb r0, [r5] adds r0, r5, 0 adds r0, 0x31 strb r1, [r0] movs r4, 0 ldr r6, _08109A18 _081099E0: movs r0, 0xB muls r0, r4 adds r0, 0x5 adds r0, r5, r0 lsls r1, r4, 2 adds r1, r6 ldr r1, [r1] bl StringCopy adds r1, r5, 0x1 adds r1, r4 ldr r0, _08109A1C adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081099E0 bl sub_810993C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109A14: .4byte gSaveBlock1 + 0x2D94 _08109A18: .4byte gUnknown_083F62D8 _08109A1C: .4byte gTraderDecorations thumb_func_end sub_81099CC thumb_func_start sub_8109A20 sub_8109A20: @ 8109A20 ldr r0, _08109A2C adds r0, 0x31 movs r1, 0 strb r1, [r0] bx lr .align 2, 0 _08109A2C: .4byte gSaveBlock1 + 0x2D94 thumb_func_end sub_8109A20 thumb_func_start sub_8109A30 sub_8109A30: @ 8109A30 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08109A44 bl VarSet pop {r0} bx r0 .align 2, 0 _08109A44: .4byte 0x00004020 thumb_func_end sub_8109A30 thumb_func_start sub_8109A48 sub_8109A48: @ 8109A48 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r6, 0x1 movs r5, 0 ldr r0, _08109AB8 movs r4, 0 adds r7, r0, 0x1 adds r1, r7, 0 _08109A64: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _08109A72 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08109A72: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08109A64 lsls r3, r6, 25 movs r0, 0x80 lsls r0, 18 adds r3, r0 lsrs r3, 24 movs r0, 0 movs r1, 0x1 movs r2, 0xC bl MenuDrawTextWindow movs r4, 0 mov r1, r9 lsls r1, 2 mov r8, r1 _08109A98: adds r1, r7, r4 ldrb r0, [r1] cmp r0, 0 beq _08109ADE cmp r0, 0x78 bls _08109AC0 lsls r2, r5, 25 movs r0, 0x80 lsls r0, 18 adds r2, r0 lsrs r2, 24 ldr r0, _08109ABC movs r1, 0x1 bl MenuPrint b _08109AD8 .align 2, 0 _08109AB8: .4byte gSaveBlock1 + 0x2D94 _08109ABC: .4byte gOtherText_FiveQuestionsAndSlash _08109AC0: ldrb r0, [r1] lsls r0, 5 ldr r1, _08109B28 adds r0, r1 lsls r2, r5, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl MenuPrint _08109AD8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08109ADE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08109A98 ldr r0, _08109B2C lsls r2, r5, 25 movs r1, 0x80 lsls r1, 18 adds r2, r1 lsrs r2, 24 movs r1, 0x1 bl MenuPrint movs r0, 0 str r0, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 movs r2, 0x2 adds r3, r6, 0 bl InitMenu ldr r1, _08109B30 mov r0, r8 add r0, r9 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xA] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08109B28: .4byte gDecorations + 0x1 _08109B2C: .4byte gOtherText_CancelNoTerminator _08109B30: .4byte gTasks thumb_func_end sub_8109A48 thumb_func_start sub_8109B34 sub_8109B34: @ 8109B34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x78 bls _08109B54 ldr r1, _08109B4C ldr r2, _08109B50 adds r0, r2, 0 strh r0, [r1] b _08109B58 .align 2, 0 _08109B4C: .4byte gUnknown_0202E8CC _08109B50: .4byte 0x0000ffff _08109B54: ldr r0, _08109B78 strh r1, [r0] _08109B58: bl sub_8072DEC movs r0, 0 movs r1, 0x1 movs r2, 0xC movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts pop {r4} pop {r0} bx r0 .align 2, 0 _08109B78: .4byte gUnknown_0202E8CC thumb_func_end sub_8109B34 thumb_func_start sub_8109B7C sub_8109B7C: @ 8109B7C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r6, _08109BA4 ldr r0, _08109BA8 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08109BAC movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _08109C3E .align 2, 0 _08109BA4: .4byte gSaveBlock1 + 0x2D94 _08109BA8: .4byte gMain _08109BAC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08109BC2 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _08109C3E _08109BC2: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08109C28 movs r0, 0x5 bl PlaySE ldr r5, _08109BFC bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldr r1, _08109C00 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] ldrh r2, [r5] cmp r0, r2 bne _08109C04 adds r0, r4, 0 movs r1, 0 bl sub_8109B34 b _08109C3E .align 2, 0 _08109BFC: .4byte gUnknown_0202E8CE _08109C00: .4byte gTasks _08109C04: ldr r0, _08109C24 movs r1, 0xB muls r1, r2 adds r1, 0x5 adds r1, r6 bl StringCopy adds r0, r6, 0x1 ldrh r5, [r5] adds r0, r5 ldrb r1, [r0] adds r0, r4, 0 bl sub_8109B34 b _08109C3E .align 2, 0 _08109C24: .4byte gStringVar1 _08109C28: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08109C3E movs r0, 0x5 bl PlaySE adds r0, r5, 0 movs r1, 0 bl sub_8109B34 _08109C3E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8109B7C thumb_func_start sub_8109C44 sub_8109C44: @ 8109C44 ldr r0, _08109C50 ldr r1, _08109C54 adds r0, 0x31 ldrb r0, [r0] strh r0, [r1] bx lr .align 2, 0 _08109C50: .4byte gSaveBlock1 + 0x2D94 _08109C54: .4byte gScriptResult thumb_func_end sub_8109C44 thumb_func_start sub_8109C58 sub_8109C58: @ 8109C58 push {r4,r5,lr} movs r4, 0 ldr r5, _08109C70 _08109C5E: adds r0, r4, 0 bl sub_8134194 lsls r0, 24 cmp r0, 0 beq _08109C74 movs r0, 0 strh r0, [r5] b _08109C84 .align 2, 0 _08109C70: .4byte gScriptResult _08109C74: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _08109C5E ldr r1, _08109C8C movs r0, 0x1 strh r0, [r1] _08109C84: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08109C8C: .4byte gScriptResult thumb_func_end sub_8109C58 thumb_func_start sub_8109C90 sub_8109C90: @ 8109C90 push {r4-r6,lr} ldr r6, _08109CDC movs r0, 0 strh r0, [r6] ldr r4, _08109CE0 ldr r5, _08109CE4 ldrh r0, [r5] lsls r0, 5 adds r2, r0, r4 ldr r0, _08109CE8 ldrh r0, [r0] lsls r0, 5 adds r0, r4 ldrb r1, [r2, 0x13] ldrb r0, [r0, 0x13] cmp r1, r0 beq _08109CD6 adds r0, r1, 0 bl sub_8133F9C lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08109CD6 ldr r0, _08109CEC ldrh r1, [r5] lsls r1, 5 adds r1, r4 ldrb r1, [r1, 0x13] bl sub_80FE7D4 movs r0, 0x1 strh r0, [r6] _08109CD6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109CDC: .4byte gScriptResult _08109CE0: .4byte gDecorations _08109CE4: .4byte gUnknown_0202E8CC _08109CE8: .4byte gUnknown_0202E8D0 _08109CEC: .4byte gStringVar2 thumb_func_end sub_8109C90 thumb_func_start sub_8109CF0 sub_8109CF0: @ 8109CF0 push {lr} ldr r0, _08109D00 movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _08109D00: .4byte sub_80FE7A8 thumb_func_end sub_8109CF0 thumb_func_start sub_8109D04 sub_8109D04: @ 8109D04 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl sub_8072DEC movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _08109D6C movs r1, 0x8 bl sub_80F9520 bl BuyMenuFreeMemory bl sub_80FEFA4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08109D8C ldr r5, _08109D70 ldr r0, _08109D74 ldrb r1, [r0] ldr r0, _08109D78 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] strh r0, [r5] ldr r0, _08109D7C ldr r1, _08109D80 ldrh r1, [r1] lsls r1, 5 ldr r4, _08109D84 adds r1, r4 bl StringCopy ldr r0, _08109D88 ldrh r1, [r5] lsls r1, 5 adds r1, r4 bl StringCopy b _08109D94 .align 2, 0 _08109D6C: .4byte gUnknown_020388F7 _08109D70: .4byte gUnknown_0202E8D0 _08109D74: .4byte gUnknown_020388F5 _08109D78: .4byte gUnknown_020388D0 _08109D7C: .4byte gStringVar3 _08109D80: .4byte gUnknown_0202E8CC _08109D84: .4byte gDecorations + 0x1 _08109D88: .4byte gStringVar2 _08109D8C: ldr r1, _08109DA4 ldr r2, _08109DA8 adds r0, r2, 0 strh r0, [r1] _08109D94: adds r0, r6, 0 bl DestroyTask bl EnableBothScriptContexts pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109DA4: .4byte gUnknown_0202E8D0 _08109DA8: .4byte 0x0000ffff thumb_func_end sub_8109D04 thumb_func_start sub_8109DAC sub_8109DAC: @ 8109DAC push {r4,lr} 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 ldr r1, _08109DDC movs r0, 0 strh r0, [r1] adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts pop {r4} pop {r0} bx r0 .align 2, 0 _08109DDC: .4byte gUnknown_0202E8D0 thumb_func_end sub_8109DAC thumb_func_start sub_8109DE0 sub_8109DE0: @ 8109DE0 push {r4-r6,lr} ldr r4, _08109E20 ldr r6, _08109E24 ldrb r0, [r6] bl sub_81340A8 ldr r0, _08109E28 ldrb r0, [r0] bl IsThereStorageSpaceForDecoration ldr r5, _08109E2C ldrh r1, [r5] movs r0, 0xB muls r0, r1 adds r0, 0x5 adds r0, r4 ldr r1, _08109E30 bl StringCopy adds r0, r4, 0x1 ldrh r5, [r5] adds r0, r5 ldrh r1, [r6] strb r1, [r0] bl sub_810993C adds r4, 0x31 movs r0, 0x1 strb r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08109E20: .4byte gSaveBlock1 + 0x2D94 _08109E24: .4byte gUnknown_0202E8D0 _08109E28: .4byte gUnknown_0202E8CC _08109E2C: .4byte gUnknown_0202E8CE _08109E30: .4byte gSaveBlock2 thumb_func_end sub_8109DE0 thumb_func_start sub_8109E34 sub_8109E34: @ 8109E34 push {lr} ldr r0, _08109E4C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl sub_8109A48 pop {r0} bx r0 .align 2, 0 _08109E4C: .4byte sub_8109B7C thumb_func_end sub_8109E34 .align 2, 0 @ Don't pad with nop.